From 59083285ded0c35ae5761293d62b2d8c390432ff Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Mon, 20 Jan 2025 11:58:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=94=9F=E4=BA=A7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=BC=80=E6=96=99=E7=8A=B6=E6=80=81=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E5=8F=82=E6=95=B0=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=B0=8F=E6=9D=BF=E6=95=B0=E9=87=8F=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../optimizeplan/OptimizePlanServiceImpl.java | 263 +++++++++--------- .../service/plate/PlateServiceImpl.java | 84 +----- .../resources/mapper/order/OrderMapper.xml | 4 +- .../system/enums/ErrorCodeConstants.java | 35 +-- .../admin/setting/SettingController.java | 22 -- .../service/setting/SettingService.java | 3 - .../service/setting/SettingServiceImpl.java | 16 +- .../impl/IntellectBranchingService.java | 58 +--- 8 files changed, 146 insertions(+), 339 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java index d9da17eb7..0668ae413 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -17,7 +17,6 @@ import co.elastic.clients.json.JsonData; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; -import com.cf.imes.framework.common.enums.GoodsFilterConditionsEnum; import com.cf.imes.framework.common.enums.OrderPlateCutStatusEnum; import com.cf.imes.framework.common.enums.OrderStatusEnum; import com.cf.imes.framework.common.enums.PlanStatusEnum; @@ -71,7 +70,7 @@ import java.io.IOException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; -import java.util.function.Function; +import java.util.concurrent.atomic.AtomicLong; import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.DATA_DATA_ERROR; import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_DATA_ERROR; @@ -149,6 +148,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { private static final String FIELD_SORT = " order by createTime desc "; private static final String FIELD_IS_OPTIMIZED = " op.is_optimized"; private static final String FIELD_PLAN_CONFIG_ID = "planConfigId"; + private static final String FIELD_UPDATETIME = "updateTime"; private static final String ES_ORDER_MODEL_DATA_ERROR = "生产单板材造型信息ES文档查询数据异常: "; @@ -239,7 +239,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { // 更新开料相关的数据 HashMap objectObjectHashMap = new HashMap<>(); objectObjectHashMap.put("cutedBoardInfo",cutedBoardInfo); - objectObjectHashMap.put("updateTime",simpleDateFormat.format(date)); + objectObjectHashMap.put(FIELD_UPDATETIME,simpleDateFormat.format(date)); try { @@ -341,7 +341,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { // 更新开料相关的数据 HashMap objectObjectHashMap = new HashMap<>(); objectObjectHashMap.put("cutedBoardInfo",cutedBoardInfo); - objectObjectHashMap.put("updateTime",simpleDateFormat.format(date)); + objectObjectHashMap.put(FIELD_UPDATETIME,simpleDateFormat.format(date)); try { @@ -680,6 +680,10 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { AssertUtils.notEmpty(planDO,ORDER_PLAN_DATE_ERROR); + if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){ + throw exception(THIS_PLAN_OPTIMIZE_DATA_ERROR); + } + OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0); Boolean isLock = Optional.ofNullable(optimizeBoardModelDO.getIsLock()).orElse(false); @@ -1204,47 +1208,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } } - - - private void goodsFilter(List filter, List goodsReqVOS) { - - int goodsNum = goodsReqVOS.size(); - - Map> attributeMap = new HashMap<>(); - attributeMap.put(GoodsFilterConditionsEnum.THICKNESS.getFilterField(), GoodsReqVO::getThickness); - attributeMap.put(GoodsFilterConditionsEnum.MATERIAL.getFilterField(), GoodsReqVO::getMaterial); - attributeMap.put(GoodsFilterConditionsEnum.COLOR.getFilterField(), GoodsReqVO::getColor); - attributeMap.put(GoodsFilterConditionsEnum.TEXTURE.getFilterField(), GoodsReqVO::getTexture); - attributeMap.put(GoodsFilterConditionsEnum.BRAND.getFilterField(), GoodsReqVO::getBrand); - attributeMap.put(GoodsFilterConditionsEnum.WIDTH.getFilterField(), GoodsReqVO::getWidth); - attributeMap.put(GoodsFilterConditionsEnum.HEIGHT.getFilterField(), GoodsReqVO::getWidth); - - for (String s : filter) { - Function attributeFunc = attributeMap.get(s); - if (attributeFunc == null) { - throw new ServiceException(PLAN_MIXED_DATA_ERROR); - } - - // 获取当前属性的第一个值 - Object attributeValue = goodsReqVOS.stream() - .map(attributeFunc) - .findFirst() - .orElse(null); - - // 根据属性值过滤列表 - long count = goodsReqVOS.stream() - .filter(f -> attributeValue.equals(attributeFunc.apply(f))) - .count(); - - if (goodsNum != count) { - throw exception(PLAN_MIXED_ORDER_ERROR,GoodsFilterConditionsEnum.getValueByKey(s)); - } - - } - - } - - private String conversion(String filed) { // 去除字段中的 【 】 @@ -1404,114 +1367,141 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { + + private Long updatePlanOptimizeData(List remainBoardInfos, OptimizeBoardModelDO optimizeBoardModelDO, List orderIds, List goodsIds, List goodsNo, - Integer cutedType){ - - Date date = new Date(); - - long goodsNum = 0L; - - List planNo = new ArrayList<>(); - - remainBoardInfos.forEach(f->{ - - if(goodsIds.contains(f.getGoodsId())){ - - f.getPlaceBoardList().forEach(p->{ - - if(goodsNo.contains(p.getBoardId())) { - p.setCutedType(cutedType); - planNo.addAll(p.getBlocks().stream().map(RemainBoardInfo.Blocks::getBlockId).toList()); - } - }); - - } - }); - - // 更新开料相关的数据 - HashMap objectObjectHashMap = new HashMap<>(); + Integer cutedType) { - if(OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)){ + Date currentDate = new Date(); + AtomicLong goodsCount = new AtomicLong(0L); + List planNos = new ArrayList<>(); - // 开料的大板数量 - long cutedBoardNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBoardNumber()).orElse(0L); + // 更新板材状态并统计数量 + updateRemainBoardInfo(remainBoardInfos, goodsIds, goodsNo, cutedType, goodsCount, planNos); - // 开料的小板数量 - long cutedBlockNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBlockNumber()).orElse(0L); + // 更新优化数据 + long goodsNum = updateOptimizeData(optimizeBoardModelDO, goodsCount.get(), planNos.size(), cutedType); - if(cutedBoardNumber != 0L && cutedBlockNumber != 0L) { - - cutedBoardNumber -= goodsNo.size(); - - cutedBlockNumber -= planNo.size(); - - goodsNum = cutedBoardNumber; - - objectObjectHashMap.put("cutedBoardNumber", cutedBoardNumber); - objectObjectHashMap.put("cutedBlockNumber", cutedBlockNumber); - } - } - - - - if(OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)){ - - // 开料的大板数量 - long cutedBoardNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBoardNumber()).orElse(0L); - - // 开料的小板数量 - long cutedBlockNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBlockNumber()).orElse(0L); - - cutedBoardNumber += goodsNo.size(); - - cutedBlockNumber += planNo.size(); - - goodsNum = cutedBoardNumber; - - objectObjectHashMap.put("cutedBoardNumber", cutedBoardNumber); - objectObjectHashMap.put("cutedBlockNumber", cutedBlockNumber); - - } - - - objectObjectHashMap.put("remainBoardInfo", toJsonString(remainBoardInfos)); - objectObjectHashMap.put("updateTime",simpleDateFormat.format(date)); - - try { - - esDocumentService.updateById(ORDER_OPTIMIZE_PLATE_MODEL, optimizeBoardModelDO.getId(), HashMap.class, objectObjectHashMap); - - } catch (IOException | ElasticsearchException e) { - log.error(e.getMessage()); - throw new ServiceException(ES_DATA_ERROR); - } - - - List plateDOS = plateMapper.selectPlateByPlateNo(orderIds, planNo, getUserOrganId()); - - AssertUtils.notEmpty(plateDOS,THIS_PLAN_PLATE_DATA_ERROR); - - plateDOS.forEach(f->{ - f.setIsCutted(cutedType); - }); - - plateMapper.updateBatch(plateDOS); + // 同步数据到 ES + syncWithElasticsearch(remainBoardInfos, optimizeBoardModelDO, currentDate); + // 更新数据库中的板材信息 + updatePlateData(orderIds, planNos, cutedType); return goodsNum; - } + + + private void updateRemainBoardInfo(List remainBoardInfos, + List goodsIds, + List goodsNo, + Integer cutedType, + AtomicLong goodsCount, + List planNos) { + + remainBoardInfos.stream() + .filter(remainBoard -> goodsIds.contains(remainBoard.getGoodsId())) + .flatMap(remainBoard -> remainBoard.getPlaceBoardList().stream()) + .filter(board -> goodsNo.contains(board.getBoardId()) && !board.getCutedType().equals(cutedType) && + (cutedType.equals(OrderPlateCutStatusEnum.OPENING.getStatus()) ? + !board.getCutedType().equals(OrderPlateCutStatusEnum.OPENED.getStatus()) : true)) + .forEach(board -> { + goodsCount.incrementAndGet(); + board.setCutedType(cutedType); + planNos.addAll(board.getBlocks().stream() + .map(RemainBoardInfo.Blocks::getBlockId) + .toList()); + }); + } + + + + + + private long updateOptimizeData(OptimizeBoardModelDO optimizeBoardModelDO, + long goodsCount, + int blockCount, + Integer cutedType) { + + long cutedBoardNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBoardNumber()).orElse(0L); + long cutedBlockNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBlockNumber()).orElse(0L); + + if (OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)) { + cutedBoardNumber -= goodsCount; + cutedBlockNumber -= blockCount; + } else if (OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)) { + cutedBoardNumber += goodsCount; + cutedBlockNumber += blockCount; + } + + optimizeBoardModelDO.setCutedBoardNumber(cutedBoardNumber); + optimizeBoardModelDO.setCutedBlockNumber(cutedBlockNumber); + + return cutedBoardNumber; + } + + private void syncWithElasticsearch(List remainBoardInfos, + OptimizeBoardModelDO optimizeBoardModelDO, + Date date) { + + Map updateData = new HashMap<>(); + updateData.put("cutedBoardNumber", optimizeBoardModelDO.getCutedBoardNumber()); + updateData.put("cutedBlockNumber", optimizeBoardModelDO.getCutedBlockNumber()); + updateData.put("remainBoardInfo", toJsonString(remainBoardInfos)); + updateData.put(FIELD_UPDATETIME, simpleDateFormat.format(date)); + + try { + esDocumentService.updateById(ORDER_OPTIMIZE_PLATE_MODEL, optimizeBoardModelDO.getId(), HashMap.class, updateData); + + } catch (IOException | ElasticsearchException e) { + log.error("Failed to sync with Elasticsearch: {}", e.getMessage()); + throw new ServiceException(ES_DATA_ERROR); + } + } + + + + private void updatePlateData(List orderIds, List planNo, Integer cutedType) { + List plateDOS = plateMapper.selectPlateByPlateNo(orderIds, planNo, getUserOrganId()); + AssertUtils.notEmpty(plateDOS, THIS_PLAN_PLATE_DATA_ERROR); + + if(OrderPlateCutStatusEnum.OPENING.getStatus().equals(cutedType)){ + + plateDOS.forEach(plate -> { + if( !plate.getIsCutted().equals(cutedType) && !plate.getIsCutted().equals(OrderPlateCutStatusEnum.OPENED.getStatus())){ + plate.setIsCutted(cutedType); + } + }); + + }else { + plateDOS.forEach(plate -> { + if(!plate.getIsCutted().equals(cutedType)){ + plate.setIsCutted(cutedType); + } + + }); + } + plateMapper.updateBatch(plateDOS); + } + + + + + + + @Transactional(rollbackFor = Exception.class) public void updateOrderAndPlanByCutStatus(PlanDO planDO,Long goodsNum,Integer cutedType,List orderIds,Integer boardCount){ + // 未开料 if(OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)){ planDO.setStatus(PlanStatusEnum.OPENING.getStatus()); @@ -1543,7 +1533,8 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { - if(OrderPlateCutStatusEnum.OPENING.getStatus().equals(cutedType)){ + // 开料中 + if(OrderPlateCutStatusEnum.OPENING.getStatus().equals(cutedType) && !planDO.getStatus().equals(OrderPlateCutStatusEnum.OPENED.getStatus())){ planDO.setStatus(PlanStatusEnum.OPENING.getStatus()); @@ -1559,6 +1550,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } + // 已开料 if(OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)){ List plateDOList = plateMapper.selectNoCutPlateByPlateId(orderIds, getUserOrganId()); @@ -1591,9 +1583,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } - - - } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java index 04af26feb..9049fcccd 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java @@ -9,7 +9,6 @@ import co.elastic.clients.elasticsearch.core.search.Hit; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; -import com.cf.imes.framework.common.enums.GoodsFilterConditionsEnum; import com.cf.imes.framework.common.enums.OrderPlateTypeEnum; import com.cf.imes.framework.common.enums.PlanStatusEnum; import com.cf.imes.framework.common.enums.PlanTypeEnum; @@ -60,8 +59,6 @@ import javax.annotation.Resource; import java.io.IOException; import java.math.BigDecimal; import java.util.*; -import java.util.function.Consumer; -import java.util.function.Function; import java.util.stream.Collectors; import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_DATA_ERROR; @@ -287,9 +284,6 @@ public class PlateServiceImpl implements PlateService { @Override public PageResult getOrderPlatePage(NoPlanPlatePageReqVO pageReqVO) { - // 使用这种方法分页查询速度太慢,所以要自己实现分页 -// PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - List statusList = new ArrayList<>(); statusList.add(OrderStatusEnum.NEW_ORDER.getStatus()); statusList.add(OrderStatusEnum.IN_PRODUCTION.getStatus()); @@ -303,6 +297,7 @@ public class PlateServiceImpl implements PlateService { .eq("o.deleted",false) .in("o.status",statusList) .isNull("opi.plan_id") + .isNotNull("op.id") .inIfPresent("op.goods_id",pageReqVO.getGoodsIdList()) .likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId() : null) @@ -323,7 +318,6 @@ public class PlateServiceImpl implements PlateService { .likeIfPresent("op.remark",pageReqVO.getRemark()) .orderByDesc("o.id"); - List plateCount = orderMapper.selectNoPlanOrderPlateCount(queryWrapperX); List plateResLists = orderMapper.selectNoPlanOrderPlateList(queryWrapperX,pageNo,pageReqVO.getPageSize()); @@ -332,17 +326,15 @@ public class PlateServiceImpl implements PlateService { return new PageResult<>(); } -// List plateIds = plateResLists.stream().map(PlateResList::getPlateId).toList(); -// -// List orderModelDOS = esUtils.getEsDocument(FIELD_PLATE_ID, plateIds, plateIds.size(), ORDER_PLATE_MODEL, OrderModelDO.class); -// -// -// PlateModelDetailRespVO.builder() -// .plateResLists(new PageResult<>(plateResLists, (long) plateCount.size())) -// .plateModels(orderModelDOS) -// .build(); - return new PageResult<>(plateResLists, (long) plateCount.size()); + queryWrapperX + .groupBy("o.id"); + + List plateCount = orderMapper.selectNoPlanOrderPlateCount(queryWrapperX); + + long sum = plateCount.stream().mapToLong(Long::longValue).sum(); + + return new PageResult<>(plateResLists, sum); } @@ -557,62 +549,4 @@ public class PlateServiceImpl implements PlateService { } - - private static void goodsFilter(List filters, List goodsDOS,GoodsPlateFilterPageReqVO pageReqVO) { - - int goodsNum = goodsDOS.size(); - - - // 查询条件 - Map> attributeGetters = new HashMap<>(); - attributeGetters.put(GoodsFilterConditionsEnum.THICKNESS.getFilterField(), GoodsDO::getThickness); - attributeGetters.put(GoodsFilterConditionsEnum.MATERIAL.getFilterField(), GoodsDO::getMaterial); - attributeGetters.put(GoodsFilterConditionsEnum.COLOR.getFilterField(), GoodsDO::getColor); - attributeGetters.put(GoodsFilterConditionsEnum.TEXTURE.getFilterField(), GoodsDO::getTexture); - attributeGetters.put(GoodsFilterConditionsEnum.BRAND.getFilterField(), GoodsDO::getBrand); - attributeGetters.put(GoodsFilterConditionsEnum.WIDTH.getFilterField(), GoodsDO::getWidth); - attributeGetters.put(GoodsFilterConditionsEnum.HEIGHT.getFilterField(), GoodsDO::getHeight); - - // 赋值 - Map> attributeSetters = new HashMap<>(); - attributeSetters.put(GoodsFilterConditionsEnum.THICKNESS.getFilterField(), value -> pageReqVO.setThickness((BigDecimal) value)); - attributeSetters.put(GoodsFilterConditionsEnum.MATERIAL.getFilterField(), value -> pageReqVO.setMaterial((String) value)); - attributeSetters.put(GoodsFilterConditionsEnum.COLOR.getFilterField(), value -> pageReqVO.setColor((String) value)); -// attributeSetters.put(GoodsFilterConditionsEnum.TEXTURE.getFilterField(), value -> pageReqVO.setTexture((Boolean) value)); -// attributeSetters.put(GoodsFilterConditionsEnum.BRAND.getFilterField(), value -> pageReqVO.setBrand((String) value)); -// attributeSetters.put(GoodsFilterConditionsEnum.WIDTH.getFilterField(), value -> pageReqVO.setWidth((BigDecimal) value)); -// attributeSetters.put(GoodsFilterConditionsEnum.HEIGHT.getFilterField(), value -> pageReqVO.setHeight((BigDecimal) value)); - - for (String filter : filters) { - Function getter = attributeGetters.get(filter); - - Consumer setter = attributeSetters.get(filter); - - if (getter == null || setter == null) { - throw exception(PLAN_MIXED_DATA_ERROR); - } - - // 获取当前属性的第一个值 - Object attributeValue = goodsDOS.stream() - .map(getter) - .findFirst() - .orElse(null); - - // 根据属性值过滤列表 - long count = goodsDOS.stream() - .filter(good -> attributeValue.equals(getter.apply(good))) - .count(); - - if (goodsNum != count) { - throw exception(PLAN_MIXED_ORDER_ERROR,GoodsFilterConditionsEnum.getValueByKey(filter)); - } - - // 设置属性值 - setter.accept(attributeValue); - } - - } - - - } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml index 3034ea5fa..86e23a230 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml @@ -412,12 +412,12 @@ select - op.id + count(op.id) from orders o left join order_plate op on o.organ_id = op.organ_id and o.id = op.order_id - left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id left join order_goods og on op.organ_id = og.organ_id and op.order_id = og.order_id and op.goods_id = og.id + left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id ${ew.customSqlSegment} diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index bf48ea642..74315c438 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -34,7 +34,7 @@ public class ErrorCodeConstants { public static final ErrorCode ROLE_CODE_DUPLICATE = new ErrorCode(1_002_002_002, "已经存在编码为【{}】的角色"); public static final ErrorCode ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE = new ErrorCode(1_002_002_003, "不能操作类型为系统内置的角色"); public static final ErrorCode ROLE_IS_DISABLE = new ErrorCode(1_002_002_004, "名字为【{}】的角色已被禁用"); - public static final ErrorCode ROLE_ADMIN_CODE_ERROR = new ErrorCode(1_002_002_005, "编码【{}】不能使用"); + public static final ErrorCode ROLE_ADMIN_CODE_ERROR = new ErrorCode(1_002_002_005, "编码【{}】不能使用"); public static final ErrorCode ROLE_ME_ERROR = new ErrorCode(1_002_002_006, "不可为自身分配角色"); public static final ErrorCode ROLE_NOT_SUPERADMIN_NO_ORGAN_ID_OPER_ERROR = new ErrorCode(1_002_002_007, "非超管分配权限"); public static final ErrorCode BUILDIN_ROLE_MODIFY_PERMISSION_ERROR = new ErrorCode(1_002_002_008, "修改内置角色下菜单权限的权限不足"); @@ -212,14 +212,10 @@ public class ErrorCodeConstants { public static final ErrorCode MACHINE_NOT_EXISTS = new ErrorCode(1_002_029_000, "机台不存在"); public static final ErrorCode MACHINE_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_029_001, "机台模板不存在"); public static final ErrorCode DEFAULT_TEMPLATE_COUNT = new ErrorCode(1_002_029_002, "默认模板数量异常"); - public static final ErrorCode DEFAULT_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_029_003, "该类型机台默认模板不存在"); - public static final ErrorCode DEFAULT_TEMPLATE_NOT_DELETED = new ErrorCode(1_002_029_004, "不能删除默认模板"); - public static final ErrorCode NOT_TEMPLATE_AUTH = new ErrorCode(1_002_029_005, "该组织无此机台模板权限"); - public static final ErrorCode NOT_MACHINE_AUTH = new ErrorCode(1_002_029_005, "该组织无此机台权限"); public static final ErrorCode THE_CURRENT_MACHINE_IS_ALREADY_IN_USE = new ErrorCode(1_002_029_006, "当前机台已使用,禁止删除"); public static final ErrorCode MACHINE_ERROR = new ErrorCode(1_002_029_007, "当前机台错误,请重新选择机台"); public static final ErrorCode THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS = new ErrorCode(1_002_029_008, "当前机台配置的模板中,该品牌已存在,请重新输入品牌名称"); - public static final ErrorCode THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST = new ErrorCode(1_002_029_009, "该型号的机台不存在,请进行配置"); + public static final ErrorCode THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST = new ErrorCode(1_002_029_009, "该型号的机台模板不存在,请进行配置"); public static final ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_010, "品牌ID错误,或品牌不存在"); public static final ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前组织该类型的机台创建已达到最大值,无法继续创建"); public static final ErrorCode MACHINE_NAME_ERROR = new ErrorCode(1_002_029_012, "当前机台名称已存在,请重新输入机台名称"); @@ -236,7 +232,6 @@ public class ErrorCodeConstants { public static final ErrorCode DEFAULT_LABEL_NOT_EXISTS = new ErrorCode(1_002_300_002, "该类型标签默认模板不存在"); public static final ErrorCode MACHINE_USE_LABEL = new ErrorCode(1_002_300_003, "当前标签已有机台使用,无法删除"); public static final ErrorCode DEFAULT_NOT_DELETED = new ErrorCode(1_002_300_004, "默认标签模板无法删除"); - public static final ErrorCode LABEL_ERROR = new ErrorCode(1_002_300_005, "当前标签错误,请重新配置标签"); public static final ErrorCode LABEL_IS_USE_ERROR = new ErrorCode(1_002_300_006, "当前标签打包设置中已有用户使用,无法删除"); @@ -278,7 +273,6 @@ public class ErrorCodeConstants { // ========== 配件信息 1-002-035-000 ========== - public static final ErrorCode THE_ACCESSORY_NAME_CANNOT_BE_DUPLICATED = new ErrorCode(1_002_035_001, "配件名称不能重复"); public static final ErrorCode ORDER_PARTS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_035_002, "生产配件导入数据不可以为空"); @@ -309,35 +303,21 @@ public class ErrorCodeConstants { public static final ErrorCode ORDER_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_006, "生产单对应的板材造型数据为空,请重新导入生产单"); public static final ErrorCode ORDER_PLAN_PLATE_ERROR = new ErrorCode(1_002_041_007, "当前排单对应的板材数据有异常,请查看板材信息或联系客服"); public static final ErrorCode ORDER_PLAN_ERROR = new ErrorCode(1_002_041_008, "当前排单对应的生产单数据为空,请删掉排单并重新创建排单"); - public static final ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_009, "当前排单对应的板材造型数据为空,请重新进行排单或重新导入生产单"); + public static final ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_009, "当前排单对应的板材造型数据为空,请重新导入生产单并排单"); public static final ErrorCode ORDER_GOODS_DATA_ERROR = new ErrorCode(1_002_041_010, "当前大板数据异常,请检查大板信息或者联系客服"); public static final ErrorCode ORDER_PACK_DATA_NULL_ERROR = new ErrorCode(1_002_041_011, "当前包裹数据为空,请重新查看包裹数据或联系客服"); - public static final ErrorCode ORDER_BODY_DATA_ERROR = new ErrorCode(1_002_041_012, "当前柜体对应的板材数据为空,无法删除"); - public static final ErrorCode ORDER_PLAN_NO_OPTIMIZE_ERROR = new ErrorCode(1_002_041_013, "当前排单还未保存优化结果,无法进行开料"); public static final ErrorCode ORDER_PLAN_NO_OPTIMIZE_UPDATE_ERROR = new ErrorCode(1_002_041_014, "当前排单还未保存优化结果,无法对开料结果进行修改"); - public static final ErrorCode ORDER_NO_DATA_ERROR = new ErrorCode(1_002_041_015, "生产单信息错误,请重新进行拆包"); - public static final ErrorCode ORDER_ROOM_ERROR = new ErrorCode(1_002_041_015, "当前板材没有选择房间,请选择"); - public static final ErrorCode ORDER_BODY_ERROR = new ErrorCode(1_002_041_015, "当前板材没有选择柜体,请选择"); - public static final ErrorCode ORDER_ERROR = new ErrorCode(1_002_041_015, "当前板材没有选择生产单,请选择"); - public static final ErrorCode MACHINE_NO_DATA_ERROR = new ErrorCode(1_002_041_016, "当前所选机台有误,请检查机台信息或重新选择机台"); - public static final ErrorCode PLATE_MULTIPLE_ERROR = new ErrorCode(1_002_041_017, "板材倍数有误,倍数必须大于 0"); + public static final ErrorCode ORDER_NO_DATA_ERROR = new ErrorCode(1_002_041_015, "生产单信息为空,请检查生产单信息"); public static final ErrorCode ORDER_PACK_ERROR = new ErrorCode(1_002_041_018, "当前生产单信息有误,请重新选择包裹"); public static final ErrorCode ORDER_PACK_DATA_ERROR = new ErrorCode(1_002_041_019, "当前包裹信息有误,请重新选择包裹"); public static final ErrorCode PLAN_BODY_DATA_ERROR = new ErrorCode(1_002_041_019, "当前排单的生产单对应的柜体数据异常,请查看柜体数据或联系客服"); - public static final ErrorCode CREATE_PLAN_DATA_ERROR = new ErrorCode(1_002_041_020, "排单优化数据异常,请重新进行优化或者删除排单然后重新创建排单"); - public static final ErrorCode PLAN_MIXED_ORDER_ERROR = new ErrorCode(1_002_041_021, "当前选择的混排板材条件:' {} ' 不相同,无法混排,请重新选择板材进行排单!"); - public static final ErrorCode BRANCHING_DEFAULT_SETTING_ERROR = new ErrorCode(1_002_041_023, "当前组织智能分线无默认配置,请进行配置"); public static final ErrorCode ADVANCED_SCREENING_CONFIG_ERROR = new ErrorCode(1_002_041_024, "当前筛选的配置有误,请重新进行配置"); - public static final ErrorCode CONFIG_DATA_ERROR = new ErrorCode(1_002_041_025, "当前配置为空,保存失败,请添加配置后再保存"); - public static final ErrorCode PLAN_MIXED_DATA_ERROR = new ErrorCode(1_002_041_026, "当前混排条件错误,无法混排,请重新选择条件进行混单!"); public static final ErrorCode PLAN_GOODS_DATA_ERROR = new ErrorCode(1_002_041_027, "当前排单未保存大板和小板信息,请重新进行排单"); public static final ErrorCode PLAN_PLATE_IS_CUTTED = new ErrorCode(1_002_041_028, "当前删除的小板中已有小板开料,无法删除!"); - public static final ErrorCode PROCESS_CONFIG_DATA_ERROR = new ErrorCode(1_002_041_029, "当前方案组的优化数据未保存,请保存或重新执行方案组"); public static final ErrorCode PLAN_NO_ACTUAL_PLATE = new ErrorCode(1_002_041_030, "当前排单未选择实际开料的大板信息,无法保存优化结果"); public static final ErrorCode PROCESS_CONFIG_DEFAULT_DATA_ERROR = new ErrorCode(1_002_041_031, "当前组织没有默认的加工方案组,请在系统配置中进行配置"); public static final ErrorCode THIS_PROCESS_CONFIG_DATA_ERROR = new ErrorCode(1_002_041_032, "当前选择的加工方案组配置有误,请选择其他方案组或重新配置该方案组"); public static final ErrorCode CREAT_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_033, "当前板材已有小板创建板材,请重新查询生产单信息再创建"); - public static final ErrorCode UPDATE_NO_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_034, "当前排单无开料板,无法取消开料,请重新尝试"); public static final ErrorCode PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_035, "当前排单没有选择板材数据,请进行选择"); public static final ErrorCode DELETE_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_036, "当前删除的小板信息有误,请检查小板是否存在或重新创建排单"); public static final ErrorCode PLAN_PLATE_OPTIMIZE_DATA_ERROR = new ErrorCode(1_002_041_037, "当前排单对应的优化数据异常,请重新进行优化"); @@ -346,6 +326,7 @@ public class ErrorCodeConstants { public static final ErrorCode PLAN_PROCESS_CONFIG_IS_NULL = new ErrorCode(1_002_041_040, "排单:{} 对应的方案组为空,请进行配置"); public static final ErrorCode PLAN_PROCESS_CONFIG_ALL_IS_NULL = new ErrorCode(1_002_041_041, "当前所选排单对应的方案组配置均为空,请重新进行方案组配置"); public static final ErrorCode THIS_PLAN_IS_LOCK = new ErrorCode(1_002_041_042, "当前排单已被锁定,无法进行优化,请解锁后再进行优化"); + public static final ErrorCode THIS_PLAN_OPTIMIZE_DATA_ERROR = new ErrorCode(1_002_041_044, "当前排单已全部开料,无法进行再次优化"); @@ -364,10 +345,8 @@ public class ErrorCodeConstants { //=========== 用户的系统配置 1-002-039-000 ============ public static final ErrorCode CURRENTLY_NO_CONFIGURATION_AVAILABLE = new ErrorCode(1_002_039_001, "当前没有{}配置信息,请前往设置配置"); - public static final ErrorCode BRANCHING_SETTING_NAME_REPEAT = new ErrorCode(1_002_039_002, "分线配置名称重复,请重新设置"); - public static final ErrorCode BRANCHING_SETTING_RULE_SAVE_CHECK_ERROR = new ErrorCode(1_002_039_003, "智能分线配置保存解析失败,数据有误,请检查配置规则或联系客服"); - public static final ErrorCode BRANCHING_SETTING_SAVE_ERROR = new ErrorCode(1_002_039_004, "机台:{} 的配置为空,请添加配置"); - public static final ErrorCode BRANCHING_SETTING_COUNT_ERROR = new ErrorCode(1_002_039_005, "智能分线配置机台数量必须大于2才能保存"); + + //=========== 系统配置 1-002-040-000 ============ public static final ErrorCode SYSTEM_CONFIG_NOT_EXISTS = new ErrorCode(1_002_040_001, "系统配置不存在"); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/setting/SettingController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/setting/SettingController.java index e5cb121a5..bdb597334 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/setting/SettingController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/setting/SettingController.java @@ -2,11 +2,8 @@ package com.cf.imes.module.system.controller.admin.setting; import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO; -import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigRespVO; import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO; -import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO; import com.cf.imes.module.system.service.setting.SettingService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -62,23 +59,4 @@ public class SettingController { } - - @GetMapping("/selectDefault") - @Operation(summary = "获取默认的智能分线配置") - public CommonResult selectDefaultBranching() { - SystemConfigDO systemConfigDO = settingService.selectDefaultBranching(); - return success(BeanUtils.toBean(systemConfigDO, ConfigRespVO.class)); - - } - - - - @GetMapping("/selectScheme") - @Operation(summary = "根据加工方案ID获取加工方案的所有配置") - public CommonResult getProcessScheme(@RequestParam Long id) { - SystemConfigDO systemConfigDO = settingService.selectDefaultBranching(); - return success(BeanUtils.toBean(systemConfigDO, ConfigRespVO.class)); - - } - } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingService.java index ca4abe009..85c9b5858 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingService.java @@ -3,7 +3,6 @@ package com.cf.imes.module.system.service.setting; import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO; import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO; -import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO; public interface SettingService { @@ -14,6 +13,4 @@ public interface SettingService { Long updateSetting(PackageConfigReqVO reqVO); PackageConfigDO selectSetting(Integer type); - - SystemConfigDO selectDefaultBranching(); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingServiceImpl.java index c0b6ff456..d13acb6b2 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingServiceImpl.java @@ -2,12 +2,10 @@ package com.cf.imes.module.system.service.setting; import com.cf.imes.framework.common.enums.UserSettingTypeEnum; -import com.cf.imes.framework.common.util.Assert.AssertUtils; import com.cf.imes.framework.common.util.json.JsonUtils; import com.cf.imes.framework.security.core.LoginUser; import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO; import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO; -import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO; import com.cf.imes.module.system.dal.mysql.setting.PackageConfigMapper; import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper; import org.springframework.stereotype.Service; @@ -18,7 +16,7 @@ import javax.annotation.Resource; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.cf.imes.framework.common.util.json.JsonUtils.unzipString; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; -import static com.cf.imes.module.system.enums.ErrorCodeConstants.*; +import static com.cf.imes.module.system.enums.ErrorCodeConstants.CURRENTLY_NO_CONFIGURATION_AVAILABLE; @Service @@ -90,16 +88,4 @@ public class SettingServiceImpl implements SettingService{ return packageConfigDO; } - - @Override - public SystemConfigDO selectDefaultBranching() { - - SystemConfigDO systemConfigDO = systemConfigMapper.selectDefaultBranching(); - - AssertUtils.notEmpty(systemConfigDO,BRANCHING_DEFAULT_SETTING_ERROR); - - return systemConfigDO; - - } - } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java index 4ba16b595..e8d1b9955 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java @@ -1,10 +1,8 @@ package com.cf.imes.module.system.service.systemconfig.factory.service.impl; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.cf.imes.framework.common.enums.CommonStatusEnum; -import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigDeleteReqVO; import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO; @@ -13,16 +11,11 @@ import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateSt import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO; import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper; import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler; -import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; -import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.cf.imes.module.system.enums.ErrorCodeConstants.BRANCHING_SETTING_RULE_SAVE_CHECK_ERROR; -import static com.cf.imes.module.system.enums.ErrorCodeConstants.BRANCHING_SETTING_SAVE_ERROR; - /** * @author 智能分线生成服务 @@ -48,23 +41,8 @@ public class IntellectBranchingService extends AbstractSystemConfigServiceHandle @Override public void checkValid(String setting) { -// -// JSONArray jsonArray = JSON.parseArray(setting); -// -// for (int i = 0; i < jsonArray.size(); i++) { -// -// JSONObject jsonObject = jsonArray.getJSONObject(i); -// -// checkMachineId(jsonObject.getString("machineId")); -// String machineName = jsonObject.getString("machineName"); -// checkMachineName(machineName); -// checkMachineConfig(jsonObject.get("machineConfig"),machineName); -// } -// -// if(jsonArray.size() < 2){ -// throw new ServiceException(BRANCHING_SETTING_COUNT_ERROR); -// } + // todo checkValid } @@ -109,39 +87,5 @@ public class IntellectBranchingService extends AbstractSystemConfigServiceHandle } - - /** - * 校验 机台ID - * - */ - private void checkMachineId(String machineId) { - if (StringUtils.isBlank(machineId)) { - throw new ServiceException(BRANCHING_SETTING_RULE_SAVE_CHECK_ERROR); - } - - } - - /** - * 校验 机台名称 - * - */ - private void checkMachineName(String machineName) { - if (StringUtils.isBlank(machineName)) { - throw new ServiceException(BRANCHING_SETTING_RULE_SAVE_CHECK_ERROR); - } - - } - - /** - * 校验 机台分流条件 - * - */ - private void checkMachineConfig(Object machineConfig,String machineName) { - if (ObjectUtil.isEmpty(machineConfig)) { - throw exception(BRANCHING_SETTING_SAVE_ERROR,machineName); - } - - } - }