mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 21:52:07 +08:00
排单关联生产单状态修改
This commit is contained in:
+1
-1
@@ -10,7 +10,7 @@ public enum OrderStatusEnum {
|
|||||||
|
|
||||||
EMPTY(0, "空单"),
|
EMPTY(0, "空单"),
|
||||||
NEW_ORDER(1, "新单"),
|
NEW_ORDER(1, "新单"),
|
||||||
NO_SORT(2, "未排单"),
|
SORTED(2, "已排单"),
|
||||||
IN_PRODUCTION(3, "生产中"),
|
IN_PRODUCTION(3, "生产中"),
|
||||||
FINISH_PRODUCTION(4, "生产完成");
|
FINISH_PRODUCTION(4, "生产完成");
|
||||||
|
|
||||||
|
|||||||
+4
-7
@@ -1,13 +1,10 @@
|
|||||||
package com.cf.imes.module.executor.dal.dataobject.order;
|
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.baomidou.mybatisplus.annotation.*;
|
||||||
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生产单表 order_{N} DO
|
* 生产单表 order_{N} DO
|
||||||
@@ -66,7 +63,7 @@ public class OrderDO extends BaseDO {
|
|||||||
*/
|
*/
|
||||||
private Integer dataType;
|
private Integer dataType;
|
||||||
/**
|
/**
|
||||||
* 订单状态,订单状态,0空订单1新单2生产中3生产完成
|
* 订单状态,0空订单1新单2已排单3生产中4生产完成
|
||||||
*/
|
*/
|
||||||
private Integer status;
|
private Integer status;
|
||||||
/**
|
/**
|
||||||
|
|||||||
+5
@@ -208,4 +208,9 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
|||||||
List<GoodsDO> selectNoPlanGoodsList(@Param("orderId") Long orderId,@Param("goodsIds") List<Long> goodsIds,@Param("organId") Long organId);
|
List<GoodsDO> selectNoPlanGoodsList(@Param("orderId") Long orderId,@Param("goodsIds") List<Long> goodsIds,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
List<Long> selectNoPlanOrdersList(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+54
-17
@@ -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.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||||
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
|
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.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.OrderIds;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
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.executor.service.optimizeplan.OptimizePlanService;
|
||||||
import com.cf.imes.module.system.api.machine.MachineApi;
|
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.CuttingRespDTO;
|
||||||
|
import com.cf.imes.module.system.api.machine.dto.MachineDTO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -133,6 +136,14 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Map<String,Long> createPlan(PlanSaveReqVO createReqVO) {
|
public Map<String,Long> 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 目前只考虑了非混单的情况,混单的情况待考虑
|
// todo 目前只考虑了非混单的情况,混单的情况待考虑
|
||||||
List<PlanSaveReqVO.Item> itemList = createReqVO.getItemList();
|
List<PlanSaveReqVO.Item> itemList = createReqVO.getItemList();
|
||||||
|
|
||||||
@@ -184,6 +195,11 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<OrderDO> orderDOList = orderMapper.selectBatchIds(orderIdList);
|
||||||
|
|
||||||
|
orderDOList.forEach(m -> m.setStatus(OrderStatusEnum.SORTED.getStatus()));
|
||||||
|
|
||||||
|
orderMapper.updateBatch(orderDOList);
|
||||||
|
|
||||||
planMapper.insertBatch(planDOS);
|
planMapper.insertBatch(planDOS);
|
||||||
|
|
||||||
@@ -227,6 +243,12 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
List<Long> orderIds = updateReqVO.getItemList().stream().map(PlanSaveReqVO.Item::getOrderId).toList();
|
List<Long> orderIds = updateReqVO.getItemList().stream().map(PlanSaveReqVO.Item::getOrderId).toList();
|
||||||
|
|
||||||
|
List<OrderDO> orderDOList = orderMapper.selectBatchIds(orderIds);
|
||||||
|
|
||||||
|
orderDOList.forEach(m -> m.setStatus(OrderStatusEnum.SORTED.getStatus()));
|
||||||
|
|
||||||
|
orderMapper.updateBatch(orderDOList);
|
||||||
|
|
||||||
// 修改新增的大板对应的板材为已优化
|
// 修改新增的大板对应的板材为已优化
|
||||||
plateMapper.updatePlateOptimized(orderIds,ids,getUserOrganId());
|
plateMapper.updatePlateOptimized(orderIds,ids,getUserOrganId());
|
||||||
|
|
||||||
@@ -353,6 +375,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
// 修改删除的大板对应的小板为未优化
|
// 修改删除的大板对应的小板为未优化
|
||||||
plateMapper.updateNoPlateOptimized(orderIds, goodsIdList, getUserOrganId());
|
plateMapper.updateNoPlateOptimized(orderIds, goodsIdList, getUserOrganId());
|
||||||
|
|
||||||
|
// 查询当前排单是否有自增板,如果有,删除
|
||||||
List<PlateDO> plateDOS = plateMapper.selectPlateIdList(orderIds, goodsIdList, getUserOrganId());
|
List<PlateDO> plateDOS = plateMapper.selectPlateIdList(orderIds, goodsIdList, getUserOrganId());
|
||||||
if (!plateDOS.isEmpty()) {
|
if (!plateDOS.isEmpty()) {
|
||||||
List<Long> plateIds = plateDOS.stream().map(PlateDO::getId).toList();
|
List<Long> plateIds = plateDOS.stream().map(PlateDO::getId).toList();
|
||||||
@@ -380,28 +403,42 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
// 删除商品表里的 planId
|
// 删除商品表里的 planId
|
||||||
goodsMapper.deletePlanGoods(orderIds,ids,getUserOrganId());
|
goodsMapper.deletePlanGoods(orderIds,ids,getUserOrganId());
|
||||||
|
|
||||||
List<Long> orderIdList = new ArrayList<>();
|
|
||||||
|
|
||||||
List<Long> diff;
|
List<Long> longList = goodsMapper.selectNoPlanOrdersList(orderIds, getUserOrganId());
|
||||||
|
|
||||||
// 根据生产单ID查询ES的优化数据
|
|
||||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = optimizePlanService.buildBoardByOrderIds(orderIds, ORDER_REMAIN_PLATE_MODEL, 100);
|
|
||||||
|
|
||||||
if(optimizeBoardModelDOS.isEmpty()){
|
List<Long> 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<Long> orderIdList = new ArrayList<>();
|
||||||
|
//
|
||||||
|
// List<Long> diff = new ArrayList<>();
|
||||||
|
//
|
||||||
|
// // 根据生产单ID查询ES的优化数据
|
||||||
|
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = optimizePlanService.buildBoardByOrderIds(orderIds, ORDER_REMAIN_PLATE_MODEL, 100);
|
||||||
|
//
|
||||||
|
// if(optimizeBoardModelDOS.isEmpty()){
|
||||||
|
//
|
||||||
|
// List<OrderDO> orderList = orderMapper.selectBatchIds(orderIds);
|
||||||
|
//
|
||||||
|
// List<OrderDO> 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()){
|
if(!diff.isEmpty()){
|
||||||
|
|
||||||
List<OrderDO> orderList = orderMapper.selectBatchIds(diff);
|
List<OrderDO> orderList = orderMapper.selectBatchIds(diff);
|
||||||
|
|||||||
+17
@@ -427,4 +427,21 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectNoPlanOrdersList" resultType="java.lang.Long">
|
||||||
|
|
||||||
|
select distinct order_id
|
||||||
|
from order_goods
|
||||||
|
where organ_id = #{organId}
|
||||||
|
and deleted = false
|
||||||
|
and order_id in
|
||||||
|
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
|
||||||
|
#{orderIds}
|
||||||
|
</foreach>
|
||||||
|
and plan_id !=0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
+1
@@ -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_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_BODY_ERROR = new ErrorCode(1_002_041_015, "当前板材没有选择柜体,请选择");
|
||||||
public static final ErrorCode ORDER_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, "当前所选机台有误,请检查机台信息或重新选择机台");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user