From 568c30922693efdc01a243397db22b91a13bf249 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 15 Oct 2025 14:29:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E5=90=88=E5=90=8C=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/contract/DictEnum.java | 3 ++ .../admin/contract/ContractController.java | 15 ++++-- .../contract/vo/contract/RelationReqVo.java | 18 +++++++ .../service/contract/ContractService.java | 8 +++ .../service/contract/ContractServiceImpl.java | 50 +++++++++++-------- 5 files changed, 70 insertions(+), 24 deletions(-) create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/RelationReqVo.java diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java index 274dc75..d2aa970 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java @@ -5,6 +5,9 @@ package com.zt.plat.module.contractorder.enums.contract; */ public enum DictEnum { + /** 业务关联类型 */ + BSE_SYS_REL_TP_ORDER("订单","ORDER",null), + BSE_SYS_REL_TP_CONTRACT("合同","CONTRACT",null), /** 提交ERP合同状态 */ SUBMIT_ERP_CTRT_STS_EF("正在执行","EF","其它所有状态"), SUBMIT_ERP_CTRT_STS_BFZT("部分暂停","BFZT",null), diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java index e34028f..951460a 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java @@ -157,29 +157,36 @@ public class ContractController implements BusinessControllerMarker { @GetMapping("/list/up-not-relation") @Operation(summary = "获得上游未关联合同列表") - @PreAuthorize("@ss.hasPermission('base:contract:get')") + @PreAuthorize("@ss.hasPermission('base:contract:relation')") public CommonResult> getListUpNotRelation(@RequestParam("id") Long id) { return success(contractService.getListUpNotRelation(id)); } @GetMapping("/list/down-not-relation") @Operation(summary = "获得下游未关联合同列表") - @PreAuthorize("@ss.hasPermission('base:contract:get')") + @PreAuthorize("@ss.hasPermission('base:contract:relation')") public CommonResult> getListDownNotRelation(@RequestParam("id") Long id) { return success(contractService.getListDownNotRelation(id)); } @GetMapping("/get/up-relation") @Operation(summary = "获得上游关联的合同数据") - @PreAuthorize("@ss.hasPermission('base:contract:get')") + @PreAuthorize("@ss.hasPermission('base:contract:relation')") public CommonResult getUpRelation(@RequestParam("id") Long id) { return success(contractService.getUpRelation(id)); } @GetMapping("/get/down-relation") @Operation(summary = "获得下游关联的合同数据") - @PreAuthorize("@ss.hasPermission('base:contract:get')") + @PreAuthorize("@ss.hasPermission('base:contract:relation')") public CommonResult getDownRelation(@RequestParam("id") Long id) { return success(contractService.getDownRelation(id)); } + + @PostMapping("/relation") + @Operation(summary = "关联合同") + @PreAuthorize("@ss.hasPermission('base:contract:relation')") + public CommonResult relation(@RequestBody RelationReqVo reqVo) { + return success(contractService.relation(reqVo)); + } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/RelationReqVo.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/RelationReqVo.java new file mode 100644 index 0000000..2781618 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/RelationReqVo.java @@ -0,0 +1,18 @@ +package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +@Schema(description = "管理后台 - 合同关联请求对象 Request VO") +@Data +public class RelationReqVo { + + @Schema(description = "上游主键", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "上游主键不能为空") + private Long upId; + + @Schema(description = "下游主键", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "下游主键不能为空") + private Long downId; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java index 7c43346..bae6e20 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java @@ -151,4 +151,12 @@ public interface ContractService { * @return 关联的下游合同数据 */ ContractRespVO getDownRelation(Long id); + + /** + * 关联合同 + * + * @param reqVo 上下游合同ID + * @return 关联结果 + */ + Boolean relation(RelationReqVo reqVo); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index 95b61cd..004abd9 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -1050,26 +1050,6 @@ public class ContractServiceImpl implements ContractService { return ""; } - /** - * 获取合同ID集合 - * - * @param contractName 合同名称 - * @param contractPaperNumber 合同编号 - * @return 合同ID集合 - */ - private List getContractIds(String contractName, String contractPaperNumber) { - List contractIds = new ArrayList<>(); - List contractMainDOS = contractMainMapper.selectList(new LambdaQueryWrapperX() - .likeIfPresent(ContractMainDO::getContractName, contractName) - .likeIfPresent(ContractMainDO::getContractPaperNumber, contractPaperNumber)); - if (CollectionUtils.isNotEmpty(contractMainDOS)) { - contractIds = contractMainDOS.stream() - .map(contractMainDO -> contractMainDO.getId()) - .collect(Collectors.toList()); - } - return contractIds; - } - @Override public List getNots(NotsQueryReqVO queryReqVO) { // 查合同ID集合 @@ -1362,6 +1342,16 @@ public class ContractServiceImpl implements ContractService { return result; } + @Override + public Boolean relation(RelationReqVo reqVo) { + SystemRelativityDO saveDO = new SystemRelativityDO(); + saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_CONTRACT.getCode()); + saveDO.setUpId(reqVo.getUpId()); + saveDO.setDownId(reqVo.getDownId()); + int insert = systemRelativityMapper.insert(saveDO); + return insert > 0; + } + /** * 校验合同内容 * @@ -1584,4 +1574,24 @@ public class ContractServiceImpl implements ContractService { } return numPrefix + "-" + num; } + + /** + * 获取合同ID集合 + * + * @param contractName 合同名称 + * @param contractPaperNumber 合同编号 + * @return 合同ID集合 + */ + private List getContractIds(String contractName, String contractPaperNumber) { + List contractIds = new ArrayList<>(); + List contractMainDOS = contractMainMapper.selectList(new LambdaQueryWrapperX() + .likeIfPresent(ContractMainDO::getContractName, contractName) + .likeIfPresent(ContractMainDO::getContractPaperNumber, contractPaperNumber)); + if (CollectionUtils.isNotEmpty(contractMainDOS)) { + contractIds = contractMainDOS.stream() + .map(contractMainDO -> contractMainDO.getId()) + .collect(Collectors.toList()); + } + return contractIds; + } }