diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml index 47967f9b..6938f01b 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml @@ -320,6 +320,8 @@ xss: - /xzd/fenbaohetongbiangg/** - /xzd/fenbaohetongxinxi/** - /xzd/contractManagement/** + - /xzd/jixiehetongxinxi/contractMachinery/** + - /xzd/jixiehetongbiang/machineryContractAlteration/** # 全局线程池相关配置 # 如使用JDK21请直接使用虚拟线程 不要开启此配置 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/domain/bo/XzdPurchaseContractSuspendBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/domain/bo/XzdPurchaseContractSuspendBo.java index 8864ccfe..49872a48 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/domain/bo/XzdPurchaseContractSuspendBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/domain/bo/XzdPurchaseContractSuspendBo.java @@ -8,9 +8,11 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import org.dromara.xzd.domain.XzdBusinessChange; import java.time.LocalDate; import java.util.Date; +import java.util.List; /** * 采购合同终止业务对象 xzd_purchase_contract_suspend @@ -135,5 +137,10 @@ public class XzdPurchaseContractSuspendBo extends BaseEntity { private LocalDate endDate; + /** + * 印章信息 + */ + private List sealInfo; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/domain/vo/XzdPurchaseContractSuspendVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/domain/vo/XzdPurchaseContractSuspendVo.java index c12a9743..b116a7d5 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/domain/vo/XzdPurchaseContractSuspendVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/domain/vo/XzdPurchaseContractSuspendVo.java @@ -15,9 +15,11 @@ 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.domain.XzdBusinessChange; import java.io.Serial; import java.io.Serializable; +import java.util.List; /** @@ -210,5 +212,10 @@ public class XzdPurchaseContractSuspendVo implements Serializable { @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; + /** + * 印章信息 + */ + private List sealInfo; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/service/impl/XzdPurchaseContractSuspendServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/service/impl/XzdPurchaseContractSuspendServiceImpl.java index 276f5a23..6473beb9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/service/impl/XzdPurchaseContractSuspendServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/caigoucontractTermination/service/impl/XzdPurchaseContractSuspendServiceImpl.java @@ -24,10 +24,14 @@ import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.XzdSubcontrac import org.dromara.xzd.contractManagement.purchaseManagement.domain.XzdPurchaseContractInformation; import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo; import org.dromara.xzd.contractManagement.purchaseManagement.service.IXzdPurchaseContractInformationService; +import org.dromara.xzd.domain.XzdBusinessChange; import org.dromara.xzd.domain.XzdSettlementRules; import org.dromara.xzd.domain.dto.QuerCorrespondentDto; +import org.dromara.xzd.domain.vo.XzdBusinessSealVo; import org.dromara.xzd.service.IXzdCorrespondentList; import org.dromara.xzd.service.IXzdSettlementRulesService; +import org.dromara.xzd.service.impl.XzdBusinessChangeServiceImpl; +import org.dromara.xzd.service.impl.XzdBusinessSealServiceImpl; import org.dromara.xzd.service.impl.XzdSupplierInfoServiceImpl; import org.dromara.xzd.settlement.fenbaohetongjungong.domain.vo.SettlementOfSubcontractingCompletionVo; import org.dromara.xzd.utilS.AreaUtil; @@ -74,7 +78,12 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl xzdBusinessChangeWrapper = new LambdaQueryWrapper<>(); + xzdBusinessChangeWrapper.eq(XzdBusinessChange::getContractChangeId, item.getId()); + List xzdBusinessChanges = xzdBusinessChangeService.list(xzdBusinessChangeWrapper); + for (XzdBusinessChange businessChange : xzdBusinessChanges) { + XzdBusinessSealVo sealVo = xzdBusinessSealService.queryById(businessChange.getBusinessId()); + if (sealVo != null){ + businessChange.setSealName(sealVo.getYzName()); + } + } + item.setSealInfo(xzdBusinessChanges); + } } @@ -176,8 +197,18 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl 0; + + //印章信息 + if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){ + for (XzdBusinessChange sealInfo : bo.getSealInfo()) { + sealInfo.setContractChangeId(add.getId()); + sealInfo.setType("9"); + } + xzdBusinessChangeService.saveBatch(bo.getSealInfo()); + } + + if (flag) { bo.setId(add.getId()); } @@ -194,6 +225,16 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl().eq(XzdBusinessChange::getContractChangeId, update.getId())); + + + for (XzdBusinessChange xzdBusinessChange : bo.getSealInfo()) { + xzdBusinessChange.setContractChangeId(update.getId()); + xzdBusinessChange.setType("9"); + } + xzdBusinessChangeService.saveBatch(bo.getSealInfo()); return baseMapper.updateById(update) > 0; } @@ -226,6 +267,8 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl().in(XzdBusinessChange::getContractChangeId, ids)); return baseMapper.deleteByIds(ids) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/controller/XzdMachineryContractAlterationController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/controller/XzdMachineryContractAlterationController.java new file mode 100644 index 00000000..bbcd26f3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/controller/XzdMachineryContractAlterationController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.contractManagement.jixiehetongbiang.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.vo.XzdMachineryContractAlterationVo; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.bo.XzdMachineryContractAlterationBo; +import org.dromara.xzd.contractManagement.jixiehetongbiang.service.IXzdMachineryContractAlterationService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械合同变更 + * + * @author Lion Li + * @date 2025-11-12 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/xzd/jixiehetongbiang/machineryContractAlteration") +public class XzdMachineryContractAlterationController extends BaseController { + + private final IXzdMachineryContractAlterationService xzdMachineryContractAlterationService; + + /** + * 查询机械合同变更列表 + */ + @SaCheckPermission("jixiehetongbiang:machineryContractAlteration:list") + @GetMapping("/list") + public TableDataInfo list(XzdMachineryContractAlterationBo bo, PageQuery pageQuery) { + return xzdMachineryContractAlterationService.queryPageList(bo, pageQuery); + } + + /** + * 导出机械合同变更列表 + */ + @SaCheckPermission("jixiehetongbiang:machineryContractAlteration:export") + @Log(title = "机械合同变更", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdMachineryContractAlterationBo bo, HttpServletResponse response) { + List list = xzdMachineryContractAlterationService.queryList(bo); + ExcelUtil.exportExcel(list, "机械合同变更", XzdMachineryContractAlterationVo.class, response); + } + + /** + * 获取机械合同变更详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jixiehetongbiang:machineryContractAlteration:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdMachineryContractAlterationService.queryById(id)); + } + + /** + * 新增机械合同变更 + */ + @SaCheckPermission("jixiehetongbiang:machineryContractAlteration:add") + @Log(title = "机械合同变更", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdMachineryContractAlterationBo bo) { + return toAjax(xzdMachineryContractAlterationService.insertByBo(bo)); + } + + /** + * 修改机械合同变更 + */ + @SaCheckPermission("jixiehetongbiang:machineryContractAlteration:edit") + @Log(title = "机械合同变更", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdMachineryContractAlterationBo bo) { + return toAjax(xzdMachineryContractAlterationService.updateByBo(bo)); + } + + /** + * 删除机械合同变更 + * + * @param ids 主键串 + */ + @SaCheckPermission("jixiehetongbiang:machineryContractAlteration:remove") + @Log(title = "机械合同变更", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdMachineryContractAlterationService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/domain/XzdMachineryContractAlteration.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/domain/XzdMachineryContractAlteration.java new file mode 100644 index 00000000..cdc600c9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/domain/XzdMachineryContractAlteration.java @@ -0,0 +1,223 @@ +package org.dromara.xzd.contractManagement.jixiehetongbiang.domain; + +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.io.Serial; +import java.time.LocalDate; + +/** + * 机械合同变更对象 xzd_machinery_contract_alteration + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_machinery_contract_alteration") +public class XzdMachineryContractAlteration extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 合同信息ID(合同编码) + */ + private Long contractInformationId; + + /** + * 单据编码 + */ + private String receiptsCode; + + /** + * 标题 + */ + private String title; + + /** + * 单据日期 + */ + private LocalDate documentDate; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 合同类型 + */ + private String contractType; + + /** + * 变更类型 + */ + private String alterationType; + + /** + * 项目名称 + */ + private String project; + + /** + * 经营模式 + */ + private String businessModel; + + /** + * 原合同造价 + */ + private BigDecimal originalContractCost; + + /** + * 支付比例 + */ + private BigDecimal paymentRatio; + + /** + * 甲方单位 + */ + private Long partyAUnit; + + /** + * 集采模式 + */ + private Long centralizedPurchasingMode; + + /** + * 乙方单位 + */ + private Long artyBUnit; + + /** + * 警示信息 + */ + private String warning; + + /** + * 累计变更金额 + */ + private Long cumulativeChangeAmount; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 备注说明 + */ + private String remarks; + + /** + * 变更原合同单项已结工程量 + */ + private Long biangengyuanhetong; + + /** + * 是否用印:1-是,0-否 + */ + private Long isSeal; + + /** + * 变更后项目经理 + */ + private Long changeProjectManager; + + /** + * 变更后项目责任人 + */ + private Long changeProjectResponsible; + + /** + * 变更后现场经理 + */ + private Long changeSiteManager; + + /** + * 变更后合同备注 + */ + private String changeContractRemarks; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 付款额不能超合同额:1-是,0-否 + */ + private Long paymentNotExceedPayment; + + /** + * 付款额不能超合同额支付比例 + */ + private BigDecimal paymentNotExceedContractRatio; + + /** + * 付款额是否不能超支付比例:1-是,0-否 + */ + private Long paymentNotExceedPaymentRatio; + + /** + * 预结算/结算额是否不能超合同额:1-是,0-否 + */ + private Long preSettlementNotExceedContract; + + /** + * 预结算/结算额不能超合同额比例 + */ + private BigDecimal preSettlementNotExceedContractRatio; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 变更价税合计 + */ + private String changeInTotalAmount; + + /** + * 变更后价税合计 + */ + private String revisedTotalAmount; + + /** + * 合同文本 + */ + private String contractText; + + /** + * 组织id + */ + private Long deptId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/domain/bo/XzdMachineryContractAlterationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/domain/bo/XzdMachineryContractAlterationBo.java new file mode 100644 index 00000000..dd0afc59 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/domain/bo/XzdMachineryContractAlterationBo.java @@ -0,0 +1,269 @@ +package org.dromara.xzd.contractManagement.jixiehetongbiang.domain.bo; + +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.XzdMachineryContractAlteration; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +import org.dromara.xzd.domain.XzdBusinessChange; +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * 机械合同变更业务对象 xzd_machinery_contract_alteration + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdMachineryContractAlteration.class, reverseConvertGenerate = false) +public class XzdMachineryContractAlterationBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 合同信息ID(合同编码) + */ + private Long contractInformationId; + + /** + * 单据编码 + */ + private String receiptsCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate documentDate; + + /** + * 合同名称 + */ + @NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractName; + + /** + * 合同类型 + */ + @NotBlank(message = "合同类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractType; + + /** + * 变更类型 + */ + @NotBlank(message = "变更类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String alterationType; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String project; + + /** + * 经营模式 + */ + private String businessModel; + + /** + * 原合同造价 + */ + private BigDecimal originalContractCost; + + /** + * 支付比例 + */ + private BigDecimal paymentRatio; + + /** + * 甲方单位 + */ + @NotNull(message = "甲方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long partyAUnit; + + /** + * 集采模式 + */ + private Long centralizedPurchasingMode; + + /** + * 乙方单位 + */ + @NotNull(message = "乙方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long artyBUnit; + + /** + * 警示信息 + */ + private String warning; + + /** + * 累计变更金额 + */ + private Long cumulativeChangeAmount; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 备注说明 + */ + private String remarks; + + /** + * 变更原合同单项已结工程量 + */ + private Long biangengyuanhetong; + + /** + * 是否用印:1-是,0-否 + */ + private Long isSeal; + + /** + * 变更后项目经理 + */ + @NotNull(message = "变更后项目经理不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long changeProjectManager; + + /** + * 变更后项目责任人 + */ + @NotNull(message = "变更后项目责任人不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long changeProjectResponsible; + + /** + * 变更后现场经理 + */ + @NotNull(message = "变更后现场经理不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long changeSiteManager; + + /** + * 变更后合同备注 + */ + @NotBlank(message = "变更后合同备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String changeContractRemarks; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 付款额不能超合同额:1-是,0-否 + */ + private Long paymentNotExceedPayment; + + /** + * 付款额不能超合同额支付比例 + */ + private BigDecimal paymentNotExceedContractRatio; + + /** + * 付款额是否不能超支付比例:1-是,0-否 + */ + private Long paymentNotExceedPaymentRatio; + + /** + * 预结算/结算额是否不能超合同额:1-是,0-否 + */ + private Long preSettlementNotExceedContract; + + /** + * 预结算/结算额不能超合同额比例 + */ + private BigDecimal preSettlementNotExceedContractRatio; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 变更价税合计 + */ + private String changeInTotalAmount; + + /** + * 变更后价税合计 + */ + private String revisedTotalAmount; + + /** + * 合同文本 + */ + private String contractText; + + /** + * 组织id + */ + private Long deptId; + + /** + * 印章信息 + */ + private List sealInfo; + + /** + * 设备租聘列表 + */ + + private List jqlist; + + + /** + * 预收款项 + */ + private List yskx; + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + + + /** + * 合同条款 + */ + private List httk; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/domain/vo/XzdMachineryContractAlterationVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/domain/vo/XzdMachineryContractAlterationVo.java new file mode 100644 index 00000000..dc4b56fd --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/domain/vo/XzdMachineryContractAlterationVo.java @@ -0,0 +1,371 @@ +package org.dromara.xzd.contractManagement.jixiehetongbiang.domain.vo; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.XzdMachineryContractAlteration; +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 org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +import org.dromara.xzd.domain.XzdBusinessChange; +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + + +/** + * 机械合同变更视图对象 xzd_machinery_contract_alteration + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdMachineryContractAlteration.class) +public class XzdMachineryContractAlterationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 合同信息ID(合同编码) + */ + @ExcelProperty(value = "合同信息ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "合=同编码") + private Long contractInformationId; + + /** + * 合同信息ID(合同编码) + */ + @ExcelProperty(value = "合同信息ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "合=同编码") + private String contractInformationName; + + /** + * 单据编码 + */ + @ExcelProperty(value = "单据编码") + private String receiptsCode; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private LocalDate documentDate; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 合同类型 + */ + @ExcelProperty(value = "合同类型") + private String contractType; + + /** + * 变更类型 + */ + @ExcelProperty(value = "变更类型") + private String alterationType; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String project; + + /** + * 经营模式 + */ + @ExcelProperty(value = "经营模式") + private String businessModel; + + /** + * 原合同造价 + */ + @ExcelProperty(value = "原合同造价") + private BigDecimal originalContractCost; + + /** + * 支付比例 + */ + @ExcelProperty(value = "支付比例") + private BigDecimal paymentRatio; + + /** + * 甲方单位 + */ + @ExcelProperty(value = "甲方单位") + private Long partyAUnit; + + /** + * 甲方单位 + */ + @ExcelProperty(value = "甲方单位") + @Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyAUnit") + private String partyAUnitName; + /** + * 集采模式 + */ + @ExcelProperty(value = "集采模式") + private Long centralizedPurchasingMode; + + /** + * 乙方单位 + */ + @ExcelProperty(value = "乙方单位") + private Long artyBUnit; + + /** + * 乙方单位 + */ + @ExcelProperty(value = "乙方单位") + @Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "artyBUnit") + private String artyBUnitName; + + /** + * 警示信息 + */ + @ExcelProperty(value = "警示信息") + private String warning; + + /** + * 累计变更金额 + */ + @ExcelProperty(value = "累计变更金额") + private Long cumulativeChangeAmount; + + /** + * 支付条款 + */ + @ExcelProperty(value = "支付条款") + private String paymentTerms; + + /** + * 备注说明 + */ + @ExcelProperty(value = "备注说明") + private String remarks; + + /** + * 变更原合同单项已结工程量 + */ + @ExcelProperty(value = "变更原合同单项已结工程量") + private Long biangengyuanhetong; + + /** + * 是否用印:1-是,0-否 + */ + @ExcelProperty(value = "是否用印:1-是,0-否") + private Long isSeal; + + /** + * 变更后项目经理 + */ + @ExcelProperty(value = "变更后项目经理") + private Long changeProjectManager; + + /** + * 变更后项目经理 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "changeProjectManager") + @ExcelProperty(value = "变更后项目经理") + private String changeProjectManageName; + + /** + * 变更后项目责任人 + */ + @ExcelProperty(value = "变更后项目责任人") + private Long changeProjectResponsible; + + + /** + * 变更后项目责任人 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "changeProjectResponsible") + @ExcelProperty(value = "变更后项目责任人") + private String changeProjectResponsibleName; + + + /** + * 变更后现场经理 + */ + @ExcelProperty(value = "变更后现场经理") + private Long changeSiteManager; + + /** + * 变更后现场经理 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "changeSiteManager") + @ExcelProperty(value = "变更后现场经理") + private String changeSiteManagerName; + + /** + * 变更后合同备注 + */ + @ExcelProperty(value = "变更后合同备注") + private String changeContractRemarks; + + /** + * 项目大类 + */ + @ExcelProperty(value = "项目大类") + private String projectCategory; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private String projectType; + + /** + * 付款额不能超合同额:1-是,0-否 + */ + @ExcelProperty(value = "付款额不能超合同额:1-是,0-否") + private Long paymentNotExceedPayment; + + /** + * 付款额不能超合同额支付比例 + */ + @ExcelProperty(value = "付款额不能超合同额支付比例") + private BigDecimal paymentNotExceedContractRatio; + + /** + * 付款额是否不能超支付比例:1-是,0-否 + */ + @ExcelProperty(value = "付款额是否不能超支付比例:1-是,0-否") + private Long paymentNotExceedPaymentRatio; + + /** + * 预结算/结算额是否不能超合同额:1-是,0-否 + */ + @ExcelProperty(value = "预结算/结算额是否不能超合同额:1-是,0-否") + private Long preSettlementNotExceedContract; + + /** + * 预结算/结算额不能超合同额比例 + */ + @ExcelProperty(value = "预结算/结算额不能超合同额比例") + private BigDecimal preSettlementNotExceedContractRatio; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + /** + * 变更价税合计 + */ + @ExcelProperty(value = "变更价税合计") + private String changeInTotalAmount; + + /** + * 变更后价税合计 + */ + @ExcelProperty(value = "变更后价税合计") + private String revisedTotalAmount; + + /** + * 合同文本 + */ + @ExcelProperty(value = "合同文本") + private String contractText; + + /** + * 组织id + */ + @ExcelProperty(value = "组织id") + private Long deptId; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建者 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + @TableField(fill = FieldFill.INSERT) + private Long createByName; + + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * 印章信息 + */ + private List sealInfo; + + /** + * 设备租聘列表 + */ + + private List jqlist; + + + /** + * 预收款项 + */ + private List yskx; + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + + + /** + * 合同条款 + */ + private List httk; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/mapper/XzdMachineryContractAlterationMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/mapper/XzdMachineryContractAlterationMapper.java new file mode 100644 index 00000000..f7146365 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/mapper/XzdMachineryContractAlterationMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.contractManagement.jixiehetongbiang.mapper; + +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.XzdMachineryContractAlteration; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.vo.XzdMachineryContractAlterationVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械合同变更Mapper接口 + * + * @author Lion Li + * @date 2025-11-12 + */ +public interface XzdMachineryContractAlterationMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/service/IXzdMachineryContractAlterationService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/service/IXzdMachineryContractAlterationService.java new file mode 100644 index 00000000..33bd0b6a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/service/IXzdMachineryContractAlterationService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.contractManagement.jixiehetongbiang.service; + +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.vo.XzdMachineryContractAlterationVo; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.bo.XzdMachineryContractAlterationBo; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.XzdMachineryContractAlteration; +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-11-12 + */ +public interface IXzdMachineryContractAlterationService extends IService{ + + /** + * 查询机械合同变更 + * + * @param id 主键 + * @return 机械合同变更 + */ + XzdMachineryContractAlterationVo queryById(Long id); + + /** + * 分页查询机械合同变更列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械合同变更分页列表 + */ + TableDataInfo queryPageList(XzdMachineryContractAlterationBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械合同变更列表 + * + * @param bo 查询条件 + * @return 机械合同变更列表 + */ + List queryList(XzdMachineryContractAlterationBo bo); + + /** + * 新增机械合同变更 + * + * @param bo 机械合同变更 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdMachineryContractAlterationBo bo); + + /** + * 修改机械合同变更 + * + * @param bo 机械合同变更 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdMachineryContractAlterationBo 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/contractManagement/jixiehetongbiang/service/impl/XzdMachineryContractAlterationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/service/impl/XzdMachineryContractAlterationServiceImpl.java new file mode 100644 index 00000000..50a92c19 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongbiang/service/impl/XzdMachineryContractAlterationServiceImpl.java @@ -0,0 +1,445 @@ +package org.dromara.xzd.contractManagement.jixiehetongbiang.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.event.ProcessDeleteEvent; +import org.dromara.common.core.domain.event.ProcessEvent; +import org.dromara.common.core.domain.event.ProcessTaskEvent; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.contractManagement.caigouhetongbiangeng.domain.XzdPurchaseContractAlteration; +import org.dromara.xzd.contractManagement.caigouhetongbiangeng.domain.vo.XzdPurchaseContractAlterationVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdEquipmentLeasingVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdContractMachineryService; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdEquipmentLeasingService; +import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo; +import org.dromara.xzd.domain.XzdBusinessChange; +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.vo.XzdBusinessSealVo; +import org.dromara.xzd.enums.XzdClassEnum; +import org.dromara.xzd.service.IXzdContractAdvanceInfoService; +import org.dromara.xzd.service.IXzdContractClauseService; +import org.dromara.xzd.service.IXzdDeductionItemsService; +import org.dromara.xzd.service.impl.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Service; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.bo.XzdMachineryContractAlterationBo; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.vo.XzdMachineryContractAlterationVo; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.XzdMachineryContractAlteration; +import org.dromara.xzd.contractManagement.jixiehetongbiang.mapper.XzdMachineryContractAlterationMapper; +import org.dromara.xzd.contractManagement.jixiehetongbiang.service.IXzdMachineryContractAlterationService; + +import java.util.*; + +/** + * 机械合同变更Service业务层处理 + * + * @author Lion Li + * @date 2025-11-12 + */ +@RequiredArgsConstructor +@Service +@Slf4j +public class XzdMachineryContractAlterationServiceImpl extends ServiceImpl implements IXzdMachineryContractAlterationService { + + private final XzdMachineryContractAlterationMapper baseMapper; + private final IXzdContractMachineryService xzdContractMachineryService; + + @Autowired + private XzdBusinessChangeServiceImpl xzdBusinessChangeService; + + @Autowired + private XzdBusinessSealServiceImpl xzdBusinessSealService; + + @Autowired + private XzdContractAdvanceInfoServiceImpl xzdContractAdvanceInfoService; + @Autowired + private XzdDeductionItemsServiceImpl xzdDeductionItemsService; + @Autowired + private XzdContractClauseServiceImpl xzdContractClauseService; + + @Autowired + private SysOssServiceImpl sysOssService; + + + private final IXzdContractAdvanceInfoService iXzdContractAdvanceInfoService; + + private final IXzdDeductionItemsService iXzdDeductionItemsService; + + private final IXzdContractClauseService iXzdContractClauseService; + + + private final IXzdEquipmentLeasingService xzdEquipmentLeasingService; + + /** + * 查询机械合同变更 + * + * @param id 主键 + * @return 机械合同变更 + */ + @Override + public XzdMachineryContractAlterationVo queryById(Long id){ + + XzdMachineryContractAlterationVo xzdPurchaseContractAlterationVo = baseMapper.selectVoById(id); + List list = List.of(xzdPurchaseContractAlterationVo); + saveValue(list); + return list.getFirst(); + } + + /** + * 分页查询机械合同变更列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械合同变更分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdMachineryContractAlterationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + saveValue(result.getRecords()); + + return TableDataInfo.build(result); + } + + + + private void saveValue(List records) { + for (XzdMachineryContractAlterationVo item : records) { + // 机械 + List xzdEquipmentLeasings = xzdEquipmentLeasingService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdEquipmentLeasing::getRelevanceId, item.getId())); + if (xzdEquipmentLeasings != null && xzdEquipmentLeasings.size() > 0) { + item.setJqlist(xzdEquipmentLeasings); + } + + // 合同编码 + if (item.getContractInformationId() != null){ + XzdContractMachineryVo vo = xzdContractMachineryService.queryById(item.getContractInformationId()); + if (vo != null){ + item.setContractInformationName(vo.getContractCode()); + } + + } + //印章信息 + LambdaQueryWrapper xzdBusinessChangeWrapper = new LambdaQueryWrapper<>(); + xzdBusinessChangeWrapper.eq(XzdBusinessChange::getContractChangeId, item.getId()); + List xzdBusinessChanges = xzdBusinessChangeService.list(xzdBusinessChangeWrapper); + for (XzdBusinessChange businessChange : xzdBusinessChanges) { + XzdBusinessSealVo sealVo = xzdBusinessSealService.queryById(businessChange.getBusinessId()); + if (sealVo != null){ + businessChange.setSealName(sealVo.getYzName()); + } + } + item.setSealInfo(xzdBusinessChanges); + //合同文本-预收款项 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId()); + List advanceInfos = xzdContractAdvanceInfoService.list(lambdaQueryWrapper); + item.setYskx(advanceInfos); + + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, item.getId()); + List list = xzdDeductionItemsService.list(lambdaQueryWrapper1); + item.setKkyjlx(list); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, item.getId()); + List list1 = xzdContractClauseService.list(lambdaQueryWrapper2); + item.setHttk(list1); + + } + } + + + /** + * 查询符合条件的机械合同变更列表 + * + * @param bo 查询条件 + * @return 机械合同变更列表 + */ + @Override + public List queryList(XzdMachineryContractAlterationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdMachineryContractAlterationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdMachineryContractAlteration::getId); + lqw.eq(bo.getContractInformationId() != null, XzdMachineryContractAlteration::getContractInformationId, bo.getContractInformationId()); + lqw.eq(StringUtils.isNotBlank(bo.getReceiptsCode()), XzdMachineryContractAlteration::getReceiptsCode, bo.getReceiptsCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdMachineryContractAlteration::getTitle, bo.getTitle()); + lqw.eq(bo.getDocumentDate() != null, XzdMachineryContractAlteration::getDocumentDate, bo.getDocumentDate()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdMachineryContractAlteration::getContractName, bo.getContractName()); + lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdMachineryContractAlteration::getContractType, bo.getContractType()); + lqw.eq(StringUtils.isNotBlank(bo.getAlterationType()), XzdMachineryContractAlteration::getAlterationType, bo.getAlterationType()); + lqw.eq(StringUtils.isNotBlank(bo.getProject()), XzdMachineryContractAlteration::getProject, bo.getProject()); + lqw.eq(StringUtils.isNotBlank(bo.getBusinessModel()), XzdMachineryContractAlteration::getBusinessModel, bo.getBusinessModel()); + lqw.eq(bo.getOriginalContractCost() != null, XzdMachineryContractAlteration::getOriginalContractCost, bo.getOriginalContractCost()); + lqw.eq(bo.getPaymentRatio() != null, XzdMachineryContractAlteration::getPaymentRatio, bo.getPaymentRatio()); + lqw.eq(bo.getPartyAUnit() != null, XzdMachineryContractAlteration::getPartyAUnit, bo.getPartyAUnit()); + lqw.eq(bo.getCentralizedPurchasingMode() != null, XzdMachineryContractAlteration::getCentralizedPurchasingMode, bo.getCentralizedPurchasingMode()); + lqw.eq(bo.getArtyBUnit() != null, XzdMachineryContractAlteration::getArtyBUnit, bo.getArtyBUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getWarning()), XzdMachineryContractAlteration::getWarning, bo.getWarning()); + lqw.eq(bo.getCumulativeChangeAmount() != null, XzdMachineryContractAlteration::getCumulativeChangeAmount, bo.getCumulativeChangeAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdMachineryContractAlteration::getPaymentTerms, bo.getPaymentTerms()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdMachineryContractAlteration::getRemarks, bo.getRemarks()); + lqw.eq(bo.getBiangengyuanhetong() != null, XzdMachineryContractAlteration::getBiangengyuanhetong, bo.getBiangengyuanhetong()); + lqw.eq(bo.getIsSeal() != null, XzdMachineryContractAlteration::getIsSeal, bo.getIsSeal()); + lqw.eq(bo.getChangeProjectManager() != null, XzdMachineryContractAlteration::getChangeProjectManager, bo.getChangeProjectManager()); + lqw.eq(bo.getChangeProjectResponsible() != null, XzdMachineryContractAlteration::getChangeProjectResponsible, bo.getChangeProjectResponsible()); + lqw.eq(bo.getChangeSiteManager() != null, XzdMachineryContractAlteration::getChangeSiteManager, bo.getChangeSiteManager()); + lqw.eq(StringUtils.isNotBlank(bo.getChangeContractRemarks()), XzdMachineryContractAlteration::getChangeContractRemarks, bo.getChangeContractRemarks()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdMachineryContractAlteration::getProjectCategory, bo.getProjectCategory()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdMachineryContractAlteration::getProjectType, bo.getProjectType()); + lqw.eq(bo.getPaymentNotExceedPayment() != null, XzdMachineryContractAlteration::getPaymentNotExceedPayment, bo.getPaymentNotExceedPayment()); + lqw.eq(bo.getPaymentNotExceedContractRatio() != null, XzdMachineryContractAlteration::getPaymentNotExceedContractRatio, bo.getPaymentNotExceedContractRatio()); + lqw.eq(bo.getPaymentNotExceedPaymentRatio() != null, XzdMachineryContractAlteration::getPaymentNotExceedPaymentRatio, bo.getPaymentNotExceedPaymentRatio()); + lqw.eq(bo.getPreSettlementNotExceedContract() != null, XzdMachineryContractAlteration::getPreSettlementNotExceedContract, bo.getPreSettlementNotExceedContract()); + lqw.eq(bo.getPreSettlementNotExceedContractRatio() != null, XzdMachineryContractAlteration::getPreSettlementNotExceedContractRatio, bo.getPreSettlementNotExceedContractRatio()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdMachineryContractAlteration::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdMachineryContractAlteration::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getChangeInTotalAmount()), XzdMachineryContractAlteration::getChangeInTotalAmount, bo.getChangeInTotalAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getRevisedTotalAmount()), XzdMachineryContractAlteration::getRevisedTotalAmount, bo.getRevisedTotalAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getContractText()), XzdMachineryContractAlteration::getContractText, bo.getContractText()); + lqw.eq(bo.getDeptId() != null, XzdMachineryContractAlteration::getDeptId, bo.getDeptId()); + return lqw; + } + + /** + * 新增机械合同变更 + * + * @param bo 机械合同变更 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdMachineryContractAlterationBo bo) { + XzdMachineryContractAlteration add = MapstructUtils.convert(bo, XzdMachineryContractAlteration.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("JXHTXX-"); + add.setReceiptsCode(banBen); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + String tableName = XzdClassEnum.JIXIEHETONGBIANG_XINXI.getClassName(); + //合同文本-预收款项 + for (XzdContractAdvanceInfo yskx : bo.getYskx()) { + yskx.setTableName(tableName); + yskx.setContractDetailsId(add.getId()); + } + xzdContractAdvanceInfoService.saveBatch(bo.getYskx()); + + //合同条款-扣款与奖励项 + for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) { + kkyjlx.setTableName(tableName); + kkyjlx.setContractDetailsId(add.getId()); + } + xzdDeductionItemsService.saveBatch(bo.getKkyjlx()); + + //合同条款-合同条款 + for (XzdContractClause clause : bo.getHttk()) { + clause.setTableName(tableName); + clause.setContractDetailsId(add.getId()); + } + xzdContractClauseService.saveBatch(bo.getHttk()); + //印章信息 + if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){ + for (XzdBusinessChange sealInfo : bo.getSealInfo()) { + sealInfo.setContractChangeId(add.getId()); + sealInfo.setType("14"); + } + xzdBusinessChangeService.saveBatch(bo.getSealInfo()); + } +// 机械列表 + if (bo.getJqlist() != null && !bo.getJqlist().isEmpty()){ + for (XzdEquipmentLeasing xzdEquipmentLeasing : bo.getJqlist()) { + xzdEquipmentLeasing.setRelevanceId(add.getId()); + } + xzdEquipmentLeasingService.saveBatch(bo.getJqlist()); + } + + + return flag; + } + + /** + * 修改机械合同变更 + * + * @param bo 机械合同变更 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdMachineryContractAlterationBo bo) { + XzdMachineryContractAlteration update = MapstructUtils.convert(bo, XzdMachineryContractAlteration.class); + validEntityBeforeSave(update); + + /** + * 预收款项 优先删除数据在添加 + */ + String tableName = XzdClassEnum.JIXIEHETONG_JINDU.getClassName(); + HashMap hashMap = new HashMap<>(); + hashMap.put("contract_details_id", bo.getId()); + List yskx = bo.getYskx(); + iXzdContractAdvanceInfoService.getBaseMapper().deleteByMap(hashMap); + if (yskx != null){ + yskx.forEach(item -> { + item.setTableName(tableName); + item.setContractDetailsId(bo.getId()); + }); + iXzdContractAdvanceInfoService.saveBatch(yskx); + } + /** + * 扣款与奖励项 + */ + List kkyjlx = bo.getKkyjlx(); + iXzdDeductionItemsService.getBaseMapper().deleteByMap(hashMap); + if(kkyjlx != null){ + kkyjlx.forEach(item -> { + item.setTableName(tableName); + item.setContractDetailsId(bo.getId()); + }); + iXzdDeductionItemsService.saveBatch(kkyjlx); + } + /** + * 合同条款 + */ + List httk = bo.getHttk(); + iXzdContractClauseService.getBaseMapper().deleteByMap(hashMap); + if (httk != null){ + httk.forEach(item -> { + item.setTableName(tableName); + item.setContractDetailsId(bo.getId()); + }); + iXzdContractClauseService.saveBatch(httk); + } + // 机械租聘 + xzdEquipmentLeasingService.getBaseMapper().delete(new LambdaQueryWrapper().eq(XzdEquipmentLeasing::getRelevanceId,bo.getId())); + if (bo.getJqlist() != null && !bo.getJqlist().isEmpty()){ + for (XzdEquipmentLeasing xzdEquipmentLeasing : bo.getJqlist()) { + xzdEquipmentLeasing.setRelevanceId(update.getId()); + } + xzdEquipmentLeasingService.saveBatch(bo.getJqlist()); + } + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdMachineryContractAlteration entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械合同变更信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + + for (Long id : ids) { + XzdMachineryContractAlterationVo 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); + } + } + } + } + //印章信息 + xzdBusinessChangeService.remove(new LambdaQueryWrapper().in(XzdBusinessChange::getContractChangeId, ids)); + //合同文本-预收款项 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(XzdContractAdvanceInfo::getContractDetailsId, ids); + xzdContractAdvanceInfoService.remove(lambdaQueryWrapper); + + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.in(XzdDeductionItems::getContractDetailsId, ids); + xzdDeductionItemsService.remove(lambdaQueryWrapper1); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.in(XzdContractClause::getContractDetailsId, ids); + xzdContractClauseService.remove(lambdaQueryWrapper2); +// 机械租聘 + xzdEquipmentLeasingService.getBaseMapper().delete(new LambdaQueryWrapper().in(XzdEquipmentLeasing::getRelevanceId,ids)); + + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等) + * 正常使用只需#processEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processEvent 参数 + */ + @org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdjxhtbg')") + public void processPlansHandlErequipmentList(ProcessEvent processEvent) { + log.info("机械合同变更审核任务执行了{}", processEvent.toString()); + String id = processEvent.getBusinessId(); + XzdMachineryContractAlteration vo = baseMapper.selectById(Long.valueOf(id)); + if (vo == null) { + return; + } + vo.setAuditStatus(processEvent.getStatus()); + this.updateById(vo); + } + + /** + * 执行任务创建监听 + * 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断 + * 在方法中判断流程节点key + * if ("xxx".equals(processTaskEvent.getNodeCode())) { + * //执行业务逻辑 + * } + * + * @param processTaskEvent 参数 + */ + @org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdjxhtbg')") + public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) { + log.info("机械合同变更审核任务创建了{}", processTaskEvent.toString()); + } + + /** + * 监听删除流程事件 + * 正常使用只需#processDeleteEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processDeleteEvent 参数 + */ + @EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdjxhtbg')") + public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) { + log.info("机械合同变更删除流程事件,机械合同变更审核任务执行了{}", processDeleteEvent.toString()); + } + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/controller/XzdContractMachineryController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/controller/XzdContractMachineryController.java new file mode 100644 index 00000000..621a6031 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/controller/XzdContractMachineryController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo.XzdContractMachineryBo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdContractMachineryService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械合同信息 + * + * @author Lion Li + * @date 2025-11-12 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/xzd/jixiehetongxinxi/contractMachinery") +public class XzdContractMachineryController extends BaseController { + + private final IXzdContractMachineryService xzdContractMachineryService; + + /** + * 查询机械合同信息列表 + */ + @SaCheckPermission("jixiehetongxinxi:contractMachinery:list") + @GetMapping("/list") + public TableDataInfo list(XzdContractMachineryBo bo, PageQuery pageQuery) { + return xzdContractMachineryService.queryPageList(bo, pageQuery); + } + + /** + * 导出机械合同信息列表 + */ + @SaCheckPermission("jixiehetongxinxi:contractMachinery:export") + @Log(title = "机械合同信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdContractMachineryBo bo, HttpServletResponse response) { + List list = xzdContractMachineryService.queryList(bo); + ExcelUtil.exportExcel(list, "机械合同信息", XzdContractMachineryVo.class, response); + } + + /** + * 获取机械合同信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jixiehetongxinxi:contractMachinery:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdContractMachineryService.queryById(id)); + } + + /** + * 新增机械合同信息 + */ + @SaCheckPermission("jixiehetongxinxi:contractMachinery:add") + @Log(title = "机械合同信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdContractMachineryBo bo) { + return toAjax(xzdContractMachineryService.insertByBo(bo)); + } + + /** + * 修改机械合同信息 + */ + @SaCheckPermission("jixiehetongxinxi:contractMachinery:edit") + @Log(title = "机械合同信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdContractMachineryBo bo) { + return toAjax(xzdContractMachineryService.updateByBo(bo)); + } + + /** + * 删除机械合同信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("jixiehetongxinxi:contractMachinery:remove") + @Log(title = "机械合同信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdContractMachineryService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/XzdContractMachinery.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/XzdContractMachinery.java new file mode 100644 index 00000000..d996bac3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/XzdContractMachinery.java @@ -0,0 +1,248 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.domain; + +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.io.Serial; +import java.time.LocalDate; + +/** + * 机械合同信息对象 xzd_contract_machinery + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_contract_machinery") +public class XzdContractMachinery extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 单据日期 + */ + private LocalDate documentDate; + + /** + * 合同类型,例如:主要物资采购合同 + */ + private String contractType; + + /** + * 项目 + */ + private Long project; + + /** + * 经营模式 + */ + private String businessModel; + + /** + * 原合同造价 + */ + private BigDecimal originalContractCost; + + /** + * 签订日期 + */ + private LocalDate signingDate; + + /** + * 甲方单位 + */ + private Long partyAUnit; + + /** + * 含税合同金额 + */ + private BigDecimal taxInclusiveContractAmount; + + /** + * 合同状态,例如:新增 + */ + private String contractStatus; + + /** + * 累计变更金额 + */ + private BigDecimal cumulativeChangeAmount; + + /** + * 归档日期 + */ + private LocalDate filingDate; + + /** + * 管理组织 + */ + private Long managementOrganization; + + /** + * 开票单位(支持搜索,必填) + */ + private Long invoiceIssuingUnit; + + /** + * 收票单位(支持搜索,必填) + */ + private Long invoiceReceivingUnit; + + /** + * 警示信息 + */ + private String warning; + + /** + * 备注说明 + */ + private String remarks; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 集采模式 + */ + private Long centralizedPurchasingMode; + + /** + * 乙方单位 + */ + private Long partyBUnit; + + /** + * 其他收入合同组织 + */ + private Long otherIncomeContractOrganization; + + /** + * 其他收入合同项目 + */ + private Long otherIncomeContractProject; + + /** + * 其他收入合同类型 + */ + private Long otherIncomeContractType; + + /** + * 是否启用:1-是,0-否 + */ + private Long isEnabled; + + /** + * 大写合同价税合计 + */ + private String capitalizedTaxInclusiveTotal; + + /** + * 签约组织 + */ + private Long signingOrganization; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 是否用印:1-是,0-否 + */ + private Long isSeal; + + /** + * 是否为固定单价合同:1-是,0-否 + */ + private Long fixedUnitPriceContract; + + /** + * 是否为总价包干合同:1-是,0-否 + */ + private Long lumpSumContract; + + /** + * 付款额是否不能超支付比例:1-是,0-否 + */ + private Long paymentNotExceedPaymentRatio; + + /** + * 付款额不能超合同额:1-是,0-否 + */ + private Long paymentNotExceedPayment; + + /** + * 付款额不能超合同额支付比例 + */ + private BigDecimal paymentNotExceedContractRatio; + + /** + * 预结算/结算额是否不能超合同额:1-是,0-否 + */ + private Long preSettlementNotExceedContract; + + /** + * 预结算/结算额不能超合同额比例 + */ + private BigDecimal preSettlementNotExceedContractRatio; + + /** + * 是否终止 + */ + private String sfzz; + + /** + * 合同文本 + */ + private String contractText; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 组织id + */ + private Long deptId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/XzdEquipmentLeasing.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/XzdEquipmentLeasing.java new file mode 100644 index 00000000..54d6c2dd --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/XzdEquipmentLeasing.java @@ -0,0 +1,81 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.domain; + +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 com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 机械合同信息-设备租赁对象 xzd_equipment_leasing + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_equipment_leasing") +public class XzdEquipmentLeasing extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 关联ID + */ + private Long relevanceId; + + /** + * 设备名称 + */ + private String equipmentName; + + /** + * 规格型号 + */ + private String specificationModel; + + /** + * 数量(台) + */ + private Long quantity; + + /** + * 租赁金额(元/H) + */ + private BigDecimal rentalAmountPerHour; + + /** + * 工程量( H) + */ + private BigDecimal engineeringQuantity; + + /** + * 金额(元) + */ + private BigDecimal totalAmount; + + /** + * 备注 + */ + private String remarks; + + /** + * 审核状态 + */ + private String auditStatus; + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/bo/XzdContractMachineryBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/bo/XzdContractMachineryBo.java new file mode 100644 index 00000000..65c661f1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/bo/XzdContractMachineryBo.java @@ -0,0 +1,290 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo; + +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdContractMachinery; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +import org.dromara.xzd.domain.XzdBusinessChange; +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * 机械合同信息业务对象 xzd_contract_machinery + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdContractMachinery.class, reverseConvertGenerate = false) +public class XzdContractMachineryBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 合同名称 + */ + @NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractName; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate documentDate; + + /** + * 合同类型,例如:主要物资采购合同 + */ + @NotBlank(message = "合同类型,例如:主要物资采购合同不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractType; + + /** + * 项目 + */ + @NotNull(message = "项目不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long project; + + /** + * 经营模式 + */ + private String businessModel; + + /** + * 原合同造价 + */ + private BigDecimal originalContractCost; + + /** + * 签订日期 + */ + private LocalDate signingDate; + + /** + * 甲方单位 + */ + @NotNull(message = "甲方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long partyAUnit; + + /** + * 含税合同金额 + */ + private BigDecimal taxInclusiveContractAmount; + + /** + * 合同状态,例如:新增 + */ + private String contractStatus; + + /** + * 累计变更金额 + */ + private BigDecimal cumulativeChangeAmount; + + /** + * 归档日期 + */ + private LocalDate filingDate; + + /** + * 管理组织 + */ + private Long managementOrganization; + + /** + * 开票单位(支持搜索,必填) + */ + @NotNull(message = "开票单位(支持搜索,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long invoiceIssuingUnit; + + /** + * 收票单位(支持搜索,必填) + */ + @NotNull(message = "收票单位(支持搜索,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long invoiceReceivingUnit; + + /** + * 警示信息 + */ + private String warning; + + /** + * 备注说明 + */ + private String remarks; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 集采模式 + */ + private Long centralizedPurchasingMode; + + /** + * 乙方单位 + */ + @NotNull(message = "乙方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long partyBUnit; + + /** + * 其他收入合同组织 + */ + private Long otherIncomeContractOrganization; + + /** + * 其他收入合同项目 + */ + private Long otherIncomeContractProject; + + /** + * 其他收入合同类型 + */ + private Long otherIncomeContractType; + + /** + * 是否启用:1-是,0-否 + */ + private Long isEnabled; + + /** + * 大写合同价税合计 + */ + private String capitalizedTaxInclusiveTotal; + + /** + * 签约组织 + */ + private Long signingOrganization; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 是否用印:1-是,0-否 + */ + private Long isSeal; + + /** + * 是否为固定单价合同:1-是,0-否 + */ + private Long fixedUnitPriceContract; + + /** + * 是否为总价包干合同:1-是,0-否 + */ + private Long lumpSumContract; + + /** + * 付款额是否不能超支付比例:1-是,0-否 + */ + private Long paymentNotExceedPaymentRatio; + + /** + * 付款额不能超合同额:1-是,0-否 + */ + private Long paymentNotExceedPayment; + + /** + * 付款额不能超合同额支付比例 + */ + private BigDecimal paymentNotExceedContractRatio; + + /** + * 预结算/结算额是否不能超合同额:1-是,0-否 + */ + private Long preSettlementNotExceedContract; + + /** + * 预结算/结算额不能超合同额比例 + */ + private BigDecimal preSettlementNotExceedContractRatio; + + /** + * 是否终止 + */ + private String sfzz; + + /** + * 合同文本 + */ + private String contractText; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 组织id + */ + private Long deptId; + + + /** + * 印章信息 + */ + private List sealInfo; + + /** + * 设备租聘列表 + */ + + private List jqlist; + + + /** + * 预收款项 + */ + private List yskx; + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + + + /** + * 合同条款 + */ + private List httk; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/bo/XzdEquipmentLeasingBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/bo/XzdEquipmentLeasingBo.java new file mode 100644 index 00000000..5db38374 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/bo/XzdEquipmentLeasingBo.java @@ -0,0 +1,90 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo; + +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 机械合同信息-设备租赁业务对象 xzd_equipment_leasing + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdEquipmentLeasing.class, reverseConvertGenerate = false) +public class XzdEquipmentLeasingBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 关联ID + */ + private Long relevanceId; + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentName; + + /** + * 规格型号 + */ + private String specificationModel; + + /** + * 数量(台) + */ + @NotNull(message = "数量(台)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long quantity; + + /** + * 租赁金额(元/H) + */ + private BigDecimal rentalAmountPerHour; + + /** + * 工程量( H) + */ + private BigDecimal engineeringQuantity; + + /** + * 金额(元) + */ + private BigDecimal totalAmount; + + /** + * 备注 + */ + private String remarks; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新时间 + */ + private Date updatedTime; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/vo/XzdContractMachineryVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/vo/XzdContractMachineryVo.java new file mode 100644 index 00000000..6a7cf185 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/vo/XzdContractMachineryVo.java @@ -0,0 +1,428 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdContractMachinery; +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 org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +import org.dromara.xzd.domain.XzdBusinessChange; +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + + +/** + * 机械合同信息视图对象 xzd_contract_machinery + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdContractMachinery.class) +public class XzdContractMachineryVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 合同编码 + */ + @ExcelProperty(value = "合同编码") + private String contractCode; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private LocalDate documentDate; + + /** + * 合同类型,例如:主要物资采购合同 + */ + @ExcelProperty(value = "合同类型,例如:主要物资采购合同") + private String contractType; + /** + * 阶段状态 + */ + private String jdzt; + + /** + * 项目 + */ + @ExcelProperty(value = "项目") + private Long project; + + /** + * 项目 + */ + @ExcelProperty(value = "项目") + @Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "project") + private String projectName; + + + /** + * 经营模式 + */ + @ExcelProperty(value = "经营模式") + private String businessModel; + + /** + * 原合同造价 + */ + @ExcelProperty(value = "原合同造价") + private BigDecimal originalContractCost; + + /** + * 签订日期 + */ + @ExcelProperty(value = "签订日期") + private LocalDate signingDate; + + /** + * 甲方单位 + */ + @ExcelProperty(value = "甲方单位") + private Long partyAUnit; + + /** + * 甲方单位名称 + */ + @ExcelProperty(value = "甲方单位名称") + @Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyAUnit") + private String partyAUnitName; + + /** + * 含税合同金额 + */ + @ExcelProperty(value = "含税合同金额") + private BigDecimal taxInclusiveContractAmount; + + /** + * 合同状态,例如:新增 + */ + @ExcelProperty(value = "合同状态,例如:新增") + private String contractStatus; + + /** + * 累计变更金额 + */ + @ExcelProperty(value = "累计变更金额") + private BigDecimal cumulativeChangeAmount; + + /** + * 归档日期 + */ + @ExcelProperty(value = "归档日期") + private LocalDate filingDate; + + /** + * 管理组织 + */ + @ExcelProperty(value = "管理组织") + private Long managementOrganization; + + /** + * 管理组织名称 + */ + @ExcelProperty(value = "管理组织名称") + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "managementOrganization") + private String managementOrganizationName; + + + /** + * 开票单位(支持搜索,必填) + */ + @ExcelProperty(value = "开票单位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "支=持搜索,必填") + private Long invoiceIssuingUnit; + + /** + * 开票单位名称 + */ + @ExcelProperty(value = "开票单位名称", converter = ExcelDictConvert.class) + @Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "invoiceIssuingUnit") + private String invoiceIssuingUnitName; + + /** + * 收票单位(支持搜索,必填) + */ + @ExcelProperty(value = "收票单位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "支=持搜索,必填") + private Long invoiceReceivingUnit; + + /** + * 收票单位名称 + */ + @ExcelProperty(value = "收票单位名称", converter = ExcelDictConvert.class) + @Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "invoiceReceivingUnit") + private String invoiceReceivingUnitName; + + /** + * 警示信息 + */ + @ExcelProperty(value = "警示信息") + private String warning; + + /** + * 备注说明 + */ + @ExcelProperty(value = "备注说明") + private String remarks; + + /** + * 支付条款 + */ + @ExcelProperty(value = "支付条款") + private String paymentTerms; + + /** + * 集采模式 + */ + @ExcelProperty(value = "集采模式") + private Long centralizedPurchasingMode; + + /** + * 乙方单位 + */ + @ExcelProperty(value = "乙方单位") + private Long partyBUnit; + + /** + * 乙方单位名称 + */ + @ExcelProperty(value = "乙方单位名称") + @Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyBUnit") + private String partyBUnitName; + + /** + * 其他收入合同组织 + */ + @ExcelProperty(value = "其他收入合同组织") + private Long otherIncomeContractOrganization; + + /** + * 其他收入合同组织名称 + */ + @ExcelProperty(value = "其他收入合同组织名称") + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "otherIncomeContractOrganization") + private String otherIncomeContractOrganizationName; + + /** + * 其他收入合同项目 + */ + @ExcelProperty(value = "其他收入合同项目") + private Long otherIncomeContractProject; + + /** + * 其他收入合同项目名称 + */ + @ExcelProperty(value = "其他收入合同项目名称") + @Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "otherIncomeContractProject") + private String otherIncomeContractProjectName; + + /** + * 其他收入合同类型 + */ + @ExcelProperty(value = "其他收入合同类型") + private Long otherIncomeContractType; + + /** + * 是否启用:1-是,0-否 + */ + @ExcelProperty(value = "是否启用:1-是,0-否") + private Long isEnabled; + + /** + * 大写合同价税合计 + */ + @ExcelProperty(value = "大写合同价税合计") + private String capitalizedTaxInclusiveTotal; + + /** + * 签约组织 + */ + @ExcelProperty(value = "签约组织") + private Long signingOrganization; + + /** + * 签约组织名称 + */ + @ExcelProperty(value = "签约组织名称") + @Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "signingOrganization") + private String signingOrganizationName; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private String projectType; + + /** + * 项目大类 + */ + @ExcelProperty(value = "项目大类") + private String projectCategory; + + /** + * 是否用印:1-是,0-否 + */ + @ExcelProperty(value = "是否用印:1-是,0-否") + private Long isSeal; + + /** + * 是否为固定单价合同:1-是,0-否 + */ + @ExcelProperty(value = "是否为固定单价合同:1-是,0-否") + private Long fixedUnitPriceContract; + + /** + * 是否为总价包干合同:1-是,0-否 + */ + @ExcelProperty(value = "是否为总价包干合同:1-是,0-否") + private Long lumpSumContract; + + /** + * 付款额是否不能超支付比例:1-是,0-否 + */ + @ExcelProperty(value = "付款额是否不能超支付比例:1-是,0-否") + private Long paymentNotExceedPaymentRatio; + + /** + * 付款额不能超合同额:1-是,0-否 + */ + @ExcelProperty(value = "付款额不能超合同额:1-是,0-否") + private Long paymentNotExceedPayment; + + /** + * 付款额不能超合同额支付比例 + */ + @ExcelProperty(value = "付款额不能超合同额支付比例") + private BigDecimal paymentNotExceedContractRatio; + + /** + * 预结算/结算额是否不能超合同额:1-是,0-否 + */ + @ExcelProperty(value = "预结算/结算额是否不能超合同额:1-是,0-否") + private Long preSettlementNotExceedContract; + + /** + * 预结算/结算额不能超合同额比例 + */ + @ExcelProperty(value = "预结算/结算额不能超合同额比例") + private BigDecimal preSettlementNotExceedContractRatio; + + /** + * 是否终止 + */ + @ExcelProperty(value = "是否终止") + private String sfzz; + + /** + * 合同文本 + */ + @ExcelProperty(value = "合同文本") + private String contractText; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建者 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + @TableField(fill = FieldFill.INSERT) + private Long createByName; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * 组织id + */ + @ExcelProperty(value = "组织id") + private Long deptId; + + /** + * 印章信息 + */ + private List sealInfo; + + /** + * 设备租聘列表 + */ + + private List jqlist; + + + /** + * 预收款项 + */ + private List yskx; + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + + + /** + * 合同条款 + */ + private List httk; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/vo/XzdEquipmentLeasingVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/vo/XzdEquipmentLeasingVo.java new file mode 100644 index 00000000..19a416cc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/domain/vo/XzdEquipmentLeasingVo.java @@ -0,0 +1,107 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +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; +import java.util.Date; + + + +/** + * 机械合同信息-设备租赁视图对象 xzd_equipment_leasing + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdEquipmentLeasing.class) +public class XzdEquipmentLeasingVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 关联ID + */ + @ExcelProperty(value = "关联ID") + private Long relevanceId; + + /** + * 设备名称 + */ + @ExcelProperty(value = "设备名称") + private String equipmentName; + + /** + * 规格型号 + */ + @ExcelProperty(value = "规格型号") + private String specificationModel; + + /** + * 数量(台) + */ + @ExcelProperty(value = "数量(台)") + private Long quantity; + + /** + * 租赁金额(元/H) + */ + @ExcelProperty(value = "租赁金额(元/H)") + private BigDecimal rentalAmountPerHour; + + /** + * 工程量( H) + */ + @ExcelProperty(value = "工程量( H)") + private BigDecimal engineeringQuantity; + + /** + * 金额(元) + */ + @ExcelProperty(value = "金额(元)") + private BigDecimal totalAmount; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remarks; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createdTime; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updatedTime; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/mapper/XzdContractMachineryMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/mapper/XzdContractMachineryMapper.java new file mode 100644 index 00000000..637ff4f1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/mapper/XzdContractMachineryMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.mapper; + +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdContractMachinery; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械合同信息Mapper接口 + * + * @author Lion Li + * @date 2025-11-12 + */ +public interface XzdContractMachineryMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/mapper/XzdEquipmentLeasingMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/mapper/XzdEquipmentLeasingMapper.java new file mode 100644 index 00000000..e3ddd3a7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/mapper/XzdEquipmentLeasingMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.mapper; + +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdEquipmentLeasingVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械合同信息-设备租赁Mapper接口 + * + * @author Lion Li + * @date 2025-11-12 + */ +public interface XzdEquipmentLeasingMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/IXzdContractMachineryService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/IXzdContractMachineryService.java new file mode 100644 index 00000000..14ef2b6f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/IXzdContractMachineryService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.service; + +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo.XzdContractMachineryBo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdContractMachinery; +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-11-12 + */ +public interface IXzdContractMachineryService extends IService{ + + /** + * 查询机械合同信息 + * + * @param id 主键 + * @return 机械合同信息 + */ + XzdContractMachineryVo queryById(Long id); + + /** + * 分页查询机械合同信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械合同信息分页列表 + */ + TableDataInfo queryPageList(XzdContractMachineryBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械合同信息列表 + * + * @param bo 查询条件 + * @return 机械合同信息列表 + */ + List queryList(XzdContractMachineryBo bo); + + /** + * 新增机械合同信息 + * + * @param bo 机械合同信息 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdContractMachineryBo bo); + + /** + * 修改机械合同信息 + * + * @param bo 机械合同信息 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdContractMachineryBo 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/contractManagement/jixiehetongxinxi/service/IXzdEquipmentLeasingService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/IXzdEquipmentLeasingService.java new file mode 100644 index 00000000..5ea0d07c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/IXzdEquipmentLeasingService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.service; + +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdEquipmentLeasingVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo.XzdEquipmentLeasingBo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +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-11-12 + */ +public interface IXzdEquipmentLeasingService extends IService{ + + /** + * 查询机械合同信息-设备租赁 + * + * @param id 主键 + * @return 机械合同信息-设备租赁 + */ + XzdEquipmentLeasingVo queryById(Long id); + + /** + * 分页查询机械合同信息-设备租赁列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械合同信息-设备租赁分页列表 + */ + TableDataInfo queryPageList(XzdEquipmentLeasingBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械合同信息-设备租赁列表 + * + * @param bo 查询条件 + * @return 机械合同信息-设备租赁列表 + */ + List queryList(XzdEquipmentLeasingBo bo); + + /** + * 新增机械合同信息-设备租赁 + * + * @param bo 机械合同信息-设备租赁 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdEquipmentLeasingBo bo); + + /** + * 修改机械合同信息-设备租赁 + * + * @param bo 机械合同信息-设备租赁 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdEquipmentLeasingBo 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/contractManagement/jixiehetongxinxi/service/impl/XzdContractMachineryServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/impl/XzdContractMachineryServiceImpl.java new file mode 100644 index 00000000..fa51ee42 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/impl/XzdContractMachineryServiceImpl.java @@ -0,0 +1,467 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.event.ProcessDeleteEvent; +import org.dromara.common.core.domain.event.ProcessEvent; +import org.dromara.common.core.domain.event.ProcessTaskEvent; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.contractManagement.fenbaohetongbiangg.domain.XzdSubcontractChange; +import org.dromara.xzd.contractManagement.fenbaohetongzhongzhi.domain.XzdSubcontractTermination; +import org.dromara.xzd.contractManagement.jixiehetongbiang.domain.XzdMachineryContractAlteration; +import org.dromara.xzd.contractManagement.jixiehetongbiang.service.IXzdMachineryContractAlterationService; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdEquipmentLeasingService; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.XzdMachineryContractSuspend; +import org.dromara.xzd.contractManagement.jixiehetongzz.service.IXzdMachineryContractSuspendService; +import org.dromara.xzd.contractManagement.purchaseManagement.domain.XzdPurchaseContractInformation; +import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo; +import org.dromara.xzd.domain.XzdBusinessChange; +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.vo.XzdBusinessSealVo; +import org.dromara.xzd.enums.XzdClassEnum; +import org.dromara.xzd.enums.ZxdEnum; +import org.dromara.xzd.service.IXzdContractAdvanceInfoService; +import org.dromara.xzd.service.IXzdContractClauseService; +import org.dromara.xzd.service.IXzdDeductionItemsService; +import org.dromara.xzd.service.impl.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Service; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.bo.XzdContractMachineryBo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdContractMachinery; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.mapper.XzdContractMachineryMapper; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdContractMachineryService; + +import java.util.*; + +/** + * 机械合同信息Service业务层处理 + * + * @author Lion Li + * @date 2025-11-12 + */ +@RequiredArgsConstructor +@Service +@Slf4j +public class XzdContractMachineryServiceImpl extends ServiceImpl implements IXzdContractMachineryService { + + private final XzdContractMachineryMapper baseMapper; + + @Autowired + private XzdBusinessChangeServiceImpl xzdBusinessChangeService; + + @Autowired + private XzdBusinessSealServiceImpl xzdBusinessSealService; + + @Autowired + private XzdContractAdvanceInfoServiceImpl xzdContractAdvanceInfoService; + @Autowired + private XzdDeductionItemsServiceImpl xzdDeductionItemsService; + @Autowired + private XzdContractClauseServiceImpl xzdContractClauseService; + + @Autowired + private SysOssServiceImpl sysOssService; + + @Autowired + @Lazy + private IXzdMachineryContractSuspendService xzdMachineryContractSuspendService; + @Autowired + @Lazy + private IXzdMachineryContractAlterationService xzdMachineryContractAlterationService; + + + + + private final IXzdContractAdvanceInfoService iXzdContractAdvanceInfoService; + + private final IXzdDeductionItemsService iXzdDeductionItemsService; + + private final IXzdContractClauseService iXzdContractClauseService; + + + private final IXzdEquipmentLeasingService xzdEquipmentLeasingService; + + /** + * 查询机械合同信息 + * + * @param id 主键 + * @return 机械合同信息 + */ + @Override + public XzdContractMachineryVo queryById(Long id){ + XzdContractMachineryVo vo = baseMapper.selectVoById(id); + List res = List.of(vo); + saveValue(res); + return res.getFirst(); + } + + /** + * 分页查询机械合同信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械合同信息分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdContractMachineryBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + saveValue(result.getRecords()); + return TableDataInfo.build(result); + } + + private void saveValue(List infos) { + for (XzdContractMachineryVo item : infos) { +// 机械 + List xzdEquipmentLeasings = xzdEquipmentLeasingService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(XzdEquipmentLeasing::getRelevanceId, item.getId())); + if (xzdEquipmentLeasings != null && xzdEquipmentLeasings.size() > 0) { + item.setJqlist(xzdEquipmentLeasings); + } + //印章信息 + LambdaQueryWrapper xzdBusinessChangeWrapper = new LambdaQueryWrapper<>(); + xzdBusinessChangeWrapper.eq(XzdBusinessChange::getContractChangeId, item.getId()); + List xzdBusinessChanges = xzdBusinessChangeService.list(xzdBusinessChangeWrapper); + for (XzdBusinessChange businessChange : xzdBusinessChanges) { + XzdBusinessSealVo sealVo = xzdBusinessSealService.queryById(businessChange.getBusinessId()); + if (sealVo != null){ + businessChange.setSealName(sealVo.getYzName()); + } + } + item.setSealInfo(xzdBusinessChanges); + //合同文本-预收款项 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId()); + List advanceInfos = xzdContractAdvanceInfoService.list(lambdaQueryWrapper); + item.setYskx(advanceInfos); + + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, item.getId()); + List list = xzdDeductionItemsService.list(lambdaQueryWrapper1); + item.setKkyjlx(list); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, item.getId()); + List list1 = xzdContractClauseService.list(lambdaQueryWrapper2); + item.setHttk(list1); + // 阶段状态 + item.setJdzt(ZxdEnum.HETONGZTYS.getTypeValue()); + Long l = xzdMachineryContractAlterationService.getBaseMapper().selectCount(new LambdaQueryWrapper().eq(XzdMachineryContractAlteration::getContractInformationId, item.getId())); + if (l > 0) { + item.setJdzt(ZxdEnum.HETONGZTBG.getTypeValue()); + } + Long l1 = xzdMachineryContractSuspendService.getBaseMapper().selectCount(new LambdaQueryWrapper().eq(XzdMachineryContractSuspend::getContractInformationId, item.getId())); + if (l1 > 0) { + item.setJdzt(ZxdEnum.HETONGZTZZ.getTypeValue()); + } + + } + + + } + + /** + * 查询符合条件的机械合同信息列表 + * + * @param bo 查询条件 + * @return 机械合同信息列表 + */ + @Override + public List queryList(XzdContractMachineryBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdContractMachineryBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdContractMachinery::getId); + lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), XzdContractMachinery::getContractCode, bo.getContractCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdContractMachinery::getContractName, bo.getContractName()); + lqw.eq(bo.getDocumentDate() != null, XzdContractMachinery::getDocumentDate, bo.getDocumentDate()); + lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdContractMachinery::getContractType, bo.getContractType()); + lqw.eq(bo.getProject() != null, XzdContractMachinery::getProject, bo.getProject()); + lqw.eq(StringUtils.isNotBlank(bo.getBusinessModel()), XzdContractMachinery::getBusinessModel, bo.getBusinessModel()); + lqw.eq(bo.getOriginalContractCost() != null, XzdContractMachinery::getOriginalContractCost, bo.getOriginalContractCost()); + lqw.eq(bo.getSigningDate() != null, XzdContractMachinery::getSigningDate, bo.getSigningDate()); + lqw.eq(bo.getPartyAUnit() != null, XzdContractMachinery::getPartyAUnit, bo.getPartyAUnit()); + lqw.eq(bo.getTaxInclusiveContractAmount() != null, XzdContractMachinery::getTaxInclusiveContractAmount, bo.getTaxInclusiveContractAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getContractStatus()), XzdContractMachinery::getContractStatus, bo.getContractStatus()); + lqw.eq(bo.getCumulativeChangeAmount() != null, XzdContractMachinery::getCumulativeChangeAmount, bo.getCumulativeChangeAmount()); + lqw.eq(bo.getFilingDate() != null, XzdContractMachinery::getFilingDate, bo.getFilingDate()); + lqw.eq(bo.getManagementOrganization() != null, XzdContractMachinery::getManagementOrganization, bo.getManagementOrganization()); + lqw.eq(bo.getInvoiceIssuingUnit() != null, XzdContractMachinery::getInvoiceIssuingUnit, bo.getInvoiceIssuingUnit()); + lqw.eq(bo.getInvoiceReceivingUnit() != null, XzdContractMachinery::getInvoiceReceivingUnit, bo.getInvoiceReceivingUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getWarning()), XzdContractMachinery::getWarning, bo.getWarning()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdContractMachinery::getRemarks, bo.getRemarks()); + lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdContractMachinery::getPaymentTerms, bo.getPaymentTerms()); + lqw.eq(bo.getCentralizedPurchasingMode() != null, XzdContractMachinery::getCentralizedPurchasingMode, bo.getCentralizedPurchasingMode()); + lqw.eq(bo.getPartyBUnit() != null, XzdContractMachinery::getPartyBUnit, bo.getPartyBUnit()); + lqw.eq(bo.getOtherIncomeContractOrganization() != null, XzdContractMachinery::getOtherIncomeContractOrganization, bo.getOtherIncomeContractOrganization()); + lqw.eq(bo.getOtherIncomeContractProject() != null, XzdContractMachinery::getOtherIncomeContractProject, bo.getOtherIncomeContractProject()); + lqw.eq(bo.getOtherIncomeContractType() != null, XzdContractMachinery::getOtherIncomeContractType, bo.getOtherIncomeContractType()); + lqw.eq(bo.getIsEnabled() != null, XzdContractMachinery::getIsEnabled, bo.getIsEnabled()); + lqw.eq(StringUtils.isNotBlank(bo.getCapitalizedTaxInclusiveTotal()), XzdContractMachinery::getCapitalizedTaxInclusiveTotal, bo.getCapitalizedTaxInclusiveTotal()); + lqw.eq(bo.getSigningOrganization() != null, XzdContractMachinery::getSigningOrganization, bo.getSigningOrganization()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdContractMachinery::getProjectType, bo.getProjectType()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdContractMachinery::getProjectCategory, bo.getProjectCategory()); + lqw.eq(bo.getIsSeal() != null, XzdContractMachinery::getIsSeal, bo.getIsSeal()); + lqw.eq(bo.getFixedUnitPriceContract() != null, XzdContractMachinery::getFixedUnitPriceContract, bo.getFixedUnitPriceContract()); + lqw.eq(bo.getLumpSumContract() != null, XzdContractMachinery::getLumpSumContract, bo.getLumpSumContract()); + lqw.eq(bo.getPaymentNotExceedPaymentRatio() != null, XzdContractMachinery::getPaymentNotExceedPaymentRatio, bo.getPaymentNotExceedPaymentRatio()); + lqw.eq(bo.getPaymentNotExceedPayment() != null, XzdContractMachinery::getPaymentNotExceedPayment, bo.getPaymentNotExceedPayment()); + lqw.eq(bo.getPaymentNotExceedContractRatio() != null, XzdContractMachinery::getPaymentNotExceedContractRatio, bo.getPaymentNotExceedContractRatio()); + lqw.eq(bo.getPreSettlementNotExceedContract() != null, XzdContractMachinery::getPreSettlementNotExceedContract, bo.getPreSettlementNotExceedContract()); + lqw.eq(bo.getPreSettlementNotExceedContractRatio() != null, XzdContractMachinery::getPreSettlementNotExceedContractRatio, bo.getPreSettlementNotExceedContractRatio()); + lqw.eq(StringUtils.isNotBlank(bo.getSfzz()), XzdContractMachinery::getSfzz, bo.getSfzz()); + lqw.eq(StringUtils.isNotBlank(bo.getContractText()), XzdContractMachinery::getContractText, bo.getContractText()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdContractMachinery::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdContractMachinery::getAuditStatus, bo.getAuditStatus()); + lqw.eq(bo.getDeptId() != null, XzdContractMachinery::getDeptId, bo.getDeptId()); + return lqw; + } + + /** + * 新增机械合同信息 + * + * @param bo 机械合同信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdContractMachineryBo bo) { + XzdContractMachinery add = MapstructUtils.convert(bo, XzdContractMachinery.class); + validEntityBeforeSave(add); + + + String banBen = BatchNumberGenerator.generateBatchNumber("JXHTXX-"); + add.setContractCode(banBen); + + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + String tableName = XzdClassEnum.JIXIEHETONG_JINDU.getClassName(); + //合同文本-预收款项 + for (XzdContractAdvanceInfo yskx : bo.getYskx()) { + yskx.setTableName(tableName); + yskx.setContractDetailsId(add.getId()); + } + xzdContractAdvanceInfoService.saveBatch(bo.getYskx()); + + //合同条款-扣款与奖励项 + for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) { + kkyjlx.setTableName(tableName); + kkyjlx.setContractDetailsId(add.getId()); + } + xzdDeductionItemsService.saveBatch(bo.getKkyjlx()); + + //合同条款-合同条款 + for (XzdContractClause clause : bo.getHttk()) { + clause.setTableName(tableName); + clause.setContractDetailsId(add.getId()); + } + xzdContractClauseService.saveBatch(bo.getHttk()); + //印章信息 + if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){ + for (XzdBusinessChange sealInfo : bo.getSealInfo()) { + sealInfo.setContractChangeId(add.getId()); + sealInfo.setType("13"); + } + xzdBusinessChangeService.saveBatch(bo.getSealInfo()); + } +// 机械列表 + if (bo.getJqlist() != null && !bo.getJqlist().isEmpty()){ + for (XzdEquipmentLeasing xzdEquipmentLeasing : bo.getJqlist()) { + xzdEquipmentLeasing.setRelevanceId(add.getId()); + } + xzdEquipmentLeasingService.saveBatch(bo.getJqlist()); + } + + return flag; + } + + /** + * 修改机械合同信息 + * + * @param bo 机械合同信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdContractMachineryBo bo) { + XzdContractMachinery update = MapstructUtils.convert(bo, XzdContractMachinery.class); + validEntityBeforeSave(update); + /** + * 预收款项 优先删除数据在添加 + */ + String tableName = XzdClassEnum.JIXIEHETONG_JINDU.getClassName(); + HashMap hashMap = new HashMap<>(); + hashMap.put("contract_details_id", bo.getId()); + List yskx = bo.getYskx(); + iXzdContractAdvanceInfoService.getBaseMapper().deleteByMap(hashMap); + if (yskx != null){ + yskx.forEach(item -> { + item.setTableName(tableName); + item.setContractDetailsId(bo.getId()); + }); + iXzdContractAdvanceInfoService.saveBatch(yskx); + } + /** + * 扣款与奖励项 + */ + List kkyjlx = bo.getKkyjlx(); + iXzdDeductionItemsService.getBaseMapper().deleteByMap(hashMap); + if(kkyjlx != null){ + kkyjlx.forEach(item -> { + item.setTableName(tableName); + item.setContractDetailsId(bo.getId()); + }); + iXzdDeductionItemsService.saveBatch(kkyjlx); + } + /** + * 合同条款 + */ + List httk = bo.getHttk(); + iXzdContractClauseService.getBaseMapper().deleteByMap(hashMap); + if (httk != null){ + httk.forEach(item -> { + item.setTableName(tableName); + item.setContractDetailsId(bo.getId()); + }); + iXzdContractClauseService.saveBatch(httk); + } + // 机械租聘 + xzdEquipmentLeasingService.getBaseMapper().delete(new LambdaQueryWrapper().eq(XzdEquipmentLeasing::getRelevanceId,bo.getId())); + if (bo.getJqlist() != null && !bo.getJqlist().isEmpty()){ + for (XzdEquipmentLeasing xzdEquipmentLeasing : bo.getJqlist()) { + xzdEquipmentLeasing.setRelevanceId(update.getId()); + } + xzdEquipmentLeasingService.saveBatch(bo.getJqlist()); + } + + + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdContractMachinery entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械合同信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + for (Long id : ids) { + XzdContractMachineryVo 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); + } + } + } + } + //印章信息 + xzdBusinessChangeService.remove(new LambdaQueryWrapper().in(XzdBusinessChange::getContractChangeId, ids)); + //合同文本-预收款项 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(XzdContractAdvanceInfo::getContractDetailsId, ids); + xzdContractAdvanceInfoService.remove(lambdaQueryWrapper); + + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.in(XzdDeductionItems::getContractDetailsId, ids); + xzdDeductionItemsService.remove(lambdaQueryWrapper1); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.in(XzdContractClause::getContractDetailsId, ids); + xzdContractClauseService.remove(lambdaQueryWrapper2); +// 机械租聘 + xzdEquipmentLeasingService.getBaseMapper().delete(new LambdaQueryWrapper().in(XzdEquipmentLeasing::getRelevanceId,ids)); + + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等) + * 正常使用只需#processEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processEvent 参数 + */ + @org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdjxsp')") + public void processPlansHandlErequipmentList(ProcessEvent processEvent) { + log.info("机械合同信息审核任务执行了{}", processEvent.toString()); + String id = processEvent.getBusinessId(); + XzdContractMachinery vo = baseMapper.selectById(Long.valueOf(id)); + if (vo == null) { + return; + } + vo.setAuditStatus(processEvent.getStatus()); + this.updateById(vo); + } + + /** + * 执行任务创建监听 + * 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断 + * 在方法中判断流程节点key + * if ("xxx".equals(processTaskEvent.getNodeCode())) { + * //执行业务逻辑 + * } + * + * @param processTaskEvent 参数 + */ + @org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdjxsp')") + public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) { + log.info("机械合同信息审核任务创建了{}", processTaskEvent.toString()); + } + + /** + * 监听删除流程事件 + * 正常使用只需#processDeleteEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processDeleteEvent 参数 + */ + @EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdjxsp')") + public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) { + log.info("机械合同信息删除流程事件,机械合同信息审核任务执行了{}", processDeleteEvent.toString()); + } + + + + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/impl/XzdEquipmentLeasingServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/impl/XzdEquipmentLeasingServiceImpl.java new file mode 100644 index 00000000..76c68094 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongxinxi/service/impl/XzdEquipmentLeasingServiceImpl.java @@ -0,0 +1,139 @@ +package org.dromara.xzd.contractManagement.jixiehetongxinxi.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.contractManagement.jixiehetongxinxi.domain.bo.XzdEquipmentLeasingBo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdEquipmentLeasingVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdEquipmentLeasing; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.mapper.XzdEquipmentLeasingMapper; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.service.IXzdEquipmentLeasingService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 机械合同信息-设备租赁Service业务层处理 + * + * @author Lion Li + * @date 2025-11-12 + */ +@RequiredArgsConstructor +@Service +public class XzdEquipmentLeasingServiceImpl extends ServiceImpl implements IXzdEquipmentLeasingService { + + private final XzdEquipmentLeasingMapper baseMapper; + + /** + * 查询机械合同信息-设备租赁 + * + * @param id 主键 + * @return 机械合同信息-设备租赁 + */ + @Override + public XzdEquipmentLeasingVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询机械合同信息-设备租赁列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械合同信息-设备租赁分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdEquipmentLeasingBo 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(XzdEquipmentLeasingBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdEquipmentLeasingBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdEquipmentLeasing::getId); + lqw.eq(bo.getRelevanceId() != null, XzdEquipmentLeasing::getRelevanceId, bo.getRelevanceId()); + lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), XzdEquipmentLeasing::getEquipmentName, bo.getEquipmentName()); + lqw.eq(StringUtils.isNotBlank(bo.getSpecificationModel()), XzdEquipmentLeasing::getSpecificationModel, bo.getSpecificationModel()); + lqw.eq(bo.getQuantity() != null, XzdEquipmentLeasing::getQuantity, bo.getQuantity()); + lqw.eq(bo.getRentalAmountPerHour() != null, XzdEquipmentLeasing::getRentalAmountPerHour, bo.getRentalAmountPerHour()); + lqw.eq(bo.getEngineeringQuantity() != null, XzdEquipmentLeasing::getEngineeringQuantity, bo.getEngineeringQuantity()); + lqw.eq(bo.getTotalAmount() != null, XzdEquipmentLeasing::getTotalAmount, bo.getTotalAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdEquipmentLeasing::getRemarks, bo.getRemarks()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdEquipmentLeasing::getAuditStatus, bo.getAuditStatus()); + return lqw; + } + + /** + * 新增机械合同信息-设备租赁 + * + * @param bo 机械合同信息-设备租赁 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdEquipmentLeasingBo bo) { + XzdEquipmentLeasing add = MapstructUtils.convert(bo, XzdEquipmentLeasing.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械合同信息-设备租赁 + * + * @param bo 机械合同信息-设备租赁 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdEquipmentLeasingBo bo) { + XzdEquipmentLeasing update = MapstructUtils.convert(bo, XzdEquipmentLeasing.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdEquipmentLeasing 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/contractManagement/jixiehetongzz/controller/XzdMachineryContractSuspendController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/controller/XzdMachineryContractSuspendController.java new file mode 100644 index 00000000..81ba5d6d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/controller/XzdMachineryContractSuspendController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.contractManagement.jixiehetongzz.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.vo.XzdMachineryContractSuspendVo; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.bo.XzdMachineryContractSuspendBo; +import org.dromara.xzd.contractManagement.jixiehetongzz.service.IXzdMachineryContractSuspendService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械合同终止 + * + * @author Lion Li + * @date 2025-11-12 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/xzd/jixiehetongzz/machineryContractSuspend") +public class XzdMachineryContractSuspendController extends BaseController { + + private final IXzdMachineryContractSuspendService xzdMachineryContractSuspendService; + + /** + * 查询机械合同终止列表 + */ + @SaCheckPermission("jixiehetongzz:machineryContractSuspend:list") + @GetMapping("/list") + public TableDataInfo list(XzdMachineryContractSuspendBo bo, PageQuery pageQuery) { + return xzdMachineryContractSuspendService.queryPageList(bo, pageQuery); + } + + /** + * 导出机械合同终止列表 + */ + @SaCheckPermission("jixiehetongzz:machineryContractSuspend:export") + @Log(title = "机械合同终止", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdMachineryContractSuspendBo bo, HttpServletResponse response) { + List list = xzdMachineryContractSuspendService.queryList(bo); + ExcelUtil.exportExcel(list, "机械合同终止", XzdMachineryContractSuspendVo.class, response); + } + + /** + * 获取机械合同终止详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jixiehetongzz:machineryContractSuspend:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdMachineryContractSuspendService.queryById(id)); + } + + /** + * 新增机械合同终止 + */ + @SaCheckPermission("jixiehetongzz:machineryContractSuspend:add") + @Log(title = "机械合同终止", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdMachineryContractSuspendBo bo) { + return toAjax(xzdMachineryContractSuspendService.insertByBo(bo)); + } + + /** + * 修改机械合同终止 + */ + @SaCheckPermission("jixiehetongzz:machineryContractSuspend:edit") + @Log(title = "机械合同终止", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdMachineryContractSuspendBo bo) { + return toAjax(xzdMachineryContractSuspendService.updateByBo(bo)); + } + + /** + * 删除机械合同终止 + * + * @param ids 主键串 + */ + @SaCheckPermission("jixiehetongzz:machineryContractSuspend:remove") + @Log(title = "机械合同终止", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdMachineryContractSuspendService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/domain/XzdMachineryContractSuspend.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/domain/XzdMachineryContractSuspend.java new file mode 100644 index 00000000..32ba8579 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/domain/XzdMachineryContractSuspend.java @@ -0,0 +1,138 @@ +package org.dromara.xzd.contractManagement.jixiehetongzz.domain; + +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.io.Serial; +import java.time.LocalDate; + +/** + * 机械合同终止对象 xzd_machinery_contract_suspend + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_machinery_contract_suspend") +public class XzdMachineryContractSuspend extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 合同信息ID(合同编码) + */ + private Long contractInformationId; + + /** + * 单据编码 + */ + private String receiptsCode; + + /** + * 标题 + */ + private String title; + + /** + * 单据日期 + */ + private LocalDate documentDate; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 终止日期 + */ + private LocalDate terminationDate; + + /** + * 项目名称 + */ + private String project; + + /** + * 乙方单位 + */ + private Long artyBUnit; + + /** + * 甲方单位 + */ + private Long partyAUnit; + + /** + * 终止原因 + */ + private String terminationCause; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 备注说明 + */ + private String remarks; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 累计结算金额 + */ + private BigDecimal cumulativeSettlementAmount; + + /** + * 累计付款金额 + */ + private BigDecimal cumulativePaymentAmount; + + /** + * 是否用印:1-是,0-否 + */ + private Long isSeal; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 组织id + */ + private Long deptId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/domain/bo/XzdMachineryContractSuspendBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/domain/bo/XzdMachineryContractSuspendBo.java new file mode 100644 index 00000000..65a324ff --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/domain/bo/XzdMachineryContractSuspendBo.java @@ -0,0 +1,153 @@ +package org.dromara.xzd.contractManagement.jixiehetongzz.domain.bo; + +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.XzdMachineryContractSuspend; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.xzd.domain.XzdBusinessChange; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * 机械合同终止业务对象 xzd_machinery_contract_suspend + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdMachineryContractSuspend.class, reverseConvertGenerate = false) +public class XzdMachineryContractSuspendBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 合同信息ID(合同编码) + */ + private Long contractInformationId; + + /** + * 单据编码 + */ + private String receiptsCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate documentDate; + + /** + * 合同名称 + */ + @NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractName; + + /** + * 终止日期 + */ + @NotNull(message = "终止日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate terminationDate; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String project; + + /** + * 乙方单位 + */ + @NotNull(message = "乙方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long artyBUnit; + + /** + * 甲方单位 + */ + @NotNull(message = "甲方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long partyAUnit; + + /** + * 终止原因 + */ + @NotBlank(message = "终止原因不能为空", groups = { AddGroup.class, EditGroup.class }) + private String terminationCause; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 备注说明 + */ + private String remarks; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 累计结算金额 + */ + private BigDecimal cumulativeSettlementAmount; + + /** + * 累计付款金额 + */ + private BigDecimal cumulativePaymentAmount; + + /** + * 是否用印:1-是,0-否 + */ + private Long isSeal; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 组织id + */ + private Long deptId; + + /** + * 印章信息 + */ + private List sealInfo; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/domain/vo/XzdMachineryContractSuspendVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/domain/vo/XzdMachineryContractSuspendVo.java new file mode 100644 index 00000000..301f0f20 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/domain/vo/XzdMachineryContractSuspendVo.java @@ -0,0 +1,226 @@ +package org.dromara.xzd.contractManagement.jixiehetongzz.domain.vo; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.XzdMachineryContractSuspend; +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 org.dromara.xzd.domain.XzdBusinessChange; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + + +/** + * 机械合同终止视图对象 xzd_machinery_contract_suspend + * + * @author Lion Li + * @date 2025-11-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdMachineryContractSuspend.class) +public class XzdMachineryContractSuspendVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 合同信息ID(合同编码) + */ + @ExcelProperty(value = "合同信息ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "合=同编码") + private Long contractInformationId; + + /** + * 合同信息ID(合同编码) + */ + @ExcelDictFormat(readConverterExp = "合=同编码") + private String contractInformationIdName; + + /** + * 单据编码 + */ + @ExcelProperty(value = "单据编码") + private String receiptsCode; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private LocalDate documentDate; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 终止日期 + */ + @ExcelProperty(value = "终止日期") + private LocalDate terminationDate; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String project; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + @Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "project") + private String projectName; + /** + * 乙方单位 + */ + @ExcelProperty(value = "乙方单位") + private Long artyBUnit; + + /** + * 乙方单位名称 + */ + @ExcelProperty(value = "乙方单位名称") + @Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "artyBUnit") + private String artyBUnitName; + + + /** + * 甲方单位 + */ + @ExcelProperty(value = "甲方单位") + private Long partyAUnit; + + /** + * 甲方单位名称 + */ + @ExcelProperty(value = "甲方单位名称") + @Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyAUnit") + private String partyAUnitName; + + /** + * 终止原因 + */ + @ExcelProperty(value = "终止原因") + private String terminationCause; + + /** + * 项目大类 + */ + @ExcelProperty(value = "项目大类") + private String projectCategory; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private String projectType; + + /** + * 备注说明 + */ + @ExcelProperty(value = "备注说明") + private String remarks; + + /** + * 合同金额 + */ + @ExcelProperty(value = "合同金额") + private BigDecimal contractAmount; + + /** + * 累计结算金额 + */ + @ExcelProperty(value = "累计结算金额") + private BigDecimal cumulativeSettlementAmount; + + /** + * 累计付款金额 + */ + @ExcelProperty(value = "累计付款金额") + private BigDecimal cumulativePaymentAmount; + + /** + * 是否用印:1-是,0-否 + */ + @ExcelProperty(value = "是否用印:1-是,0-否") + private Long isSeal; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + /** + * 组织id + */ + @ExcelProperty(value = "组织id") + private Long deptId; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建者 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + @TableField(fill = FieldFill.INSERT) + private Long createByName; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * 印章信息 + */ + private List sealInfo; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/mapper/XzdMachineryContractSuspendMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/mapper/XzdMachineryContractSuspendMapper.java new file mode 100644 index 00000000..164bdad8 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/mapper/XzdMachineryContractSuspendMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.contractManagement.jixiehetongzz.mapper; + +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.XzdMachineryContractSuspend; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.vo.XzdMachineryContractSuspendVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械合同终止Mapper接口 + * + * @author Lion Li + * @date 2025-11-12 + */ +public interface XzdMachineryContractSuspendMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/service/IXzdMachineryContractSuspendService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/service/IXzdMachineryContractSuspendService.java new file mode 100644 index 00000000..1668de76 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/service/IXzdMachineryContractSuspendService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.contractManagement.jixiehetongzz.service; + +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.vo.XzdMachineryContractSuspendVo; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.bo.XzdMachineryContractSuspendBo; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.XzdMachineryContractSuspend; +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-11-12 + */ +public interface IXzdMachineryContractSuspendService extends IService{ + + /** + * 查询机械合同终止 + * + * @param id 主键 + * @return 机械合同终止 + */ + XzdMachineryContractSuspendVo queryById(Long id); + + /** + * 分页查询机械合同终止列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械合同终止分页列表 + */ + TableDataInfo queryPageList(XzdMachineryContractSuspendBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械合同终止列表 + * + * @param bo 查询条件 + * @return 机械合同终止列表 + */ + List queryList(XzdMachineryContractSuspendBo bo); + + /** + * 新增机械合同终止 + * + * @param bo 机械合同终止 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdMachineryContractSuspendBo bo); + + /** + * 修改机械合同终止 + * + * @param bo 机械合同终止 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdMachineryContractSuspendBo 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/contractManagement/jixiehetongzz/service/impl/XzdMachineryContractSuspendServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/service/impl/XzdMachineryContractSuspendServiceImpl.java new file mode 100644 index 00000000..1abe75fe --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/jixiehetongzz/service/impl/XzdMachineryContractSuspendServiceImpl.java @@ -0,0 +1,308 @@ +package org.dromara.xzd.contractManagement.jixiehetongzz.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.event.ProcessDeleteEvent; +import org.dromara.common.core.domain.event.ProcessEvent; +import org.dromara.common.core.domain.event.ProcessTaskEvent; +import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.XzdPurchaseContractSuspend; +import org.dromara.xzd.contractManagement.caigoucontractTermination.domain.vo.XzdPurchaseContractSuspendVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.XzdContractMachinery; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.domain.vo.XzdContractMachineryVo; +import org.dromara.xzd.contractManagement.jixiehetongxinxi.mapper.XzdContractMachineryMapper; +import org.dromara.xzd.contractManagement.purchaseManagement.domain.XzdPurchaseContractInformation; +import org.dromara.xzd.contractManagement.purchaseManagement.domain.vo.XzdPurchaseContractInformationVo; +import org.dromara.xzd.domain.XzdBusinessChange; +import org.dromara.xzd.domain.vo.XzdBusinessSealVo; +import org.dromara.xzd.service.impl.XzdBusinessChangeServiceImpl; +import org.dromara.xzd.service.impl.XzdBusinessSealServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Service; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.bo.XzdMachineryContractSuspendBo; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.vo.XzdMachineryContractSuspendVo; +import org.dromara.xzd.contractManagement.jixiehetongzz.domain.XzdMachineryContractSuspend; +import org.dromara.xzd.contractManagement.jixiehetongzz.mapper.XzdMachineryContractSuspendMapper; +import org.dromara.xzd.contractManagement.jixiehetongzz.service.IXzdMachineryContractSuspendService; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.stream.Collectors; + +/** + * 机械合同终止Service业务层处理 + * + * @author Lion Li + * @date 2025-11-12 + */ +@RequiredArgsConstructor +@Service +@Slf4j +public class XzdMachineryContractSuspendServiceImpl extends ServiceImpl implements IXzdMachineryContractSuspendService { + + private final XzdMachineryContractSuspendMapper baseMapper; + + private final XzdContractMachineryMapper xzdContractMachineryMapper; + + @Autowired + private SysOssServiceImpl sysOssService; + + + @Autowired + private XzdBusinessChangeServiceImpl xzdBusinessChangeService; + + @Autowired + private XzdBusinessSealServiceImpl xzdBusinessSealService; + /** + * 查询机械合同终止 + * + * @param id 主键 + * @return 机械合同终止 + */ + @Override + public XzdMachineryContractSuspendVo queryById(Long id){ + + XzdMachineryContractSuspendVo vo = baseMapper.selectVoById(id); + List res = List.of(vo); + saveValue(res); + return res.getFirst(); + } + + /** + * 分页查询机械合同终止列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械合同终止分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdMachineryContractSuspendBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + saveValue(result.getRecords()); + return TableDataInfo.build(result); + } + + private void saveValue(List records) { + for (XzdMachineryContractSuspendVo item : records) { + // 合同信息编码 + if (item.getContractInformationId() != null){ + XzdContractMachineryVo queryById = xzdContractMachineryMapper.selectVoById(item.getContractInformationId()); + if (queryById != null){ + item.setContractInformationIdName(queryById.getContractCode()); + } + } + + //印章信息 + LambdaQueryWrapper xzdBusinessChangeWrapper = new LambdaQueryWrapper<>(); + xzdBusinessChangeWrapper.eq(XzdBusinessChange::getContractChangeId, item.getId()); + List xzdBusinessChanges = xzdBusinessChangeService.list(xzdBusinessChangeWrapper); + for (XzdBusinessChange businessChange : xzdBusinessChanges) { + XzdBusinessSealVo sealVo = xzdBusinessSealService.queryById(businessChange.getBusinessId()); + if (sealVo != null){ + businessChange.setSealName(sealVo.getYzName()); + } + } + item.setSealInfo(xzdBusinessChanges); + + } + } + + /** + * 查询符合条件的机械合同终止列表 + * + * @param bo 查询条件 + * @return 机械合同终止列表 + */ + @Override + public List queryList(XzdMachineryContractSuspendBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdMachineryContractSuspendBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdMachineryContractSuspend::getId); + lqw.eq(bo.getContractInformationId() != null, XzdMachineryContractSuspend::getContractInformationId, bo.getContractInformationId()); + lqw.eq(StringUtils.isNotBlank(bo.getReceiptsCode()), XzdMachineryContractSuspend::getReceiptsCode, bo.getReceiptsCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdMachineryContractSuspend::getTitle, bo.getTitle()); + lqw.eq(bo.getDocumentDate() != null, XzdMachineryContractSuspend::getDocumentDate, bo.getDocumentDate()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdMachineryContractSuspend::getContractName, bo.getContractName()); + lqw.eq(bo.getTerminationDate() != null, XzdMachineryContractSuspend::getTerminationDate, bo.getTerminationDate()); + lqw.eq(StringUtils.isNotBlank(bo.getProject()), XzdMachineryContractSuspend::getProject, bo.getProject()); + lqw.eq(bo.getArtyBUnit() != null, XzdMachineryContractSuspend::getArtyBUnit, bo.getArtyBUnit()); + lqw.eq(bo.getPartyAUnit() != null, XzdMachineryContractSuspend::getPartyAUnit, bo.getPartyAUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getTerminationCause()), XzdMachineryContractSuspend::getTerminationCause, bo.getTerminationCause()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdMachineryContractSuspend::getProjectCategory, bo.getProjectCategory()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdMachineryContractSuspend::getProjectType, bo.getProjectType()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdMachineryContractSuspend::getRemarks, bo.getRemarks()); + lqw.eq(bo.getContractAmount() != null, XzdMachineryContractSuspend::getContractAmount, bo.getContractAmount()); + lqw.eq(bo.getCumulativeSettlementAmount() != null, XzdMachineryContractSuspend::getCumulativeSettlementAmount, bo.getCumulativeSettlementAmount()); + lqw.eq(bo.getCumulativePaymentAmount() != null, XzdMachineryContractSuspend::getCumulativePaymentAmount, bo.getCumulativePaymentAmount()); + lqw.eq(bo.getIsSeal() != null, XzdMachineryContractSuspend::getIsSeal, bo.getIsSeal()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdMachineryContractSuspend::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdMachineryContractSuspend::getAuditStatus, bo.getAuditStatus()); + lqw.eq(bo.getDeptId() != null, XzdMachineryContractSuspend::getDeptId, bo.getDeptId()); + return lqw; + } + + /** + * 新增机械合同终止 + * + * @param bo 机械合同终止 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdMachineryContractSuspendBo bo) { + XzdMachineryContractSuspend add = MapstructUtils.convert(bo, XzdMachineryContractSuspend.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("JXHTZZ-"); + + add.setReceiptsCode(banBen); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + + //印章信息 + if (bo.getSealInfo() != null && !bo.getSealInfo().isEmpty()){ + for (XzdBusinessChange sealInfo : bo.getSealInfo()) { + sealInfo.setContractChangeId(add.getId()); + sealInfo.setType("15"); + } + xzdBusinessChangeService.saveBatch(bo.getSealInfo()); + } + return flag; + } + + /** + * 修改机械合同终止 + * + * @param bo 机械合同终止 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdMachineryContractSuspendBo bo) { + XzdMachineryContractSuspend update = MapstructUtils.convert(bo, XzdMachineryContractSuspend.class); + validEntityBeforeSave(update); + + //印章信息 + xzdBusinessChangeService.remove(new LambdaQueryWrapper().eq(XzdBusinessChange::getContractChangeId, update.getId())); + + + for (XzdBusinessChange xzdBusinessChange : bo.getSealInfo()) { + xzdBusinessChange.setContractChangeId(update.getId()); + xzdBusinessChange.setType("15"); + } + xzdBusinessChangeService.saveBatch(bo.getSealInfo()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdMachineryContractSuspend entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械合同终止信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + + for (Long id : ids) { + XzdMachineryContractSuspendVo vo = baseMapper.selectVoById(id); + // 删除附件 + if (!StringUtils.isEmpty(vo.getFileId())){ + List collect = Arrays.stream(vo.getFileId().split(",")).map(item -> { + return Long.parseLong(item); + }).collect(Collectors.toList()); + sysOssService.deleteWithValidByIds(collect, false); + } + } + //印章信息 + xzdBusinessChangeService.remove(new LambdaQueryWrapper().in(XzdBusinessChange::getContractChangeId, ids)); + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等) + * 正常使用只需#processEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processEvent 参数 + */ + @org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xzdjxhtzz')") + public void processPlansHandlErequipmentList(ProcessEvent processEvent) { + log.info("机械合同终止审核任务执行了{}", processEvent.toString()); + String id = processEvent.getBusinessId(); + XzdMachineryContractSuspend vo = baseMapper.selectById(Long.valueOf(id)); + if (vo == null) { + return; + } + if (processEvent.getStatus().equals(BusinessStatusEnum.FINISH.getStatus())){ + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("id",vo.getContractInformationId()).set("sfzz","1"); + xzdContractMachineryMapper.update(wrapper); + } + vo.setAuditStatus(processEvent.getStatus()); + this.updateById(vo); + } + + /** + * 执行任务创建监听 + * 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断 + * 在方法中判断流程节点key + * if ("xxx".equals(processTaskEvent.getNodeCode())) { + * //执行业务逻辑 + * } + * + * @param processTaskEvent 参数 + */ + @org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xzdjxhtzz')") + public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) { + log.info("机械合同终止审核任务创建了{}", processTaskEvent.toString()); + } + + /** + * 监听删除流程事件 + * 正常使用只需#processDeleteEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processDeleteEvent 参数 + */ + @EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xzdjxhtzz')") + public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) { + log.info("机械合同终止删除流程事件,机械合同终止审核任务执行了{}", processDeleteEvent.toString()); + } + + + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/service/impl/XzdPurchaseContractInformationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/service/impl/XzdPurchaseContractInformationServiceImpl.java index b7efeca1..cf9c1af0 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/service/impl/XzdPurchaseContractInformationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/contractManagement/purchaseManagement/service/impl/XzdPurchaseContractInformationServiceImpl.java @@ -364,7 +364,6 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl().eq(XzdBusinessChange::getContractChangeId, update.getId())); - for (XzdBusinessChange xzdBusinessChange : bo.getSealInfo()) { xzdBusinessChange.setContractChangeId(update.getId()); xzdBusinessChange.setType("7"); @@ -384,6 +383,8 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/XzdClassEnum.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/XzdClassEnum.java index d6c65630..6bfe7e6a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/XzdClassEnum.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/XzdClassEnum.java @@ -19,6 +19,8 @@ public enum XzdClassEnum { FENBAOHETONGBINGGENG_INFORMATION("xzd_subcontract_change"),//分包合同变更 CAIGOUHETONG_INFORMATION("xzd_purchase_contract_alteration"), //采购变更合同 FENBAOHETONG_JINDU("xzd_settlement_of_subcontracting_contract"),//分包合同进度结算 + JIXIEHETONG_JINDU("xzd_contract_machinery"),//机械合同信息 + JIXIEHETONGBIANG_XINXI("xzd_contract_machinery"),//机械合同信息变更 PURCHASE_CONTRACT_INFORMATION("xzd_purchase_contract_information");//采购合同 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinbiangeng/domain/vo/FinancialRevenuePlanAlterationVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinbiangeng/domain/vo/FinancialRevenuePlanAlterationVo.java index 4383ab17..80da4dc5 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinbiangeng/domain/vo/FinancialRevenuePlanAlterationVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/zijinjihua/yueduzijinbiangeng/domain/vo/FinancialRevenuePlanAlterationVo.java @@ -19,6 +19,7 @@ import org.dromara.xzd.zijinjihua.yueduzijinjihua.domain.vo.StatementOfExpenditu import java.io.Serial; import java.io.Serializable; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -158,6 +159,12 @@ public class FinancialRevenuePlanAlterationVo implements Serializable { @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") private String createByName; + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + /** * 收入明细