1、cad拆单移除es新增造型数据;2、未排单列表暂时移除es造型数据;

This commit is contained in:
gaoqr
2026-05-08 09:35:51 +08:00
parent 3a8c875121
commit 8ad17c34c5
6 changed files with 8 additions and 87 deletions
@@ -12,6 +12,7 @@ import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO; import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
import com.cf.imes.module.system.api.machine.dto.MachineDTO; import com.cf.imes.module.system.api.machine.dto.MachineDTO;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
@@ -28,6 +29,7 @@ import java.util.List;
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderSource { public class OrderSource {
@Schema(description = "优化后的大板数据") @Schema(description = "优化后的大板数据")
@@ -791,7 +791,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
AssertUtils.notEmpty(plateDetailRespVOS, ORDER_PLATE_EMPTY); AssertUtils.notEmpty(plateDetailRespVOS, ORDER_PLATE_EMPTY);
// todo 数据结构改后,可以增加排单ID作为筛选,只查为 0 的 // todo 数据结构改后,可以增加排单ID作为筛选,只查为 0 的
List<OrderModelDO> orderModelDOS = getOrderModels(orderIds, orderGoodsIds); // List<OrderModelDO> orderModelDOS = getOrderModels(orderIds, orderGoodsIds);
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_MODEL_DATE_ERROR); AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_MODEL_DATE_ERROR);
@@ -799,7 +799,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
.orderList(orderDOS) .orderList(orderDOS)
.goodsList(goodsReqVOS) .goodsList(goodsReqVOS)
.plateList(plateDetailRespVOS) .plateList(plateDetailRespVOS)
.plateModels(orderModelDOS) // .plateModels(orderModelDOS)
.build(); .build();
} }
@@ -32,7 +32,6 @@ import com.cf.imes.module.plan.dal.mysql.orderImport.OrderImportTaskMapper;
import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper; import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.plan.enums.ErrorCodeConstants; import com.cf.imes.module.plan.enums.ErrorCodeConstants;
import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService; import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService;
import com.cf.imes.module.plan.service.order.OrderInputProcessor;
import com.cf.imes.module.plan.service.orderImport.factory.WebCadOrderImportFactory; import com.cf.imes.module.plan.service.orderImport.factory.WebCadOrderImportFactory;
import com.cf.imes.module.plan.service.orderImport.property.WebCadImportProperties; import com.cf.imes.module.plan.service.orderImport.property.WebCadImportProperties;
import com.cf.imes.module.system.api.systemconfig.SystemConfigApi; import com.cf.imes.module.system.api.systemconfig.SystemConfigApi;
@@ -89,9 +88,6 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
@Resource @Resource
private SnowflakeIdWorker3rd idWorker; private SnowflakeIdWorker3rd idWorker;
@Resource
private OrderInputProcessor orderInputProcessor;
@Resource @Resource
private CustomPlateNoGenerateService customPlateNoGenerateService; private CustomPlateNoGenerateService customPlateNoGenerateService;
@@ -164,7 +160,7 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
WebCadDataReqVO webCadDataReqVO = mapper.readValue(parser, WebCadDataReqVO.class); WebCadDataReqVO webCadDataReqVO = mapper.readValue(parser, WebCadDataReqVO.class);
WebCadOrderImportFactory webCadOrderImportFactory = new WebCadOrderImportFactory(organId, orderDO, snowFlakeGenerator, orderMapper, orderBodyMapper, plateMapper, WebCadOrderImportFactory webCadOrderImportFactory = new WebCadOrderImportFactory(organId, orderDO, snowFlakeGenerator, orderMapper, orderBodyMapper, plateMapper,
idWorker, orderInputProcessor, goodsMapper, customPlateNoGenerateService, systemConfigApi, webCadImportProperties.getCadImportPlateNumThreshold(), jdbcTemplate); idWorker, goodsMapper, customPlateNoGenerateService, systemConfigApi, webCadImportProperties.getCadImportPlateNumThreshold(), jdbcTemplate);
// cad图纸文件id // cad图纸文件id
cadViewFileId = webCadDataReqVO.getCadViewFileId(); cadViewFileId = webCadDataReqVO.getCadViewFileId();
@@ -17,7 +17,6 @@ import com.cf.imes.module.plan.dal.mysql.orderBody.OrderBodyMapper;
import com.cf.imes.module.plan.dal.mysql.orderImport.OrderImportTaskMapper; import com.cf.imes.module.plan.dal.mysql.orderImport.OrderImportTaskMapper;
import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper; import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService; import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService;
import com.cf.imes.module.plan.service.order.OrderInputProcessor;
import com.cf.imes.module.plan.service.orderImport.OrderImportTaskService; import com.cf.imes.module.plan.service.orderImport.OrderImportTaskService;
import com.cf.imes.module.plan.service.orderImport.factory.WebCadOrderImportAsyncFactory; import com.cf.imes.module.plan.service.orderImport.factory.WebCadOrderImportAsyncFactory;
import com.cf.imes.module.plan.service.orderImport.property.WebCadImportProperties; import com.cf.imes.module.plan.service.orderImport.property.WebCadImportProperties;
@@ -65,9 +64,6 @@ public class WebCadOrderImportConsumer {
@Resource @Resource
private SnowflakeIdWorker3rd idWorker; private SnowflakeIdWorker3rd idWorker;
@Resource
private OrderInputProcessor orderInputProcessor;
@Resource @Resource
private CustomPlateNoGenerateService customPlateNoGenerateService; private CustomPlateNoGenerateService customPlateNoGenerateService;
@@ -142,7 +138,7 @@ public class WebCadOrderImportConsumer {
log.info("====================【webcad异步拆单处理临时数据开始】===================="); log.info("====================【webcad异步拆单处理临时数据开始】====================");
WebCadOrderImportAsyncFactory webCadOrderImportAsyncFactory = WebCadOrderImportAsyncFactory webCadOrderImportAsyncFactory =
new WebCadOrderImportAsyncFactory(organId, orderMapper, snowFlakeGenerator, orderBodyMapper, plateMapper, idWorker, new WebCadOrderImportAsyncFactory(organId, orderMapper, snowFlakeGenerator, orderBodyMapper, plateMapper, idWorker,
orderImportTaskMapper, orderInputProcessor, goodsMapper, customPlateNoGenerateService, systemConfigApi, orderImportTaskDO.getCreator(), orderImportTaskMapper, goodsMapper, customPlateNoGenerateService, systemConfigApi, orderImportTaskDO.getCreator(),
cadImportPlateNumThreshold, jdbcTemplate); cadImportPlateNumThreshold, jdbcTemplate);
webCadOrderImportAsyncFactory.analyzeTempData(taskId, webCadImportProperties.getTempFilePath()); webCadOrderImportAsyncFactory.analyzeTempData(taskId, webCadImportProperties.getTempFilePath());
log.info("====================【webcad异步拆单处理临时数据结束】===================="); log.info("====================【webcad异步拆单处理临时数据结束】====================");
@@ -59,7 +59,6 @@ import com.cf.imes.module.plan.enums.ErrorCodeConstants;
import com.cf.imes.module.plan.enums.ordercomponent.OrderComponentProcessStatusEnum; import com.cf.imes.module.plan.enums.ordercomponent.OrderComponentProcessStatusEnum;
import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService; import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService;
import com.cf.imes.module.plan.service.customplateno.vo.CustomPlateNoGenerateConfigVO; import com.cf.imes.module.plan.service.customplateno.vo.CustomPlateNoGenerateConfigVO;
import com.cf.imes.module.plan.service.order.OrderInputProcessor;
import com.cf.imes.module.system.api.systemconfig.SystemConfigApi; import com.cf.imes.module.system.api.systemconfig.SystemConfigApi;
import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigRespDTO; import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigRespDTO;
import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigSealEdgeRespDTO; import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigSealEdgeRespDTO;
@@ -85,13 +84,11 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CompletableFuture;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_GET_ORG_SEALEDGE_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_GET_ORG_SEALEDGE_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORDER_PLATENUM_CHECK_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORDER_PLATENUM_CHECK_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORG_SEALEDGE_ANALYZE_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORG_SEALEDGE_ANALYZE_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_NOT_EXISTS_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_NOT_EXISTS_ERROR;
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL;
/** /**
* webcad异步导入订单工厂服务 * webcad异步导入订单工厂服务
@@ -118,8 +115,6 @@ public class WebCadOrderImportAsyncFactory {
private OrderImportTaskMapper orderImportTaskMapper; private OrderImportTaskMapper orderImportTaskMapper;
private OrderInputProcessor orderInputProcessor;
private SystemConfigApi systemConfigApi; private SystemConfigApi systemConfigApi;
private GoodsMapper goodsMapper; private GoodsMapper goodsMapper;
@@ -211,7 +206,6 @@ public class WebCadOrderImportAsyncFactory {
PlateMapper plateMapper, PlateMapper plateMapper,
SnowflakeIdWorker3rd idWorker, SnowflakeIdWorker3rd idWorker,
OrderImportTaskMapper orderImportTaskMapper, OrderImportTaskMapper orderImportTaskMapper,
OrderInputProcessor orderInputProcessor,
GoodsMapper goodsMapper, GoodsMapper goodsMapper,
CustomPlateNoGenerateService customPlateNoGenerateService, CustomPlateNoGenerateService customPlateNoGenerateService,
SystemConfigApi systemConfigApi, SystemConfigApi systemConfigApi,
@@ -225,7 +219,6 @@ public class WebCadOrderImportAsyncFactory {
this.plateMapper = plateMapper; this.plateMapper = plateMapper;
this.idWorker = idWorker; this.idWorker = idWorker;
this.orderImportTaskMapper = orderImportTaskMapper; this.orderImportTaskMapper = orderImportTaskMapper;
this.orderInputProcessor = orderInputProcessor;
this.goodsMapper = goodsMapper; this.goodsMapper = goodsMapper;
this.customPlateNoGenerateService = customPlateNoGenerateService; this.customPlateNoGenerateService = customPlateNoGenerateService;
this.systemConfigApi = systemConfigApi; this.systemConfigApi = systemConfigApi;
@@ -249,7 +242,6 @@ public class WebCadOrderImportAsyncFactory {
performPostProcessing(taskId); performPostProcessing(taskId);
} catch (Exception e) { } catch (Exception e) {
handleProcessingException(e);
throw e; throw e;
} finally { } finally {
clearAll(); clearAll();
@@ -340,17 +332,6 @@ public class WebCadOrderImportAsyncFactory {
customPlateNoGenerateService.updateCustomPlateNoGenerateConfig(plateNoGenerateConfigVO, orderDO); customPlateNoGenerateService.updateCustomPlateNoGenerateConfig(plateNoGenerateConfigVO, orderDO);
} }
/**
* 处理异常情况
*/
private void handleProcessingException(Exception e) {
if (esInsert) {
CompletableFuture.runAsync(() -> {
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PLATE_MODEL);
});
}
}
/** /**
* 获取组织封边条对应配置 * 获取组织封边条对应配置
*/ */
@@ -589,7 +570,6 @@ public class WebCadOrderImportAsyncFactory {
} }
reader.endArray(); reader.endArray();
orderPlateBatchInsertWithinThreshold(plateDOS, true); orderPlateBatchInsertWithinThreshold(plateDOS, true);
orderModelsBatchInsertWithinThreshold(true);
} }
/** /**
@@ -854,9 +834,7 @@ public class WebCadOrderImportAsyncFactory {
orderPlateBatchInsertWithinThreshold(plateDOS, false); orderPlateBatchInsertWithinThreshold(plateDOS, false);
// 创建es造型数据 // 创建es造型数据
createModel(plateDO, block, plateRemark); // createModel(plateDO, block, plateRemark);
// 批量插入造型数据
orderModelsBatchInsertWithinThreshold(false);
// 遍历加工组信息,生成对应的加工组和item // 遍历加工组信息,生成对应的加工组和item
analyzeBlockProcessGroup(orderBodyDO, block, plateId); analyzeBlockProcessGroup(orderBodyDO, block, plateId);
@@ -2305,23 +2283,6 @@ public class WebCadOrderImportAsyncFactory {
orderComponentDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER); orderComponentDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
} }
/**
* 每达到阈值就批量插入一次订单造型数据和压缩数据
*
* @param isLast 是否最后一次插入,不是就需要清理list
*/
private void orderModelsBatchInsertWithinThreshold(boolean isLast) {
// 达到批量的阈值就做一次插入
if (CollUtil.isNotEmpty(orderModelDOS) && (orderModelDOS.size() >= BATCH_THRESHOLD_NUMBER || isLast)) {
// 保存订单造型数据
orderInputProcessor.batchAsyncSaveModel(orderModelDOS);
if (!isLast) {
// 存储完成清理 list
orderModelDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
}
}
}
/** /**
* 每batchSize条拆分dataList * 每batchSize条拆分dataList
* *
@@ -54,7 +54,6 @@ import com.cf.imes.module.plan.enums.ErrorCodeConstants;
import com.cf.imes.module.plan.enums.ordercomponent.OrderComponentProcessStatusEnum; import com.cf.imes.module.plan.enums.ordercomponent.OrderComponentProcessStatusEnum;
import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService; import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService;
import com.cf.imes.module.plan.service.customplateno.vo.CustomPlateNoGenerateConfigVO; import com.cf.imes.module.plan.service.customplateno.vo.CustomPlateNoGenerateConfigVO;
import com.cf.imes.module.plan.service.order.OrderInputProcessor;
import com.cf.imes.module.system.api.systemconfig.SystemConfigApi; import com.cf.imes.module.system.api.systemconfig.SystemConfigApi;
import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigRespDTO; import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigRespDTO;
import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigSealEdgeRespDTO; import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigSealEdgeRespDTO;
@@ -74,14 +73,12 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_GET_ORG_SEALEDGE_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_GET_ORG_SEALEDGE_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORDER_PLATENUM_CHECK_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORDER_PLATENUM_CHECK_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORDER_PLATENUM_REACH_THRESHOLD_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORDER_PLATENUM_REACH_THRESHOLD_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORG_SEALEDGE_ANALYZE_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORG_SEALEDGE_ANALYZE_ERROR;
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL;
/** /**
* webcad导入订单工厂服务 * webcad导入订单工厂服务
@@ -106,8 +103,6 @@ public class WebCadOrderImportFactory {
private SnowflakeIdWorker3rd idWorker; private SnowflakeIdWorker3rd idWorker;
private OrderInputProcessor orderInputProcessor;
private SystemConfigApi systemConfigApi; private SystemConfigApi systemConfigApi;
private GoodsMapper goodsMapper; private GoodsMapper goodsMapper;
@@ -200,7 +195,6 @@ public class WebCadOrderImportFactory {
OrderBodyMapper orderBodyMapper, OrderBodyMapper orderBodyMapper,
PlateMapper plateMapper, PlateMapper plateMapper,
SnowflakeIdWorker3rd idWorker, SnowflakeIdWorker3rd idWorker,
OrderInputProcessor orderInputProcessor,
GoodsMapper goodsMapper, GoodsMapper goodsMapper,
CustomPlateNoGenerateService customPlateNoGenerateService, CustomPlateNoGenerateService customPlateNoGenerateService,
SystemConfigApi systemConfigApi, SystemConfigApi systemConfigApi,
@@ -214,7 +208,6 @@ public class WebCadOrderImportFactory {
this.orderBodyMapper = orderBodyMapper; this.orderBodyMapper = orderBodyMapper;
this.plateMapper = plateMapper; this.plateMapper = plateMapper;
this.idWorker = idWorker; this.idWorker = idWorker;
this.orderInputProcessor = orderInputProcessor;
this.goodsMapper = goodsMapper; this.goodsMapper = goodsMapper;
this.customPlateNoGenerateService = customPlateNoGenerateService; this.customPlateNoGenerateService = customPlateNoGenerateService;
this.systemConfigApi = systemConfigApi; this.systemConfigApi = systemConfigApi;
@@ -286,12 +279,6 @@ public class WebCadOrderImportFactory {
} }
} catch (Exception e) { } catch (Exception e) {
if (esInsert) {
CompletableFuture.runAsync(() -> {
// 数据库数据回滚,同步删除 ES 里当前批次的数据
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PLATE_MODEL);
});
}
throw e; throw e;
} finally { } finally {
// 清理数据 // 清理数据
@@ -622,8 +609,6 @@ public class WebCadOrderImportFactory {
} }
} }
orderPlateBatchInsertWithinThreshold(plateDOS, true); orderPlateBatchInsertWithinThreshold(plateDOS, true);
// 批量插入造型数据
orderModelsBatchInsertWithinThreshold(true);
} }
/** /**
@@ -792,9 +777,7 @@ public class WebCadOrderImportFactory {
orderPlateBatchInsertWithinThreshold(plateDOS, false); orderPlateBatchInsertWithinThreshold(plateDOS, false);
// 创建es造型数据 // 创建es造型数据
createModel(plateDO, block, plateRemark); // createModel(plateDO, block, plateRemark);
// 批量插入造型数据
orderModelsBatchInsertWithinThreshold(false);
// 遍历加工组信息,生成对应的加工组和item // 遍历加工组信息,生成对应的加工组和item
analyzeBlockProcessGroup(orderBodyDO, block, plateId); analyzeBlockProcessGroup(orderBodyDO, block, plateId);
@@ -2136,23 +2119,6 @@ public class WebCadOrderImportFactory {
orderComponentDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER); orderComponentDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
} }
/**
* 每达到阈值就批量插入一次订单造型数据和压缩数据
*
* @param isLast 是否最后一次插入,不是就需要清理list
*/
private void orderModelsBatchInsertWithinThreshold(boolean isLast) {
// 达到批量的阈值就做一次插入
if (CollUtil.isNotEmpty(orderModelDOS) && (orderModelDOS.size() >= BATCH_THRESHOLD_NUMBER || isLast)) {
// 保存订单造型数据
orderInputProcessor.batchAsyncSaveModel(orderModelDOS);
if (!isLast) {
// 存储完成清理 list
orderModelDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
}
}
}
/** /**
* 保存数据 * 保存数据
* orderBody、orderGroup * orderBody、orderGroup