diff --git a/base-server/src/main/resources/application.yml b/base-server/src/main/resources/application.yml index adccaac..7eb362a 100644 --- a/base-server/src/main/resources/application.yml +++ b/base-server/src/main/resources/application.yml @@ -114,8 +114,8 @@ zt: - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 swagger: - title: 管理后台 - description: 提供管理员管理的所有功能 + title: Base 模块 + description: 提供基础管理模块的所有功能 version: ${zt.info.version} tenant: # 多租户相关配置项 enable: true diff --git a/pom.xml b/pom.xml index 705a25b..c92f4b7 100644 --- a/pom.xml +++ b/pom.xml @@ -211,6 +211,12 @@ liss + + qsj + + qsj + + diff --git a/zt-module-base/zt-module-base-server/pom.xml b/zt-module-base/zt-module-base-server/pom.xml index 44d9d4e..acd97ea 100644 --- a/zt-module-base/zt-module-base-server/pom.xml +++ b/zt-module-base/zt-module-base-server/pom.xml @@ -42,6 +42,12 @@ ${revision} + + com.zt.plat + zt-module-erp-api + ${revision} + + com.zt.plat diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialInfomationController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialInfomationController.java index d45b7a5..12abb3d 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialInfomationController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialInfomationController.java @@ -101,4 +101,12 @@ public class MaterialInfomationController { BeanUtils.toBean(list, MaterialInfomationRespVO.class)); } + @GetMapping("/getOneTest") + @Operation(summary = "测试获取生产版本") + @PreAuthorize("@ss.hasPermission('base:material-infomation:query')") + public CommonResult getTest() { + String getOneTest = materialInfomationService.getOneTest(); + return success(getOneTest); + } + } \ 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/MaterialInfomationService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationService.java index cf0cb49..952a06f 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationService.java @@ -61,4 +61,5 @@ public interface MaterialInfomationService { */ PageResult getMaterialInfomationPage(MaterialInfomationPageReqVO pageReqVO); + String getOneTest(); } \ 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/MaterialInfomationServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java index 19e88a8..eec1acc 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java @@ -1,6 +1,7 @@ package com.zt.plat.module.base.service.base; import cn.hutool.core.collection.CollUtil; +import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.base.controller.admin.base.vo.MaterialInfomationPageReqVO; @@ -8,6 +9,8 @@ import com.zt.plat.module.base.controller.admin.base.vo.MaterialInfomationRespVO import com.zt.plat.module.base.controller.admin.base.vo.MaterialInfomationSaveReqVO; import com.zt.plat.module.base.dal.dataobject.base.MaterialInfomationDO; import com.zt.plat.module.base.dal.mysql.base.MaterialInfomationMapper; +import com.zt.plat.module.erp.api.ErpExternalApi; +import com.zt.plat.module.erp.api.dto.ErpProductiveVersionReqDTO; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -29,6 +32,10 @@ public class MaterialInfomationServiceImpl implements MaterialInfomationService @Resource private MaterialInfomationMapper materialInfomationMapper; + @Resource + private ErpExternalApi erpExternalApi; + + @Override public MaterialInfomationRespVO createMaterialInfomation(MaterialInfomationSaveReqVO createReqVO) { // 插入 @@ -86,4 +93,14 @@ public class MaterialInfomationServiceImpl implements MaterialInfomationService return materialInfomationMapper.selectPage(pageReqVO); } + @Override + public String getOneTest() { + ErpProductiveVersionReqDTO reqDTO = new ErpProductiveVersionReqDTO(); + reqDTO.setFactoryNumber("5020"); + reqDTO.setMaterialNumber("224814"); + CommonResult erpProductiveVersion = erpExternalApi.getErpProductiveVersionByFM(reqDTO); + return erpProductiveVersion.getData(); + } + + } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/DeductRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/DeductRespDTO.java index 6184e42..ae49cc4 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/DeductRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/DeductRespDTO.java @@ -32,10 +32,10 @@ public class DeductRespDTO { private String rangeWay; @Schema(description = "上限") - private String up; + private BigDecimal up; @Schema(description = "下限") - private String down; + private BigDecimal down; @Schema(description = "类型(字典:STLM_COEF)") private String type; 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 fef3ebe..41ba61e 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 @@ -145,8 +145,8 @@ public class ContractController implements BusinessControllerMarker { @PostMapping("/submit/erp") @Operation(summary = "提交ERP") @PreAuthorize("@ss.hasPermission('base:contract:erp')") - public CommonResult> submitErp(@RequestBody List ids) { - return success(contractService.submitErp(ids)); + public CommonResult submitErp(@RequestParam("id") Long id) { + return success(contractService.submitErp(id)); } @GetMapping("/list/up-not-relation") 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/ContractPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPageReqVO.java index 294acac..73b4347 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPageReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPageReqVO.java @@ -38,4 +38,7 @@ public class ContractPageReqVO extends PageParam { @Schema(description = "本币金额;与ERP(HTBWBZJE)对应") private BigDecimal basicAmount; + + @Schema(description = "合同分类(字典:SPLY_BSN_TP)") + private String businessType; } \ 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/controller/admin/contract/vo/contract/DeductRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/DeductRespVO.java index c37f024..e544e2b 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/DeductRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/DeductRespVO.java @@ -31,10 +31,10 @@ public class DeductRespVO { private String rangeWay; @Schema(description = "上限") - private String up; + private BigDecimal up; @Schema(description = "下限") - private String down; + private BigDecimal down; @Schema(description = "类型(字典:STLM_COEF)") private String type; 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/DeductSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/DeductSaveReqVO.java index 8246ab7..fa796e3 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/DeductSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/DeductSaveReqVO.java @@ -31,10 +31,10 @@ public class DeductSaveReqVO { private String rangeWay; @Schema(description = "上限") - private String up; + private BigDecimal up; @Schema(description = "下限") - private String down; + private BigDecimal down; @Schema(description = "类型(字典:STLM_COEF)") private String type; 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/RelationRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/RelationRespVO.java new file mode 100644 index 0000000..9e87427 --- /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/RelationRespVO.java @@ -0,0 +1,15 @@ +package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 合同关联 Response VO") +@Data +public class RelationRespVO { + + @Schema(description = "上游主键") + private Long upId; + + @Schema(description = "下游主键") + private Long downId; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractDeductDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractDeductDO.java index f89b3d0..1c9c94c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractDeductDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractDeductDO.java @@ -63,12 +63,12 @@ public class ContractDeductDO extends BusinessBaseDO { * 上限 */ @TableField("UP") - private String up; + private BigDecimal up; /** * 下限 */ @TableField("DOWN") - private String down; + private BigDecimal down; /** * 类型(字典:STLM_COEF) */ diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java index bc36ddf..c3705fb 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java @@ -23,6 +23,7 @@ public interface ContractMainMapper extends BaseMapperX { .likeIfPresent(ContractMainDO::getPurchaseCompanyName, reqVO.getPurchaseCompanyName()) .eqIfPresent(ContractMainDO::getBasicAmount, reqVO.getBasicAmount()) .eqIfPresent(ContractMainDO::getStatus, reqVO.getStatus()) + .eqIfPresent(ContractMainDO::getBusinessType, reqVO.getBusinessType()) .orderByDesc(ContractMainDO::getCreateTime)); } } \ 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 d81bf25..6b229bb 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 @@ -102,10 +102,10 @@ public interface ContractService { /** * 提交ERP * - * @param ids 合同ID集合 - * @return + * @param id 合同ID + * @return 提交结果 */ - List submitErp(List ids); + JSONObject submitErp(Long id); /** * 删除合同 @@ -163,6 +163,14 @@ public interface ContractService { */ Boolean relation(RelationReqVo reqVo); + /** + * 根据合同ID获得关联合同 + * + * @param id 合同ID + * @return 上下游合同ID + */ + RelationRespVO getRelation(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 ccc090e..873e7fb 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 @@ -54,6 +54,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.ByteArrayOutputStream; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; @@ -171,7 +172,11 @@ public class ContractServiceImpl implements ContractService { // 合同状态保存为草稿 contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_DRAFT.getCode()); // 生成系统合同编号 - contractMainDO.setSystemContractNumber(generateSystemContractNumber(reqVO.getCategory())); + contractMainDO.setSystemContractNumber(generateSystemContractNumber(reqVO.getBusinessType())); + // 原币金额-变更后 + if (contractMainDO.getChangeCooAmount() == null) contractMainDO.setChangeCooAmount(new BigDecimal(0)); + // 本币金额-变更后 + if (contractMainDO.getChangeBasicAmount() == null) contractMainDO.setChangeBasicAmount(new BigDecimal(0)); // 保存合同主信息 contractMainMapper.insert(contractMainDO); @@ -1312,62 +1317,65 @@ public class ContractServiceImpl implements ContractService { } @Override - public List submitErp(List ids) { + public JSONObject submitErp(Long id) { - List results = new ArrayList<>(); + JSONObject result = new JSONObject(); - // 遍历合同ID集合 - ids.forEach(id -> { + // 查询合同信息 + ContractMainDO contractMainDO = contractMainMapper.selectById(id); - // 查询合同信息 - ContractMainDO contractMainDO = contractMainMapper.selectById(id); + // 合同数据不存在 + if (contractMainDO == null) { + throw exception(CONTRACT_NOT_EXISTS); + } - if (contractMainDO != null) { + // 合同状态校验 + if (!(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(contractMainDO.getStatus()) + || DictEnum.BSE_CTRT_STS_VOID.getCode().equals(contractMainDO.getStatus()) + || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus()))) { - // 合同状态校验 - if (!(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(contractMainDO.getStatus()) - || DictEnum.BSE_CTRT_STS_VOID.getCode().equals(contractMainDO.getStatus()) - || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus()))) { + throw exception(CONTRACT_STATUS_NOT_SUBMIT_ERP, + DictEnum.getByCodeAndType(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); + } - throw exception(CONTRACT_STATUS_NOT_SUBMIT_ERP, - DictEnum.getByCodeAndType(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); - } + // 生成ERP合同映射表 + ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); - // 生成ERP合同映射表 - ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); + // 调用ERP模块 + JSONObject erpResult = sendToErp(erpContractVO); + log.info("合同提交ERP结果:{}", erpResult); + result.putOnce("success", erpResult.getBool("success")); - // 调用ERP模块 - JSONObject erpResult = sendToErp(erpContractVO); - log.info("合同提交ERP结果:{}", erpResult); - String result = id - +"-"+erpResult.getBool("success") - +(erpResult.getBool("success") ? "" : "-" + erpResult.getStr("errMsg")); - results.add(result); + // 更新合同状态 + if (erpResult.getBool("success")) { + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); + contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_FIND.getCode()); + contractMainMapper.updateById(contractMainDO); - // 更新合同状态 - if (erpResult.getBool("success")) { - contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); - contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_FIND.getCode()); - contractMainMapper.updateById(contractMainDO); - } else { - contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode()); - contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_RLBK.getCode()); - // contractMainDO.setCause(erpResult.getStr("errMsg")); - contractMainMapper.updateById(contractMainDO); - } - } else { - results.add(id+"-"+"false"+"-"+CONTRACT_NOT_EXISTS); - } - }); + result.putOnce("data", erpResult.getStr("data")); + } else { + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode()); + contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_RLBK.getCode()); + contractMainDO.setCause(erpResult.getStr("errMsg")); + contractMainMapper.updateById(contractMainDO); - return results; + result.putOnce("data", erpResult.getStr("errMsg")); + } + + return result; } private JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) { JSONObject erpResult = new JSONObject(); try { - String result = erpContractService.submitErp(erpContractVO); - erpResult.putOnce("success", true); + HashMap result = erpContractService.submitErp(erpContractVO); + if ("E".equals(result.get("flag"))) { + erpResult.putOnce("success", false); + erpResult.putOnce("errMsg", result.get("resStr")+":"+result.get("E_RESP")); + } else { + erpResult.putOnce("success", true); + erpResult.putOnce("data", result); + } } catch (Exception e) { erpResult.putOnce("success", false); erpResult.putOnce("errMsg", e.getMessage()); @@ -1386,6 +1394,32 @@ public class ContractServiceImpl implements ContractService { return insert > 0; } + @Override + public RelationRespVO getRelation(Long id) { + + // 返回结果 + RelationRespVO resp = new RelationRespVO(); + + // 获得上游合同关联 + SystemRelativityDO upSystemRelativityDO = systemRelativityMapper + .selectOne(new LambdaQueryWrapperX() + .eq(SystemRelativityDO::getDownId, id) + ); + + // 获得下游合同关联 + SystemRelativityDO downSystemRelativityDO = systemRelativityMapper + .selectOne(new LambdaQueryWrapperX() + .eq(SystemRelativityDO::getUpId, id) + ); + + // 上游合同ID + if (upSystemRelativityDO != null) resp.setUpId(upSystemRelativityDO.getId()); + // 下游合同ID + if (downSystemRelativityDO != null) resp.setDownId(downSystemRelativityDO.getId()); + + return resp; + } + @Override public ResponseEntity download(List ids) { try { @@ -1517,10 +1551,10 @@ public class ContractServiceImpl implements ContractService { // 更新合同 contractMainMapper.updateById(contractMainDO); - }); - // 重新提交erp - submitErp(ids); + // 重新提交erp + submitErp(id); + }); return true; } @@ -1548,10 +1582,10 @@ public class ContractServiceImpl implements ContractService { // 更新合同 contractMainMapper.updateById(contractMainDO); - }); - // 重新提交erp - submitErp(ids); + // 重新提交erp + submitErp(id); + }); return true; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/logback-spring.xml b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..6641085 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/logback-spring.xml @@ -0,0 +1,76 @@ + + + + + + + + + +       + + + ${PATTERN_DEFAULT} + + + + + + + + + + ${PATTERN_DEFAULT} + + + + ${LOG_FILE} + + + ${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz} + + ${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false} + + ${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB} + + ${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0} + + ${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30} + + + + + + 0 + + 256 + + + + + + + + ${PATTERN_DEFAULT} + + + + + + + + + + + + + + + + + + + + + + diff --git a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/ErpExternalApi.java b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/ErpExternalApi.java index e37718b..f8889bd 100644 --- a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/ErpExternalApi.java +++ b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/ErpExternalApi.java @@ -1,5 +1,7 @@ package com.zt.plat.module.erp.api; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.module.erp.api.dto.ErpProductiveVersionReqDTO; import com.zt.plat.module.erp.api.dto.ErpQueryReqDTO; import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO; import com.zt.plat.module.erp.enums.ApiConstants; @@ -28,4 +30,7 @@ public interface ErpExternalApi { @Operation(summary = "erp数据查询") HashMap queryDataToErp(@Valid @RequestBody ErpQueryReqDTO reqDTO); + @GetMapping(PREFIX + "/queryProductiveVersion") + @Operation(summary = "生产版本数据查询") + CommonResult getErpProductiveVersionByFM(@Valid @RequestBody ErpProductiveVersionReqDTO reqDTO); } diff --git a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpProductiveVersionReqDTO.java b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpProductiveVersionReqDTO.java new file mode 100644 index 0000000..cd3253f --- /dev/null +++ b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpProductiveVersionReqDTO.java @@ -0,0 +1,20 @@ +package com.zt.plat.module.erp.api.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.Map; + +@Schema(description = "RPC 服务 - 查询 ERP DTO") +@Data +public class ErpProductiveVersionReqDTO { + + @Schema(description = "工厂编码") + @NotNull(message = "工厂编码不能为空") + private String factoryNumber; + @Schema(description = "物料编码") + @NotNull(message = "物料编码不能为空") + private String materialNumber; + +} diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java index bbf5b2e..4532369 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/api/ErpExternalApiImpl.java @@ -1,15 +1,22 @@ package com.zt.plat.module.erp.api; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.erp.api.dto.ErpProductiveVersionReqDTO; import com.zt.plat.module.erp.api.dto.ErpQueryReqDTO; import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO; +import com.zt.plat.module.erp.service.erp.ErpProductiveVersionService; import com.zt.plat.module.erp.utils.ErpConfig; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + /** * ERP Api 实现类 * @@ -22,6 +29,8 @@ public class ErpExternalApiImpl implements ErpExternalApi { @Resource private ErpConfig erpConfig; + @Resource + private ErpProductiveVersionService erpProductiveVersionService; @Override public HashMap submitDataToErp(ErpSubmitReqDTO reqDTO) { @@ -34,4 +43,10 @@ public class ErpExternalApiImpl implements ErpExternalApi { Map req = new HashMap<>(); return erpConfig.fetchDataFromERP(funcnr, req); } + + @Override + public CommonResult getErpProductiveVersionByFM(ErpProductiveVersionReqDTO reqDTO) { + String productiveVersionNumber = erpProductiveVersionService.getErpProductiveVersionByFM(reqDTO); + return success(productiveVersionNumber); + } } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java index 0ef7d5b..894a89f 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java @@ -109,4 +109,11 @@ public class ErpProductiveVersionController { return success(true); } + @PutMapping("/isEnable") + @Operation(summary = "启用ERP生产版本,相同工厂、物料,只能启用一个") + @PreAuthorize("@ss.hasPermission('sply:erp-productive-version:update')") + public CommonResult enableErpProductiveVersion(@Valid @RequestBody ErpProductiveVersionSaveReqVO updateReqVO) { + erpProductiveVersionService.enableErpProductiveVersion(updateReqVO); + return success(true); + } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionPageReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionPageReqVO.java index 56377c5..678515a 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionPageReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionPageReqVO.java @@ -29,4 +29,6 @@ public class ErpProductiveVersionPageReqVO extends PageParam { @Schema(description = "组计数器", example = "15610") private Long groupCount; + @Schema(description = "是否启用") + private String isEnable; } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionRespVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionRespVO.java index a40b721..39dff3b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionRespVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionRespVO.java @@ -42,4 +42,7 @@ public class ErpProductiveVersionRespVO { @ExcelProperty("组计数器") private Long groupCount; + @Schema(description = "是否启用") + private String isEnable; + } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionSaveReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionSaveReqVO.java index 8039b33..ae375a6 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionSaveReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpProductiveVersionSaveReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.erp.controller.admin.erp.vo; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; @@ -38,4 +39,7 @@ public class ErpProductiveVersionSaveReqVO { @NotNull(message = "组计数器不能为空") private Long groupCount; + @Schema(description = "是否启用") + private String isEnable; + } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpProductiveVersionDO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpProductiveVersionDO.java index 35d2098..752eb43 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpProductiveVersionDO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpProductiveVersionDO.java @@ -63,4 +63,7 @@ public class ErpProductiveVersionDO { @TableField("GRP_CNT") private Long groupCount; + @TableField("IS_ENB") + private String isEnable; + } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/ErpProductiveVersionMapper.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/ErpProductiveVersionMapper.java index 17558ed..26001f0 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/ErpProductiveVersionMapper.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/ErpProductiveVersionMapper.java @@ -3,9 +3,11 @@ package com.zt.plat.module.erp.dal.mysql.erp; 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.erp.api.dto.ErpProductiveVersionReqDTO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveVersionPageReqVO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpProductiveVersionDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * ERP生产版本 Mapper @@ -27,4 +29,13 @@ public interface ErpProductiveVersionMapper extends BaseMapperX() + .eq(ErpProductiveVersionDO::getFactoryNumber, reqDTO.getFactoryNumber()) + .eq(ErpProductiveVersionDO::getMaterialNumber, reqDTO.getMaterialNumber()) + .eq(ErpProductiveVersionDO::getIsEnable, 1) + .last("LIMIT 1")).getProductiveVersionNumber(); + }; } \ 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/ErpContractService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractService.java index ca681b4..dfd863a 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractService.java @@ -7,6 +7,7 @@ import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpContractDO; import jakarta.validation.Valid; +import java.util.HashMap; import java.util.List; /** @@ -77,5 +78,5 @@ public interface ErpContractService { * @param erpContractVO ERP合同映射数据 * @return ERP合同映射 */ - String submitErp(ErpContractSaveReqVO erpContractVO); + HashMap submitErp(ErpContractSaveReqVO erpContractVO); } \ 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/ErpContractServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java index 6583933..21f750c 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java @@ -30,7 +30,6 @@ import java.util.Map; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.erp.enums.ErrorCodeConstants.ERP_CONTRACT_NOT_EXISTS; -import static dm.jdbc.util.DriverUtil.log; /** * ERP合同映射 Service 实现类 @@ -227,7 +226,7 @@ public class ErpContractServiceImpl implements ErpContractService { } @Override - public String submitErp(ErpContractSaveReqVO erpContractVO) { + public HashMap submitErp(ErpContractSaveReqVO erpContractVO) { // 转换为DO ErpContractDO erpContract = BeanUtils.toBean(erpContractVO, ErpContractDO.class); @@ -337,7 +336,7 @@ public class ErpContractServiceImpl implements ErpContractService { HashMap response = erpExternalApi.submitDataToErp(erpSubmitReqDTO); - return response.get("resStr"); + return response; } /** diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProcessDetailServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProcessDetailServiceImpl.java index 414280a..bc87575 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProcessDetailServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProcessDetailServiceImpl.java @@ -149,11 +149,12 @@ public class ErpProcessDetailServiceImpl implements ErpProcessDetailService { new LambdaQueryWrapperX() .in(ErpProcessDetailDO::getProcessId, result.toInsert.stream().map(ErpProcessDetailDO::getProcessId).distinct().collect(Collectors.toList())) .in(ErpProcessDetailDO::getProcessingNumber, result.toInsert.stream().map(ErpProcessDetailDO::getProcessingNumber).distinct().collect(Collectors.toList())) + .in(ErpProcessDetailDO::getProcessingName, result.toInsert.stream().map(ErpProcessDetailDO::getProcessingName).distinct().collect(Collectors.toList())) .in(ErpProcessDetailDO::getWorkCenterNumber, result.toInsert.stream().map(ErpProcessDetailDO::getWorkCenterNumber).distinct().collect(Collectors.toList())) ); Map numberIdMap = insertedRecords.stream() .collect(Collectors.toMap( - asset -> asset.getProcessId() + "-" + asset.getProcessingNumber() + "-" + asset.getWorkCenterNumber(), + asset -> asset.getProcessId() + "-" + asset.getProcessingNumber() + "-" + asset.getProcessingName() + "-" + asset.getWorkCenterNumber(), ErpProcessDetailDO::getId, (existing, replacement) -> replacement)); myRedisConfig.addRedisCacheMap(result.key, numberIdMap); } @@ -188,7 +189,7 @@ public class ErpProcessDetailServiceImpl implements ErpProcessDetailService { List assets = erpProcessDetailMapper.selectList(new LambdaQueryWrapperX()); Map existingNumbers = new HashMap<>(); for (ErpProcessDetailDO asset : assets) { - String mapKey = asset.getProcessId() + "-" + asset.getProcessingNumber()+ "-" + asset.getWorkCenterNumber(); + String mapKey = asset.getProcessId() + "-" + asset.getProcessingNumber()+ "-" + asset.getProcessingName()+ "-" + asset.getWorkCenterNumber(); existingNumbers.put(mapKey, asset.getId()); } myRedisConfig.addRedisCacheMap(key, existingNumbers); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveVersionService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveVersionService.java index d205e4a..27076a3 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveVersionService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveVersionService.java @@ -1,6 +1,7 @@ package com.zt.plat.module.erp.service.erp; import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.erp.api.dto.ErpProductiveVersionReqDTO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveVersionPageReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveVersionRespVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveVersionSaveReqVO; @@ -62,4 +63,8 @@ public interface ErpProductiveVersionService { PageResult getErpProductiveVersionPage(ErpProductiveVersionPageReqVO pageReqVO); void callErpRfcInterface(); + + void enableErpProductiveVersion(ErpProductiveVersionSaveReqVO updateReqVO); + + String getErpProductiveVersionByFM(ErpProductiveVersionReqDTO reqDTO); } \ 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/ErpProductiveVersionServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveVersionServiceImpl.java index 4e6e622..45ba8e4 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveVersionServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveVersionServiceImpl.java @@ -7,6 +7,7 @@ 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.erp.api.dto.ErpProductiveVersionReqDTO; import com.zt.plat.module.erp.utils.ErpConfig; import com.zt.plat.module.erp.utils.MyRedisConfig; import com.zt.plat.module.erp.enums.OftenEnum; @@ -104,6 +105,22 @@ public class ErpProductiveVersionServiceImpl implements ErpProductiveVersionServ return erpProductiveVersionMapper.selectPage(pageReqVO); } + @Override + public void enableErpProductiveVersion(ErpProductiveVersionSaveReqVO updateReqVO) { + + validateErpProductiveVersionExists(updateReqVO.getId()); + erpProductiveVersionMapper.enableErpProductiveVersion(updateReqVO.getFactoryNumber(), updateReqVO.getMaterialNumber()); + // 更新 + ErpProductiveVersionDO updateObj = BeanUtils.toBean(updateReqVO, ErpProductiveVersionDO.class); + erpProductiveVersionMapper.updateById(updateObj); + } + + @Override + public String getErpProductiveVersionByFM(ErpProductiveVersionReqDTO reqDTO) { + return erpProductiveVersionMapper.getErpProductiveVersionByFM(reqDTO); + } + + @Override @Transactional @XxlJob("getErpProductiveVersionTask") diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java index cdcf879..82d5b65 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java @@ -151,6 +151,8 @@ public class ErpConfig { if (StrUtil.isBlank(E_MSG)) { E_MSG = jsonResponse.getString("msg"); } + String E_RESP = data.getString("E_RESP"); + resMap.put("E_RESP", E_RESP); resMap.put("resStr", E_MSG); resMap.put("flag", flag); } diff --git a/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/ErpProductiveVersionMapper.xml b/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/ErpProductiveVersionMapper.xml index c64aa8e..ae65326 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/ErpProductiveVersionMapper.xml +++ b/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/ErpProductiveVersionMapper.xml @@ -9,4 +9,10 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + UPDATE sply_erp_pdtv_ver + SET IS_ENB = 1 + WHERE FACT_NUM = #{factoryNumber} + AND MTRL_NUM = #{materialNumber} + \ No newline at end of file