From 549fbe92de69da1a60fc6e87b83a6f682834adad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Sun, 12 Oct 2025 21:32:13 +0800 Subject: [PATCH] =?UTF-8?q?10-12-=E6=89=BF=E5=8C=85=E5=90=88=E5=90=8C?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/xzd/domain/XzdBusinessSeal.java | 41 ++++ .../xzd/domain/XzdContractDepositInfo.java | 81 +++++++ .../xzd/domain/XzdContractDetails.java | 15 +- .../xzd/domain/bo/XzdBusinessSealBo.java | 36 +++ .../domain/bo/XzdContractDepositInfoBo.java | 80 +++++++ .../xzd/domain/bo/XzdContractDetailsBo.java | 21 +- .../xzd/domain/vo/XzdBusinessSealVo.java | 46 ++++ .../domain/vo/XzdContractDepositInfoVo.java | 99 ++++++++ .../xzd/domain/vo/XzdContractDetailsVo.java | 84 ++++++- .../xzd/mapper/XzdBusinessSealMapper.java | 15 ++ .../mapper/XzdContractDepositInfoMapper.java | 15 ++ .../xzd/service/IXzdBusinessSealService.java | 70 ++++++ .../IXzdContractDepositInfoService.java | 70 ++++++ .../impl/XzdBusinessSealServiceImpl.java | 132 ++++++++++ .../XzdContractAdvanceInfoServiceImpl.java | 1 + .../XzdContractDepositInfoServiceImpl.java | 140 +++++++++++ .../impl/XzdContractDetailsServiceImpl.java | 225 +++++++++++++++++- 17 files changed, 1153 insertions(+), 18 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdBusinessSeal.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDepositInfo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdBusinessSealBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDepositInfoBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdBusinessSealVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDepositInfoVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdBusinessSealMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractDepositInfoMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdBusinessSealService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractDepositInfoService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdBusinessSealServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDepositInfoServiceImpl.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdBusinessSeal.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdBusinessSeal.java new file mode 100644 index 00000000..0863d1ae --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdBusinessSeal.java @@ -0,0 +1,41 @@ +package org.dromara.xzd.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 印章帮助对象 xzd_business_seal + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_business_seal") +public class XzdBusinessSeal extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 印章编号 + */ + private String yzNum; + + /** + * 印章名称 + */ + private String yzName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDepositInfo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDepositInfo.java new file mode 100644 index 00000000..f6d651e9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDepositInfo.java @@ -0,0 +1,81 @@ +package org.dromara.xzd.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 合同主要条款约定对象 xzd_contract_deposit_info + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_contract_deposit_info") +public class XzdContractDepositInfo extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 承包合同信息ID + */ + private Long contractDetailsId; + + /** + * 履约保证金形式(字典) + */ + private String performanceDepositForm; + + /** + * 履约保证金比例(%) + */ + private Long performanceDepositRatio; + + /** + * 履约保证金金额(元) + */ + private Long performanceDepositAmount; + + /** + * 是否有预收款(1有 2无) + */ + private String hasAdvancePayment; + + /** + * 预收款比例(%) + */ + private Long advancePaymentRatio; + + /** + * 预收款金额(元) + */ + private Long advancePaymentAmount; + + /** + * 质量保证金形式(字典,不为无还有子数据) + */ + private String qualityDepositForm; + + /** + * 质量保证金比例(%) + */ + private Long qualityDepositRatio; + + /** + * 质量保证金金额(元) + */ + private Long qualityDepositAmount; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDetails.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDetails.java index 4925412d..f2bb86c2 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDetails.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDetails.java @@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; import java.util.Date; import java.io.Serial; @@ -28,6 +30,11 @@ public class XzdContractDetails extends BaseEntity { @TableId(value = "id") private Long id; + /** + * 所属部门ID + */ + private Long deptId; + /** * 合同类型|模式(字典) */ @@ -76,7 +83,7 @@ public class XzdContractDetails extends BaseEntity { /** * 合同金额 */ - private Long contractAmount; + private BigDecimal contractAmount; /** * 开票单位 @@ -191,17 +198,17 @@ public class XzdContractDetails extends BaseEntity { /** * 原合同金额 */ - private Long originalContractAmount; + private BigDecimal originalContractAmount; /** * 合同含税金额 */ - private Long contractTaxInclusiveAmount; + private BigDecimal contractTaxInclusiveAmount; /** * 累计结算金额 */ - private Long cumulativeSettlementAmount; + private BigDecimal cumulativeSettlementAmount; /** * 单据ID(单据引用) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdBusinessSealBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdBusinessSealBo.java new file mode 100644 index 00000000..38a82af2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdBusinessSealBo.java @@ -0,0 +1,36 @@ +package org.dromara.xzd.domain.bo; + +import org.dromara.xzd.domain.XzdBusinessSeal; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 印章帮助业务对象 xzd_business_seal + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdBusinessSeal.class, reverseConvertGenerate = false) +public class XzdBusinessSealBo extends BaseEntity { + + /** + * 主键ID + */ + private Long id; + + /** + * 印章编号 + */ + private String yzNum; + + /** + * 印章名称 + */ + private String yzName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDepositInfoBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDepositInfoBo.java new file mode 100644 index 00000000..091de24b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDepositInfoBo.java @@ -0,0 +1,80 @@ +package org.dromara.xzd.domain.bo; + +import org.dromara.xzd.domain.XzdContractDepositInfo; +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.*; + +/** + * 合同主要条款约定业务对象 xzd_contract_deposit_info + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdContractDepositInfo.class, reverseConvertGenerate = false) +public class XzdContractDepositInfoBo extends BaseEntity { + + /** + * + */ + private Long id; + + /** + * 承包合同信息ID + */ + @NotNull(message = "承包合同信息ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long contractDetailsId; + + /** + * 履约保证金形式(字典) + */ + private String performanceDepositForm; + + /** + * 履约保证金比例(%) + */ + private Long performanceDepositRatio; + + /** + * 履约保证金金额(元) + */ + private Long performanceDepositAmount; + + /** + * 是否有预收款(1有 2无) + */ + private String hasAdvancePayment; + + /** + * 预收款比例(%) + */ + private Long advancePaymentRatio; + + /** + * 预收款金额(元) + */ + private Long advancePaymentAmount; + + /** + * 质量保证金形式(字典,不为无还有子数据) + */ + private String qualityDepositForm; + + /** + * 质量保证金比例(%) + */ + private Long qualityDepositRatio; + + /** + * 质量保证金金额(元) + */ + private Long qualityDepositAmount; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java index 2488732d..dbd0ce85 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java @@ -9,6 +9,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -28,6 +29,11 @@ public class XzdContractDetailsBo extends BaseEntity { */ private Long id; + /** + * 所属部门ID + */ + private Long deptId; + /** * 合同类型|模式(字典) */ @@ -83,7 +89,7 @@ public class XzdContractDetailsBo extends BaseEntity { /** * 合同金额 */ - private Long contractAmount; + private BigDecimal contractAmount; /** * 开票单位 @@ -95,7 +101,7 @@ public class XzdContractDetailsBo extends BaseEntity { * 总投资额 */ @NotNull(message = "总投资额不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long totalInvestment; + private BigDecimal totalInvestment; /** * 预算分类 @@ -203,17 +209,17 @@ public class XzdContractDetailsBo extends BaseEntity { /** * 原合同金额 */ - private Long originalContractAmount; + private BigDecimal originalContractAmount; /** * 合同含税金额 */ - private Long contractTaxInclusiveAmount; + private BigDecimal contractTaxInclusiveAmount; /** * 累计结算金额 */ - private Long cumulativeSettlementAmount; + private BigDecimal cumulativeSettlementAmount; /** * 单据ID(单据引用) @@ -245,4 +251,9 @@ public class XzdContractDetailsBo extends BaseEntity { */ private List zftk; + /** + * 合同主要条款约定 + */ + private List htzytkyd; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdBusinessSealVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdBusinessSealVo.java new file mode 100644 index 00000000..0897de4b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdBusinessSealVo.java @@ -0,0 +1,46 @@ +package org.dromara.xzd.domain.vo; + +import org.dromara.xzd.domain.XzdBusinessSeal; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 印章帮助视图对象 xzd_business_seal + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdBusinessSeal.class) +public class XzdBusinessSealVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 印章编号 + */ + @ExcelProperty(value = "印章编号") + private String yzNum; + + /** + * 印章名称 + */ + @ExcelProperty(value = "印章名称") + private String yzName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDepositInfoVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDepositInfoVo.java new file mode 100644 index 00000000..f19727db --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDepositInfoVo.java @@ -0,0 +1,99 @@ +package org.dromara.xzd.domain.vo; + +import org.dromara.xzd.domain.XzdContractDepositInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 合同主要条款约定视图对象 xzd_contract_deposit_info + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdContractDepositInfo.class) +public class XzdContractDepositInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 承包合同信息ID + */ + @ExcelProperty(value = "承包合同信息ID") + private Long contractDetailsId; + + /** + * 履约保证金形式(字典) + */ + @ExcelProperty(value = "履约保证金形式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "字=典") + private String performanceDepositForm; + + /** + * 履约保证金比例(%) + */ + @ExcelProperty(value = "履约保证金比例(%)") + private Long performanceDepositRatio; + + /** + * 履约保证金金额(元) + */ + @ExcelProperty(value = "履约保证金金额(元)") + private Long performanceDepositAmount; + + /** + * 是否有预收款(1有 2无) + */ + @ExcelProperty(value = "是否有预收款", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=有,2=无") + private String hasAdvancePayment; + + /** + * 预收款比例(%) + */ + @ExcelProperty(value = "预收款比例(%)") + private Long advancePaymentRatio; + + /** + * 预收款金额(元) + */ + @ExcelProperty(value = "预收款金额(元)") + private Long advancePaymentAmount; + + /** + * 质量保证金形式(字典,不为无还有子数据) + */ + @ExcelProperty(value = "质量保证金形式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "字=典,不为无还有子数据") + private String qualityDepositForm; + + /** + * 质量保证金比例(%) + */ + @ExcelProperty(value = "质量保证金比例(%)") + private Long qualityDepositRatio; + + /** + * 质量保证金金额(元) + */ + @ExcelProperty(value = "质量保证金金额(元)") + private Long qualityDepositAmount; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java index 0c86ec64..f597b054 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java @@ -1,8 +1,9 @@ package org.dromara.xzd.domain.vo; +import java.math.BigDecimal; import java.util.Date; -import org.dromara.xzd.domain.XzdContractDetails; +import org.dromara.xzd.domain.*; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import org.dromara.common.excel.annotation.ExcelDictFormat; @@ -12,6 +13,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.util.List; /** @@ -34,6 +36,16 @@ public class XzdContractDetailsVo implements Serializable { @ExcelProperty(value = "") private Long id; + /** + * 所属部门ID + */ + private Long deptId; + + /** + * 部门名称 + */ + private String deptName; + /** * 合同类型|模式(字典) */ @@ -65,6 +77,11 @@ public class XzdContractDetailsVo implements Serializable { @ExcelProperty(value = "项目") private Long project; + /** + * 项目名称 + */ + private String projectName; + /** * 签订日期 */ @@ -84,17 +101,27 @@ public class XzdContractDetailsVo implements Serializable { @ExcelProperty(value = "甲方单位") private Long partyAUnit; + /** + * 甲方单位名称 + */ + private String partyAUnitName; + /** * 乙方单位 */ @ExcelProperty(value = "乙方单位") private Long partyBUnit; + /** + * 乙方单位名称 + */ + private String partyBUnitName; + /** * 合同金额 */ @ExcelProperty(value = "合同金额") - private Long contractAmount; + private BigDecimal contractAmount; /** * 开票单位 @@ -102,11 +129,16 @@ public class XzdContractDetailsVo implements Serializable { @ExcelProperty(value = "开票单位") private Long invoicingUnit; + /** + * 开票单位名称 + */ + private String invoicingUnitName; + /** * 总投资额 */ @ExcelProperty(value = "总投资额") - private Long totalInvestment; + private BigDecimal totalInvestment; /** * 预算分类 @@ -120,6 +152,11 @@ public class XzdContractDetailsVo implements Serializable { @ExcelProperty(value = "收票单位") private Long ticketReceivingUnit; + /** + * 收票单位名称 + */ + private String ticketReceivingUnitName; + /** * 归档日期 */ @@ -157,6 +194,11 @@ public class XzdContractDetailsVo implements Serializable { @ExcelProperty(value = "印章名称") private Long sealName; + /** + * 印章名称详情 + */ + private String sealNameDetail; + /** * 大写合同含税合计 */ @@ -169,6 +211,11 @@ public class XzdContractDetailsVo implements Serializable { @ExcelProperty(value = "签约组织") private Long signingOrganization; + /** + * 签约组织名称 + */ + private String signingOrganizationName; + /** * 项目类型 */ @@ -234,19 +281,19 @@ public class XzdContractDetailsVo implements Serializable { * 原合同金额 */ @ExcelProperty(value = "原合同金额") - private Long originalContractAmount; + private BigDecimal originalContractAmount; /** * 合同含税金额 */ @ExcelProperty(value = "合同含税金额") - private Long contractTaxInclusiveAmount; + private BigDecimal contractTaxInclusiveAmount; /** * 累计结算金额 */ @ExcelProperty(value = "累计结算金额") - private Long cumulativeSettlementAmount; + private BigDecimal cumulativeSettlementAmount; /** * 单据ID(单据引用) @@ -262,5 +309,30 @@ public class XzdContractDetailsVo implements Serializable { @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") private String fileId; + /** + * 预收款项 + */ + private List yskx; + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + + /** + * 合同条款 + */ + private List httk; + + /** + * 支付条款 + */ + private List zftk; + + /** + * 合同主要条款约定 + */ + private List htzytqyd; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdBusinessSealMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdBusinessSealMapper.java new file mode 100644 index 00000000..52e6152f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdBusinessSealMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.mapper; + +import org.dromara.xzd.domain.XzdBusinessSeal; +import org.dromara.xzd.domain.vo.XzdBusinessSealVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 印章帮助Mapper接口 + * + * @author Lion Li + * @date 2025-10-12 + */ +public interface XzdBusinessSealMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractDepositInfoMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractDepositInfoMapper.java new file mode 100644 index 00000000..d04c0489 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractDepositInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.mapper; + +import org.dromara.xzd.domain.XzdContractDepositInfo; +import org.dromara.xzd.domain.vo.XzdContractDepositInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 合同主要条款约定Mapper接口 + * + * @author Lion Li + * @date 2025-10-12 + */ +public interface XzdContractDepositInfoMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdBusinessSealService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdBusinessSealService.java new file mode 100644 index 00000000..a5b2e27e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdBusinessSealService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.service; + +import org.dromara.xzd.domain.vo.XzdBusinessSealVo; +import org.dromara.xzd.domain.bo.XzdBusinessSealBo; +import org.dromara.xzd.domain.XzdBusinessSeal; +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-12 + */ +public interface IXzdBusinessSealService extends IService{ + + /** + * 查询印章帮助 + * + * @param id 主键 + * @return 印章帮助 + */ + XzdBusinessSealVo queryById(Long id); + + /** + * 分页查询印章帮助列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 印章帮助分页列表 + */ + TableDataInfo queryPageList(XzdBusinessSealBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的印章帮助列表 + * + * @param bo 查询条件 + * @return 印章帮助列表 + */ + List queryList(XzdBusinessSealBo bo); + + /** + * 新增印章帮助 + * + * @param bo 印章帮助 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdBusinessSealBo bo); + + /** + * 修改印章帮助 + * + * @param bo 印章帮助 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdBusinessSealBo bo); + + /** + * 校验并批量删除印章帮助信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractDepositInfoService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractDepositInfoService.java new file mode 100644 index 00000000..a0e3561a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractDepositInfoService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.service; + +import org.dromara.xzd.domain.vo.XzdContractDepositInfoVo; +import org.dromara.xzd.domain.bo.XzdContractDepositInfoBo; +import org.dromara.xzd.domain.XzdContractDepositInfo; +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-12 + */ +public interface IXzdContractDepositInfoService extends IService{ + + /** + * 查询合同主要条款约定 + * + * @param id 主键 + * @return 合同主要条款约定 + */ + XzdContractDepositInfoVo queryById(Long id); + + /** + * 分页查询合同主要条款约定列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同主要条款约定分页列表 + */ + TableDataInfo queryPageList(XzdContractDepositInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的合同主要条款约定列表 + * + * @param bo 查询条件 + * @return 合同主要条款约定列表 + */ + List queryList(XzdContractDepositInfoBo bo); + + /** + * 新增合同主要条款约定 + * + * @param bo 合同主要条款约定 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdContractDepositInfoBo bo); + + /** + * 修改合同主要条款约定 + * + * @param bo 合同主要条款约定 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdContractDepositInfoBo bo); + + /** + * 校验并批量删除合同主要条款约定信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdBusinessSealServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdBusinessSealServiceImpl.java new file mode 100644 index 00000000..c560d49d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdBusinessSealServiceImpl.java @@ -0,0 +1,132 @@ +package org.dromara.xzd.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.springframework.stereotype.Service; +import org.dromara.xzd.domain.bo.XzdBusinessSealBo; +import org.dromara.xzd.domain.vo.XzdBusinessSealVo; +import org.dromara.xzd.domain.XzdBusinessSeal; +import org.dromara.xzd.mapper.XzdBusinessSealMapper; +import org.dromara.xzd.service.IXzdBusinessSealService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 印章帮助Service业务层处理 + * + * @author Lion Li + * @date 2025-10-12 + */ +@RequiredArgsConstructor +@Service +public class XzdBusinessSealServiceImpl extends ServiceImpl implements IXzdBusinessSealService { + + private final XzdBusinessSealMapper baseMapper; + + /** + * 查询印章帮助 + * + * @param id 主键 + * @return 印章帮助 + */ + @Override + public XzdBusinessSealVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询印章帮助列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 印章帮助分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdBusinessSealBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的印章帮助列表 + * + * @param bo 查询条件 + * @return 印章帮助列表 + */ + @Override + public List queryList(XzdBusinessSealBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdBusinessSealBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdBusinessSeal::getId); + lqw.eq(StringUtils.isNotBlank(bo.getYzNum()), XzdBusinessSeal::getYzNum, bo.getYzNum()); + lqw.like(StringUtils.isNotBlank(bo.getYzName()), XzdBusinessSeal::getYzName, bo.getYzName()); + return lqw; + } + + /** + * 新增印章帮助 + * + * @param bo 印章帮助 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdBusinessSealBo bo) { + XzdBusinessSeal add = MapstructUtils.convert(bo, XzdBusinessSeal.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改印章帮助 + * + * @param bo 印章帮助 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdBusinessSealBo bo) { + XzdBusinessSeal update = MapstructUtils.convert(bo, XzdBusinessSeal.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdBusinessSeal entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除印章帮助信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAdvanceInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAdvanceInfoServiceImpl.java index 17f1fecf..4539ad1f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAdvanceInfoServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAdvanceInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.xzd.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDepositInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDepositInfoServiceImpl.java new file mode 100644 index 00000000..89c47559 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDepositInfoServiceImpl.java @@ -0,0 +1,140 @@ +package org.dromara.xzd.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.springframework.stereotype.Service; +import org.dromara.xzd.domain.bo.XzdContractDepositInfoBo; +import org.dromara.xzd.domain.vo.XzdContractDepositInfoVo; +import org.dromara.xzd.domain.XzdContractDepositInfo; +import org.dromara.xzd.mapper.XzdContractDepositInfoMapper; +import org.dromara.xzd.service.IXzdContractDepositInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 合同主要条款约定Service业务层处理 + * + * @author Lion Li + * @date 2025-10-12 + */ +@RequiredArgsConstructor +@Service +public class XzdContractDepositInfoServiceImpl extends ServiceImpl implements IXzdContractDepositInfoService { + + private final XzdContractDepositInfoMapper baseMapper; + + /** + * 查询合同主要条款约定 + * + * @param id 主键 + * @return 合同主要条款约定 + */ + @Override + public XzdContractDepositInfoVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询合同主要条款约定列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同主要条款约定分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdContractDepositInfoBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的合同主要条款约定列表 + * + * @param bo 查询条件 + * @return 合同主要条款约定列表 + */ + @Override + public List queryList(XzdContractDepositInfoBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdContractDepositInfoBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdContractDepositInfo::getId); + lqw.eq(bo.getContractDetailsId() != null, XzdContractDepositInfo::getContractDetailsId, bo.getContractDetailsId()); + lqw.eq(StringUtils.isNotBlank(bo.getPerformanceDepositForm()), XzdContractDepositInfo::getPerformanceDepositForm, bo.getPerformanceDepositForm()); + lqw.eq(bo.getPerformanceDepositRatio() != null, XzdContractDepositInfo::getPerformanceDepositRatio, bo.getPerformanceDepositRatio()); + lqw.eq(bo.getPerformanceDepositAmount() != null, XzdContractDepositInfo::getPerformanceDepositAmount, bo.getPerformanceDepositAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getHasAdvancePayment()), XzdContractDepositInfo::getHasAdvancePayment, bo.getHasAdvancePayment()); + lqw.eq(bo.getAdvancePaymentRatio() != null, XzdContractDepositInfo::getAdvancePaymentRatio, bo.getAdvancePaymentRatio()); + lqw.eq(bo.getAdvancePaymentAmount() != null, XzdContractDepositInfo::getAdvancePaymentAmount, bo.getAdvancePaymentAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getQualityDepositForm()), XzdContractDepositInfo::getQualityDepositForm, bo.getQualityDepositForm()); + lqw.eq(bo.getQualityDepositRatio() != null, XzdContractDepositInfo::getQualityDepositRatio, bo.getQualityDepositRatio()); + lqw.eq(bo.getQualityDepositAmount() != null, XzdContractDepositInfo::getQualityDepositAmount, bo.getQualityDepositAmount()); + return lqw; + } + + /** + * 新增合同主要条款约定 + * + * @param bo 合同主要条款约定 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdContractDepositInfoBo bo) { + XzdContractDepositInfo add = MapstructUtils.convert(bo, XzdContractDepositInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改合同主要条款约定 + * + * @param bo 合同主要条款约定 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdContractDepositInfoBo bo) { + XzdContractDepositInfo update = MapstructUtils.convert(bo, XzdContractDepositInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdContractDepositInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除合同主要条款约定信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java index 6594c933..d569817c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.xzd.service.impl; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import io.github.linpeilie.annotations.AutoMapper; +import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -12,15 +13,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.ctr.domain.ContractPaymentClause; +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.*; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; +import org.dromara.xzd.domain.vo.*; +import org.dromara.xzd.service.IXzdCorrespondentList; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.dromara.xzd.domain.bo.XzdContractDetailsBo; -import org.dromara.xzd.domain.vo.XzdContractDetailsVo; import org.dromara.xzd.mapper.XzdContractDetailsMapper; import org.dromara.xzd.service.IXzdContractDetailsService; import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Collection; @@ -44,6 +51,20 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl xzdContractDetailsVo1 = List.of(xzdContractDetailsVo); + setValue(xzdContractDetailsVo1); + return xzdContractDetailsVo1.getFirst(); } /** @@ -67,6 +91,7 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl queryPageList(XzdContractDetailsBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + setValue(result.getRecords()); return TableDataInfo.build(result); } @@ -142,7 +167,7 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl boClass = bo.getClass(); AutoMapper autoMapper = boClass.getAnnotation(AutoMapper.class); @@ -153,6 +178,8 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, old.getId()); + List advanceInfos = xzdContractAdvanceInfoService.list(lambdaQueryWrapper); + for (XzdContractAdvanceInfo advanceInfo : advanceInfos) { + if (!bo.getYskx().contains(advanceInfo)){ + xzdContractAdvanceInfoService.removeById(advanceInfo); + } + advanceInfo.setContractDetailsId(update.getId()); + } + xzdContractAdvanceInfoService.saveOrUpdateBatch(bo.getYskx()); + + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, old.getId()); + List deductionItems = xzdDeductionItemsService.list(lambdaQueryWrapper1); + for (XzdDeductionItems advanceInfo : deductionItems) { + if (!bo.getKkyjlx().contains(advanceInfo)){ + xzdDeductionItemsService.removeById(advanceInfo); + } + advanceInfo.setContractDetailsId(update.getId()); + } + xzdDeductionItemsService.saveOrUpdateBatch(bo.getKkyjlx()); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, old.getId()); + List clauses = xzdContractClauseService.list(lambdaQueryWrapper2); + for (XzdContractClause advanceInfo : clauses) { + if (!bo.getHttk().contains(advanceInfo)){ + xzdContractClauseService.removeById(advanceInfo); + } + advanceInfo.setContractDetailsId(update.getId()); + } + xzdContractClauseService.saveOrUpdateBatch(bo.getHttk()); + + //支付条款 + LambdaQueryWrapper lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, old.getId()); + List settlementRules = xzdSettlementRulesService.list(lambdaQueryWrapper3); + for (XzdSettlementRules advanceInfo : settlementRules) { + if (!bo.getZftk().contains(advanceInfo)){ + xzdSettlementRulesService.removeById(advanceInfo); + } + advanceInfo.setContractDetailsId(update.getId()); + } + xzdSettlementRulesService.saveOrUpdateBatch(bo.getZftk()); + + //更新文件 + if (bo.getFileId() != null && !bo.getFileId().isEmpty()){ + List oldFileId = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList(); + List 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 deleteIds = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList(); + sysOssService.deleteWithValidByIds(deleteIds, false); + } + } + validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } @@ -209,11 +311,128 @@ public class XzdContractDetailsServiceImpl extends ServiceImpl ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + + for (Long id : ids) { + XzdContractDetailsVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List deleteIds = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + } + + //合同文本-预收款项 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, ids); + xzdContractAdvanceInfoService.remove(lambdaQueryWrapper); + + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, ids); + xzdDeductionItemsService.remove(lambdaQueryWrapper1); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, ids); + xzdContractClauseService.remove(lambdaQueryWrapper2); + + //支付条款 + LambdaQueryWrapper lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, ids); + xzdSettlementRulesService.remove(lambdaQueryWrapper3); + + } + } + return baseMapper.deleteByIds(ids) > 0; } + + public void setValue(List infos){ + for (XzdContractDetailsVo info : infos) { + //部门名称 + SysDeptVo sysDeptVo = sysDeptService.selectDeptById(info.getDeptId()); + if (sysDeptVo != null){ + info.setDeptName(sysDeptVo.getDeptName()); + } + //项目名称 + XzdProjectVo projectVo = xzdProjectService.queryById(info.getProject()); + if (projectVo != null){ + info.setProjectName(projectVo.getProjectName()); + } + //甲方单位(客户信息列表) + R byid = iXzdCorrespondentList.getCustomerByid(info.getPartyAUnit()); + if (byid!=null){ + if (byid.getData().getXzdCustomerinformation() != null){ + info.setPartyAUnitName(byid.getData().getXzdCustomerinformation().getUnitName()); + } + } + //乙方单位(供应商信息列表) + XzdSupplierInfoVo xzdSupplierInfoVo = xzdSupplierInfoService.queryById(info.getPartyBUnit()); + if (xzdSupplierInfoVo != null){ + info.setPartyBUnitName(xzdSupplierInfoVo.getUnitName()); + } + //开票单位名称(供应商名称) + XzdSupplierInfoVo xzdSupplierInfoVo1 = xzdSupplierInfoService.queryById(info.getInvoicingUnit()); + if (xzdSupplierInfoVo1 != null){ + info.setInvoicingUnitName(xzdSupplierInfoVo1.getUnitName()); + } + //收票单位名称(客户名称) + R byid2 = iXzdCorrespondentList.getCustomerByid(info.getTicketReceivingUnit()); + if (byid2!=null){ + if (byid2.getData().getXzdCustomerinformation() != null){ + info.setTicketReceivingUnitName(byid2.getData().getXzdCustomerinformation().getUnitName()); + } + } + //印章名称 + XzdBusinessSealVo sealVo = xzdBusinessSealService.queryById(info.getSealName()); + if (sealVo != null){ + info.setSealNameDetail(sealVo.getYzName()); + } + //签约组织(供应商) + XzdSupplierInfoVo xzdSupplierInfoVo2 = xzdSupplierInfoService.queryById(info.getSigningOrganization()); + if (xzdSupplierInfoVo2!= null){ + info.setSigningOrganizationName(xzdSupplierInfoVo2.getUnitName()); + } + + //合同文本-预收款项 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, info.getId()); + List advanceInfos = xzdContractAdvanceInfoService.list(lambdaQueryWrapper); + info.setYskx(advanceInfos); + + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, info.getId()); + List list = xzdDeductionItemsService.list(lambdaQueryWrapper1); + info.setKkyjlx(list); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, info.getId()); + List list1 = xzdContractClauseService.list(lambdaQueryWrapper2); + info.setHttk(list1); + + //支付条款 + LambdaQueryWrapper lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, info.getId()); + List list2 = xzdSettlementRulesService.list(lambdaQueryWrapper3); + info.setZftk(list2); + + //合同文本-合同主要条款约定 + LambdaQueryWrapper lambdaQueryWrapper4 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper4.eq(XzdContractDepositInfo::getContractDetailsId, info.getId()); + List list3 = xzdContractDepositInfoService.list(lambdaQueryWrapper4); + info.setHtzytqyd(list3); + + } + } + }