From 9c303e635402975dfd6c11b76edec912aa6605a9 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Fri, 7 Jun 2024 15:22:12 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=9E=9A=E4=B8=BE=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E9=AD=94=E6=B3=95=E5=80=BC=202=E3=80=81=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83=203=E3=80=81=E9=83=A8=E5=88=86sql?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=E5=A2=9E=E5=8A=A0=E6=9D=A1=E4=BB=B6=E8=B5=B0?= =?UTF-8?q?=E7=B4=A2=E5=BC=95=EF=BC=8Cmycat=E8=AF=AD=E6=B3=95=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/enums/ErrorCodeConstants.java | 2 ++ .../module/executor/enums/OrderItemType.java | 33 +++++++++++++++++++ .../executor/enums/OrderPlanStatusEnum.java | 32 ++++++++++++++++++ .../enums/OrderPlateFilterTypeEnum.java | 32 ++++++++++++++++++ .../optimizeplan/OptimizePlanServiceImpl.java | 31 ++++------------- .../service/plan/PlanServiceImpl.java | 23 ++++++------- .../resources/mapper/plate/PlateMapper.xml | 17 ++++++---- 7 files changed, 129 insertions(+), 41 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderItemType.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderPlanStatusEnum.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderPlateFilterTypeEnum.java diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/ErrorCodeConstants.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/ErrorCodeConstants.java index c851cba16..cc7c5375f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/ErrorCodeConstants.java +++ b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/ErrorCodeConstants.java @@ -60,4 +60,6 @@ public interface ErrorCodeConstants { ErrorCode FILE_READ_ERR = new ErrorCode(1_002_029_012, "文件读取错误"); ErrorCode FILE_ADD_ERR = new ErrorCode(1_002_029_012, "文件已经存在是否强制保存"); ErrorCode FILE_UPLOAD_ERR = new ErrorCode(1_002_029_012, "文件内容为空"); + + ErrorCode SOURCE_NOT_EXITS_ERROR = new ErrorCode(1_002_029_013, "源数据查询失败"); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderItemType.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderItemType.java new file mode 100644 index 000000000..68cb9db86 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderItemType.java @@ -0,0 +1,33 @@ +package com.cf.imes.module.executor.enums; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * 生产单明细类型 + * + * @author Gqr + * @since 2024/6/7 14:50 + */ +@RequiredArgsConstructor +@Getter +public enum OrderItemType { + + BOARD(1, "板材"), + + PARTS(2, "五金/配件"), + + OTHER(3, "其他"), + + QUOTE_PARTS(4, "报价配件"); + + /** + * 类型编码 + */ + private final Integer code; + + /** + * 描述 + */ + private final String desc; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderPlanStatusEnum.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderPlanStatusEnum.java new file mode 100644 index 000000000..4f993f5a8 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderPlanStatusEnum.java @@ -0,0 +1,32 @@ +package com.cf.imes.module.executor.enums; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * 排单状态 + * + * @author Gqr + * @since 2024/6/7 14:25 + */ +@RequiredArgsConstructor +@Getter +public enum OrderPlanStatusEnum { + NEW(0, "新单"), + + APPLY(1, "板材已申请"), + + OPENING(2, "开料中"), + + OPENED(3, "已开料"); + + /** + * 类型编码 + */ + private final Integer code; + + /** + * 描述 + */ + private final String desc; +} \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderPlateFilterTypeEnum.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderPlateFilterTypeEnum.java new file mode 100644 index 000000000..26bda1b9a --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/enums/OrderPlateFilterTypeEnum.java @@ -0,0 +1,32 @@ +package com.cf.imes.module.executor.enums; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * 生产单板件排单过滤类型 + * + * @author Gqr + * @since 2024/6/7 14:31 + */ +@RequiredArgsConstructor +@Getter +public enum OrderPlateFilterTypeEnum { + HAS_CUT_THROUGH_SHAPE(1, "有挖穿造型"), + + HAS_CUT_PUNCH(2, "有挖穿孔"), + + HAS_2D_KNIFE_PATHS(4, "有二维刀路"), + + STACKABLE(8, "可叠"); + + /** + * 类型编码 + */ + private final Integer code; + + /** + * 描述 + */ + private final String desc; +} 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 115446e50..071f30054 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 @@ -1,9 +1,9 @@ package com.cf.imes.module.executor.service.optimizeplan; -import cn.hutool.Hutool; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import co.elastic.clients.elasticsearch.ElasticsearchClient; import co.elastic.clients.elasticsearch._types.FieldValue; @@ -11,7 +11,6 @@ import co.elastic.clients.elasticsearch.core.*; import co.elastic.clients.elasticsearch.core.search.Hit; import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.util.json.JsonUtils; -import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.es.core.service.ESDocumentService; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX; @@ -35,30 +34,21 @@ import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper; import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper; import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper; import com.cf.imes.module.executor.dal.mysql.remainplaten.RemainPlateMapper; +import com.cf.imes.module.executor.enums.ErrorCodeConstants; +import com.cf.imes.module.executor.enums.OrderPlanStatusEnum; import com.cf.imes.module.executor.util.RandomUtils; import com.cf.imes.module.executor.util.RectangleChecker; import com.cf.imes.module.infra.api.file.FileApi; import com.cf.imes.module.infra.api.file.dto.FileCreateReqDTO; import com.cf.imes.module.system.api.dataSource.DataSourceApi; import com.cf.imes.module.system.api.machine.MachineApi; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import io.netty.handler.codec.http2.DefaultHttp2Headers; -import io.netty.handler.codec.http2.DefaultHttp2HeadersDecoder; -import io.netty.handler.codec.http2.DefaultHttp2HeadersEncoder; -import io.netty.handler.codec.http2.Http2Headers; -import io.swagger.v3.core.util.Json; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.math.BigDecimal; -import java.nio.charset.StandardCharsets; import java.util.*; import java.util.stream.Collectors; @@ -68,9 +58,6 @@ import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.e import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_NOT_EXISTS; import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS; -import io.netty.handler.codec.http2.Http2HeadersEncoder; -import io.netty.handler.codec.http2.Http2HeadersDecoder; - /** * @author there */ @@ -182,7 +169,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } planMapper.updateById(PlanDO.builder() .id(planId) - .status(2) + .status(OrderPlanStatusEnum.OPENING.getCode()) .build()); return Boolean.TRUE; } @@ -290,22 +277,18 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { @Override public OrderSource getOrderSource(Long orderId, Long planId, Long machineId) { - if(!Objects.isNull(orderId) && !Objects.isNull(planId)) { - throw exception(154112,"生产单id与排单id只能传一个"); - } OrderSource orderSource; - if(!Objects.isNull(orderId)) { + if (ObjectUtil.isNotNull(orderId)) { orderSource = getOrderSourceByOrderId(orderId); orderSource.setMachineDTO(machineApi.getMachineDetail(machineId).getCheckedData()); return orderSource; } - if(!Objects.isNull(planId)) { + if (ObjectUtil.isNotNull(planId)) { orderSource = getOrderSourceByPlanId(planId); orderSource.setMachineDTO(machineApi.getMachineDetail(machineId).getCheckedData()); return orderSource; } - throw exception(154112,"生产单id或排单id不能都空"); - + throw exception(ErrorCodeConstants.SOURCE_NOT_EXITS_ERROR); } @Override diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index 56cf8b5c5..a2dead928 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX; @@ -23,6 +22,9 @@ import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper; import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper; import com.cf.imes.module.executor.dal.mysql.planitem.PlanItemMapper; import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper; +import com.cf.imes.module.executor.enums.OrderItemType; +import com.cf.imes.module.executor.enums.OrderPlanStatusEnum; +import com.cf.imes.module.executor.enums.OrderPlateFilterTypeEnum; import com.cf.imes.module.system.api.machine.MachineApi; import com.cf.imes.module.system.api.machine.dto.CuttingRespDTO; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -35,7 +37,6 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; -import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -179,7 +180,7 @@ public class PlanServiceImpl implements PlanService { if (planDO == null) { throw exception(PLAN_NOT_EXISTS); } - if (planDO.getStatus().equals(2) || planDO.getStatus().equals(3)) { + if (OrderPlanStatusEnum.OPENING.getCode().equals(planDO.getStatus()) || OrderPlanStatusEnum.OPENED.getCode().equals(planDO.getStatus())) { throw exception(PLAN_NOT_ALLOW_DELETE); } // 删除 @@ -303,13 +304,13 @@ public class PlanServiceImpl implements PlanService { .orderByDesc("a.create_time"); List filterTypes = new ArrayList<>(); if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) { - filterTypes.add(1); + filterTypes.add(OrderPlateFilterTypeEnum.HAS_CUT_THROUGH_SHAPE.getCode()); } if (Objects.nonNull(pageReqVO.getBurrow()) && pageReqVO.getBurrow()) { - filterTypes.add(2); + filterTypes.add(OrderPlateFilterTypeEnum.HAS_CUT_PUNCH.getCode()); } if (Objects.nonNull(pageReqVO.getTwoDimensionalToolPath()) && pageReqVO.getTwoDimensionalToolPath()) { - filterTypes.add(4); + filterTypes.add(OrderPlateFilterTypeEnum.HAS_2D_KNIFE_PATHS.getCode()); } queryWrapperX.inIfPresent("op.filter_type", filterTypes); @@ -350,7 +351,7 @@ public class PlanServiceImpl implements PlanService { .planId(req.getPlanId()) .orderId(obj.getOrderId()) .plateId(obj.getPlateId()) - .type(1) + .type(OrderItemType.BOARD.getCode()) .build()); planItemDOS.add(PlanItemDO.builder() @@ -370,7 +371,7 @@ public class PlanServiceImpl implements PlanService { if (planDO == null) { throw exception(PLAN_NOT_EXISTS); } - if (planDO.getStatus().equals(0) || planDO.getStatus().equals(1)) { + if (OrderPlanStatusEnum.NEW.getCode().equals(planDO.getStatus()) || OrderPlanStatusEnum.APPLY.getCode().equals(planDO.getStatus())) { throw exception(PLAN_NOT_ALLOW_CANCEL); } Set itemIds = planItemMapper.selectList(new LambdaQueryWrapperX().eq(PlanItemDO::getPlanId, id)) @@ -386,13 +387,13 @@ public class PlanServiceImpl implements PlanService { QueryWrapperX queryWrapperX = new QueryWrapperX<>(); List filterTypes = new ArrayList<>(); if (Objects.nonNull(vo.getHoleThrough()) && vo.getHoleThrough()) { - filterTypes.add(1); + filterTypes.add(OrderPlateFilterTypeEnum.HAS_CUT_THROUGH_SHAPE.getCode()); } if (Objects.nonNull(vo.getBurrow()) && vo.getBurrow()) { - filterTypes.add(2); + filterTypes.add(OrderPlateFilterTypeEnum.HAS_CUT_PUNCH.getCode()); } if (Objects.nonNull(vo.getTwoDimensionalToolPath()) && vo.getTwoDimensionalToolPath()) { - filterTypes.add(4); + filterTypes.add(OrderPlateFilterTypeEnum.HAS_2D_KNIFE_PATHS.getCode()); } queryWrapperX.eq("p.plan_id", vo.getPlanId()) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml index 756544005..79b3affa8 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml @@ -25,9 +25,9 @@ b.custom_order_no, b.customer, b.address, b.remark, b.id as orderId, c.goods_name, c.material, c.color, c.goods_id,oi.num, CASE WHEN a.unregular_point_count = 0 THEN '否' ELSE '是' END AS specialShaped, - CASE WHEN front_model_count = 0 or a.back_hole_count or a.side_hole_count THEN '否' ELSE '是' END AS profiling + CASE WHEN front_model_count = 0 or a.back_hole_count = 0 or a.side_hole_count = 0 THEN '否' ELSE '是' END AS profiling from order_plate a - LEFT JOIN order_item oi on a.id = oi.plate_id + LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id LEFT JOIN `order` b on a.order_id = b.id LEFT JOIN order_goods c on a.goods_id = c.id @@ -47,7 +47,7 @@ resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList"> select a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt, e.material, e.color, e.width, e.height, e.thickness, b.room_id, b.body_id from order_plate a - LEFT JOIN order_item b ON a.id = b.plate_id + LEFT JOIN order_item b ON a.id = b.plate_id AND a.order_id = b.order_id LEFT JOIN order_goods e ON e.id = a.goods_id AND e.order_id = a.order_id LEFT JOIN order_plan_item p ON b.id = p.item_id ${ew.customSqlSegment} @@ -80,10 +80,15 @@