From 1e3be1c93e5d6d9e520b04f2bf02ce632f478f1a Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Wed, 15 Oct 2025 11:02:56 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E8=B4=A6=E6=88=B7=E6=9D=A1=E6=AC=BE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zt/plat/module/api/BaseApi.java | 23 ++++++++++++ .../plat/module/api/dto/AccountRespDto.java | 35 +++++++++++++++++++ .../plat/module/base/enums/ApiConstants.java | 24 +++++++++++++ .../zt/plat/module/base/api/BaseApiImpl.java | 31 ++++++++++++++++ .../base/dal/mysql/base/AccountMapper.java | 18 ++++++++++ .../base/service/base/AccountService.java | 3 ++ .../base/service/base/AccountServiceImpl.java | 6 ++++ .../mapper/base/CompanyRelativityMapper.xml | 1 + 8 files changed, 141 insertions(+) create mode 100644 zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/api/BaseApi.java create mode 100644 zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/api/dto/AccountRespDto.java create mode 100644 zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ApiConstants.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/api/BaseApiImpl.java diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/api/BaseApi.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/api/BaseApi.java new file mode 100644 index 0000000..e43bc89 --- /dev/null +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/api/BaseApi.java @@ -0,0 +1,23 @@ +package com.zt.plat.module.api; + +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.module.api.dto.AccountRespDto; +import com.zt.plat.module.base.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.List; + +@FeignClient(name = ApiConstants.NAME) +@Tag(name = "RPC 服务 - base") +public interface BaseApi { + + String PREFIX = ApiConstants.PREFIX + "/base"; + + @GetMapping(PREFIX + "/getNoPage") + @Operation(summary = "数据查询") + List getNoPage(@Valid AccountRespDto respVO); +} diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/api/dto/AccountRespDto.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/api/dto/AccountRespDto.java new file mode 100644 index 0000000..00c43af --- /dev/null +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/api/dto/AccountRespDto.java @@ -0,0 +1,35 @@ +package com.zt.plat.module.api.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "RPC 服务 DTO") +@Data +public class AccountRespDto { + private Long id; + + private String type; + + private String accountName; + + private String bankAccount; + + private String accountNumber; + + private String taxNumber; + + private LocalDateTime createTime; + + private String isEnable; + + private String customerNumber; + + private String customerName; + + private String address; + + private String phone; + +} diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ApiConstants.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ApiConstants.java new file mode 100644 index 0000000..7fe892b --- /dev/null +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ApiConstants.java @@ -0,0 +1,24 @@ +package com.zt.plat.module.base.enums; + +import com.zt.plat.framework.common.enums.RpcConstants; + +/** + * API 相关的枚举 + * + * @author ZT + */ +public class ApiConstants { + + /** + * 服务名 + * + * 注意,需要保证和 spring.application.name 保持一致 + */ + public static final String NAME = "base-server"; + + public static final String PREFIX = RpcConstants.RPC_API_PREFIX + "/base"; + + public static final String VERSION = "1.0.0"; + + public static final String TABLE_FIELD_SPLY_ERP_CPN_NUM = "NUM"; +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/api/BaseApiImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/api/BaseApiImpl.java new file mode 100644 index 0000000..b3cf9d8 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/api/BaseApiImpl.java @@ -0,0 +1,31 @@ +package com.zt.plat.module.base.api; + +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.module.api.BaseApi; +import com.zt.plat.module.api.dto.AccountRespDto; +import com.zt.plat.module.base.dal.dataobject.base.AccountDO; +import com.zt.plat.module.base.service.base.AccountService; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * ERP Api 实现类 + * + * @author ZT + * @author jason + */ +@RestController +@Validated +public class BaseApiImpl implements BaseApi { + + @Resource + private AccountService accountService; + + @Override + public List getNoPage(AccountRespDto respVO) { + return accountService.getAccountNoPage(respVO); + } +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/AccountMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/AccountMapper.java index efe89ce..93a5de8 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/AccountMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/AccountMapper.java @@ -3,10 +3,14 @@ package com.zt.plat.module.base.dal.mysql.base; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.api.dto.AccountRespDto; import com.zt.plat.module.base.controller.admin.base.vo.AccountPageReqVO; +import com.zt.plat.module.base.controller.admin.base.vo.AccountRespVO; import com.zt.plat.module.base.dal.dataobject.base.AccountDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 账户条款 Mapper * @@ -31,4 +35,18 @@ public interface AccountMapper extends BaseMapperX { .orderByDesc(AccountDO::getId)); } + default List selectNoPage(AccountRespDto reqVO){ + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(AccountDO::getType, reqVO.getType()) + .likeIfPresent(AccountDO::getAccountName, reqVO.getAccountName()) + .likeIfPresent(AccountDO::getAddress, reqVO.getAddress()) + .likeIfPresent(AccountDO::getPhone, reqVO.getPhone()) + .eqIfPresent(AccountDO::getBankAccount, reqVO.getBankAccount()) + .eqIfPresent(AccountDO::getCustomerName, reqVO.getCustomerName()) + .eqIfPresent(AccountDO::getCustomerNumber, reqVO.getCustomerNumber()) + .eqIfPresent(AccountDO::getIsEnable, reqVO.getIsEnable()) + .eqIfPresent(AccountDO::getAccountNumber, reqVO.getAccountNumber()) + .eqIfPresent(AccountDO::getTaxNumber, reqVO.getTaxNumber()) + .orderByDesc(AccountDO::getId)); + } } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountService.java index b45cc72..2ab8b02 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountService.java @@ -1,6 +1,7 @@ package com.zt.plat.module.base.service.base; import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.api.dto.AccountRespDto; import com.zt.plat.module.base.controller.admin.base.vo.AccountPageReqVO; import com.zt.plat.module.base.controller.admin.base.vo.AccountRespVO; import com.zt.plat.module.base.controller.admin.base.vo.AccountSaveReqVO; @@ -67,4 +68,6 @@ public interface AccountService { * @param saveReqVOS 账户条款 */ void enableAccountList(List saveReqVOS); + + List getAccountNoPage(AccountRespDto respVO); } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountServiceImpl.java index b24d576..0860557 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountServiceImpl.java @@ -3,6 +3,7 @@ package com.zt.plat.module.base.service.base; import cn.hutool.core.collection.CollUtil; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.api.dto.AccountRespDto; import com.zt.plat.module.base.controller.admin.base.vo.AccountPageReqVO; import com.zt.plat.module.base.controller.admin.base.vo.AccountRespVO; import com.zt.plat.module.base.controller.admin.base.vo.AccountSaveReqVO; @@ -96,4 +97,9 @@ public class AccountServiceImpl implements AccountService { } } + @Override + public List getAccountNoPage(AccountRespDto respVO) { + List entityList = accountMapper.selectNoPage(respVO); + return BeanUtils.toBean(entityList, AccountRespDto.class); + } } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml index 90fdc68..4cea5a3 100644 --- a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml @@ -30,6 +30,7 @@ left join SPLY_ERP_CPN c on r.ERP_NUM = c.NUM where d.DELETED = 0 and d.IS_COMPANY = 1 + and r.DELETED = 0 and d.NAME = #{name} From 1bfff8f234ebff87770786e3f9d293a98930d91b Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 15 Oct 2025 11:03:27 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E8=8E=B7=E5=BE=97=E6=9C=AA=E5=85=B3?= =?UTF-8?q?=E8=81=94=E5=90=88=E5=90=8C=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/ErrorCodeConstants.java | 1 + .../enums/TableFieldConstants.java | 2 + .../admin/contract/ContractController.java | 7 ++ .../contract/SystemRelativityDO.java | 50 ++++++++++++++ .../contract/SystemRelativityMapper.java | 14 ++++ .../service/contract/ContractService.java | 2 + .../service/contract/ContractServiceImpl.java | 65 +++++++++++++++++++ 7 files changed, 141 insertions(+) create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/SystemRelativityMapper.java diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java index c41c670..1a83532 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java @@ -23,4 +23,5 @@ public interface ErrorCodeConstants { ErrorCode CONTRACT_STATUS_NOT_APPROVAL = new ErrorCode(1_027_000_008, "{}状态合同不允许审核"); ErrorCode CONTRACT_ERP_COMPANY_PLEASE_BIND = new ErrorCode(1_027_000_009, "请先绑定{}ERP公司信息"); ErrorCode CONTRACT_STATUS_NOT_DELETE = new ErrorCode(1_027_000_010, "{}状态合同不允许删除"); + ErrorCode CONTRACT_ERP_RCV_DLVY_NOT_EXISTS = new ErrorCode(1_027_000_010, "不存在的收支类型或收支类型为空"); } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java index 3c2dc38..1a520bb 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java @@ -20,6 +20,7 @@ public class TableFieldConstants { public static final String BSE_CTRT_MAIN_CTRT_PPR_NUM = "CTRT_PPR_NUM"; public static final String BSE_CTRT_MAIN_CTRT_PPR_NUM_LABEL = "合同编号"; // 甲方公司编号 + public static final String BSE_CTRT_MAIN_PRCH_CPN_NUM = "PRCH_CPN_NUM"; public static final String BSE_CTRT_MAIN_PRCH_CPN_NUM_LABEL = "甲方公司编号"; // 甲方公司名称 public static final String BSE_CTRT_MAIN_PRCH_CPN_NAME_LABEL = "甲方公司名称"; @@ -28,6 +29,7 @@ public class TableFieldConstants { // 甲方法定代表人 public static final String BSE_CTRT_MAIN_PRCH_LDR_LABEL = "甲方法定代表人"; // 乙方公司编号 + public static final String BSE_CTRT_MAIN_SALE_CPN_NUM = "SALE_CPN_NUM_LABEL"; public static final String BSE_CTRT_MAIN_SALE_CPN_NUM_LABEL = "乙方公司编号"; // 乙方公司名称 public static final String BSE_CTRT_MAIN_SALE_CPN_NAME_LABEL = "乙方公司名称"; 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 214a8a8..3f55ecb 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 @@ -154,4 +154,11 @@ public class ContractController implements BusinessControllerMarker { public CommonResult> submitErp(@RequestBody List ids) { return success(contractService.submitErp(ids)); } + + @GetMapping("/list/not-relation") + @Operation(summary = "获得未关联合同列表") + @PreAuthorize("@ss.hasPermission('base:contract:get')") + public CommonResult> getListNotRelation(@RequestParam("id") Long id) { + return success(contractService.getListNotRelation(id)); + } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java new file mode 100644 index 0000000..0891367 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java @@ -0,0 +1,50 @@ +package com.zt.plat.module.contractorder.dal.dataobject.contract; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +/** + * 业务关联 DO + * + * @author 后台管理-1 + */ +@TableName("bse_sys_rel") +@KeySequence("bse_sys_rel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** + * 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO + */ +public class SystemRelativityDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 上游主键 + */ + @TableField("UP_ID") + private Long upId; + /** + * 下游主键 + */ + @TableField("DOWN_ID") + private Long downId; + /** + * 方式系统;内关联/系统外关联 + */ + @TableField("WY") + private String way; + /** + * 类型;合同/订单 + */ + @TableField("STS") + private String status; +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/SystemRelativityMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/SystemRelativityMapper.java new file mode 100644 index 0000000..c124c2e --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/SystemRelativityMapper.java @@ -0,0 +1,14 @@ +package com.zt.plat.module.contractorder.dal.mysql.contract; + +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 业务关联 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface SystemRelativityMapper extends BaseMapperX { +} \ No newline at end of file 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 2c3b57c..5cf55d5 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 @@ -119,4 +119,6 @@ public interface ContractService { * @return 合同信息 */ ContractRespVO getBySystemContractNumber(String systemContractNumber); + + List getListNotRelation(Long id); } 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 ffdfd65..1064090 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 @@ -93,6 +93,8 @@ public class ContractServiceImpl implements ContractService { private ErpCompanyService erpCompanyService; @Resource private ErpContractService erpContractService; + @Resource + private SystemRelativityMapper systemRelativityMapper; @Override public PageResult getContractPage(ContractPageReqVO pageReqVO) { @@ -462,6 +464,69 @@ public class ContractServiceImpl implements ContractService { return respVO; } + @Override + public List getListNotRelation(Long id) { + + // 查询合同信息 + ContractMainDO contractMainDO = contractMainMapper.selectById(id); + if (contractMainDO == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + + // 收支性质 + String direction = contractMainDO.getDirection(); + // 甲方公司编号 + String purchaseCompanyNumber = contractMainDO.getPurchaseCompanyNumber(); + // 乙方公司编号 + String salesCompanyNumber = contractMainDO.getSalesCompanyNumber(); + + // 已关联合同id集合 + /*List systemRelativityDOS = systemRelativityMapper.selectList(); + LinkedHashSet relationIds = new LinkedHashSet<>(); + if (systemRelativityDOS!= null && !systemRelativityDOS.isEmpty()) { + systemRelativityDOS.forEach(systemRelativityDO -> { + relationIds.add(systemRelativityDO.getUpId()); + relationIds.add(systemRelativityDO.getDownId()); + }); + }*/ + + // 返回结果集 + List result = new ArrayList<>(); + if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(direction)) { // 收入 + // 如果“收支性质”字段为收入,用“甲方公司编号”字段筛选“合同主信息”表中字段等于“乙方公司编号”的数据 + if (StringUtils.isEmpty(purchaseCompanyNumber)) { + // 甲方公司编号不存在 + throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_PRCH_CPN_NUM_LABEL); + } + // 查询条件 + LambdaQueryWrapperX conditon = new LambdaQueryWrapperX<>(); + conditon.eq(ContractMainDO::getSalesCompanyNumber, purchaseCompanyNumber); + + // 查询 + List contractMainDOS = contractMainMapper.selectList(conditon); + result = BeanUtils.toBean(contractMainDOS, ContractRespVO.class); + } else if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(direction)){ // 支出 + // 如果“收支性质”字段为支出,用“乙方公司编号”字段筛选“合同主信息”表中字段等于“甲方公司编号”的数据 + if (StringUtils.isEmpty(salesCompanyNumber)) { + // 乙方公司编号不存在 + throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_SALE_CPN_NUM_LABEL); + } + + // 查询条件 + LambdaQueryWrapperX conditon = new LambdaQueryWrapperX<>(); + conditon.eq(ContractMainDO::getPurchaseCompanyNumber, salesCompanyNumber); + + // 查询 + List contractMainDOS = contractMainMapper.selectList(conditon); + result = BeanUtils.toBean(contractMainDOS, ContractRespVO.class); + } else { + // 不存在的收支类型或收支类型为空 + throw exception(CONTRACT_ERP_RCV_DLVY_NOT_EXISTS); + } + + return result; + } + @Transactional @Override public Boolean update(ContractSaveReqVO reqVO) { From a00dd53d9f8c12eb5b959989d1ea323855978c02 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 15 Oct 2025 11:18:07 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E8=8E=B7=E5=BE=97=E4=B8=8A=E6=B8=B8?= =?UTF-8?q?=E5=85=B3=E8=81=94=E7=9A=84=E5=90=88=E5=90=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20=E8=8E=B7=E5=BE=97=E4=B8=8B=E6=B8=B8?= =?UTF-8?q?=E5=85=B3=E8=81=94=E7=9A=84=E5=90=88=E5=90=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/TableFieldConstants.java | 6 +++ .../admin/contract/ContractController.java | 14 +++++++ .../service/contract/ContractService.java | 4 ++ .../service/contract/ContractServiceImpl.java | 42 +++++++++++++++++++ 4 files changed, 66 insertions(+) diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java index 1a520bb..dbb03e3 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java @@ -137,4 +137,10 @@ public class TableFieldConstants { /* 实例条款值表 */ // 关联实例主键 public static final String BSE_TMPL_INSC_ITM_INSC_ID = "INSC_ID"; + + /* 业务关联表 */ + // 上游主键 + public static final String BSE_SYS_REL_UP_ID = "UP_ID"; + // 下游主键 + public static final String BSE_SYS_REL_DOWN_ID = "DOWN_ID"; } 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 3f55ecb..bc35f93 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 @@ -161,4 +161,18 @@ public class ContractController implements BusinessControllerMarker { public CommonResult> getListNotRelation(@RequestParam("id") Long id) { return success(contractService.getListNotRelation(id)); } + + @GetMapping("/get/up-relation") + @Operation(summary = "获得上游关联的合同数据") + @PreAuthorize("@ss.hasPermission('base:contract:get')") + public CommonResult getUpRelation(@RequestParam("id") Long id) { + return success(contractService.getUpRelation(id)); + } + + @GetMapping("/get/down-relation") + @Operation(summary = "获得下游关联的合同数据") + @PreAuthorize("@ss.hasPermission('base:contract:get')") + public CommonResult getDownRelation(@RequestParam("id") Long id) { + return success(contractService.getDownRelation(id)); + } } 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 5cf55d5..8d4aa19 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 @@ -121,4 +121,8 @@ public interface ContractService { ContractRespVO getBySystemContractNumber(String systemContractNumber); List getListNotRelation(Long id); + + ContractRespVO getUpRelation(Long id); + + ContractRespVO getDownRelation(Long id); } 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 1064090..a4ab02d 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 @@ -527,6 +527,48 @@ public class ContractServiceImpl implements ContractService { return result; } + @Override + public ContractRespVO getUpRelation(Long id) { + + // 查询关联表 + SystemRelativityDO systemRelativityDO = systemRelativityMapper.selectOne(TableFieldConstants.BSE_SYS_REL_DOWN_ID, id); + if (systemRelativityDO == null) { + return null; + } + + // 上游合同ID + Long upId = systemRelativityDO.getUpId(); + + // 获取上游合同信息 + ContractMainDO contractMainDO = contractMainMapper.selectById(upId); + if (contractMainDO == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + + return BeanUtils.toBean(contractMainDO, ContractRespVO.class); + } + + @Override + public ContractRespVO getDownRelation(Long id) { + + // 查询关联表 + SystemRelativityDO systemRelativityDO = systemRelativityMapper.selectOne(TableFieldConstants.BSE_SYS_REL_UP_ID, id); + if (systemRelativityDO == null) { + return null; + } + + // 下游合同ID + Long upId = systemRelativityDO.getUpId(); + + // 获取下游合同信息 + ContractMainDO contractMainDO = contractMainMapper.selectById(upId); + if (contractMainDO == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + + return BeanUtils.toBean(contractMainDO, ContractRespVO.class); + } + @Transactional @Override public Boolean update(ContractSaveReqVO reqVO) { From 33d6453eace631e8bc62cd6f983ed2abe66abdd1 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 15 Oct 2025 11:32:43 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=8E=B7=E5=BE=97?= =?UTF-8?q?=E6=9C=AA=E5=85=B3=E8=81=94=E5=90=88=E5=90=8C=E5=88=97=E8=A1=A8?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=BE=97=E4=B8=8A=E6=B8=B8?= =?UTF-8?q?=E6=9C=AA=E5=85=B3=E8=81=94=E5=90=88=E5=90=8C=E5=88=97=E8=A1=A8?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=BE=97=E4=B8=8B=E6=B8=B8?= =?UTF-8?q?=E6=9C=AA=E5=85=B3=E8=81=94=E5=90=88=E5=90=8C=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/contract/ContractController.java | 15 ++- .../service/contract/ContractService.java | 28 +++++- .../service/contract/ContractServiceImpl.java | 94 ++++++++++++++++++- 3 files changed, 127 insertions(+), 10 deletions(-) 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 bc35f93..e34028f 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 @@ -155,11 +155,18 @@ public class ContractController implements BusinessControllerMarker { return success(contractService.submitErp(ids)); } - @GetMapping("/list/not-relation") - @Operation(summary = "获得未关联合同列表") + @GetMapping("/list/up-not-relation") + @Operation(summary = "获得上游未关联合同列表") @PreAuthorize("@ss.hasPermission('base:contract:get')") - public CommonResult> getListNotRelation(@RequestParam("id") Long id) { - return success(contractService.getListNotRelation(id)); + 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')") + public CommonResult> getListDownNotRelation(@RequestParam("id") Long id) { + return success(contractService.getListDownNotRelation(id)); } @GetMapping("/get/up-relation") 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 8d4aa19..7c43346 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 @@ -120,9 +120,35 @@ public interface ContractService { */ ContractRespVO getBySystemContractNumber(String systemContractNumber); - List getListNotRelation(Long id); + /** + * 获得上游未关联合同列表 + * + * @param id 合同ID + * @return 上游未关联的合同列表 + */ + List getListUpNotRelation(Long id); + /** + * 获得下游未关联合同列表 + * + * @param id 合同ID + * @return 下游未关联的合同列表 + */ + List getListDownNotRelation(Long id); + + /** + * 获得上游关联的合同数据 + * + * @param id 合同ID + * @return 关联的上游合同数据 + */ ContractRespVO getUpRelation(Long id); + /** + * 获得下游关联的合同数据 + * + * @param id 合同ID + * @return 关联的下游合同数据 + */ ContractRespVO getDownRelation(Long id); } 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 a4ab02d..95b61cd 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 @@ -42,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; import java.util.stream.Collectors; @@ -465,7 +466,7 @@ public class ContractServiceImpl implements ContractService { } @Override - public List getListNotRelation(Long id) { + public List getListUpNotRelation(Long id) { // 查询合同信息 ContractMainDO contractMainDO = contractMainMapper.selectById(id); @@ -480,15 +481,14 @@ public class ContractServiceImpl implements ContractService { // 乙方公司编号 String salesCompanyNumber = contractMainDO.getSalesCompanyNumber(); - // 已关联合同id集合 - /*List systemRelativityDOS = systemRelativityMapper.selectList(); + // 已关联的上游合同id集合 + List systemRelativityDOS = systemRelativityMapper.selectList(); LinkedHashSet relationIds = new LinkedHashSet<>(); if (systemRelativityDOS!= null && !systemRelativityDOS.isEmpty()) { systemRelativityDOS.forEach(systemRelativityDO -> { relationIds.add(systemRelativityDO.getUpId()); - relationIds.add(systemRelativityDO.getDownId()); }); - }*/ + } // 返回结果集 List result = new ArrayList<>(); @@ -501,6 +501,9 @@ public class ContractServiceImpl implements ContractService { // 查询条件 LambdaQueryWrapperX conditon = new LambdaQueryWrapperX<>(); conditon.eq(ContractMainDO::getSalesCompanyNumber, purchaseCompanyNumber); + if (!relationIds.isEmpty()) { + conditon.notIn(ContractMainDO::getId, relationIds); + } // 查询 List contractMainDOS = contractMainMapper.selectList(conditon); @@ -515,6 +518,77 @@ public class ContractServiceImpl implements ContractService { // 查询条件 LambdaQueryWrapperX conditon = new LambdaQueryWrapperX<>(); conditon.eq(ContractMainDO::getPurchaseCompanyNumber, salesCompanyNumber); + if (!relationIds.isEmpty()) { + conditon.notIn(ContractMainDO::getId, relationIds); + } + + // 查询 + List contractMainDOS = contractMainMapper.selectList(conditon); + result = BeanUtils.toBean(contractMainDOS, ContractRespVO.class); + } else { + // 不存在的收支类型或收支类型为空 + throw exception(CONTRACT_ERP_RCV_DLVY_NOT_EXISTS); + } + + return result; + } + + @Override + public List getListDownNotRelation(Long id) { + + // 查询合同信息 + ContractMainDO contractMainDO = contractMainMapper.selectById(id); + if (contractMainDO == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + + // 收支性质 + String direction = contractMainDO.getDirection(); + // 甲方公司编号 + String purchaseCompanyNumber = contractMainDO.getPurchaseCompanyNumber(); + // 乙方公司编号 + String salesCompanyNumber = contractMainDO.getSalesCompanyNumber(); + + // 已关联的上游合同id集合 + List systemRelativityDOS = systemRelativityMapper.selectList(); + LinkedHashSet relationIds = new LinkedHashSet<>(); + if (systemRelativityDOS!= null && !systemRelativityDOS.isEmpty()) { + systemRelativityDOS.forEach(systemRelativityDO -> { + relationIds.add(systemRelativityDO.getDownId()); + }); + } + + // 返回结果集 + List result = new ArrayList<>(); + if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(direction)) { // 收入 + // 如果“收支性质”字段为收入,用“甲方公司编号”字段筛选“合同主信息”表中字段等于“乙方公司编号”的数据 + if (StringUtils.isEmpty(purchaseCompanyNumber)) { + // 甲方公司编号不存在 + throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_PRCH_CPN_NUM_LABEL); + } + // 查询条件 + LambdaQueryWrapperX conditon = new LambdaQueryWrapperX<>(); + conditon.eq(ContractMainDO::getSalesCompanyNumber, purchaseCompanyNumber); + if (!relationIds.isEmpty()) { + conditon.notIn(ContractMainDO::getId, relationIds); + } + + // 查询 + List contractMainDOS = contractMainMapper.selectList(conditon); + result = BeanUtils.toBean(contractMainDOS, ContractRespVO.class); + } else if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(direction)){ // 支出 + // 如果“收支性质”字段为支出,用“乙方公司编号”字段筛选“合同主信息”表中字段等于“甲方公司编号”的数据 + if (StringUtils.isEmpty(salesCompanyNumber)) { + // 乙方公司编号不存在 + throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_SALE_CPN_NUM_LABEL); + } + + // 查询条件 + LambdaQueryWrapperX conditon = new LambdaQueryWrapperX<>(); + conditon.eq(ContractMainDO::getPurchaseCompanyNumber, salesCompanyNumber); + if (!relationIds.isEmpty()) { + conditon.notIn(ContractMainDO::getId, relationIds); + } // 查询 List contractMainDOS = contractMainMapper.selectList(conditon); @@ -530,6 +604,11 @@ public class ContractServiceImpl implements ContractService { @Override public ContractRespVO getUpRelation(Long id) { + // 查询合同信息 + if (contractMainMapper.selectById(id) == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + // 查询关联表 SystemRelativityDO systemRelativityDO = systemRelativityMapper.selectOne(TableFieldConstants.BSE_SYS_REL_DOWN_ID, id); if (systemRelativityDO == null) { @@ -551,6 +630,11 @@ public class ContractServiceImpl implements ContractService { @Override public ContractRespVO getDownRelation(Long id) { + // 查询合同信息 + if (contractMainMapper.selectById(id) == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + // 查询关联表 SystemRelativityDO systemRelativityDO = systemRelativityMapper.selectOne(TableFieldConstants.BSE_SYS_REL_UP_ID, id); if (systemRelativityDO == null) { From 413fc19bbd8f3b4252c05cd57b1f57ca58e17961 Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Wed, 15 Oct 2025 11:50:37 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E8=B4=A6=E6=88=B7=E6=9D=A1=E6=AC=BE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2api=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zt-module-erp/zt-module-erp-server/pom.xml | 6 ++++++ .../controller/admin/erp/ErpCompanyController.java | 8 ++++++++ .../module/erp/service/erp/ErpCompanyService.java | 2 ++ .../erp/service/erp/ErpCompanyServiceImpl.java | 12 ++++++++++++ 4 files changed, 28 insertions(+) diff --git a/zt-module-erp/zt-module-erp-server/pom.xml b/zt-module-erp/zt-module-erp-server/pom.xml index 0b13158..a758cf6 100644 --- a/zt-module-erp/zt-module-erp-server/pom.xml +++ b/zt-module-erp/zt-module-erp-server/pom.xml @@ -42,6 +42,12 @@ ${revision} + + com.zt.plat + zt-module-base-api + ${revision} + + com.zt.plat diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java index acb5473..91ddd40 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java @@ -125,4 +125,12 @@ public class ErpCompanyController { return success(TEST); } + @PostMapping("/test2") + @Operation(summary = "获取base的账户条款") + @PreAuthorize("@ss.hasPermission('sply:erp-company:get')") + public CommonResult test2() { + String TEST = erpCompanyService.test2(); + return success(TEST); + } + } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java index c69ba0a..b79382b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java @@ -74,4 +74,6 @@ public interface ErpCompanyService { void test(); String test1(); + + String test2(); } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java index cc4993d..c01fb1c 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java @@ -7,6 +7,8 @@ import com.xxl.job.core.handler.annotation.XxlJob; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.api.BaseApi; +import com.zt.plat.module.api.dto.AccountRespDto; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpCompanyPageReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpCompanyRespVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpCompanySaveReqVO; @@ -57,6 +59,8 @@ public class ErpCompanyServiceImpl implements ErpCompanyService { private String erpAddress; @Value("${erp.sapsys}") private String sapsys; + @Resource + private BaseApi baseApi; @Override public ErpCompanyRespVO createErpCompany(ErpCompanySaveReqVO createReqVO) { @@ -289,4 +293,12 @@ public class ErpCompanyServiceImpl implements ErpCompanyService { return url + requestEntity; } } + + @Override + public String test2() { + AccountRespDto respVO = new AccountRespDto(); + respVO.setCustomerNumber("50000760"); + List dtos = baseApi.getNoPage(respVO); + return dtos.toString(); + } } \ No newline at end of file From 568c30922693efdc01a243397db22b91a13bf249 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 15 Oct 2025 14:29:45 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E5=85=B3=E8=81=94=E5=90=88=E5=90=8C?= =?UTF-8?q?=E6=8E=A5=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; + } } From 201bd5e88aca87caf428d04ddea7708c5d1e106b Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 15 Oct 2025 15:53:57 +0800 Subject: [PATCH 7/9] =?UTF-8?q?TODO=20=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=20=E5=85=B6=E5=AE=83=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=AD=98=E5=82=A8=E8=AF=B7=E6=B1=82=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=B1=BB=E5=9E=8B=E4=BF=AE=E6=94=B9=20=E6=8F=90?= =?UTF-8?q?=E4=BA=A4erp=E5=AE=A2=E5=95=86=E5=90=8D=E7=A7=B0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/contract/ContractController.java | 12 ++++++------ .../contract/vo/contract/ContractSaveReqVO.java | 3 ++- .../service/contract/ContractServiceImpl.java | 16 ++++++++-------- 3 files changed, 16 insertions(+), 15 deletions(-) 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 951460a..2509b20 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 @@ -100,28 +100,28 @@ public class ContractController implements BusinessControllerMarker { // TODO @PostMapping("/download") - @Operation(summary = "下载文件") + @Operation(summary = "下载文件 TODO") @PreAuthorize("@ss.hasPermission('base:contract:download')") public void download() { } // TODO @PostMapping("/preview") - @Operation(summary = "预览文件") + @Operation(summary = "预览文件 TODO") @PreAuthorize("@ss.hasPermission('base:contract:preview')") public void preview() { } // TODO @PostMapping("/complete") - @Operation(summary = "完结") + @Operation(summary = "完结 TODO") @PreAuthorize("@ss.hasPermission('base:contract:complete')") public void complete() { } // TODO @PostMapping("/archive") - @Operation(summary = "归档") + @Operation(summary = "归档 TODO") @PreAuthorize("@ss.hasPermission('base:contract:archive')") public void archive() { } @@ -135,7 +135,7 @@ public class ContractController implements BusinessControllerMarker { // TODO @PostMapping("/approval") - @Operation(summary = "合同审批") + @Operation(summary = "合同审批 TODO") @PreAuthorize("@ss.hasPermission('base:contract:approval')") public CommonResult approval(@Valid @RequestBody ApprovalReqVO reqVO) { return success(contractService.approval(reqVO)); @@ -143,7 +143,7 @@ public class ContractController implements BusinessControllerMarker { // TODO @PostMapping("/view/approval") - @Operation(summary = "查看审批") + @Operation(summary = "查看审批 TODO") @PreAuthorize("@ss.hasPermission('base:contract:approval')") public void viewApproval() { } 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/ContractSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java index 75f8b08..0555c4b 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract; +import cn.hutool.json.JSONArray; import com.alibaba.excel.annotation.ExcelProperty; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; @@ -34,7 +35,7 @@ public class ContractSaveReqVO { private String fileObject; @Schema(description = "其它附件对象存储") - private String fileObjectOther; + private JSONArray fileObjectOther; // 合同基本信息 @Schema(description = "甲方公司编号;如果是采购合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是销售合同,手动选择,且与ERP(WLDWBH)对应。", example = "甲方公司编号") 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 004abd9..a363f61 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 @@ -1232,22 +1232,22 @@ public class ContractServiceImpl implements ContractService { // 客商编号:SPLR_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP乙方公司编码”,反之为“ERP甲方公司编码” // 客商名称:SPLR_NAME 根据合同主表的收支方向判断,如果为“支出”,值为“ERP乙方公司名称”,反之为“ERP甲方公司名称” if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(contractMainDO.getDirection())) { - erpContractVO.setSupplierNumber(contractMainDO.getSalesCompanyNumber()); - erpContractVO.setSupplierName(contractMainDO.getSalesCompanyName()); + erpContractVO.setSupplierNumber(contractMainDO.getErpSalesCompanyNumber()); + erpContractVO.setSupplierName(contractMainDO.getErpSalesCompanyName()); } else if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(contractMainDO.getDirection())) { - erpContractVO.setSupplierNumber(contractMainDO.getPurchaseCompanyNumber()); - erpContractVO.setSupplierName(contractMainDO.getPurchaseCompanyName()); + erpContractVO.setSupplierNumber(contractMainDO.getErpPurchaseCompanyNumber()); + erpContractVO.setSupplierName(contractMainDO.getErpPurchaseCompanyName()); } // 代理方:AGT erpContractVO.setAgent(contractMainDO.getAgent()); // 合同实施主体编号:CTRT_IMPL_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP甲方公司编码”,反之为“ERP乙方公司编码” // 合同签订主体编号:CTRT_SGN_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP甲方公司名称”,反之为“ERP乙方公司名称” if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(contractMainDO.getDirection())) { - erpContractVO.setContractImplementNumber(contractMainDO.getPurchaseCompanyNumber()); - erpContractVO.setContractSignNumber(contractMainDO.getPurchaseCompanyName()); + erpContractVO.setContractImplementNumber(contractMainDO.getErpPurchaseCompanyNumber()); + erpContractVO.setContractSignNumber(contractMainDO.getErpPurchaseCompanyName()); } else if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(contractMainDO.getDirection())) { - erpContractVO.setContractImplementNumber(contractMainDO.getSalesCompanyNumber()); - erpContractVO.setContractSignNumber(contractMainDO.getSalesCompanyName()); + erpContractVO.setContractImplementNumber(contractMainDO.getErpSalesCompanyNumber()); + erpContractVO.setContractSignNumber(contractMainDO.getErpSalesCompanyName()); } // 合同签订日期:SGN_DT if (contractMainDO.getSignDate() != null) { From 3173a7509e0eb35b57d1b365d04dd99ed549e763 Mon Sep 17 00:00:00 2001 From: chenbowen Date: Wed, 15 Oct 2025 16:15:45 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3ca9834..705a25b 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ https://github.com/YunaiV/ruoyi-vue-pro - 3.0.41 + 3.0.42 17 ${java.version} From 5be2b280e6770f04f6b8bd2d5e0a895feed00095 Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Wed, 15 Oct 2025 17:44:29 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=85=AC=E5=8F=B8=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=EF=BC=8C=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/dal/mysql/base/CompanyRelativityMapper.java | 3 +++ .../base/service/base/CompanyRelativityServiceImpl.java | 2 +- .../resources/mapper/base/CompanyRelativityMapper.xml | 8 +++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/CompanyRelativityMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/CompanyRelativityMapper.java index c3d7a40..c5be973 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/CompanyRelativityMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/CompanyRelativityMapper.java @@ -7,6 +7,7 @@ import com.zt.plat.module.base.controller.admin.base.vo.CompanyRelativityPageReq import com.zt.plat.module.base.dal.dataobject.base.CompanyRelaDeptDO; import com.zt.plat.module.base.dal.dataobject.base.CompanyRelativityDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -27,4 +28,6 @@ public interface CompanyRelativityMapper extends BaseMapperX getPageByReq(CompanyRelativityPageReqVO pageReqVO); + + void removeByIds(@Param("ids")List ids); } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java index 25c05d3..95efc20 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java @@ -64,7 +64,7 @@ public class CompanyRelativityServiceImpl implements CompanyRelativityService { // 校验存在 validateCompanyRelativityExists(ids); // 删除 - companyRelativityMapper.deleteByIds(ids); + companyRelativityMapper.removeByIds(ids); } private void validateCompanyRelativityExists(List ids) { diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml index 4cea5a3..b1a1c06 100644 --- a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml @@ -30,7 +30,6 @@ left join SPLY_ERP_CPN c on r.ERP_NUM = c.NUM where d.DELETED = 0 and d.IS_COMPANY = 1 - and r.DELETED = 0 and d.NAME = #{name} @@ -44,4 +43,11 @@ and d.DEPT_SOURCE = #{departmentSource} + + + delete from SPLY_CPN_REL where ID in + + #{item} + + \ No newline at end of file