From 42a81cbeb3e8ddea323b6be39c046c6a39a74a76 Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Sat, 11 Oct 2025 16:49:30 +0800 Subject: [PATCH] =?UTF-8?q?erp=20type=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/erp/enums/ErrorCodeConstants.java | 9 ++++++--- .../java/com/zt/plat/module/erp/job/erpJob.java | 9 +++++++++ .../erp/service/erp/ErpFactoryServiceImpl.java | 14 ++++++++++++-- .../erp/service/erp/ErpMaterialServiceImpl.java | 15 ++++++++++++++- .../erp/service/erp/ErpWarehouseServiceImpl.java | 16 ++++++++++++++-- 5 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/job/erpJob.java diff --git a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java index 48d4828..9c7b04f 100644 --- a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java +++ b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java @@ -13,9 +13,10 @@ public interface ErrorCodeConstants { ErrorCode ERP_CUSTOMER_NOT_EXISTS = new ErrorCode(1_001_000_001, "ERP客商主数据不存在"); ErrorCode ERP_MATERIAL_NOT_EXISTS = new ErrorCode(1_002_000_001, "ERP物料数据不存在"); - ErrorCode ERP_MATERIAL_NOT_ALLOW_UPDATE = new ErrorCode(1_002_000_001, "只允许编辑状态为“供应链”的数据"); - ErrorCode ERP_MATERIAL_NOT_ALLOW_DELETE = new ErrorCode(1_002_000_001, "不允许删除状态为“ERP”的数据"); - ErrorCode ERP_MATERIAL_OTHER_NOT_ALLOW_DELETE = new ErrorCode(1_002_000_001, "只允许删除不存在配置关系的数据"); + ErrorCode ERP_MATERIAL_NOT_ALLOW_UPDATE = new ErrorCode(1_002_000_002, "只允许编辑状态为“供应链”的数据"); + ErrorCode ERP_MATERIAL_NOT_ALLOW_DELETE = new ErrorCode(1_002_000_003, "不允许删除状态为“ERP”的数据"); + ErrorCode ERP_MATERIAL_OTHER_NOT_ALLOW_DELETE = new ErrorCode(1_002_000_004, "只允许删除不存在配置关系的数据"); + ErrorCode ERP_MATERIAL_EXISTS = new ErrorCode(1_002_000_005, "已存在相同中铜编码的物料数据"); ErrorCode ERP_COMPANY_NOT_EXISTS = new ErrorCode(1_003_000_001, "ERP公司数据不存在"); ErrorCode ERP_COMPANY_REDIS_NOT_EXISTS = new ErrorCode(1_003_000_002, "ERP公司代码缓存数据丢失,请重新同步公司代码"); @@ -31,6 +32,7 @@ public interface ErrorCodeConstants { ErrorCode ERP_FACTORY_NOT_EXISTS = new ErrorCode(1_008_000_001, "ERP工厂数据不存在"); ErrorCode ERP_FACTORY_REDIS_NOT_EXISTS = new ErrorCode(1_008_000_002, "ERP工厂redis数据不存在"); ErrorCode ERP_FACTORY_NOT_ALLOW_UPDATE = new ErrorCode(1_008_000_003, "类型为ERP的数据或启用的数据不允许编辑"); + ErrorCode ERP_FACTORY_EXISTS = new ErrorCode(1_008_000_004, "工厂编码重复,数据已存在"); ErrorCode ERP_COSTCENTER_NOT_EXISTS = new ErrorCode(1_009_000_001, "ERP成本中心数据不存在"); @@ -44,6 +46,7 @@ public interface ErrorCodeConstants { ErrorCode ERP_WAREHOUSE_NOT_EXISTS = new ErrorCode(1_014_000_001, "ERP库位数据不存在"); ErrorCode ERP_WAREHOUSE_NOT_ALLOW_UPDATE = new ErrorCode(1_014_000_002, "只允许状态为“供应链”,且“禁用”的数据编辑"); + ErrorCode ERP_WAREHOUSE_EXISTS = new ErrorCode(1_014_000_003, "已存在相同库位编码和工厂编码的记录"); ErrorCode ERP_ASSET_NOT_EXISTS = new ErrorCode(1_015_000_001, "ERP资产卡片数据不存在"); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/job/erpJob.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/job/erpJob.java new file mode 100644 index 0000000..38fe33f --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/job/erpJob.java @@ -0,0 +1,9 @@ +package com.zt.plat.module.erp.job; + +public class erpJob { + + public void execute() throws Exception { + // TODO Auto-generated method stub + + } +} diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpFactoryServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpFactoryServiceImpl.java index 7f355e3..0799177 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpFactoryServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpFactoryServiceImpl.java @@ -50,6 +50,8 @@ public class ErpFactoryServiceImpl implements ErpFactoryService { @Override public ErpFactoryRespVO createErpFactory(ErpFactorySaveReqVO createReqVO) { + // 校验存在 + validateErpFactoryExistsNumber(createReqVO.getNumber()); // 插入 ErpFactoryDO erpFactory = BeanUtils.toBean(createReqVO, ErpFactoryDO.class); // 工厂编码自动生成,格式 GC-0001,依次新增 @@ -65,7 +67,7 @@ public class ErpFactoryServiceImpl implements ErpFactoryService { erpFactory.setNumber(nextCode); } } - erpFactory.setType("供应链"); + erpFactory.setType("SPLY"); erpFactory.setIsEnable("1"); erpFactoryMapper.insert(erpFactory); // 返回 @@ -113,6 +115,14 @@ public class ErpFactoryServiceImpl implements ErpFactoryService { } } + private void validateErpFactoryExistsNumber(String number) { + List list = erpFactoryMapper.selectList(new LambdaQueryWrapperX()) + .stream().filter(erpFactoryDO -> erpFactoryDO.getNumber().equals(number)).toList(); + if (!list.isEmpty()) { + throw exception(ERP_FACTORY_EXISTS); + } + } + @Override public ErpFactoryDO getErpFactory(Long id) { return erpFactoryMapper.selectById(id); @@ -165,7 +175,7 @@ public class ErpFactoryServiceImpl implements ErpFactoryService { // 1. 调用ERP接口获取数据 Map req = new HashMap<>(); JSONArray dataArrayALL = new JSONArray(); - String companykey = "erp" + OftenEnum.FuncnrEnum.公司代码.getFuncnr(); + String companykey = "erpMap" + OftenEnum.FuncnrEnum.公司代码.getFuncnr(); Map redisCache = myRedisConfig.getRedisCacheMap(companykey); if (CollUtil.isEmpty(redisCache)) { throw exception(ERP_COMPANY_REDIS_NOT_EXISTS); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java index 3f6a52f..7c6f4ff 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.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.dal.dataobject.erp.ErpWarehouseDO; import com.zt.plat.module.erp.utils.ErpConfig; import com.zt.plat.module.erp.utils.MyRedisConfig; import com.zt.plat.module.erp.enums.OftenEnum; @@ -50,6 +51,8 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { @Override public ErpMaterialRespVO createErpMaterial(ErpMaterialSaveReqVO createReqVO) { + // 校验存在 + validateErpFactoryExistsNumber(createReqVO.getDownCenterNumber()); // 插入 ErpMaterialDO erpMaterial = BeanUtils.toBean(createReqVO, ErpMaterialDO.class); // 工厂编码自动生成,格式 GC-0001,依次新增 @@ -65,6 +68,7 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { erpMaterial.setDownCenterNumber(nextCode); } } + erpMaterial.setType("SPLY"); erpMaterialMapper.insert(erpMaterial); // 返回 return BeanUtils.toBean(erpMaterial, ErpMaterialRespVO.class); @@ -76,7 +80,7 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { validateErpMaterialExists(updateReqVO.getId()); // 更新 ErpMaterialDO updateObj = BeanUtils.toBean(updateReqVO, ErpMaterialDO.class); - if (updateObj.getType().equals("供应链")) { + if (updateObj.getType().equals("SPLY")) { erpMaterialMapper.updateById(updateObj); } else { throw exception(ERP_MATERIAL_NOT_ALLOW_UPDATE); @@ -128,6 +132,15 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { } } + private void validateErpFactoryExistsNumber(String number) { + List list = erpMaterialMapper.selectList(new LambdaQueryWrapperX()).stream() + .filter(erpWarehouseDO -> erpWarehouseDO.getDownCenterNumber().equals(number)) + .toList(); + if (!list.isEmpty()) { + throw exception(ERP_MATERIAL_EXISTS); + } + } + @Override public ErpMaterialDO getErpMaterial(Long id) { return erpMaterialMapper.selectById(id); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseServiceImpl.java index 3003124..63cd8af 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseServiceImpl.java @@ -51,6 +51,8 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService { @Override public ErpWarehouseRespVO createErpWarehouse(ErpWarehouseSaveReqVO createReqVO) { + // 校验存在 + validateErpFactoryExistsNumber(createReqVO.getNumber(), createReqVO.getFactoryNumber()); // 插入 ErpWarehouseDO warehouse = BeanUtils.toBean(createReqVO, ErpWarehouseDO.class); // 库位编码自动生成,格式 KW-0001,依次新增 @@ -66,7 +68,7 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService { warehouse.setNumber(nextCode); } } - warehouse.setType("供应链"); + warehouse.setType("SPLY"); warehouse.setIsEnable("1"); erpWarehouseMapper.insert(warehouse); // 返回 @@ -79,7 +81,7 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService { validateErpWarehouseExists(updateReqVO.getId()); // 更新 ErpWarehouseDO updateObj = BeanUtils.toBean(updateReqVO, ErpWarehouseDO.class); - if (updateObj.getType().equals("供应链")&&updateObj.getIsEnable().equals("0")){ + if (updateObj.getType().equals("SPLY")&&updateObj.getIsEnable().equals("0")){ erpWarehouseMapper.updateById(updateObj); }else { throw exception(ERP_WAREHOUSE_NOT_ALLOW_UPDATE); @@ -115,6 +117,16 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService { } } + private void validateErpFactoryExistsNumber(String number, String factoryNumber) { + List list = erpWarehouseMapper.selectList(new LambdaQueryWrapperX()).stream() + .filter(erpWarehouseDO -> erpWarehouseDO.getNumber().equals(number)) + .filter(erpWarehouseDO -> erpWarehouseDO.getFactoryNumber().equals(factoryNumber)) + .toList(); + if (!list.isEmpty()) { + throw exception(ERP_WAREHOUSE_EXISTS); + } + } + @Override public ErpWarehouseDO getErpWarehouse(Long id) { return erpWarehouseMapper.selectById(id);