排单保存优化接口参数修改

This commit is contained in:
liuzhaotian
2025-03-26 10:36:56 +08:00
parent b0253bdc6e
commit 0bf0f8c677
3 changed files with 58 additions and 52 deletions
@@ -6,7 +6,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
@Data @Data
@@ -18,11 +17,11 @@ public class SavePlanPlateResultReqVO {
private List<OptimizeBoardModelDO> optimizeBoardModelDOS; private List<OptimizeBoardModelDO> optimizeBoardModelDOS;
@Schema(description = "方案组的配置项ID", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "方案组的配置项ID")
@NotNull(message = "方案组的配置项ID不能为空") // @NotNull(message = "方案组的配置项ID不能为空")
private Long planConfigId; private Long planConfigId;
@Schema(description = "方案组的ID", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "方案组的ID")
// @NotNull(message = "方案组的ID不能为空") // @NotNull(message = "方案组的ID不能为空")
private Long processId; private Long processId;
@@ -31,6 +31,10 @@ public class OptimizeBoardModelDO extends ESDocument {
private List<Long> orderId; private List<Long> orderId;
@Schema(description = "方案组的ID")
private Long processId;
@Schema(description = "方案组的配置项ID") @Schema(description = "方案组的配置项ID")
private Long planConfigId; private Long planConfigId;
@@ -25,6 +25,7 @@ import com.cf.imes.framework.common.exception.ServiceException;
import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.Assert.AssertUtils; import com.cf.imes.framework.common.util.Assert.AssertUtils;
import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.es.core.dal.ESDocument;
import com.cf.imes.framework.es.core.service.ESDocumentService; import com.cf.imes.framework.es.core.service.ESDocumentService;
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.LoginUser;
@@ -144,6 +145,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
private static final String FIELD_SORT = " order by createTime desc "; 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_IS_OPTIMIZED = " op.is_optimized";
private static final String FIELD_PLAN_CONFIG_ID = "planConfigId"; private static final String FIELD_PLAN_CONFIG_ID = "planConfigId";
private static final String FIELD_PROCESS_ID = "processId";
private static final String FIELD_UPDATETIME = "updateTime"; private static final String FIELD_UPDATETIME = "updateTime";
private static final String ES_ORDER_MODEL_DATA_ERROR = "生产单板材造型信息ES文档查询数据异常: "; private static final String ES_ORDER_MODEL_DATA_ERROR = "生产单板材造型信息ES文档查询数据异常: ";
@@ -575,7 +577,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
List<Long> orderIds = JSON.parseArray(orderNos).toJavaList(Long.class).stream().distinct().toList(); List<Long> orderIds = JSON.parseArray(orderNos).toJavaList(Long.class).stream().distinct().toList();
// List<Long> orderIds = goodsDOS.stream().map(GoodsReqVO::getOrderId).distinct().toList();
List<Long> ids = goodsDOS.stream().map(GoodsReqVO::getId).toList(); List<Long> ids = goodsDOS.stream().map(GoodsReqVO::getId).toList();
@@ -603,7 +604,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds); List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
AssertUtils.notEmpty(orderDOS,ORDER_PLAN_ERROR); AssertUtils.notEmpty(orderDOS,ORDER_PLAN_ERROR);
//
// 造型数据的尺寸长度 // 造型数据的尺寸长度
Integer orderModelSize = plateDetailRespVOS.size(); Integer orderModelSize = plateDetailRespVOS.size();
@@ -625,12 +626,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
// 获取混单时选择的实际开料的大板信息 // 获取混单时选择的实际开料的大板信息
List<PlanActualGoodsModelDO> planActualGoodsModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_ACTUAL_GOODS_MODEL, PlanActualGoodsModelDO.class); List<PlanActualGoodsModelDO> planActualGoodsModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_ACTUAL_GOODS_MODEL, PlanActualGoodsModelDO.class);
// PlanActualGoodsModelDO planActualGoodsModelDO = new PlanActualGoodsModelDO();
//
// if(CollUtil.isNotEmpty(planActualGoodsModelDOS)){
//
// planActualGoodsModelDO = planActualGoodsModelDOS.get(0);
// }
// 查询生产单对应的配件信息 // 查询生产单对应的配件信息
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId()); List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
@@ -678,45 +673,49 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
OptimizeBoardModelDO boardModelDO = req.getOptimizeBoardModelDOS().get(0); OptimizeBoardModelDO boardModelDO = req.getOptimizeBoardModelDOS().get(0);
Long processId = req.getProcessId();
// List<ActualGoodsList> actualGoodsLists = Optional.ofNullable(boardModelDO.getActualGoodsList()).orElse(new ArrayList<>());
//
// AssertUtils.notEmpty(actualGoodsLists,PLAN_NO_ACTUAL_PLATE);
Long planId = boardModelDO.getPlanId(); Long planId = boardModelDO.getPlanId();
// // 延长操作用户的缓存时间
// redisInsertPlanCreator(planId);
//
// // 校验是否当前登陆的用户操作排单
// validatePlanCreator(planId);
PlanDO planDO = planMapper.selectById(planId); PlanDO planDO = planMapper.selectById(planId);
AssertUtils.notEmpty(planDO,ORDER_PLAN_DATE_ERROR); AssertUtils.notEmpty(planDO,ORDER_PLAN_DATE_ERROR);
List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(), planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class); boardModelDO.setProcessId(req.getProcessId());
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(), planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
// List<Boolean> isLocks = new ArrayList<>();
// 查询原优化信息然后进行判断 // 查询原优化信息然后进行判断
if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){ // if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
//
if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){ // if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){
throw exception(THIS_PLAN_OPTIMIZE_DATA_ERROR); // throw exception(THIS_PLAN_OPTIMIZE_DATA_ERROR);
} // }
//
// isLocks.addAll(optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getIsLock).distinct().toList()); //
// OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0); //
// Boolean isLock = Optional.ofNullable(optimizeBoardModelDO.getIsLock()).orElse(false);
Boolean isLock = Optional.ofNullable(optimizeBoardModelDO.getIsLock()).orElse(false); //
// LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); // assert loginUser != null;
assert loginUser != null; //
// Boolean data = permissionApi.hasAnyPermissions(loginUser.getId(), "placeorder:list").getCheckedData();
Boolean data = permissionApi.hasAnyPermissions(loginUser.getId(), "placeorder:list").getCheckedData(); //
// if(Boolean.TRUE.equals(isLock) && planDO.getIsScheduled().equals(true) && Boolean.FALSE.equals(data)){
if(Boolean.TRUE.equals(isLock) && planDO.getIsScheduled().equals(true) && Boolean.FALSE.equals(data)){ // throw exception(THIS_PLAN_OPTIMIZE_IS_LOCK);
throw exception(THIS_PLAN_OPTIMIZE_IS_LOCK); // }
} //
// }
}
List<PlateDO> plateDOS = planItemMapper.selectOrderPlanPlateListByPlanId(planId,getUserOrganId()); List<PlateDO> plateDOS = planItemMapper.selectOrderPlanPlateListByPlanId(planId,getUserOrganId());
@@ -730,19 +729,23 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
plateMapper.updateBatch(plateDOS); plateMapper.updateBatch(plateDOS);
} }
// 这个逻辑暂时先不用,等后面方案组逻辑完善后可加入 if(!planDO.getProcessId().equals(req.getProcessId())) {
// if(processId != null && !planDO.getProcessId().equals(processId)) {
//
// validatePlanStatus(planDO,isLocks);
//
// planMapper.updateById(planDO.setProcessId(processId));
//
// }
esUtils.deleteEsDocument(FIELD_PLAN_ID,FIELD_PLAN_CONFIG_ID,planId,req.getPlanConfigId(),ORDER_OPTIMIZE_PLATE_MODEL); planDO.setProcessId(req.getProcessId());
planMapper.updateById(planDO);
List<OptimizeBoardModelDO> document = esUtils.getEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
if(CollUtil.isNotEmpty(document)) {
List<Long> list = document.stream().filter(f -> f.getProcessId() != null).map(m -> m.getProcessId()).toList();
if(CollUtil.isNotEmpty(list)) {
esUtils.deleteEsDocument(FIELD_PLAN_ID, FIELD_PROCESS_ID, planId, req.getProcessId(), ORDER_OPTIMIZE_PLATE_MODEL);
}
}
}
// 保存优化后的大板数据 // 保存优化后的大板数据
esUtils.saveEsDocument(ORDER_OPTIMIZE_PLATE_MODEL,req.getOptimizeBoardModelDOS()); esUtils.saveEsDocument(ORDER_OPTIMIZE_PLATE_MODEL, (List<? extends ESDocument>) boardModelDO);
// ES文档数据刷新 // ES文档数据刷新