From 3ced883117554579151e7fe47a3ee29cabb35638 Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Wed, 22 Oct 2025 10:30:46 +0800 Subject: [PATCH] =?UTF-8?q?erp=E6=A0=B9=E6=8D=AE=E5=B7=A5=E5=8E=82?= =?UTF-8?q?=E3=80=81=E7=89=A9=E6=96=99=E6=9F=A5=E8=AF=A2=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plat/module/erp/api/ErpExternalApi.java | 6 ++++++ .../api/dto/ErpProductiveVersionReqDTO.java | 20 +++++++++++++++++++ .../module/erp/api/ErpExternalApiImpl.java | 15 ++++++++++++++ .../erp/ErpProductiveVersionController.java | 7 +++++++ .../erp/vo/ErpProductiveVersionPageReqVO.java | 2 ++ .../erp/vo/ErpProductiveVersionRespVO.java | 3 +++ .../erp/vo/ErpProductiveVersionSaveReqVO.java | 4 ++++ .../erp/ErpProductiveVersionDO.java | 3 +++ .../mysql/erp/ErpProductiveVersionMapper.java | 11 ++++++++++ .../erp/ErpProcessDetailServiceImpl.java | 5 +++-- .../erp/ErpProductiveVersionService.java | 5 +++++ .../erp/ErpProductiveVersionServiceImpl.java | 17 ++++++++++++++++ .../mapper/ErpProductiveVersionMapper.xml | 6 ++++++ 13 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpProductiveVersionReqDTO.java 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..f789408 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; @@ -10,6 +12,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.HashMap; import java.util.Map; @@ -28,4 +31,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/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/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