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:
+8
-8
@@ -56,6 +56,14 @@ public class PlateDetailRespVO {
|
||||
private String name;
|
||||
|
||||
|
||||
@Schema(description = "板颜色", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String color;
|
||||
|
||||
|
||||
@Schema(description = "板材质", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String material;
|
||||
|
||||
|
||||
@Schema(description = "板长", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Double height;
|
||||
|
||||
@@ -180,10 +188,6 @@ public class PlateDetailRespVO {
|
||||
private Integer type;
|
||||
|
||||
|
||||
// @Schema(description = "加工组ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
// private String processGroupId;
|
||||
|
||||
|
||||
@Schema(description = "加工组名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String processGroupName;
|
||||
|
||||
@@ -201,9 +205,5 @@ public class PlateDetailRespVO {
|
||||
@Schema(description = "加工组名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<ProcessGroupList> processGroupLists;
|
||||
|
||||
// @Schema(description = "生产单明细ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
// private Long itemId;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+4
@@ -61,6 +61,10 @@ public class OptimizeBoardModelDO extends ESDocument {
|
||||
private Long cutedBoardNumber;
|
||||
|
||||
|
||||
@Schema(description = "已开料的小板数量")
|
||||
private Long cutedBlockNumber;
|
||||
|
||||
|
||||
// 新的数据集需要去除
|
||||
@Schema(description = "排单优化的大板数量")
|
||||
private Long placeBoardNumber;
|
||||
|
||||
+24
@@ -266,4 +266,28 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
default List<PlateDO> selectIsOptimizedPlate(List<Long> orderId,List<Long> ids, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.eq(PlateDO::getDeleted,false)
|
||||
.inIfPresent(PlateDO::getOrderId,orderId)
|
||||
.inIfPresent(PlateDO::getGoodsId,ids)
|
||||
.eq(PlateDO::getIsOptimized,true)
|
||||
.select(PlateDO::getId,PlateDO::getId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
default List<PlateDO> selectPlateIsCuttingStatus(List<Long> orderIds,Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.in(PlateDO::getOrderId,orderIds)
|
||||
.eq(PlateDO::getDeleted,false)
|
||||
.in(PlateDO::getIsCutted, Arrays.asList(OrderPlateCutStatusEnum.OPENED.getStatus(),OrderPlateCutStatusEnum.OPENING.getStatus()))
|
||||
.select(PlateDO::getId,PlateDO::getOrderId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+164
-133
@@ -400,17 +400,17 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
Long planId = respVO.getPlanId();
|
||||
List<String> goodsIds = respVO.getGoodsId();
|
||||
List<Integer> goodsNo = respVO.getGoodsNo();
|
||||
Integer cutedType = respVO.getCutedType();
|
||||
|
||||
if(goodsIds.isEmpty()){
|
||||
return;
|
||||
}
|
||||
|
||||
Date date = new Date();
|
||||
|
||||
PlanDO planDO = validatePlanExists(planId);
|
||||
|
||||
|
||||
List<Long> orderIds = JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class).stream().distinct().toList();
|
||||
List<Long> orderIds = new ArrayList<>(JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class).stream().distinct().toList());
|
||||
|
||||
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,respVO.getPlanConfigId(), planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
@@ -421,161 +421,92 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
String remainBoardInfo = optimizeBoardModelDO.getRemainBoardInfo();
|
||||
|
||||
Integer boardCount = optimizeBoardModelDO.getBoardCount();
|
||||
|
||||
List<RemainBoardInfo> remainBoardInfos = parseArray(remainBoardInfo, RemainBoardInfo.class);
|
||||
|
||||
List<String> planNo = new ArrayList<>();
|
||||
|
||||
remainBoardInfos.forEach(f->{
|
||||
Long goodsNum = updatePlanOptimizeData(remainBoardInfos, optimizeBoardModelDO, orderIds, goodsIds, goodsNo, cutedType);
|
||||
|
||||
if(goodsIds.contains(f.getGoodsId())){
|
||||
|
||||
f.getPlaceBoardList().forEach(p->{
|
||||
if(OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)){
|
||||
|
||||
if(goodsNo.contains(p.getBoardId())) {
|
||||
p.setCutedType(respVO.getCutedType());
|
||||
planNo.addAll(p.getBlocks().stream().map(RemainBoardInfo.Blocks::getBlockId).toList());
|
||||
}
|
||||
});
|
||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
|
||||
if(goodsNum.equals(0L)){
|
||||
planDO.setStatus(PlanStatusEnum.PUTINTOPRODUCTION.getStatus());
|
||||
}
|
||||
});
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
|
||||
// 更新开料相关的数据
|
||||
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
||||
objectObjectHashMap.put("remainBoardInfo", toJsonString(remainBoardInfos));
|
||||
objectObjectHashMap.put("updateTime",simpleDateFormat.format(date));
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateIsCuttingStatus(orderIds, getUserOrganId());
|
||||
List<Long> orderIdList = plateDOS.stream().map(PlateDO::getOrderId).distinct().toList();
|
||||
|
||||
try {
|
||||
orderIds.removeAll(orderIdList);
|
||||
|
||||
esDocumentService.updateById(ORDER_OPTIMIZE_PLATE_MODEL, optimizeBoardModelDO.getId(), HashMap.class, objectObjectHashMap);
|
||||
if(CollUtil.isNotEmpty(orderIds)){
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
orderDOS.forEach(f->f.setStatus(OrderStatusEnum.SORTED.getStatus()));
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
} catch (IOException e) {
|
||||
log.error(e.getMessage());
|
||||
throw new ServiceException(ES_DATA_ERROR);
|
||||
}
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateByPlateNo(orderIds, planNo, getUserOrganId());
|
||||
|
||||
plateDOS.forEach(f->{
|
||||
f.setIsCutted(respVO.getCutedType());
|
||||
});
|
||||
|
||||
plateMapper.updateBatch(plateDOS);
|
||||
|
||||
|
||||
//
|
||||
// List<PlateDO> plateDOS = getPlanGoodsPlateList(goodsNo,planDO,optimizeBoardModelDOS);
|
||||
//
|
||||
//
|
||||
// List<Long> orderIds = new ArrayList<>(plateDOS.stream().map(PlateDO::getOrderId).distinct().toList());
|
||||
//
|
||||
//
|
||||
// // 修改生产单的状态
|
||||
// orderMapper.updateOrderListStatus(orderIds,OrderStatusEnum.IN_PRODUCTION.getStatus(),getUserOrganId());
|
||||
//
|
||||
//
|
||||
// // 修改小板的开料状态
|
||||
// plateDOS.forEach(f->f.setIsCutted(OrderPlateCutStatusEnum.NOCUTTING.getStatus()));
|
||||
// plateMapper.updateBatch(plateDOS);
|
||||
//
|
||||
//
|
||||
// OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
//
|
||||
//
|
||||
// List<CutedBoardInfo> cutedBoardInfoList = Optional.ofNullable(optimizeBoardModelDO.getCutedBoardInfo()).orElse(new ArrayList<>());
|
||||
//
|
||||
// List<CutedBoardInfo> cutedBoardInfos = cutedBoardInfoList.stream().filter(f -> f.getGoodsId().equals(goodsId)).toList();
|
||||
//
|
||||
// AssertUtils.notEmpty(cutedBoardInfos,ORDER_PLAN_OPTIMIZE_ERROR);
|
||||
//
|
||||
// CutedBoardInfo cutedBoardInfo = cutedBoardInfos.get(0);
|
||||
//
|
||||
//
|
||||
// if(cutedBoardInfo.getCutedBoardNumber() != null) {
|
||||
// // 已经开料的大板信息
|
||||
// List<Long> cutedBoardList = cutedBoardInfo.getCutedBoardList();
|
||||
// // 开料的大板数量
|
||||
// long cutedBoardNumber = cutedBoardInfo.getCutedBoardNumber();
|
||||
//
|
||||
// // 移除取消开料的数据
|
||||
// cutedBoardList.removeAll(goodsNo);
|
||||
//
|
||||
// // 减去取消开料的大板数量
|
||||
// cutedBoardNumber -= goodsNo.size();
|
||||
//
|
||||
// if(CollUtil.isEmpty(cutedBoardList)){
|
||||
// cutedBoardNumber = 0;
|
||||
// }
|
||||
//
|
||||
// // 将需要更新的数据更新到原数据中
|
||||
// cutedBoardInfo.setCutedBoardNumber(cutedBoardNumber);
|
||||
// cutedBoardInfo.setCutedBoardList(cutedBoardList);
|
||||
//
|
||||
//
|
||||
// // 更新开料相关的数据
|
||||
// HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
||||
// objectObjectHashMap.put("cutedBoardInfo", cutedBoardInfo);
|
||||
// objectObjectHashMap.put("updateTime",simpleDateFormat.format(date));
|
||||
//
|
||||
// try {
|
||||
//
|
||||
// esDocumentService.updateById(ORDER_OPTIMIZE_PLATE_MODEL, optimizeBoardModelDO.getId(), HashMap.class, objectObjectHashMap);
|
||||
//
|
||||
// } catch (IOException e) {
|
||||
// log.error(e.getMessage());
|
||||
// throw new ServiceException(ES_DATA_ERROR);
|
||||
// }
|
||||
//
|
||||
// if(cutedBoardInfo.getCutedBoardNumber() == 0){
|
||||
//
|
||||
// planMapper.updatePlanStatus(planId,PlanStatusEnum.NOCUTTING.getStatus(),getUserOrganId());
|
||||
//
|
||||
// }else {
|
||||
//
|
||||
// planMapper.updatePlanStatus(planId,PlanStatusEnum.OPENING.getStatus(), getUserOrganId());
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
//
|
||||
// orderDOS.forEach(f->f.setFinishTime(null));
|
||||
//
|
||||
//
|
||||
// List<PlateDO> plateDOList = plateMapper.selectIsCutPlateByPlateId(orderIds, getUserOrganId());
|
||||
//
|
||||
// List<Long> orderIdList = plateDOList.stream().map(PlateDO::getOrderId).distinct().toList();
|
||||
//
|
||||
// orderIds.removeAll(orderIdList);
|
||||
//
|
||||
//
|
||||
//
|
||||
// if(CollUtil.isNotEmpty(orderIds)) {
|
||||
//
|
||||
// List<OrderDO> orderDOList = orderDOS.stream().filter(f -> orderIds.contains(f.getId())).toList();
|
||||
//
|
||||
// orderDOList.forEach(f -> f.setStatus(OrderStatusEnum.SORTED.getStatus()));
|
||||
// }
|
||||
//
|
||||
// if(CollUtil.isNotEmpty(orderIdList)) {
|
||||
//
|
||||
// List<OrderDO> orderDOList1 = orderDOS.stream().filter(f -> orderIdList.contains(f.getId())).toList();
|
||||
//
|
||||
// orderDOList1.forEach(f -> f.setStatus(OrderStatusEnum.IN_PRODUCTION.getStatus()));
|
||||
// }
|
||||
//
|
||||
//
|
||||
// }
|
||||
if(OrderPlateCutStatusEnum.OPENING.getStatus().equals(cutedType)){
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
orderDOS.forEach(f->f.setStatus(OrderStatusEnum.IN_PRODUCTION.getStatus()));
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)){
|
||||
|
||||
List<PlateDO> plateDOList = plateMapper.selectNoCutPlateByPlateId(orderIds, getUserOrganId());
|
||||
|
||||
List<Long> orderIdList = plateDOList.stream().map(PlateDO::getOrderId).distinct().toList();
|
||||
|
||||
orderIds.removeAll(orderIdList);
|
||||
|
||||
if(CollUtil.isNotEmpty(orderIds)){
|
||||
|
||||
// 查询生产单的打包状态是否为已打包
|
||||
List<OrderDO> orderDOS = orderMapper.selectOrderPackList(orderIds, getUserOrganId());
|
||||
if (CollUtil.isNotEmpty(orderDOS)) {
|
||||
orderDOS.forEach(f -> {
|
||||
f.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
|
||||
f.setFinishTime(LocalDateTime.now());
|
||||
});
|
||||
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
}
|
||||
}
|
||||
|
||||
if(goodsNum.equals(Long.valueOf(boardCount))) {
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENED.getStatus());
|
||||
planDO.setProduceTime(LocalDateTime.now());
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 计算工资金额
|
||||
public List<ProcessStepSalaryIds> calculateSalary(List<Long> processStepId){
|
||||
|
||||
@@ -1508,4 +1439,104 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private Long updatePlanOptimizeData(List<RemainBoardInfo> remainBoardInfos,
|
||||
OptimizeBoardModelDO optimizeBoardModelDO,
|
||||
List<Long> orderIds,
|
||||
List<String> goodsIds,
|
||||
List<Integer> goodsNo,
|
||||
Integer cutedType){
|
||||
|
||||
Date date = new Date();
|
||||
|
||||
Long goodsNum = null;
|
||||
|
||||
List<String> planNo = new ArrayList<>();
|
||||
|
||||
remainBoardInfos.forEach(f->{
|
||||
|
||||
if(goodsIds.contains(f.getGoodsId())){
|
||||
|
||||
f.getPlaceBoardList().forEach(p->{
|
||||
|
||||
if(goodsNo.contains(p.getBoardId())) {
|
||||
p.setCutedType(cutedType);
|
||||
planNo.addAll(p.getBlocks().stream().map(RemainBoardInfo.Blocks::getBlockId).toList());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// 更新开料相关的数据
|
||||
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
||||
|
||||
|
||||
if(OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)){
|
||||
|
||||
|
||||
Long cutedBoardNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBoardNumber()).orElseThrow(()-> new ServiceException(UPDATE_NO_PLAN_PLATE_DATA_ERROR));
|
||||
|
||||
Long cutedBlockNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBlockNumber()).orElseThrow(()-> new ServiceException(UPDATE_NO_PLAN_PLATE_DATA_ERROR));
|
||||
|
||||
cutedBoardNumber -= goodsNo.size();
|
||||
|
||||
cutedBlockNumber -= planNo.size();
|
||||
|
||||
goodsNum = cutedBoardNumber;
|
||||
|
||||
objectObjectHashMap.put("cutedBoardNumber", cutedBoardNumber);
|
||||
objectObjectHashMap.put("cutedBlockNumber", cutedBlockNumber);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)){
|
||||
|
||||
long cutedBoardNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBoardNumber()).orElse(0L);
|
||||
|
||||
long cutedBlockNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBlockNumber()).orElse(0L);
|
||||
|
||||
cutedBoardNumber += goodsNo.size();
|
||||
|
||||
cutedBlockNumber += planNo.size();
|
||||
|
||||
goodsNum = cutedBoardNumber;
|
||||
|
||||
objectObjectHashMap.put("cutedBoardNumber", cutedBoardNumber);
|
||||
objectObjectHashMap.put("cutedBlockNumber", cutedBlockNumber);
|
||||
|
||||
}
|
||||
|
||||
|
||||
objectObjectHashMap.put("remainBoardInfo", toJsonString(remainBoardInfos));
|
||||
objectObjectHashMap.put("updateTime",simpleDateFormat.format(date));
|
||||
|
||||
try {
|
||||
|
||||
esDocumentService.updateById(ORDER_OPTIMIZE_PLATE_MODEL, optimizeBoardModelDO.getId(), HashMap.class, objectObjectHashMap);
|
||||
|
||||
} catch (IOException e) {
|
||||
log.error(e.getMessage());
|
||||
throw new ServiceException(ES_DATA_ERROR);
|
||||
}
|
||||
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateByPlateNo(orderIds, planNo, getUserOrganId());
|
||||
|
||||
plateDOS.forEach(f->{
|
||||
f.setIsCutted(cutedType);
|
||||
});
|
||||
|
||||
plateMapper.updateBatch(plateDOS);
|
||||
|
||||
|
||||
return goodsNum;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+3
@@ -279,6 +279,9 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
}
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectIsOptimizedPlate(orderIds, ids, getUserOrganId());
|
||||
|
||||
AssertUtils.empty(plateDOS,CREAT_PLAN_PLATE_DATA_ERROR);
|
||||
|
||||
List<OrderDO> orderDOList = orderMapper.selectBatchIds(orderIds);
|
||||
|
||||
|
||||
+3
-3
@@ -169,9 +169,9 @@
|
||||
|
||||
from orders o
|
||||
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||
left join order_plan_item opi on og.organ_id = opi.organ_id and og.order_id = opi.order_id and og.id = opi.goods_id
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id
|
||||
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
|
||||
left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
@@ -194,8 +194,8 @@
|
||||
|
||||
from orders o
|
||||
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||
left join order_plan_item opi on og.organ_id = opi.organ_id and og.order_id = opi.order_id and og.id = opi.goods_id
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id
|
||||
left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
@@ -222,9 +222,9 @@
|
||||
|
||||
from orders o
|
||||
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||
left join order_plan_item opi on og.organ_id = opi.organ_id and og.order_id = opi.order_id and og.id = opi.goods_id
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id
|
||||
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
|
||||
left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
+4
@@ -29,6 +29,8 @@
|
||||
<result property="plateNo" column="plateNo"/>
|
||||
<result property="customPlateNo" column="customPlateNo"/>
|
||||
<result property="name" column="name"/>
|
||||
<result property="color" column="color"/>
|
||||
<result property="material" column="material"/>
|
||||
<result property="height" column="height"/>
|
||||
<result property="width" column="width"/>
|
||||
<result property="thickness" column="thickness"/>
|
||||
@@ -386,6 +388,8 @@
|
||||
ogs.goods_id as plateGoodsId,
|
||||
ogs.goods_name as goodsName,
|
||||
|
||||
ogs.color as color,
|
||||
ogs.material as material,
|
||||
op.id as plateId,
|
||||
op.order_id as orderId,
|
||||
op.name as name,
|
||||
|
||||
+6
-4
@@ -263,7 +263,6 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode REMAIN_PLATE_NOT_EXISTS = new ErrorCode(1_002_033_005, "板材不存在");
|
||||
public static final ErrorCode RAW_GOODS_NOT_EXISTS = new ErrorCode(1_002_033_006, "设计板材不存在");
|
||||
public static final ErrorCode RAW_GOODS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_033_007, "生产板材导入数据不可以为空");
|
||||
public static final ErrorCode PLATENO_ERROR = new ErrorCode(1_002_033_008, "当前板编号无对应包裹信息");
|
||||
public static final ErrorCode PLATE_GOODS_ID_NOT_SAME = new ErrorCode(1_002_033_009, "板材商品编号存在,请重新命名商品编号");
|
||||
public static final ErrorCode PLATE_IS_SOURCE = new ErrorCode(1_002_033_010, "当前板材为源小板,无法删除");
|
||||
public static final ErrorCode PLAN_GOODS_IS_FILTER_DATA_ERROR = new ErrorCode(1_002_033_011, "当前排单为非混单,无法添加颜色的筛选条件");
|
||||
@@ -295,7 +294,6 @@ public class ErrorCodeConstants {
|
||||
|
||||
|
||||
//=========== 包裹信息 1-002-040-000 ============
|
||||
public static final ErrorCode THE_CURRENT_PACKAGE_HAS_AN_UNSEALED_PACKAGE = new ErrorCode(1_002_040_001, "当前包裹还有未封包包裹");
|
||||
public static final ErrorCode THE_CURRENT_PACKAGE_TYPE_IS_INCORRECT = new ErrorCode(1_002_040_002, "当前包裹类型错误");
|
||||
public static final ErrorCode FAILED_TO_MODIFY_THE_STATUS_OF_THE_CURRENT_PRODUCTION_ORDER = new ErrorCode(1_002_040_003, "修改当前生产单的工序状态和生产单的状态失败");
|
||||
public static final ErrorCode NO_OPTIMIZATION_INFORMATION_AVAILABLE = new ErrorCode(1_002_040_004, "当前订单无优化信息");
|
||||
@@ -306,7 +304,6 @@ public class ErrorCodeConstants {
|
||||
//=========== 断言提示信息 1-002-041-000 ============
|
||||
public static final ErrorCode ORDER_DATE_ERROR = new ErrorCode(1_002_041_001, "生产单信息不存在,请重新进入或切换生产单");
|
||||
public static final ErrorCode ORDER_PLATE_ERROR = new ErrorCode(1_002_041_002, "生产单对应的板材数据为空,请检查是否为空单或重新导入生产单,或联系客服");
|
||||
public static final ErrorCode INSERT_PLATE_DATE_ERROR = new ErrorCode(1_002_041_003, "新增排单的板材数据有误,请重新新增");
|
||||
public static final ErrorCode ORDER_PLAN_DATE_ERROR = new ErrorCode(1_002_041_004, "排单信息不存在,请重新进入或切换排单");
|
||||
public static final ErrorCode ORDER_PLAN_OPTIMIZE_ERROR = new ErrorCode(1_002_041_005, "排单的优化数据异常,请将该排单重新优化");
|
||||
public static final ErrorCode ORDER_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_006, "生产单对应的板材造型数据为空,请重新导入生产单");
|
||||
@@ -340,7 +337,8 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode PLAN_NO_ACTUAL_PLATE = new ErrorCode(1_002_041_030, "当前排单未选择实际开料的大板信息,无法保存优化结果");
|
||||
public static final ErrorCode PROCESS_CONFIG_DEFAULT_DATA_ERROR = new ErrorCode(1_002_041_031, "当前组织没有默认的加工方案组,请在系统配置中进行配置");
|
||||
public static final ErrorCode THIS_PROCESS_CONFIG_DATA_ERROR = new ErrorCode(1_002_041_032, "当前选择的加工方案组配置有误,请选择其他方案组或重新配置该方案组");
|
||||
|
||||
public static final ErrorCode CREAT_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_033, "当前板材已有小板创建板材,请重新查询生产单信息再创建");
|
||||
public static final ErrorCode UPDATE_NO_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_034, "当前排单无开料板,无法取消开料,请重新尝试");
|
||||
|
||||
|
||||
//=========== 应用信息 1-002-037-000 ============
|
||||
@@ -376,4 +374,8 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode CUSTOM_PLATE_NO_RULE_CHECK_INT_TYPE_NO_EMPTY = new ErrorCode(1_002_040_012, "【{}】下的【{}】不能为空,请检查配置规则");
|
||||
public static final ErrorCode CUSTOM_PLATE_NO_RULE_CHECK_INT_TYPE_ERROR = new ErrorCode(1_002_040_013, "【{}】下的数值类型参数{}:【{}】转换异常,请检查配置规则");
|
||||
public static final ErrorCode CUSTOM_PLATE_NO_RULE_CHECK_BOL_TYPE_ERROR = new ErrorCode(1_002_040_014, "【{}】下的布尔类型参数{}:【{}】转换异常,请检查配置规则");
|
||||
public static final ErrorCode SYSTEM_PROCESS_SCHEME_DATA_ERROR = new ErrorCode(1_002_040_015, "加工方案组的:{} 为空,无法保存,请进行配置");
|
||||
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_DATA_ERROR = new ErrorCode(1_002_040_016, "加工方案组的:{} 为空,请检查配置信息");
|
||||
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_FIELD_ERROR = new ErrorCode(1_002_040_017, "当前方案组的配置异常,请重新配置");
|
||||
|
||||
}
|
||||
|
||||
+31
-3
@@ -17,16 +17,18 @@ import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
|
||||
import com.cf.imes.module.system.enums.config.SystemConfigTypeEnum;
|
||||
import com.cf.imes.module.system.service.systemconfig.SystemConfigService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
||||
import static com.cf.imes.framework.common.util.json.JsonUtils.*;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.PROCESS_CONFIG_DEFAULT_DATA_ERROR;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.THIS_PROCESS_CONFIG_DATA_ERROR;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 系统配置feign实现类
|
||||
@@ -36,6 +38,7 @@ import static com.cf.imes.module.system.enums.ErrorCodeConstants.THIS_PROCESS_CO
|
||||
*/
|
||||
@RestController
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
|
||||
@Resource
|
||||
@@ -93,16 +96,32 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
|
||||
AssertUtils.notEmpty(systemConfigDO,THIS_PROCESS_CONFIG_DATA_ERROR);
|
||||
|
||||
List<ProcessSchemeConfig> processSchemeConfigs = parseArray(systemConfigDO.getSetting(), ProcessSchemeConfig.class);
|
||||
List<ProcessSchemeConfig> processSchemeConfigs;
|
||||
|
||||
try {
|
||||
|
||||
processSchemeConfigs = parseArray(systemConfigDO.getSetting(), ProcessSchemeConfig.class);
|
||||
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage());
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_FIELD_ERROR);
|
||||
}
|
||||
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOS = BeanUtils.toBean(processSchemeConfigs, ProcessSchemeDTO.class);
|
||||
|
||||
List<String> processLineConfigIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getProcessLineConfig).distinct().toList();
|
||||
|
||||
checkValueIsNotEmpty(processLineConfigIds,"加工分线");
|
||||
|
||||
List<String> optimizationConfigIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getOptimizationConfig).distinct().toList();
|
||||
|
||||
checkValueIsNotEmpty(optimizationConfigIds,"优化数据配置");
|
||||
|
||||
List<String> analyzerIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getAnalyzer).distinct().toList();
|
||||
|
||||
checkValueIsNotEmpty(analyzerIds,"解析器");
|
||||
|
||||
|
||||
List<SystemConfigDO> processLineConfigList = systemConfigMapper.selectBatchIds(processLineConfigIds);
|
||||
|
||||
@@ -158,4 +177,13 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
|
||||
return success(schemeDTOS);
|
||||
}
|
||||
|
||||
|
||||
private void checkValueIsNotEmpty(List<String> value,String error) {
|
||||
|
||||
if(ObjectUtils.isEmpty(value)){
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_DATA_ERROR,error);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+14
@@ -1,6 +1,7 @@
|
||||
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.cf.imes.framework.common.enums.CommonStatusEnum;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigDeleteReqVO;
|
||||
@@ -62,6 +63,19 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
|
||||
.type(configTypeEnum.getType())
|
||||
.build();
|
||||
|
||||
if(configTypeEnum.getType().equals(SystemConfigTypeEnum.MULTI_COLOR_ORDER_PLAN.getType())){
|
||||
SystemConfigDO systemConfigDO = SystemConfigDO
|
||||
.builder()
|
||||
.id(null)
|
||||
.name(configTypeEnum.getName())
|
||||
.type(configTypeEnum.getType())
|
||||
.status(CommonStatusEnum.DISABLE.getStatus())
|
||||
.build();
|
||||
systemConfigMapper.insert(systemConfigDO);
|
||||
resultList.add(systemConfigDO);
|
||||
continue;
|
||||
}
|
||||
|
||||
resultList.add(initConfig);
|
||||
} else {
|
||||
// 如果存在配置,保留版本号最大的配置
|
||||
|
||||
+38
-1
@@ -1,6 +1,7 @@
|
||||
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.cf.imes.framework.common.enums.CommonStatusEnum;
|
||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||
@@ -16,8 +17,10 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.cf.imes.framework.common.util.json.JsonUtils.parseArray;
|
||||
import static com.cf.imes.framework.common.util.json.JsonUtils.toJsonString;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_PROCESS_SCHEME_DATA_ERROR;
|
||||
|
||||
/**
|
||||
* @author 加工方案服务处理器
|
||||
@@ -47,7 +50,31 @@ public class ProcessSchemeServiceHandler extends AbstractSystemConfigServiceHand
|
||||
|
||||
@Override
|
||||
public void checkValid(String setting) {
|
||||
// todo checkValid
|
||||
|
||||
|
||||
List<ProcessSchemeConfig> processSchemeConfigs = parseArray(setting, ProcessSchemeConfig.class);
|
||||
|
||||
processSchemeConfigs.forEach(f->{
|
||||
|
||||
String planName = Optional.ofNullable(f.getPlanName()).orElse("");
|
||||
|
||||
checkValueIsNotNull(planName,"加工方案名称");
|
||||
|
||||
String processLineConfig = Optional.ofNullable(f.getProcessLineConfig()).orElse("");
|
||||
|
||||
checkValueIsNotNull(processLineConfig,"加工分线");
|
||||
|
||||
String optimizationConfig = Optional.ofNullable(f.getOptimizationConfig()).orElse("");
|
||||
|
||||
checkValueIsNotNull(optimizationConfig,"优化数据配置");
|
||||
|
||||
String analyzer = Optional.ofNullable(f.getAnalyzer()).orElse("");
|
||||
|
||||
checkValueIsNotNull(analyzer,"解析器");
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -101,4 +128,14 @@ public class ProcessSchemeServiceHandler extends AbstractSystemConfigServiceHand
|
||||
systemConfigMapper.deleteById(reqVO.getId());
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void checkValueIsNotNull(String value,String error) {
|
||||
|
||||
if(CharSequenceUtil.isBlank(value)){
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_DATA_ERROR,error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user