diff --git a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderStatusEnum.java b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderStatusEnum.java index 219b46a9d..f40641391 100644 --- a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderStatusEnum.java +++ b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderStatusEnum.java @@ -10,7 +10,7 @@ public enum OrderStatusEnum { EMPTY(0, "空单"), NEW_ORDER(1, "新单"), - NO_SORT(2, "未排单"), + SORTED(2, "已排单"), IN_PRODUCTION(3, "生产中"), FINISH_PRODUCTION(4, "生产完成"); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/order/OrderDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/order/OrderDO.java index c56c551c7..382bbb008 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/order/OrderDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/order/OrderDO.java @@ -1,13 +1,10 @@ package com.cf.imes.module.executor.dal.dataobject.order; -import com.cf.imes.framework.organ.core.db.OrganBaseDO; -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; + +import java.time.LocalDateTime; /** * 生产单表 order_{N} DO @@ -66,7 +63,7 @@ public class OrderDO extends BaseDO { */ private Integer dataType; /** - * 订单状态,订单状态,0空订单1新单2生产中3生产完成 + * 订单状态,0空订单1新单2已排单3生产中4生产完成 */ private Integer status; /** diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java index 0a6eb98a9..2d1a606c2 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java @@ -208,4 +208,9 @@ public interface GoodsMapper extends BaseMapperX { List selectNoPlanGoodsList(@Param("orderId") Long orderId,@Param("goodsIds") List goodsIds,@Param("organId") Long organId); + + List selectNoPlanOrdersList(@Param("orderIds") List orderIds, @Param("organId") Long organId); + + + } \ 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/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 8a9c0ff84..669ce5a5e 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 @@ -21,6 +21,8 @@ import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX; import com.cf.imes.framework.mybatis.core.query.QueryWrapperX; +import com.cf.imes.framework.security.core.LoginUser; +import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO; import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds; import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList; @@ -48,6 +50,7 @@ import com.cf.imes.module.executor.enums.OrderStatusEnum; import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService; import com.cf.imes.module.system.api.machine.MachineApi; import com.cf.imes.module.system.api.machine.dto.CuttingRespDTO; +import com.cf.imes.module.system.api.machine.dto.MachineDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -133,6 +136,14 @@ public class PlanServiceImpl implements PlanService { @Transactional(rollbackFor = Exception.class) public Map createPlan(PlanSaveReqVO createReqVO) { + MachineDTO checkedData = machineApi.getMachineDetail(createReqVO.getMachineId()).getCheckedData(); + AssertUtils.notEmpty(checkedData,MACHINE_NO_DATA_ERROR); + + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + assert loginUser != null; + + createReqVO.setOperator(loginUser.getNickname()); + // todo 目前只考虑了非混单的情况,混单的情况待考虑 List itemList = createReqVO.getItemList(); @@ -184,6 +195,11 @@ public class PlanServiceImpl implements PlanService { } + List orderDOList = orderMapper.selectBatchIds(orderIdList); + + orderDOList.forEach(m -> m.setStatus(OrderStatusEnum.SORTED.getStatus())); + + orderMapper.updateBatch(orderDOList); planMapper.insertBatch(planDOS); @@ -227,6 +243,12 @@ public class PlanServiceImpl implements PlanService { List orderIds = updateReqVO.getItemList().stream().map(PlanSaveReqVO.Item::getOrderId).toList(); + List orderDOList = orderMapper.selectBatchIds(orderIds); + + orderDOList.forEach(m -> m.setStatus(OrderStatusEnum.SORTED.getStatus())); + + orderMapper.updateBatch(orderDOList); + // 修改新增的大板对应的板材为已优化 plateMapper.updatePlateOptimized(orderIds,ids,getUserOrganId()); @@ -353,6 +375,7 @@ public class PlanServiceImpl implements PlanService { // 修改删除的大板对应的小板为未优化 plateMapper.updateNoPlateOptimized(orderIds, goodsIdList, getUserOrganId()); + // 查询当前排单是否有自增板,如果有,删除 List plateDOS = plateMapper.selectPlateIdList(orderIds, goodsIdList, getUserOrganId()); if (!plateDOS.isEmpty()) { List plateIds = plateDOS.stream().map(PlateDO::getId).toList(); @@ -380,28 +403,42 @@ public class PlanServiceImpl implements PlanService { // 删除商品表里的 planId goodsMapper.deletePlanGoods(orderIds,ids,getUserOrganId()); - List orderIdList = new ArrayList<>(); - List diff; + List longList = goodsMapper.selectNoPlanOrdersList(orderIds, getUserOrganId()); - // 根据生产单ID查询ES的优化数据 - List optimizeBoardModelDOS = optimizePlanService.buildBoardByOrderIds(orderIds, ORDER_REMAIN_PLATE_MODEL, 100); - if(optimizeBoardModelDOS.isEmpty()){ + List diff = Stream.concat( + orderIds.stream().filter(str -> !longList.contains(str)), + longList.stream().filter(str -> !orderIds.contains(str))) + .toList(); - diff = new ArrayList<>(orderIds); - - }else { - optimizeBoardModelDOS.forEach(f -> orderIdList.addAll(f.getOrderId())); - - // 已经删除的排单的生产单号和新查找的生生产单号对比,找出不同的部分 -// diff = orderIds.stream().filter(f -> !orderIdList.contains(f)).toList(); - diff = Stream.concat( - orderIds.stream().filter(str -> !orderIdList.contains(str)), - orderIdList.stream().filter(str -> !orderIds.contains(str))) - .toList(); - } +// List orderIdList = new ArrayList<>(); +// +// List diff = new ArrayList<>(); +// +// // 根据生产单ID查询ES的优化数据 +// List optimizeBoardModelDOS = optimizePlanService.buildBoardByOrderIds(orderIds, ORDER_REMAIN_PLATE_MODEL, 100); +// +// if(optimizeBoardModelDOS.isEmpty()){ +// +// List orderList = orderMapper.selectBatchIds(orderIds); +// +// List orderDOList = orderList.stream().map(m -> m.setStatus(OrderStatusEnum.NEW_ORDER.getStatus())).toList(); +// +// orderMapper.updateBatch(orderDOList); +// +// }else { +// optimizeBoardModelDOS.forEach(f -> orderIdList.addAll(f.getOrderId())); +// +// // 已经删除的排单的生产单号和新查找的生生产单号对比,找出不同的部分 +//// diff = orderIds.stream().filter(f -> !orderIdList.contains(f)).toList(); +// diff = Stream.concat( +// orderIds.stream().filter(str -> !orderIdList.contains(str)), +// orderIdList.stream().filter(str -> !orderIds.contains(str))) +// .toList(); +// } +// if(!diff.isEmpty()){ List orderList = orderMapper.selectBatchIds(diff); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml index c0085210e..b4f99adfb 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml @@ -427,4 +427,21 @@ + + + \ No newline at end of file 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 bfc7ffab7..3304b7cc5 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 @@ -310,6 +310,7 @@ public class ErrorCodeConstants { 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, "当前所选机台有误,请检查机台信息或重新选择机台");