From 1fd3da3e2a20a3959de893a798371e50b7d3920f Mon Sep 17 00:00:00 2001 From: dfdg <2710245601@qq.com> Date: Thu, 16 Oct 2025 20:07:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E4=B8=8E=E4=BB=98=E6=AC=BE-?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E3=80=81=E7=BB=BC=E5=90=88=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IXzdCsContractInformationService.java | 2 + .../impl/XzdCsContractChangeServiceImpl.java | 8 +- .../XzdCsContractInformationServiceImpl.java | 5 + .../impl/XzdCsContractSuspendServiceImpl.java | 2 + .../domain/XzdSfkCaigouFk.java | 4 +- .../domain/XzdSfkZonhefuwuFk.java | 7 +- .../domain/bo/XzdSfkCaigouFkBo.java | 13 +- .../domain/bo/XzdSfkZonhefuwuFkBo.java | 16 +- .../domain/vo/XzdSfkCaigouFkVo.java | 24 ++- .../domain/vo/XzdSfkZonhefuwuFkVo.java | 24 ++- .../impl/XzdSfkCaigouFkServiceImpl.java | 147 +++++++++++++++++- .../impl/XzdSfkZonhefuwuFkServiceImpl.java | 146 ++++++++++++++++- .../service/IXzdSupplierOpenBankService.java | 3 + .../impl/XzdSupplierOpenBankServiceImpl.java | 5 + .../domain/vo/XzdJsZhfwJinduVo.java | 3 + .../impl/XzdJsCgJungonEditServiceImpl.java | 4 + .../impl/XzdJsZhfwJinduServiceImpl.java | 111 ++++++++++--- 17 files changed, 467 insertions(+), 57 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractInformationService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractInformationService.java index 92f39a31..9ffd1bef 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractInformationService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractInformationService.java @@ -67,4 +67,6 @@ public interface IXzdCsContractInformationService extends IService ids, Boolean isValid); + + String queryCodeById(Long contractCode); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java index a55c573c..147f46cc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java @@ -167,7 +167,6 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl 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 0; } + /** * 保存前的数据校验 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java index f03b074d..24830897 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java @@ -405,4 +405,9 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl 0; } + + @Override + public String queryCodeById(Long contractCode) { + return baseMapper.selectVoById(contractCode).getContractCode(); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractSuspendServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractSuspendServiceImpl.java index 832b5f7a..bf342af1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractSuspendServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractSuspendServiceImpl.java @@ -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 ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkCaigouFk.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkCaigouFk.java index 7516ef7d..50698234 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkCaigouFk.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkCaigouFk.java @@ -100,9 +100,9 @@ public class XzdSfkCaigouFk extends BaseEntity { private String statCycle; /** - * 是否是研发类 + * 项目类型 */ - private Long isYanfa; + private String projectType; /** * 税率(带*,必填) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkZonhefuwuFk.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkZonhefuwuFk.java index 8ad60674..7ef686c4 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkZonhefuwuFk.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/XzdSfkZonhefuwuFk.java @@ -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; + /** * 累计支付占合同比例(%) */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkCaigouFkBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkCaigouFkBo.java index 92a2f490..03b2ca70 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkCaigouFkBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkCaigouFkBo.java @@ -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 fukuanList; + + List fapiaoList; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkZonhefuwuFkBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkZonhefuwuFkBo.java index 5f4343d1..b759ff1c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkZonhefuwuFkBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/bo/XzdSfkZonhefuwuFkBo.java @@ -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 fukuanList; + + List fapiaoList; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkCaigouFkVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkCaigouFkVo.java index cd02147e..e12b5c17 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkCaigouFkVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkCaigouFkVo.java @@ -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 fukuanList; + + List fapiaoList; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkZonhefuwuFkVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkZonhefuwuFkVo.java index 8d5ccf89..cb161b7f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkZonhefuwuFkVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/domain/vo/XzdSfkZonhefuwuFkVo.java @@ -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 fukuanList; + + List fapiaoList; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/service/impl/XzdSfkCaigouFkServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/service/impl/XzdSfkCaigouFkServiceImpl.java index b773714f..68baccf8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/service/impl/XzdSfkCaigouFkServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/service/impl/XzdSfkCaigouFkServiceImpl.java @@ -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 queryPageList(XzdSfkCaigouFkBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(this::getName); return TableDataInfo.build(result); } @@ -66,7 +102,9 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl queryList(XzdSfkCaigouFkBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List vos = baseMapper.selectVoList(lqw); + vos.forEach(this::getName); + return vos; } private LambdaQueryWrapper buildQueryWrapper(XzdSfkCaigouFkBo bo) { @@ -87,7 +125,7 @@ public class XzdSfkCaigouFkServiceImpl extends ServiceImpl 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().eq(XzdSfkFapiao::getMainDocumentId, bo.getId())); + fukuanService.remove(new LambdaQueryWrapper().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 ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + XzdSfkCaigouFkVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + fapiaoService.remove(new LambdaQueryWrapper().in(XzdSfkFapiao::getMainDocumentId, ids)); + fukuanService.remove(new LambdaQueryWrapper().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().eq(XzdSfkFapiao::getMainDocumentId, vo.getId()))); + + //付款信息 + vo.setFukuanList(fukuanService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdSfkFukuan::getMainDocumentId, vo.getId()))); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/service/impl/XzdSfkZonhefuwuFkServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/service/impl/XzdSfkZonhefuwuFkServiceImpl.java index 48a20e37..708f7219 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/service/impl/XzdSfkZonhefuwuFkServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/paymentsReceipts/service/impl/XzdSfkZonhefuwuFkServiceImpl.java @@ -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 queryPageList(XzdSfkZonhefuwuFkBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(this::getName); return TableDataInfo.build(result); } @@ -66,7 +101,9 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl queryList(XzdSfkZonhefuwuFkBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List vos = baseMapper.selectVoList(lqw); + vos.forEach(this::getName); + return vos; } private LambdaQueryWrapper buildQueryWrapper(XzdSfkZonhefuwuFkBo bo) { @@ -81,7 +118,7 @@ public class XzdSfkZonhefuwuFkServiceImpl extends ServiceImpl 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().eq(XzdSfkFapiao::getMainDocumentId, bo.getId())); + fukuanService.remove(new LambdaQueryWrapper().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 ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + XzdSfkZonhefuwuFkVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + fapiaoService.remove(new LambdaQueryWrapper().in(XzdSfkFapiao::getMainDocumentId, ids)); + fukuanService.remove(new LambdaQueryWrapper().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().eq(XzdSfkFapiao::getMainDocumentId, vo.getId()))); + + //付款信息 + vo.setFukuanList(fukuanService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdSfkFukuan::getMainDocumentId, vo.getId()))); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierOpenBankService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierOpenBankService.java index cc51c595..b0764f1e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierOpenBankService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierOpenBankService.java @@ -68,4 +68,7 @@ public interface IXzdSupplierOpenBankService extends IService ids, Boolean isValid); + + String queryNameById(Long id); + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierOpenBankServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierOpenBankServiceImpl.java index 7e9902d9..cbdbadc0 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierOpenBankServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierOpenBankServiceImpl.java @@ -147,4 +147,9 @@ public class XzdSupplierOpenBankServiceImpl extends ServiceImpl 0; } + + @Override + public String queryNameById(Long id) { + return baseMapper.selectVoById(id).getOpenBank(); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsZhfwJinduVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsZhfwJinduVo.java index f77ab1f5..da0a9ff8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsZhfwJinduVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsZhfwJinduVo.java @@ -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; /** * 合同金额 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java index 1946a958..677e0985 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java @@ -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 ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsZhfwJinduServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsZhfwJinduServiceImpl.java index 707d6a53..a263937f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsZhfwJinduServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsZhfwJinduServiceImpl.java @@ -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 queryPageList(XzdJsZhfwJinduBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(this::getName); return TableDataInfo.build(result); } @@ -88,7 +99,9 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl queryList(XzdJsZhfwJinduBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List vos = baseMapper.selectVoList(lqw); + vos.forEach(this::getName); + return vos; } private LambdaQueryWrapper buildQueryWrapper(XzdJsZhfwJinduBo bo) { @@ -129,13 +142,27 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl 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().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 ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + XzdJsZhfwJinduVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + deductionItemsService.remove(new LambdaQueryWrapper().in(XzdJsDeductionItems::getMainDocId, ids)); return baseMapper.deleteByIds(ids) > 0; } @@ -179,22 +237,29 @@ public class XzdJsZhfwJinduServiceImpl extends ServiceImpl