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 00000000..e43bc891 --- /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 00000000..00c43afa --- /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 00000000..7fe892ba --- /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 00000000..b3cf9d88 --- /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 efe89ced..93a5de84 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 b45cc723..2ab8b020 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 b24d5765..08605571 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 90fdc687..4cea5a3b 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} 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 c41c670c..1a83532f 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 3c2dc386..dbb03e3e 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 = "乙方公司名称"; @@ -135,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 214a8a84..e34028f8 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,32 @@ public class ContractController implements BusinessControllerMarker { public CommonResult> submitErp(@RequestBody List ids) { return success(contractService.submitErp(ids)); } + + @GetMapping("/list/up-not-relation") + @Operation(summary = "获得上游未关联合同列表") + @PreAuthorize("@ss.hasPermission('base:contract:get')") + 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") + @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/controller/admin/purchaseorder/PurchaseOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java index fa01c1d5..eeaadc32 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java @@ -143,5 +143,11 @@ public class PurchaseOrderController implements BusinessControllerMarker { public CommonResult> getOrderByOrderNo(@RequestBody @Validated @NotEmpty(message = "采购订单不能为空") List orderNos){ return success(purchaseOrderService.getOrderByOrderNo(orderNos)); } + //根据订单id修改订单状态 + @PutMapping("/update-order-status") + @Operation(summary = "根据订单id修改订单状态", description = "sts取值于字典名称'采购订单状态',字典类型'PRCH_ORD_STS'`") + public CommonResult updateOrderStatus(@RequestParam("orderId") Long orderId, @RequestParam("sts") String sts){ + return success(purchaseOrderService.updateOrderStatus(orderId,sts)); + } } 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 00000000..08913671 --- /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 00000000..c124c2ed --- /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 2c3b57c9..7c43346b 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,36 @@ public interface ContractService { * @return 合同信息 */ ContractRespVO getBySystemContractNumber(String systemContractNumber); + + /** + * 获得上游未关联合同列表 + * + * @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 ffdfd65a..95b61cd3 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; @@ -93,6 +94,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 +465,194 @@ public class ContractServiceImpl implements ContractService { return respVO; } + @Override + public List getListUpNotRelation(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()); + }); + } + + // 返回结果集 + 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); + 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); + result = BeanUtils.toBean(contractMainDOS, ContractRespVO.class); + } else { + // 不存在的收支类型或收支类型为空 + throw exception(CONTRACT_ERP_RCV_DLVY_NOT_EXISTS); + } + + return result; + } + + @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) { + 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) { + + // 查询合同信息 + if (contractMainMapper.selectById(id) == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + + // 查询关联表 + 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) { diff --git a/zt-module-erp/zt-module-erp-server/pom.xml b/zt-module-erp/zt-module-erp-server/pom.xml index 0b131582..a758cf63 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 acb54733..91ddd40f 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 c69ba0af..b79382b5 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 cc4993dd..c01fb1cb 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