收款与付款-采购、综合服务付款接口
This commit is contained in:
@ -67,4 +67,6 @@ public interface IXzdCsContractInformationService extends IService<XzdCsContract
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
String queryCodeById(Long contractCode);
|
||||
}
|
||||
|
||||
@ -167,7 +167,6 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
addzixiang(bo,add);
|
||||
String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName();
|
||||
if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) {
|
||||
throw new ServiceException("扣款与奖励项不能为空");
|
||||
@ -232,11 +231,6 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
||||
lambdaQueryWrapper4.eq(XzdDeductionItems::getContractDetailsId, old.getId());
|
||||
xzdDeductionItemsService.remove(lambdaQueryWrapper4);
|
||||
|
||||
addzixiang(bo, update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
private void addzixiang(XzdCsContractChangeBo bo, XzdCsContractChange update) {
|
||||
String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName();
|
||||
if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) {
|
||||
throw new ServiceException("扣款与奖励项不能为空");
|
||||
@ -264,8 +258,10 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
||||
clause.setContractDetailsId(update.getId());
|
||||
}
|
||||
xzdSettlementRulesService.saveBatch(bo.getZftk());
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
|
||||
@ -405,4 +405,9 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
||||
xzdSettlementRulesService.remove(lambdaQueryWrapper3);
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String queryCodeById(Long contractCode) {
|
||||
return baseMapper.selectVoById(contractCode).getContractCode();
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,6 +26,7 @@ import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractSuspendVo;
|
||||
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspend;
|
||||
import org.dromara.xzd.comprehensive.mapper.XzdCsContractSuspendMapper;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdCsContractSuspendService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@ -163,6 +164,7 @@ public class XzdCsContractSuspendServiceImpl extends ServiceImpl<XzdCsContractSu
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
|
||||
@ -100,9 +100,9 @@ public class XzdSfkCaigouFk extends BaseEntity {
|
||||
private String statCycle;
|
||||
|
||||
/**
|
||||
* 是否是研发类
|
||||
* 项目类型
|
||||
*/
|
||||
private Long isYanfa;
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 税率(带*,必填)
|
||||
|
||||
@ -72,7 +72,7 @@ public class XzdSfkZonhefuwuFk extends BaseEntity {
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private Long projectId;
|
||||
private Long project;
|
||||
|
||||
/**
|
||||
* 付款单位
|
||||
@ -164,6 +164,11 @@ public class XzdSfkZonhefuwuFk extends BaseEntity {
|
||||
*/
|
||||
private BigDecimal currentPaymentRatio;
|
||||
|
||||
/**
|
||||
* 累计进度支付占累计进度应付(%)
|
||||
*/
|
||||
private BigDecimal totalPaymentRatio;
|
||||
|
||||
/**
|
||||
* 累计支付占合同比例(%)
|
||||
*/
|
||||
|
||||
@ -8,8 +8,12 @@ import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采购合同付款业务对象 xzd_sfk_caigou_fk
|
||||
@ -31,7 +35,7 @@ public class XzdSfkCaigouFkBo extends BaseEntity {
|
||||
/**
|
||||
* 单据编码(带*,必填)
|
||||
*/
|
||||
@NotBlank(message = "单据编码(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "单据编码(带*,必填)不能为空", groups = { EditGroup.class })
|
||||
private String docCode;
|
||||
|
||||
/**
|
||||
@ -106,9 +110,9 @@ public class XzdSfkCaigouFkBo extends BaseEntity {
|
||||
private String statCycle;
|
||||
|
||||
/**
|
||||
* 是否是研发类
|
||||
* 项目类型
|
||||
*/
|
||||
private Long isYanfa;
|
||||
private String projectType;
|
||||
|
||||
/**
|
||||
* 税率(带*,必填)
|
||||
@ -227,5 +231,8 @@ public class XzdSfkCaigouFkBo extends BaseEntity {
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
List<XzdSfkFukuan> fukuanList;
|
||||
|
||||
List<XzdSfkFapiao> fapiaoList;
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package org.dromara.xzd.paymentsReceipts.domain.bo;
|
||||
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkZonhefuwuFk;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
@ -10,6 +12,7 @@ import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 综合服务合同付款业务对象 xzd_sfk_zonhefuwu_fk
|
||||
@ -31,7 +34,7 @@ public class XzdSfkZonhefuwuFkBo extends BaseEntity {
|
||||
/**
|
||||
* 单据编码(带*,必填)
|
||||
*/
|
||||
@NotBlank(message = "单据编码(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "单据编码(带*,必填)不能为空", groups = {EditGroup.class })
|
||||
private String docCode;
|
||||
|
||||
/**
|
||||
@ -76,7 +79,7 @@ public class XzdSfkZonhefuwuFkBo extends BaseEntity {
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private Long projectId;
|
||||
private Long project;
|
||||
|
||||
/**
|
||||
* 付款单位
|
||||
@ -172,6 +175,11 @@ public class XzdSfkZonhefuwuFkBo extends BaseEntity {
|
||||
*/
|
||||
private BigDecimal currentPaymentRatio;
|
||||
|
||||
/**
|
||||
* 累计进度支付占累计进度应付(%)
|
||||
*/
|
||||
private BigDecimal totalPaymentRatio;
|
||||
|
||||
/**
|
||||
* 累计支付占合同比例(%)
|
||||
*/
|
||||
@ -222,5 +230,9 @@ public class XzdSfkZonhefuwuFkBo extends BaseEntity {
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
List<XzdSfkFukuan> fukuanList;
|
||||
|
||||
List<XzdSfkFapiao> fapiaoList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package org.dromara.xzd.paymentsReceipts.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkCaigouFk;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -8,12 +10,14 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@ -25,7 +29,7 @@ import java.util.Date;
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdSfkCaigouFk.class)
|
||||
public class XzdSfkCaigouFkVo implements Serializable {
|
||||
public class XzdSfkCaigouFkVo extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ -63,6 +67,7 @@ public class XzdSfkCaigouFkVo implements Serializable {
|
||||
@ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||
private Long contractCode;
|
||||
private String contractCodeName;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
@ -94,12 +99,14 @@ public class XzdSfkCaigouFkVo implements Serializable {
|
||||
*/
|
||||
@ExcelProperty(value = "项目")
|
||||
private Long project;
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 付款单位
|
||||
*/
|
||||
@ExcelProperty(value = "付款单位")
|
||||
private Long paymentUnit;
|
||||
private String paymentUnitName;
|
||||
|
||||
/**
|
||||
* 收款单位(带*,必填)
|
||||
@ -107,12 +114,14 @@ public class XzdSfkCaigouFkVo implements Serializable {
|
||||
@ExcelProperty(value = "收款单位", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||
private Long receiptUnit;
|
||||
private String receiptUnitName;
|
||||
|
||||
/**
|
||||
* 收款银行
|
||||
*/
|
||||
@ExcelProperty(value = "收款银行")
|
||||
private Long receiptBank;
|
||||
private String receiptBankName;
|
||||
|
||||
/**
|
||||
* 收款银行账号
|
||||
@ -128,10 +137,11 @@ public class XzdSfkCaigouFkVo implements Serializable {
|
||||
private String statCycle;
|
||||
|
||||
/**
|
||||
* 是否是研发类
|
||||
* 项目类型
|
||||
*/
|
||||
@ExcelProperty(value = "是否是研发类")
|
||||
private Long isYanfa;
|
||||
@ExcelProperty(value = "项目类型")
|
||||
private String projectType;
|
||||
|
||||
|
||||
/**
|
||||
* 税率(带*,必填)
|
||||
@ -279,4 +289,8 @@ public class XzdSfkCaigouFkVo implements Serializable {
|
||||
private String fileId;
|
||||
|
||||
|
||||
List<XzdSfkFukuan> fukuanList;
|
||||
|
||||
List<XzdSfkFapiao> fapiaoList;
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
package org.dromara.xzd.paymentsReceipts.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkZonhefuwuFk;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -13,7 +17,7 @@ import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@ -25,7 +29,7 @@ import java.util.Date;
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdSfkZonhefuwuFk.class)
|
||||
public class XzdSfkZonhefuwuFkVo implements Serializable {
|
||||
public class XzdSfkZonhefuwuFkVo extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ -63,6 +67,7 @@ public class XzdSfkZonhefuwuFkVo implements Serializable {
|
||||
@ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||
private Long contractCode;
|
||||
private String contractCodeName;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
@ -93,13 +98,15 @@ public class XzdSfkZonhefuwuFkVo implements Serializable {
|
||||
* 项目
|
||||
*/
|
||||
@ExcelProperty(value = "项目")
|
||||
private Long projectId;
|
||||
private Long project;
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 付款单位
|
||||
*/
|
||||
@ExcelProperty(value = "付款单位")
|
||||
private Long paymentUnit;
|
||||
private String paymentUnitName;
|
||||
|
||||
/**
|
||||
* 收款单位(带*,必填)
|
||||
@ -107,12 +114,14 @@ public class XzdSfkZonhefuwuFkVo implements Serializable {
|
||||
@ExcelProperty(value = "收款单位", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||
private Long receiptUnit;
|
||||
private String receiptUnitName;
|
||||
|
||||
/**
|
||||
* 收款银行
|
||||
*/
|
||||
@ExcelProperty(value = "收款银行")
|
||||
private Long receiptBank;
|
||||
private String receiptBankName;
|
||||
|
||||
/**
|
||||
* 收款银行账号
|
||||
@ -203,6 +212,11 @@ public class XzdSfkZonhefuwuFkVo implements Serializable {
|
||||
@ExcelDictFormat(readConverterExp = "%=")
|
||||
private BigDecimal totalProgressSettlementRatio;
|
||||
|
||||
/**
|
||||
* 累计进度支付占累计进度应付(%)
|
||||
*/
|
||||
private BigDecimal totalPaymentRatio;
|
||||
|
||||
/**
|
||||
* 本期进度支付占本期进度应付(%)
|
||||
*/
|
||||
@ -273,4 +287,8 @@ public class XzdSfkZonhefuwuFkVo implements Serializable {
|
||||
private String fileId;
|
||||
|
||||
|
||||
List<XzdSfkFukuan> fukuanList;
|
||||
|
||||
List<XzdSfkFapiao> fapiaoList;
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package org.dromara.xzd.paymentsReceipts.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -9,16 +10,30 @@ 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.utils.BatchNumberGenerator;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdCsContractInformationService;
|
||||
import org.dromara.xzd.contractManagement.purchaseManagement.service.IXzdPurchaseContractInformationService;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
|
||||
import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFapiaoService;
|
||||
import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFukuanService;
|
||||
import org.dromara.xzd.service.IXzdCorrespondentList;
|
||||
import org.dromara.xzd.service.IXzdSupplierOpenBankService;
|
||||
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdSupplierInfoServiceImpl;
|
||||
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
|
||||
import org.dromara.xzd.settlement.domain.vo.XzdJsZhfwJinduVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkCaigouFkBo;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkCaigouFkVo;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkCaigouFk;
|
||||
import org.dromara.xzd.paymentsReceipts.mapper.XzdSfkCaigouFkMapper;
|
||||
import org.dromara.xzd.paymentsReceipts.service.IXzdSfkCaigouFkService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 采购合同付款Service业务层处理
|
||||
@ -32,6 +47,23 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper,
|
||||
|
||||
private final XzdSfkCaigouFkMapper baseMapper;
|
||||
|
||||
@Autowired
|
||||
private IXzdSfkFapiaoService fapiaoService;
|
||||
@Autowired
|
||||
private IXzdSfkFukuanService fukuanService;
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
@Autowired
|
||||
private IXzdPurchaseContractInformationService purchaseContractInformationService;
|
||||
@Autowired
|
||||
private XzdProjectServiceImpl xzdProjectService;
|
||||
@Autowired
|
||||
private IXzdSupplierOpenBankService supplierOpenBankService;
|
||||
@Autowired
|
||||
private IXzdCorrespondentList iXzdCorrespondentList;
|
||||
@Autowired
|
||||
private XzdSupplierInfoServiceImpl xzdSupplierInfoService;
|
||||
|
||||
/**
|
||||
* 查询采购合同付款
|
||||
*
|
||||
@ -40,7 +72,10 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper,
|
||||
*/
|
||||
@Override
|
||||
public XzdSfkCaigouFkVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
XzdSfkCaigouFkVo vo = baseMapper.selectVoById(id);
|
||||
getName(vo);
|
||||
getHttk(vo);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -54,6 +89,7 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper,
|
||||
public TableDataInfo<XzdSfkCaigouFkVo> queryPageList(XzdSfkCaigouFkBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdSfkCaigouFk> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdSfkCaigouFkVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
result.getRecords().forEach(this::getName);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@ -66,7 +102,9 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper,
|
||||
@Override
|
||||
public List<XzdSfkCaigouFkVo> queryList(XzdSfkCaigouFkBo bo) {
|
||||
LambdaQueryWrapper<XzdSfkCaigouFk> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
List<XzdSfkCaigouFkVo> vos = baseMapper.selectVoList(lqw);
|
||||
vos.forEach(this::getName);
|
||||
return vos;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdSfkCaigouFk> buildQueryWrapper(XzdSfkCaigouFkBo bo) {
|
||||
@ -87,7 +125,7 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper,
|
||||
lqw.eq(bo.getReceiptBank() != null, XzdSfkCaigouFk::getReceiptBank, bo.getReceiptBank());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getReceiptBankAccount()), XzdSfkCaigouFk::getReceiptBankAccount, bo.getReceiptBankAccount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), XzdSfkCaigouFk::getStatCycle, bo.getStatCycle());
|
||||
lqw.eq(bo.getIsYanfa() != null, XzdSfkCaigouFk::getIsYanfa, bo.getIsYanfa());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdSfkCaigouFk::getProjectType, bo.getProjectType());
|
||||
lqw.eq(bo.getTaxRate() != null, XzdSfkCaigouFk::getTaxRate, bo.getTaxRate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdSfkCaigouFk::getProjectCategory, bo.getProjectCategory());
|
||||
lqw.eq(bo.getCurrentProgressPayment() != null, XzdSfkCaigouFk::getCurrentProgressPayment, bo.getCurrentProgressPayment());
|
||||
@ -120,13 +158,26 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper,
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(XzdSfkCaigouFkBo bo) {
|
||||
XzdSfkCaigouFk add = MapstructUtils.convert(bo, XzdSfkCaigouFk.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("SFKCGFK-");
|
||||
add.setDocCode(banBen);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
if (bo.getFapiaoList() == null || bo.getFapiaoList().isEmpty()) {
|
||||
throw new ServiceException("发票信息不能为空");
|
||||
}
|
||||
bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
fapiaoService.saveBatch(bo.getFapiaoList());
|
||||
if (bo.getFukuanList() == null || bo.getFukuanList().isEmpty()) {
|
||||
throw new ServiceException("付款信息不能为空");
|
||||
}
|
||||
bo.getFukuanList().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
fukuanService.saveBatch(bo.getFukuanList());
|
||||
return flag;
|
||||
}
|
||||
|
||||
@ -137,9 +188,22 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper,
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(XzdSfkCaigouFkBo bo) {
|
||||
XzdSfkCaigouFk update = MapstructUtils.convert(bo, XzdSfkCaigouFk.class);
|
||||
validEntityBeforeSave(update);
|
||||
fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, bo.getId()));
|
||||
fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, bo.getId()));
|
||||
if (bo.getFapiaoList() == null || bo.getFapiaoList().isEmpty()) {
|
||||
throw new ServiceException("发票信息不能为空");
|
||||
}
|
||||
bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(update.getId());});
|
||||
fapiaoService.saveBatch(bo.getFapiaoList());
|
||||
if (bo.getFukuanList() == null || bo.getFukuanList().isEmpty()) {
|
||||
throw new ServiceException("付款信息不能为空");
|
||||
}
|
||||
bo.getFukuanList().forEach(item -> {item.setMainDocumentId(update.getId());});
|
||||
fukuanService.saveBatch(bo.getFukuanList());
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
@ -158,10 +222,81 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl<XzdSfkCaigouFkMapper,
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
XzdSfkCaigouFkVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().in(XzdSfkFapiao::getMainDocumentId, ids));
|
||||
fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().in(XzdSfkFukuan::getMainDocumentId, ids));
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取部分字段名称
|
||||
* @param item
|
||||
*/
|
||||
private void getName(XzdSfkCaigouFkVo item) {
|
||||
//项目名称
|
||||
if (item.getProject() != null){
|
||||
String projectName = xzdProjectService.queryNameById(item.getProject());
|
||||
if (projectName != null){
|
||||
item.setProjectName(projectName);
|
||||
}
|
||||
}
|
||||
//合同编码
|
||||
if (item.getContractCode() != null){
|
||||
String code = purchaseContractInformationService.queryCodeById(item.getContractCode());
|
||||
if (code != null){
|
||||
item.setContractCodeName(code);
|
||||
}
|
||||
}
|
||||
//收款单位(供应商名称)
|
||||
if (item.getReceiptUnit() != null){
|
||||
String unitName = xzdSupplierInfoService.queryNameById(item.getReceiptUnit());
|
||||
if (unitName != null){
|
||||
item.setReceiptUnitName(unitName);
|
||||
}
|
||||
}
|
||||
//付款单位(客户名称)
|
||||
if (item.getPaymentUnit()!= null){
|
||||
String byid = iXzdCorrespondentList.queryNameById(item.getPaymentUnit());
|
||||
if (byid!=null){
|
||||
item.setPaymentUnitName(byid);
|
||||
}
|
||||
}
|
||||
//收款银行
|
||||
if (item.getReceiptBank() != null){
|
||||
String bankName = supplierOpenBankService.queryNameById(item.getReceiptBank());
|
||||
if (bankName != null){
|
||||
item.setReceiptBankName(bankName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取子项
|
||||
* @param vo
|
||||
*/
|
||||
private void getHttk(XzdSfkCaigouFkVo vo) {
|
||||
//发票信息
|
||||
vo.setFapiaoList(fapiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, vo.getId())));
|
||||
|
||||
//付款信息
|
||||
vo.setFukuanList(fukuanService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, vo.getId())));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package org.dromara.xzd.paymentsReceipts.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -9,16 +10,28 @@ 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.utils.BatchNumberGenerator;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.comprehensive.service.IXzdCsContractInformationService;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFapiao;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkFukuan;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkCaigouFkVo;
|
||||
import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFapiaoService;
|
||||
import org.dromara.xzd.paymentsReceipts.service.IXzdSfkFukuanService;
|
||||
import org.dromara.xzd.service.IXzdCorrespondentList;
|
||||
import org.dromara.xzd.service.IXzdSupplierOpenBankService;
|
||||
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||
import org.dromara.xzd.service.impl.XzdSupplierInfoServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.bo.XzdSfkZonhefuwuFkBo;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.vo.XzdSfkZonhefuwuFkVo;
|
||||
import org.dromara.xzd.paymentsReceipts.domain.XzdSfkZonhefuwuFk;
|
||||
import org.dromara.xzd.paymentsReceipts.mapper.XzdSfkZonhefuwuFkMapper;
|
||||
import org.dromara.xzd.paymentsReceipts.service.IXzdSfkZonhefuwuFkService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 综合服务合同付款Service业务层处理
|
||||
@ -32,6 +45,24 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM
|
||||
|
||||
private final XzdSfkZonhefuwuFkMapper baseMapper;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IXzdSfkFapiaoService fapiaoService;
|
||||
@Autowired
|
||||
private IXzdSfkFukuanService fukuanService;
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
@Autowired
|
||||
private IXzdCsContractInformationService csContractInformationService;
|
||||
@Autowired
|
||||
private XzdProjectServiceImpl xzdProjectService;
|
||||
@Autowired
|
||||
private IXzdSupplierOpenBankService supplierOpenBankService;
|
||||
@Autowired
|
||||
private IXzdCorrespondentList iXzdCorrespondentList;
|
||||
@Autowired
|
||||
private XzdSupplierInfoServiceImpl xzdSupplierInfoService;
|
||||
|
||||
/**
|
||||
* 查询综合服务合同付款
|
||||
*
|
||||
@ -40,7 +71,10 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM
|
||||
*/
|
||||
@Override
|
||||
public XzdSfkZonhefuwuFkVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
XzdSfkZonhefuwuFkVo vo = baseMapper.selectVoById(id);
|
||||
getName(vo);
|
||||
getHttk(vo);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -54,6 +88,7 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM
|
||||
public TableDataInfo<XzdSfkZonhefuwuFkVo> queryPageList(XzdSfkZonhefuwuFkBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdSfkZonhefuwuFk> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdSfkZonhefuwuFkVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
result.getRecords().forEach(this::getName);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@ -66,7 +101,9 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM
|
||||
@Override
|
||||
public List<XzdSfkZonhefuwuFkVo> queryList(XzdSfkZonhefuwuFkBo bo) {
|
||||
LambdaQueryWrapper<XzdSfkZonhefuwuFk> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
List<XzdSfkZonhefuwuFkVo> vos = baseMapper.selectVoList(lqw);
|
||||
vos.forEach(this::getName);
|
||||
return vos;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdSfkZonhefuwuFk> buildQueryWrapper(XzdSfkZonhefuwuFkBo bo) {
|
||||
@ -81,7 +118,7 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM
|
||||
lqw.eq(bo.getPaymentProperty() != null, XzdSfkZonhefuwuFk::getPaymentProperty, bo.getPaymentProperty());
|
||||
lqw.eq(bo.getExpendContractAmount() != null, XzdSfkZonhefuwuFk::getExpendContractAmount, bo.getExpendContractAmount());
|
||||
lqw.eq(bo.getCurrentApproveAmount() != null, XzdSfkZonhefuwuFk::getCurrentApproveAmount, bo.getCurrentApproveAmount());
|
||||
lqw.eq(bo.getProjectId() != null, XzdSfkZonhefuwuFk::getProjectId, bo.getProjectId());
|
||||
lqw.eq(bo.getProject() != null, XzdSfkZonhefuwuFk::getProject, bo.getProject());
|
||||
lqw.eq(bo.getPaymentUnit() != null, XzdSfkZonhefuwuFk::getPaymentUnit, bo.getPaymentUnit());
|
||||
lqw.eq(bo.getReceiptUnit() != null, XzdSfkZonhefuwuFk::getReceiptUnit, bo.getReceiptUnit());
|
||||
lqw.eq(bo.getReceiptBank() != null, XzdSfkZonhefuwuFk::getReceiptBank, bo.getReceiptBank());
|
||||
@ -119,13 +156,26 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(XzdSfkZonhefuwuFkBo bo) {
|
||||
XzdSfkZonhefuwuFk add = MapstructUtils.convert(bo, XzdSfkZonhefuwuFk.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("SFKZHFWFK-");
|
||||
add.setDocCode(banBen);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
if (bo.getFapiaoList() == null || bo.getFapiaoList().isEmpty()) {
|
||||
throw new ServiceException("发票信息不能为空");
|
||||
}
|
||||
bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
fapiaoService.saveBatch(bo.getFapiaoList());
|
||||
if (bo.getFukuanList() == null || bo.getFukuanList().isEmpty()) {
|
||||
throw new ServiceException("付款信息不能为空");
|
||||
}
|
||||
bo.getFukuanList().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
fukuanService.saveBatch(bo.getFukuanList());
|
||||
return flag;
|
||||
}
|
||||
|
||||
@ -136,9 +186,22 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(XzdSfkZonhefuwuFkBo bo) {
|
||||
XzdSfkZonhefuwuFk update = MapstructUtils.convert(bo, XzdSfkZonhefuwuFk.class);
|
||||
validEntityBeforeSave(update);
|
||||
fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, bo.getId()));
|
||||
fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, bo.getId()));
|
||||
if (bo.getFapiaoList() == null || bo.getFapiaoList().isEmpty()) {
|
||||
throw new ServiceException("发票信息不能为空");
|
||||
}
|
||||
bo.getFapiaoList().forEach(item -> {item.setMainDocumentId(update.getId());});
|
||||
fapiaoService.saveBatch(bo.getFapiaoList());
|
||||
if (bo.getFukuanList() == null || bo.getFukuanList().isEmpty()) {
|
||||
throw new ServiceException("付款信息不能为空");
|
||||
}
|
||||
bo.getFukuanList().forEach(item -> {item.setMainDocumentId(update.getId());});
|
||||
fukuanService.saveBatch(bo.getFukuanList());
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
@ -157,10 +220,81 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl<XzdSfkZonhefuwuFkM
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
XzdSfkZonhefuwuFkVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
fapiaoService.remove(new LambdaQueryWrapper<XzdSfkFapiao>().in(XzdSfkFapiao::getMainDocumentId, ids));
|
||||
fukuanService.remove(new LambdaQueryWrapper<XzdSfkFukuan>().in(XzdSfkFukuan::getMainDocumentId, ids));
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取部分字段名称
|
||||
* @param item
|
||||
*/
|
||||
private void getName(XzdSfkZonhefuwuFkVo item) {
|
||||
//项目名称
|
||||
if (item.getProject() != null){
|
||||
String projectName = xzdProjectService.queryNameById(item.getProject());
|
||||
if (projectName != null){
|
||||
item.setProjectName(projectName);
|
||||
}
|
||||
}
|
||||
//合同编码
|
||||
if (item.getContractCode() != null){
|
||||
String code = csContractInformationService.queryCodeById(item.getContractCode());
|
||||
if (code != null){
|
||||
item.setContractCodeName(code);
|
||||
}
|
||||
}
|
||||
//收款单位(供应商名称)
|
||||
if (item.getReceiptUnit() != null){
|
||||
String unitName = xzdSupplierInfoService.queryNameById(item.getReceiptUnit());
|
||||
if (unitName != null){
|
||||
item.setReceiptUnitName(unitName);
|
||||
}
|
||||
}
|
||||
//付款单位(客户名称)
|
||||
if (item.getPaymentUnit()!= null){
|
||||
String byid = iXzdCorrespondentList.queryNameById(item.getPaymentUnit());
|
||||
if (byid!=null){
|
||||
item.setPaymentUnitName(byid);
|
||||
}
|
||||
}
|
||||
//收款银行
|
||||
if (item.getReceiptBank() != null){
|
||||
String bankName = supplierOpenBankService.queryNameById(item.getReceiptBank());
|
||||
if (bankName != null){
|
||||
item.setReceiptBankName(bankName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取子项
|
||||
* @param vo
|
||||
*/
|
||||
private void getHttk(XzdSfkZonhefuwuFkVo vo) {
|
||||
//发票信息
|
||||
vo.setFapiaoList(fapiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFapiao>().eq(XzdSfkFapiao::getMainDocumentId, vo.getId())));
|
||||
|
||||
//付款信息
|
||||
vo.setFukuanList(fukuanService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdSfkFukuan>().eq(XzdSfkFukuan::getMainDocumentId, vo.getId())));
|
||||
}
|
||||
}
|
||||
|
||||
@ -68,4 +68,7 @@ public interface IXzdSupplierOpenBankService extends IService<XzdSupplierOpenBan
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
String queryNameById(Long id);
|
||||
|
||||
}
|
||||
|
||||
@ -147,4 +147,9 @@ public class XzdSupplierOpenBankServiceImpl extends ServiceImpl<XzdSupplierOpenB
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String queryNameById(Long id) {
|
||||
return baseMapper.selectVoById(id).getOpenBank();
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,6 +64,7 @@ public class XzdJsZhfwJinduVo implements Serializable {
|
||||
*/
|
||||
@ExcelProperty(value = "合同编码")
|
||||
private Long contractCode;
|
||||
private String contractCodeCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
@ -100,12 +101,14 @@ public class XzdJsZhfwJinduVo implements Serializable {
|
||||
*/
|
||||
@ExcelProperty(value = "项目")
|
||||
private Long project;
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 结算单位
|
||||
*/
|
||||
@ExcelProperty(value = "结算单位")
|
||||
private Long settlementUnit;
|
||||
private String settlementUnitName;
|
||||
|
||||
/**
|
||||
* 合同金额
|
||||
|
||||
@ -31,6 +31,7 @@ import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonEditVo;
|
||||
import org.dromara.xzd.settlement.domain.XzdJsCgJungonEdit;
|
||||
import org.dromara.xzd.settlement.mapper.XzdJsCgJungonEditMapper;
|
||||
import org.dromara.xzd.settlement.service.IXzdJsCgJungonEditService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@ -134,6 +135,7 @@ public class XzdJsCgJungonEditServiceImpl extends ServiceImpl<XzdJsCgJungonEditM
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(XzdJsCgJungonEditBo bo) {
|
||||
XzdJsCgJungonEdit add = MapstructUtils.convert(bo, XzdJsCgJungonEdit.class);
|
||||
validEntityBeforeSave(add);
|
||||
@ -163,6 +165,7 @@ public class XzdJsCgJungonEditServiceImpl extends ServiceImpl<XzdJsCgJungonEditM
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(XzdJsCgJungonEditBo bo) {
|
||||
XzdJsCgJungonEdit update = MapstructUtils.convert(bo, XzdJsCgJungonEdit.class);
|
||||
validEntityBeforeSave(update);
|
||||
@ -198,6 +201,7 @@ public class XzdJsCgJungonEditServiceImpl extends ServiceImpl<XzdJsCgJungonEditM
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package org.dromara.xzd.settlement.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -9,12 +10,17 @@ 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.utils.BatchNumberGenerator;
|
||||
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.comprehensive.service.IXzdCsContractInformationService;
|
||||
import org.dromara.xzd.enums.XzdClassEnum;
|
||||
import org.dromara.xzd.service.IXzdCorrespondentList;
|
||||
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
|
||||
import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonEditVo;
|
||||
import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonVo;
|
||||
import org.dromara.xzd.settlement.service.IXzdJsDeductionItemsService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -23,10 +29,9 @@ import org.dromara.xzd.settlement.domain.vo.XzdJsZhfwJinduVo;
|
||||
import org.dromara.xzd.settlement.domain.XzdJsZhfwJindu;
|
||||
import org.dromara.xzd.settlement.mapper.XzdJsZhfwJinduMapper;
|
||||
import org.dromara.xzd.settlement.service.IXzdJsZhfwJinduService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 综合服务合同进度结算Service业务层处理
|
||||
@ -46,14 +51,16 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper,
|
||||
private SysOssServiceImpl sysOssService;
|
||||
|
||||
@Autowired
|
||||
private SysDeptServiceImpl sysDeptService;
|
||||
|
||||
private IXzdCsContractInformationService csContractInformationService;
|
||||
@Autowired
|
||||
private XzdProjectServiceImpl xzdProjectService;
|
||||
|
||||
@Autowired
|
||||
private IXzdJsDeductionItemsService deductionItemsService;
|
||||
|
||||
@Autowired
|
||||
private IXzdCorrespondentList iXzdCorrespondentList;
|
||||
|
||||
/**
|
||||
* 查询综合服务合同进度结算
|
||||
*
|
||||
@ -62,7 +69,10 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper,
|
||||
*/
|
||||
@Override
|
||||
public XzdJsZhfwJinduVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
XzdJsZhfwJinduVo vo = baseMapper.selectVoById(id);
|
||||
getName(vo);
|
||||
getHttk(vo);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -76,6 +86,7 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper,
|
||||
public TableDataInfo<XzdJsZhfwJinduVo> queryPageList(XzdJsZhfwJinduBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdJsZhfwJindu> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdJsZhfwJinduVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
result.getRecords().forEach(this::getName);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@ -88,7 +99,9 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper,
|
||||
@Override
|
||||
public List<XzdJsZhfwJinduVo> queryList(XzdJsZhfwJinduBo bo) {
|
||||
LambdaQueryWrapper<XzdJsZhfwJindu> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
List<XzdJsZhfwJinduVo> vos = baseMapper.selectVoList(lqw);
|
||||
vos.forEach(this::getName);
|
||||
return vos;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdJsZhfwJindu> buildQueryWrapper(XzdJsZhfwJinduBo bo) {
|
||||
@ -129,13 +142,27 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper,
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(XzdJsZhfwJinduBo bo) {
|
||||
XzdJsZhfwJindu add = MapstructUtils.convert(bo, XzdJsZhfwJindu.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("JSZHFWJD-");
|
||||
add.setDocCode(banBen);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
|
||||
String tableName = XzdClassEnum.JS_ZHFW_JINDU.getClassName();
|
||||
if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) {
|
||||
throw new ServiceException("扣款与奖励项不能为空");
|
||||
}
|
||||
//合同条款-扣款与奖励项
|
||||
for (XzdJsDeductionItems kkyjlx : bo.getKkyjlx()) {
|
||||
kkyjlx.setTableName(tableName);
|
||||
kkyjlx.setMainDocId(add.getId());
|
||||
}
|
||||
deductionItemsService.saveBatch(bo.getKkyjlx());
|
||||
return flag;
|
||||
}
|
||||
|
||||
@ -146,9 +173,24 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper,
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(XzdJsZhfwJinduBo bo) {
|
||||
XzdJsZhfwJindu update = MapstructUtils.convert(bo, XzdJsZhfwJindu.class);
|
||||
validEntityBeforeSave(update);
|
||||
//删除奖励与扣款对应数据
|
||||
deductionItemsService.remove(new LambdaQueryWrapper<XzdJsDeductionItems>().eq(XzdJsDeductionItems::getMainDocId, update.getId()));
|
||||
//生成奖励与扣款数据
|
||||
String tableName = XzdClassEnum.JS_ZHFW_JINDU.getClassName();
|
||||
if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) {
|
||||
throw new ServiceException("扣款与奖励项不能为空");
|
||||
}
|
||||
//合同条款-扣款与奖励项
|
||||
for (XzdJsDeductionItems kkyjlx : bo.getKkyjlx()) {
|
||||
kkyjlx.setTableName(tableName);
|
||||
kkyjlx.setMainDocId(update.getId());
|
||||
}
|
||||
//新增奖励与扣款数据
|
||||
deductionItemsService.saveBatch(bo.getKkyjlx());
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
@ -167,10 +209,26 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper,
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
XzdJsZhfwJinduVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
deductionItemsService.remove(new LambdaQueryWrapper<XzdJsDeductionItems>().in(XzdJsDeductionItems::getMainDocId, ids));
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@ -179,22 +237,29 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl<XzdJsZhfwJinduMapper,
|
||||
* 获取部分字段名称
|
||||
* @param item
|
||||
*/
|
||||
// private void getName(XzdJsZhfwJinduVo item) {
|
||||
// //项目名称
|
||||
// if (item.getProjectId() != null){
|
||||
// String projectName = xzdProjectService.queryNameById(item.getProjectId());
|
||||
// if (projectName != null){
|
||||
// item.setProjectName(projectName);
|
||||
// }
|
||||
// }
|
||||
// //部门名称
|
||||
// if (item.getDefaultFinanceOrg() != null){
|
||||
// SysDeptVo sysDeptVo = sysDeptService.selectDeptById(item.getDefaultFinanceOrg());
|
||||
// if (sysDeptVo != null){
|
||||
// item.setDefaultFinanceOrgName(sysDeptVo.getDeptName());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
private void getName(XzdJsZhfwJinduVo item) {
|
||||
//项目名称
|
||||
if (item.getProject() != null){
|
||||
String projectName = xzdProjectService.queryNameById(item.getProject());
|
||||
if (projectName != null){
|
||||
item.setProjectName(projectName);
|
||||
}
|
||||
}
|
||||
//合同编码
|
||||
if (item.getContractCode() != null){
|
||||
String code = csContractInformationService.queryCodeById(item.getContractCode());
|
||||
if (code != null){
|
||||
item.setContractCodeCode(code);
|
||||
}
|
||||
}
|
||||
//结算单位(客户信息列表)
|
||||
if (item.getSettlementUnit() != null){
|
||||
String byid = iXzdCorrespondentList.queryNameById(item.getSettlementUnit());
|
||||
if (byid!=null){
|
||||
item.setSettlementUnitName(byid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取扣款与奖励项
|
||||
|
||||
Reference in New Issue
Block a user