10-17-收票与开票-开票申请

This commit is contained in:
2025-10-18 14:14:27 +08:00
parent a06511e0bf
commit f9d9785536
27 changed files with 1024 additions and 63 deletions

View File

@ -77,7 +77,7 @@ public class RedisUtils {
public static <T> void publish(String channelKey, T msg, Consumer<T> consumer) {
RTopic topic = CLIENT.getTopic(channelKey);
topic.publish(msg);
System.out.println("发布通道消息---------"+msg.toString());
// System.out.println("发布通道消息---------"+msg.toString());
consumer.accept(msg);
}

View File

@ -69,8 +69,8 @@ public class WebSocketUtils {
broadcastMessage.setMessage(webSocketMessage.getMessage());
broadcastMessage.setSessionKeys(unsentSessionKeys);
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> {
log.info(" WebSocket发送主题订阅消息topic:{} session keys:{} message:{}",
WEB_SOCKET_TOPIC, unsentSessionKeys, webSocketMessage.getMessage());
// log.info(" WebSocket发送主题订阅消息topic:{} session keys:{} message:{}",
// WEB_SOCKET_TOPIC, unsentSessionKeys, webSocketMessage.getMessage());
});
}
}
@ -84,7 +84,7 @@ public class WebSocketUtils {
WebSocketMessageDto broadcastMessage = new WebSocketMessageDto();
broadcastMessage.setMessage(message);
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> {
log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message);
// log.info("WebSocket发送主题订阅消息topic:{} message:{}", WEB_SOCKET_TOPIC, message);
});
}

View File

@ -74,6 +74,11 @@ public class XzdSfkFukuan extends BaseEntity {
*/
private String remark;
/**
* 数据来源
*/
private String sjly;
/**
* 单据引用
*/

View File

@ -76,6 +76,11 @@ public class XzdSfkFukuanBo extends BaseEntity {
*/
private String remark;
/**
* 数据来源
*/
private String sjly;
/**
* 单据引用
*/

View File

@ -94,6 +94,12 @@ public class XzdSfkFukuanVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
/**
* 数据来源
*/
@ExcelProperty(value = "数据来源")
private String sjly;
/**
* 单据引用
*/

View File

@ -216,10 +216,11 @@ public class XzdContractChangeServiceImpl extends ServiceImpl<XzdContractChangeM
* @param bo 承包合同变更
* @return 是否修改成功
*/
@Transactional
@Override
public Boolean updateByBo(XzdContractChangeBo bo) {
XzdContractChangeVo old = baseMapper.selectVoById(bo.getId());
XzdContractChangeVo old = queryById(bo.getId());
XzdContractChange update = MapstructUtils.convert(bo, XzdContractChange.class);
validEntityBeforeSave(update);
@ -228,20 +229,6 @@ public class XzdContractChangeServiceImpl extends ServiceImpl<XzdContractChangeM
String tableName = XzdClassEnum.XZD_CONTRACT_CHANGE.getClassName();
//合同文本-预收款项
// if (bo.getYsyfkx() != null && !bo.getYsyfkx().isEmpty()) {
// for (XzdContractAdvanceInfo advanceInfo : bo.getYsyfkx()) {
// if (old.getYsyfkx() != null && !old.getYsyfkx().isEmpty())
// if (!old.getYsyfkx().contains(advanceInfo)) {
// xzdContractAdvanceInfoService.removeById(advanceInfo);
// }
// advanceInfo.setContractDetailsId(update.getId());
// advanceInfo.setTableName(tableName);
// }
// xzdContractAdvanceInfoService.saveOrUpdateBatch(bo.getYsyfkx());
// }else if (old.getYsyfkx() != null && !old.getYsyfkx().isEmpty()){
// xzdContractAdvanceInfoService.removeByIds(old.getYsyfkx());
// }
if (bo.getYsyfkx() != null && !bo.getYsyfkx().isEmpty()){
if (old.getYsyfkx() != null && !old.getYsyfkx().isEmpty()){
xzdContractAdvanceInfoService.removeByIds(old.getYsyfkx());

View File

@ -232,11 +232,11 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl<XzdContractDetail
XzdContractDetails update = MapstructUtils.convert(bo, XzdContractDetails.class);
XzdContractDetailsVo old = baseMapper.selectVoById(update.getId());
XzdContractDetailsVo old = queryById(update.getId());
List<XzdContractDetailsVo> old1 = List.of(old);
setValue(old1);
old = old1.getFirst();
// List<XzdContractDetailsVo> old1 = List.of(old);
// setValue(old1);
// old = old1.getFirst();
// if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){
// if (old.getSealInfo() != null && !old.getSealInfo().isEmpty()){
@ -440,6 +440,7 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl<XzdContractDetail
XzdProjectVo projectVo = xzdProjectService.queryById(info.getProject());
if (projectVo != null) {
info.setProjectName(projectVo.getProjectName());
info.setProjectType(projectVo.getProjectTypeName());
}
}
//甲方单位(客户信息列表)

View File

@ -509,7 +509,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
return xzdProject != null ? xzdProject.getProjectName() : "";
}
private void setValue(XzdProjectVo entity){
public void setValue(XzdProjectVo entity){
//项目概况
LambdaQueryWrapper<XzdProjectProfile> profileLambdaQueryWrapper = new LambdaQueryWrapper<>();

View File

@ -1,9 +1,12 @@
package org.dromara.xzd.skyfk.fbhtfk.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serial;
@ -46,6 +49,8 @@ public class XzdSkyfkFbhtfk extends BaseEntity {
/**
* 单据日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date documentDate;
/**

View File

@ -1,5 +1,6 @@
package org.dromara.xzd.skyfk.fbhtfk.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo;
@ -12,6 +13,8 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
@ -52,6 +55,8 @@ public class XzdSkyfkFbhtfkBo extends BaseEntity {
* 单据日期
*/
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date documentDate;
/**

View File

@ -2,6 +2,7 @@ package org.dromara.xzd.skyfk.fbhtfk.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.vo.XzdSubcontractVo;
import org.dromara.xzd.domain.vo.XzdContractDetailsVo;
import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo;
@ -13,6 +14,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
@ -61,6 +63,8 @@ public class XzdSkyfkFbhtfkVo implements Serializable {
* 单据日期
*/
@ExcelProperty(value = "单据日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date documentDate;
/**

View File

@ -1,5 +1,6 @@
package org.dromara.xzd.skyfk.fbhtfk.service.impl;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.checkerframework.checker.units.qual.A;
import org.dromara.common.core.utils.MapstructUtils;
@ -21,6 +22,7 @@ import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo;
import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFukuanBo;
import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkFapiaoVo;
import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkFukuanVo;
import org.dromara.xzd.paymentsReceipts.service.impl.XzdSfkFapiaoServiceImpl;
import org.dromara.xzd.paymentsReceipts.service.impl.XzdSfkFukuanServiceImpl;
import org.dromara.xzd.service.impl.*;
@ -74,7 +76,10 @@ public class XzdSkyfkFbhtfkServiceImpl extends ServiceImpl<XzdSkyfkFbhtfkMapper,
*/
@Override
public XzdSkyfkFbhtfkVo queryById(Long id){
return baseMapper.selectVoById(id);
XzdSkyfkFbhtfkVo fbhtfkVo = baseMapper.selectVoById(id);
List<XzdSkyfkFbhtfkVo> fbhtfkVo1 = List.of(fbhtfkVo);
setValue(fbhtfkVo1);
return fbhtfkVo1.getFirst();
}
/**
@ -167,6 +172,7 @@ public class XzdSkyfkFbhtfkServiceImpl extends ServiceImpl<XzdSkyfkFbhtfkMapper,
public Boolean insertByBo(XzdSkyfkFbhtfkBo bo) {
XzdSkyfkFbhtfk add = MapstructUtils.convert(bo, XzdSkyfkFbhtfk.class);
validEntityBeforeSave(add);
add.setDocumentCode(IdUtil.getSnowflakeNextIdStr());
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
@ -356,6 +362,20 @@ public class XzdSkyfkFbhtfkServiceImpl extends ServiceImpl<XzdSkyfkFbhtfkMapper,
vo.setXmdl(bigType.getTypeName());
}
}
//付款信息
XzdSfkFukuanBo bo = new XzdSfkFukuanBo();
bo.setMainDocumentId(vo.getId());
List<XzdSfkFukuanVo> xzdSfkFukuanVos = xzdSfkFukuanService.queryList(bo);
if (xzdSfkFukuanVos != null && !xzdSfkFukuanVos.isEmpty()){
vo.setFkxx(xzdSfkFukuanVos);
}
//发票信息
XzdSfkFapiaoBo bo1 = new XzdSfkFapiaoBo();
bo1.setMainDocumentId(vo.getId());
List<XzdSfkFapiaoVo> xzdSfkFapiaoVos = xzdSfkFapiaoService.queryList(bo1);
if (xzdSfkFapiaoVos != null && !xzdSfkFapiaoVos.isEmpty()){
vo.setFpxx(xzdSfkFapiaoVos);
}
}
}

View File

@ -1,9 +1,13 @@
package org.dromara.xzd.spykp.kpsq.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
@ -46,6 +50,8 @@ public class XzdSpykpKpsq extends BaseEntity {
/**
* 申请日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date sqrq;
/**
@ -96,7 +102,7 @@ public class XzdSpykpKpsq extends BaseEntity {
/**
* 项目金额
*/
private Long xmje;
private BigDecimal xmje;
/**
* 合同id
@ -111,7 +117,7 @@ public class XzdSpykpKpsq extends BaseEntity {
/**
* 合同金额
*/
private Long htje;
private BigDecimal htje;
/**
* 跨区涉税证号
@ -131,7 +137,7 @@ public class XzdSpykpKpsq extends BaseEntity {
/**
* 差额扣除
*/
private Long cekc;
private BigDecimal cekc;
/**
* 是否预收款0否1是
@ -146,7 +152,7 @@ public class XzdSpykpKpsq extends BaseEntity {
/**
* 本次结算金额
*/
private Long bcjsje;
private BigDecimal bcjsje;
/**
* 开票说明
@ -166,12 +172,12 @@ public class XzdSpykpKpsq extends BaseEntity {
/**
* 扣押金比例
*/
private Long kyjbl;
private BigDecimal kyjbl;
/**
* 扣押金额度
*/
private Long kyjed;
private BigDecimal kyjed;
/**
* 实时刷新0否1是
@ -181,27 +187,27 @@ public class XzdSpykpKpsq extends BaseEntity {
/**
* 项目累计申请总额
*/
private Long xmljsqze;
private BigDecimal xmljsqze;
/**
* 项目累计开票总额
*/
private Long xmljkpze;
private BigDecimal xmljkpze;
/**
* 合同累计申请总额
*/
private Long htljsqze;
private BigDecimal htljsqze;
/**
* 合同累计开票总额
*/
private Long htljkpze;
private BigDecimal htljkpze;
/**
* 累计结算金额
*/
private Long ljjsje;
private BigDecimal ljjsje;
/**
* 红蓝类型
@ -291,11 +297,15 @@ public class XzdSpykpKpsq extends BaseEntity {
/**
* 租赁开始日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date zlksrq;
/**
* 租赁结束日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date zljsrq;
/**
@ -308,6 +318,11 @@ public class XzdSpykpKpsq extends BaseEntity {
*/
private Long xfId;
/**
* 销方名称
*/
private String xfmc;
/**
* 销方税号(社会信用代码)
*/
@ -338,6 +353,11 @@ public class XzdSpykpKpsq extends BaseEntity {
*/
private String xfyh;
/**
* 销方银行账号
*/
private String xfyhzh;
/**
* 显示销方开户行及账号0否1是
*/

View File

@ -130,7 +130,7 @@ public class XzdSpykpKpsqKpmx extends BaseEntity {
/**
*
*/
private Long updateBby;
private Long updateBy;
}

View File

@ -1,5 +1,6 @@
package org.dromara.xzd.spykp.kpsq.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsq;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
@ -9,7 +10,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsqKpmx;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ -47,6 +50,8 @@ public class XzdSpykpKpsqBo extends BaseEntity {
/**
* 申请日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date sqrq;
/**
@ -97,7 +102,7 @@ public class XzdSpykpKpsqBo extends BaseEntity {
/**
* 项目金额
*/
private Long xmje;
private BigDecimal xmje;
/**
* 合同id
@ -114,7 +119,7 @@ public class XzdSpykpKpsqBo extends BaseEntity {
/**
* 合同金额
*/
private Long htje;
private BigDecimal htje;
/**
* 跨区涉税证号
@ -134,7 +139,7 @@ public class XzdSpykpKpsqBo extends BaseEntity {
/**
* 差额扣除
*/
private Long cekc;
private BigDecimal cekc;
/**
* 是否预收款0否1是
@ -149,7 +154,7 @@ public class XzdSpykpKpsqBo extends BaseEntity {
/**
* 本次结算金额
*/
private Long bcjsje;
private BigDecimal bcjsje;
/**
* 开票说明
@ -169,12 +174,12 @@ public class XzdSpykpKpsqBo extends BaseEntity {
/**
* 扣押金比例
*/
private Long kyjbl;
private BigDecimal kyjbl;
/**
* 扣押金额度
*/
private Long kyjed;
private BigDecimal kyjed;
/**
* 实时刷新0否1是
@ -184,27 +189,27 @@ public class XzdSpykpKpsqBo extends BaseEntity {
/**
* 项目累计申请总额
*/
private Long xmljsqze;
private BigDecimal xmljsqze;
/**
* 项目累计开票总额
*/
private Long xmljkpze;
private BigDecimal xmljkpze;
/**
* 合同累计申请总额
*/
private Long htljsqze;
private BigDecimal htljsqze;
/**
* 合同累计开票总额
*/
private Long htljkpze;
private BigDecimal htljkpze;
/**
* 累计结算金额
*/
private Long ljjsje;
private BigDecimal ljjsje;
/**
* 红蓝类型
@ -294,11 +299,15 @@ public class XzdSpykpKpsqBo extends BaseEntity {
/**
* 租赁开始日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date zlksrq;
/**
* 租赁结束日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date zljsrq;
/**
@ -311,6 +320,11 @@ public class XzdSpykpKpsqBo extends BaseEntity {
*/
private Long xfId;
/**
* 销方名称
*/
private String xfmc;
/**
* 销方税号(社会信用代码)
*/
@ -341,6 +355,11 @@ public class XzdSpykpKpsqBo extends BaseEntity {
*/
private String xfyh;
/**
* 销方银行账号
*/
private String xfyhzh;
/**
* 显示销方开户行及账号0否1是
*/

View File

@ -128,7 +128,7 @@ public class XzdSpykpKpsqKpmxBo extends BaseEntity {
/**
*
*/
private Long updateBby;
private Long updateBy;
}

View File

@ -154,7 +154,7 @@ public class XzdSpykpKpsqKpmxVo implements Serializable {
*
*/
@ExcelProperty(value = "")
private Long updateBby;
private Long updateBy;
}

View File

@ -1,13 +1,16 @@
package org.dromara.xzd.spykp.kpsq.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsq;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.xzd.spykp.kpsq.domain.XzdSpykpKpsqKpmx;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
@ -56,6 +59,8 @@ public class XzdSpykpKpsqVo implements Serializable {
* 申请日期
*/
@ExcelProperty(value = "申请日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date sqrq;
/**
@ -116,7 +121,7 @@ public class XzdSpykpKpsqVo implements Serializable {
* 项目金额
*/
@ExcelProperty(value = "项目金额")
private Long xmje;
private BigDecimal xmje;
/**
* 合同id
@ -134,7 +139,7 @@ public class XzdSpykpKpsqVo implements Serializable {
* 合同金额
*/
@ExcelProperty(value = "合同金额")
private Long htje;
private BigDecimal htje;
/**
* 跨区涉税证号
@ -158,7 +163,7 @@ public class XzdSpykpKpsqVo implements Serializable {
* 差额扣除
*/
@ExcelProperty(value = "差额扣除")
private Long cekc;
private BigDecimal cekc;
/**
* 是否预收款0否1是
@ -200,13 +205,13 @@ public class XzdSpykpKpsqVo implements Serializable {
* 扣押金比例
*/
@ExcelProperty(value = "扣押金比例")
private Long kyjbl;
private BigDecimal kyjbl;
/**
* 扣押金额度
*/
@ExcelProperty(value = "扣押金额度")
private Long kyjed;
private BigDecimal kyjed;
/**
* 实时刷新0否1是
@ -218,31 +223,31 @@ public class XzdSpykpKpsqVo implements Serializable {
* 项目累计申请总额
*/
@ExcelProperty(value = "项目累计申请总额")
private Long xmljsqze;
private BigDecimal xmljsqze;
/**
* 项目累计开票总额
*/
@ExcelProperty(value = "项目累计开票总额")
private Long xmljkpze;
private BigDecimal xmljkpze;
/**
* 合同累计申请总额
*/
@ExcelProperty(value = "合同累计申请总额")
private Long htljsqze;
private BigDecimal htljsqze;
/**
* 合同累计开票总额
*/
@ExcelProperty(value = "合同累计开票总额")
private Long htljkpze;
private BigDecimal htljkpze;
/**
* 累计结算金额
*/
@ExcelProperty(value = "累计结算金额")
private Long ljjsje;
private BigDecimal ljjsje;
/**
* 红蓝类型
@ -350,12 +355,16 @@ public class XzdSpykpKpsqVo implements Serializable {
* 租赁开始日期
*/
@ExcelProperty(value = "租赁开始日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date zlksrq;
/**
* 租赁结束日期
*/
@ExcelProperty(value = "租赁结束日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date zljsrq;
/**
@ -370,6 +379,11 @@ public class XzdSpykpKpsqVo implements Serializable {
@ExcelProperty(value = "销方id(供应商)")
private Long xfId;
/**
* 销方名称
*/
private String xfmc;
/**
* 销方税号(社会信用代码)
*/
@ -406,6 +420,11 @@ public class XzdSpykpKpsqVo implements Serializable {
@ExcelProperty(value = "销方银行")
private String xfyh;
/**
* 销方银行账号
*/
private String xfyhzh;
/**
* 显示销方开户行及账号0否1是
*/

View File

@ -92,7 +92,7 @@ public class XzdSpykpKpsqKpmxServiceImpl extends ServiceImpl<XzdSpykpKpsqKpmxMap
lqw.eq(StringUtils.isNotBlank(bo.getBm()), XzdSpykpKpsqKpmx::getBm, bo.getBm());
lqw.eq(StringUtils.isNotBlank(bo.getZyhtqdmc()), XzdSpykpKpsqKpmx::getZyhtqdmc, bo.getZyhtqdmc());
lqw.eq(StringUtils.isNotBlank(bo.getJzjtlx()), XzdSpykpKpsqKpmx::getJzjtlx, bo.getJzjtlx());
lqw.eq(bo.getUpdateBby() != null, XzdSpykpKpsqKpmx::getUpdateBby, bo.getUpdateBby());
// lqw.eq(bo.getUpdateBby() != null, XzdSpykpKpsqKpmx::getUpdateBby, bo.getUpdateBby());
return lqw;
}

View File

@ -10,6 +10,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.service.impl.SysDeptServiceImpl;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.xzd.domain.XzdContractSkxx;
import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkFapiaoBo;
@ -43,6 +46,8 @@ public class XzdSpykpKpsqServiceImpl extends ServiceImpl<XzdSpykpKpsqMapper, Xzd
private SysOssServiceImpl sysOssService;
@Autowired
private XzdSpykpKpsqKpmxServiceImpl xzdSpykpKpsqKpmxService;
@Autowired
private SysDeptServiceImpl sysDeptService;
/**
* 查询收票与开票-开票申请
@ -52,7 +57,14 @@ public class XzdSpykpKpsqServiceImpl extends ServiceImpl<XzdSpykpKpsqMapper, Xzd
*/
@Override
public XzdSpykpKpsqVo queryById(Long id){
return baseMapper.selectVoById(id);
XzdSpykpKpsqVo vo = baseMapper.selectVoById(id);
if (vo != null){
List<XzdSpykpKpsqVo> vo1 = List.of(vo);
setValue(vo1);
return vo1.getFirst();
}else {
return null;
}
}
/**
@ -66,6 +78,7 @@ public class XzdSpykpKpsqServiceImpl extends ServiceImpl<XzdSpykpKpsqMapper, Xzd
public TableDataInfo<XzdSpykpKpsqVo> queryPageList(XzdSpykpKpsqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdSpykpKpsq> lqw = buildQueryWrapper(bo);
Page<XzdSpykpKpsqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
setValue(result.getRecords());
return TableDataInfo.build(result);
}
@ -179,6 +192,15 @@ public class XzdSpykpKpsqServiceImpl extends ServiceImpl<XzdSpykpKpsqMapper, Xzd
XzdSpykpKpsq add = MapstructUtils.convert(bo, XzdSpykpKpsq.class);
validEntityBeforeSave(add);
add.setDjbm(IdUtil.getSnowflakeNextIdStr());
//申请人
add.setSqr(LoginHelper.getLoginUser().getNickname());
//申请部门
SysDeptVo sysDeptVo = sysDeptService.selectDeptById(LoginHelper.getDeptId());
if (sysDeptVo != null){
add.setSqbm(sysDeptVo.getDeptId());
add.setSqbmmc(sysDeptVo.getDeptName());
}
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
@ -283,7 +305,9 @@ public class XzdSpykpKpsqServiceImpl extends ServiceImpl<XzdSpykpKpsqMapper, Xzd
public void setValue(List<XzdSpykpKpsqVo> vos){
for (XzdSpykpKpsqVo vo : vos) {
LambdaQueryWrapper<XzdSpykpKpsqKpmx> lqw = new LambdaQueryWrapper<>();
lqw.eq(XzdSpykpKpsqKpmx::getMainId, vo.getId());
vo.setKpmx(xzdSpykpKpsqKpmxService.list(lqw));
}
}

View File

@ -0,0 +1,105 @@
package org.dromara.xzd.spykp.sjsqd.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.xzd.spykp.sjsqd.domain.vo.XzdSpykpSjsqdVo;
import org.dromara.xzd.spykp.sjsqd.domain.bo.XzdSpykpSjsqdBo;
import org.dromara.xzd.spykp.sjsqd.service.IXzdSpykpSjsqdService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 收据申请单
*
* @author Lion Li
* @date 2025-10-17
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/sjsqd/sjsqd")
public class XzdSpykpSjsqdController extends BaseController {
private final IXzdSpykpSjsqdService xzdSpykpSjsqdService;
/**
* 查询收据申请单列表
*/
@SaCheckPermission("sjsqd:sjsqd:list")
@GetMapping("/list")
public TableDataInfo<XzdSpykpSjsqdVo> list(XzdSpykpSjsqdBo bo, PageQuery pageQuery) {
return xzdSpykpSjsqdService.queryPageList(bo, pageQuery);
}
/**
* 导出收据申请单列表
*/
@SaCheckPermission("sjsqd:sjsqd:export")
@Log(title = "收据申请单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(XzdSpykpSjsqdBo bo, HttpServletResponse response) {
List<XzdSpykpSjsqdVo> list = xzdSpykpSjsqdService.queryList(bo);
ExcelUtil.exportExcel(list, "收据申请单", XzdSpykpSjsqdVo.class, response);
}
/**
* 获取收据申请单详细信息
*
* @param id 主键
*/
@SaCheckPermission("sjsqd:sjsqd:query")
@GetMapping("/{id}")
public R<XzdSpykpSjsqdVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(xzdSpykpSjsqdService.queryById(id));
}
/**
* 新增收据申请单
*/
@SaCheckPermission("sjsqd:sjsqd:add")
@Log(title = "收据申请单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdSpykpSjsqdBo bo) {
return toAjax(xzdSpykpSjsqdService.insertByBo(bo));
}
/**
* 修改收据申请单
*/
@SaCheckPermission("sjsqd:sjsqd:edit")
@Log(title = "收据申请单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSpykpSjsqdBo bo) {
return toAjax(xzdSpykpSjsqdService.updateByBo(bo));
}
/**
* 删除收据申请单
*
* @param ids 主键串
*/
@SaCheckPermission("sjsqd:sjsqd:remove")
@Log(title = "收据申请单", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdSpykpSjsqdService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,113 @@
package org.dromara.xzd.spykp.sjsqd.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
/**
* 收据申请单对象 xzd_spykp_sjsqd
*
* @author Lion Li
* @date 2025-10-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("xzd_spykp_sjsqd")
public class XzdSpykpSjsqd extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 部门id
*/
private Long deptId;
/**
* 多文件逗号分隔
*/
private String fileId;
/**
* 单据编号(保存后随机生存)
*/
private String djbh;
/**
* 标题
*/
private String title;
/**
* 日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date rq;
/**
* 申请人id
*/
private Long sqrId;
/**
* 申请金额
*/
private BigDecimal sqje;
/**
* 项目id
*/
private Long xmId;
/**
* 合同id
*/
private Long htId;
/**
* 合同编号
*/
private String htbh;
/**
* 付款单位id(客户)
*/
private Long fkdwId;
/**
* 是否已收款(是,否)
*/
private String sfysk;
/**
* 收据类型
*/
private String sjlx;
/**
* 收据号
*/
private String sjh;
/**
* 收款事由
*/
private String sjsy;
}

View File

@ -0,0 +1,116 @@
package org.dromara.xzd.spykp.sjsqd.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 收据申请单业务对象 xzd_spykp_sjsqd
*
* @author Lion Li
* @date 2025-10-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = XzdSpykpSjsqd.class, reverseConvertGenerate = false)
public class XzdSpykpSjsqdBo extends BaseEntity {
/**
* id
*/
// @NotNull(message = "id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 部门id
*/
private Long deptId;
/**
* 多文件逗号分隔
*/
private String fileId;
/**
* 单据编号(保存后随机生存)
*/
private String djbh;
/**
* 标题
*/
private String title;
/**
* 日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date rq;
/**
* 申请人id
*/
private Long sqrId;
/**
* 申请金额
*/
private BigDecimal sqje;
/**
* 项目id
*/
@NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long xmId;
/**
* 合同id
*/
@NotNull(message = "合同id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long htId;
/**
* 合同编号
*/
@NotBlank(message = "合同编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String htbh;
/**
* 付款单位id(客户)
*/
private Long fkdwId;
/**
* 是否已收款(是,否)
*/
private String sfysk;
/**
* 收据类型
*/
private String sjlx;
/**
* 收据号
*/
private String sjh;
/**
* 收款事由
*/
@NotBlank(message = "收款事由不能为空", groups = { AddGroup.class, EditGroup.class })
private String sjsy;
}

View File

@ -0,0 +1,161 @@
package org.dromara.xzd.spykp.sjsqd.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.xzd.domain.vo.XzdProjectVo;
import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
/**
* 收据申请单视图对象 xzd_spykp_sjsqd
*
* @author Lion Li
* @date 2025-10-17
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = XzdSpykpSjsqd.class)
public class XzdSpykpSjsqdVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 部门id
*/
@ExcelProperty(value = "部门id")
private Long deptId;
/**
* 多文件逗号分隔
*/
@ExcelProperty(value = "多文件逗号分隔")
private String fileId;
/**
* 单据编号(保存后随机生存)
*/
@ExcelProperty(value = "单据编号(保存后随机生存)")
private String djbh;
/**
* 标题
*/
@ExcelProperty(value = "标题")
private String title;
/**
* 日期
*/
@ExcelProperty(value = "日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date rq;
/**
* 申请人id
*/
@ExcelProperty(value = "申请人id")
private Long sqrId;
/**
* 申请人名称
*/
private String sqrmc;
/**
* 申请部门
*/
private String sqbm;
/**
* 申请金额
*/
@ExcelProperty(value = "申请金额")
private BigDecimal sqje;
/**
* 项目id
*/
@ExcelProperty(value = "项目id")
private Long xmId;
/**
* 项目名称
*/
private String xmmc;
/**
* 合同id
*/
@ExcelProperty(value = "合同id")
private Long htId;
/**
* 合同名称
*/
private String htmc;
/**
* 合同编号
*/
@ExcelProperty(value = "合同编号")
private String htbh;
/**
* 付款单位id(客户)
*/
@ExcelProperty(value = "付款单位id(客户)")
private Long fkdwId;
/**
* 付款单位名称
*/
private String fkdwmc;
/**
* 是否已收款(是,否)
*/
@ExcelProperty(value = "是否已收款(是,否)")
private String sfysk;
/**
* 收据类型
*/
@ExcelProperty(value = "收据类型")
private String sjlx;
/**
* 收据号
*/
@ExcelProperty(value = "收据号")
private String sjh;
/**
* 收款事由
*/
@ExcelProperty(value = "收款事由")
private String sjsy;
private Long createBy;
}

View File

@ -0,0 +1,15 @@
package org.dromara.xzd.spykp.sjsqd.mapper;
import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd;
import org.dromara.xzd.spykp.sjsqd.domain.vo.XzdSpykpSjsqdVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 收据申请单Mapper接口
*
* @author Lion Li
* @date 2025-10-17
*/
public interface XzdSpykpSjsqdMapper extends BaseMapperPlus<XzdSpykpSjsqd, XzdSpykpSjsqdVo> {
}

View File

@ -0,0 +1,70 @@
package org.dromara.xzd.spykp.sjsqd.service;
import org.dromara.xzd.spykp.sjsqd.domain.vo.XzdSpykpSjsqdVo;
import org.dromara.xzd.spykp.sjsqd.domain.bo.XzdSpykpSjsqdBo;
import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
import java.util.List;
/**
* 收据申请单Service接口
*
* @author Lion Li
* @date 2025-10-17
*/
public interface IXzdSpykpSjsqdService extends IService<XzdSpykpSjsqd>{
/**
* 查询收据申请单
*
* @param id 主键
* @return 收据申请单
*/
XzdSpykpSjsqdVo queryById(Long id);
/**
* 分页查询收据申请单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 收据申请单分页列表
*/
TableDataInfo<XzdSpykpSjsqdVo> queryPageList(XzdSpykpSjsqdBo bo, PageQuery pageQuery);
/**
* 查询符合条件的收据申请单列表
*
* @param bo 查询条件
* @return 收据申请单列表
*/
List<XzdSpykpSjsqdVo> queryList(XzdSpykpSjsqdBo bo);
/**
* 新增收据申请单
*
* @param bo 收据申请单
* @return 是否新增成功
*/
Boolean insertByBo(XzdSpykpSjsqdBo bo);
/**
* 修改收据申请单
*
* @param bo 收据申请单
* @return 是否修改成功
*/
Boolean updateByBo(XzdSpykpSjsqdBo bo);
/**
* 校验并批量删除收据申请单信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,261 @@
package org.dromara.xzd.spykp.sjsqd.service.impl;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.impl.SysDeptServiceImpl;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.system.service.impl.SysUserServiceImpl;
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
import org.dromara.xzd.domain.vo.XzdContractDetailsVo;
import org.dromara.xzd.domain.vo.XzdProjectVo;
import org.dromara.xzd.service.IXzdCorrespondentList;
import org.dromara.xzd.service.impl.XzdContractDetailsServiceImpl;
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.dromara.xzd.spykp.sjsqd.domain.bo.XzdSpykpSjsqdBo;
import org.dromara.xzd.spykp.sjsqd.domain.vo.XzdSpykpSjsqdVo;
import org.dromara.xzd.spykp.sjsqd.domain.XzdSpykpSjsqd;
import org.dromara.xzd.spykp.sjsqd.mapper.XzdSpykpSjsqdMapper;
import org.dromara.xzd.spykp.sjsqd.service.IXzdSpykpSjsqdService;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 收据申请单Service业务层处理
*
* @author Lion Li
* @date 2025-10-17
*/
@RequiredArgsConstructor
@Service
public class XzdSpykpSjsqdServiceImpl extends ServiceImpl<XzdSpykpSjsqdMapper, XzdSpykpSjsqd> implements IXzdSpykpSjsqdService {
private final XzdSpykpSjsqdMapper baseMapper;
@Autowired
private SysOssServiceImpl sysOssService;
@Autowired
private SysUserServiceImpl sysUserService;
@Autowired
private XzdProjectServiceImpl xzdProjectService;
@Autowired
private XzdContractDetailsServiceImpl xzdContractDetailsService;
@Autowired
private IXzdCorrespondentList iXzdCorrespondentList;
@Autowired
private SysDeptServiceImpl sysDeptService;
/**
* 查询收据申请单
*
* @param id 主键
* @return 收据申请单
*/
@Override
public XzdSpykpSjsqdVo queryById(Long id){
XzdSpykpSjsqdVo vo = baseMapper.selectVoById(id);
List<XzdSpykpSjsqdVo> vo1 = List.of(vo);
return vo1.getFirst();
}
/**
* 分页查询收据申请单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 收据申请单分页列表
*/
@Override
public TableDataInfo<XzdSpykpSjsqdVo> queryPageList(XzdSpykpSjsqdBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdSpykpSjsqd> lqw = buildQueryWrapper(bo);
Page<XzdSpykpSjsqdVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
setValue(result.getRecords());
return TableDataInfo.build(result);
}
/**
* 查询符合条件的收据申请单列表
*
* @param bo 查询条件
* @return 收据申请单列表
*/
@Override
public List<XzdSpykpSjsqdVo> queryList(XzdSpykpSjsqdBo bo) {
LambdaQueryWrapper<XzdSpykpSjsqd> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdSpykpSjsqd> buildQueryWrapper(XzdSpykpSjsqdBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdSpykpSjsqd> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(XzdSpykpSjsqd::getId);
lqw.eq(bo.getDeptId() != null, XzdSpykpSjsqd::getDeptId, bo.getDeptId());
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSpykpSjsqd::getFileId, bo.getFileId());
lqw.eq(StringUtils.isNotBlank(bo.getDjbh()), XzdSpykpSjsqd::getDjbh, bo.getDjbh());
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSpykpSjsqd::getTitle, bo.getTitle());
// lqw.eq(bo.getRq() != null, XzdSpykpSjsqd::getRq, bo.getRq());
lqw.between(params.get("beginRq") != null && params.get("endRq") != null,
XzdSpykpSjsqd::getRq ,params.get("beginRq"), params.get("endRq"));
lqw.eq(bo.getSqrId() != null, XzdSpykpSjsqd::getSqrId, bo.getSqrId());
lqw.eq(bo.getSqje() != null, XzdSpykpSjsqd::getSqje, bo.getSqje());
lqw.eq(bo.getXmId() != null, XzdSpykpSjsqd::getXmId, bo.getXmId());
lqw.eq(bo.getHtId() != null, XzdSpykpSjsqd::getHtId, bo.getHtId());
lqw.eq(StringUtils.isNotBlank(bo.getHtbh()), XzdSpykpSjsqd::getHtbh, bo.getHtbh());
lqw.eq(bo.getFkdwId() != null, XzdSpykpSjsqd::getFkdwId, bo.getFkdwId());
lqw.eq(StringUtils.isNotBlank(bo.getSfysk()), XzdSpykpSjsqd::getSfysk, bo.getSfysk());
lqw.eq(StringUtils.isNotBlank(bo.getSjlx()), XzdSpykpSjsqd::getSjlx, bo.getSjlx());
lqw.eq(StringUtils.isNotBlank(bo.getSjh()), XzdSpykpSjsqd::getSjh, bo.getSjh());
lqw.eq(StringUtils.isNotBlank(bo.getSjsy()), XzdSpykpSjsqd::getSjsy, bo.getSjsy());
return lqw;
}
/**
* 新增收据申请单
*
* @param bo 收据申请单
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(XzdSpykpSjsqdBo bo) {
XzdSpykpSjsqd add = MapstructUtils.convert(bo, XzdSpykpSjsqd.class);
validEntityBeforeSave(add);
add.setDjbh(IdUtil.getSnowflakeNextIdStr());
LoginUser user = LoginHelper.getLoginUser();
add.setSqrId(user.getUserId());
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改收据申请单
*
* @param bo 收据申请单
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(XzdSpykpSjsqdBo bo) {
XzdSpykpSjsqd update = MapstructUtils.convert(bo, XzdSpykpSjsqd.class);
validEntityBeforeSave(update);
XzdSpykpSjsqdVo old = queryById(update.getId());
//更新文件
if (bo.getFileId() != null && !bo.getFileId().isEmpty()){
if (old.getFileId() != null && !old.getFileId().isEmpty()) {
List<Long> oldFileId = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList();
List<Long> nowFileId = Arrays.stream(bo.getFileId().split(",")).map(Long::valueOf).toList();
for (Long l : oldFileId) {
if (!nowFileId.contains(l)) {
sysOssService.deleteWithValidByIds(List.of(l), false);
}
}
}
}else {
if (old.getFileId()!= null && !old.getFileId().isEmpty()){
List<Long> deleteIds = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList();
sysOssService.deleteWithValidByIds(deleteIds, false);
}
}
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(XzdSpykpSjsqd entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除收据申请单信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
for (Long id : ids) {
XzdSpykpSjsqdVo vo = queryById(id);
//删除附件
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
List<Long> deleteIds = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
if (!deleteIds.isEmpty()) {
sysOssService.deleteWithValidByIds(deleteIds, false);
}
}
}
return baseMapper.deleteByIds(ids) > 0;
}
public void setValue(List<XzdSpykpSjsqdVo> vos){
for (XzdSpykpSjsqdVo vo : vos) {
//申请人名称
if (vo.getSqrId() != null){
SysUserVo sysUserVo = sysUserService.queryById(vo.getSqrId());
if (sysUserVo != null){
vo.setSqrmc(sysUserVo.getNickName());
//申请部门
SysDeptVo sysDeptVo = sysDeptService.selectDeptById(sysUserVo.getDeptId());
if (sysDeptVo != null){
vo.setSqbm(sysDeptVo.getDeptName());
}
}
}
//项目名称
if (vo.getXmId() != null){
XzdProjectVo projectVo = xzdProjectService.queryById(vo.getXmId());
if (projectVo != null){
vo.setXmmc(projectVo.getProjectName());
}
}
//合同名称
if (vo.getHtId() != null){
XzdContractDetailsVo xzdContractDetailsVo = xzdContractDetailsService.queryById(vo.getHtId());
if (xzdContractDetailsVo != null){
vo.setHtmc(xzdContractDetailsVo.getContractName());
//合同编号
vo.setHtbh(xzdContractDetailsVo.getContractCode());
}
}
//付款单位名称
if (vo.getFkdwId() != null){
R<QuerCorrespondentDto> byid2 = iXzdCorrespondentList.getCustomerByid(vo.getFkdwId());
if (byid2 != null) {
if (byid2.getData().getXzdCustomerinformation() != null) {
vo.setFkdwmc(byid2.getData().getXzdCustomerinformation().getUnitName());
}
}
}
}
}
}