mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
排单关联生产单状态修改
This commit is contained in:
+1
-1
@@ -10,7 +10,7 @@ public enum OrderStatusEnum {
|
||||
|
||||
EMPTY(0, "空单"),
|
||||
NEW_ORDER(1, "新单"),
|
||||
NO_SORT(2, "未排单"),
|
||||
SORTED(2, "已排单"),
|
||||
IN_PRODUCTION(3, "生产中"),
|
||||
FINISH_PRODUCTION(4, "生产完成");
|
||||
|
||||
|
||||
+4
-7
@@ -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;
|
||||
/**
|
||||
|
||||
+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<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.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<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 目前只考虑了非混单的情况,混单的情况待考虑
|
||||
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);
|
||||
|
||||
@@ -227,6 +243,12 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
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());
|
||||
|
||||
@@ -353,6 +375,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
// 修改删除的大板对应的小板为未优化
|
||||
plateMapper.updateNoPlateOptimized(orderIds, goodsIdList, getUserOrganId());
|
||||
|
||||
// 查询当前排单是否有自增板,如果有,删除
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateIdList(orderIds, goodsIdList, getUserOrganId());
|
||||
if (!plateDOS.isEmpty()) {
|
||||
List<Long> plateIds = plateDOS.stream().map(PlateDO::getId).toList();
|
||||
@@ -380,28 +403,42 @@ public class PlanServiceImpl implements PlanService {
|
||||
// 删除商品表里的 planId
|
||||
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()){
|
||||
|
||||
List<OrderDO> orderList = orderMapper.selectBatchIds(diff);
|
||||
|
||||
+17
@@ -427,4 +427,21 @@
|
||||
</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>
|
||||
+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_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, "当前所选机台有误,请检查机台信息或重新选择机台");
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user