mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 12:52:07 +08:00
1、xml导入订单修复可用;2、未排单订单分页支持pageSize=-1的查询全部;
This commit is contained in:
+12
-14
@@ -77,22 +77,20 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode CUSTOM_PLATENO_GENERATE_ORG_CUSTOM_PLATENO_SEQ_MODIFY_ERROR = new ErrorCode(1_003_030_004, "order.custom.plateno.generate.org.custom.plateno.seq.modify.error");
|
||||
|
||||
// ========== 订单导入 1_003_031 ==========
|
||||
public static final ErrorCode ORDER_IMPORT_TYPE_NOT_SUPPORT = new ErrorCode(1_003_031_001, "不支持的订单导入类型:{}");
|
||||
public static final ErrorCode ORDER_IMPORT_TYPE_NOT_SUPPORT = new ErrorCode(1_003_031_001, "不支持的订单导入类型:{0}");
|
||||
public static final ErrorCode ORDER_IMPORT_ORGAN_LOCK_ERROR = new ErrorCode(1_003_031_002, "组织下存在正在导入的订单,请稍后再试");
|
||||
public static final ErrorCode ORDER_IMPORT_FILE_ANALYZE_ERROR = new ErrorCode(1_003_031_003, "订单导入文件解析失败,请检查文件类型和格式");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_EMPTY = new ErrorCode(1_003_031_004, "订单信息【{}】不能为空");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_LENGTH_ERROR = new ErrorCode(1_003_031_005, "订单信息【{}】长度不能超过【{}】个字符");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_MOBILE_FORMAT_ERROR = new ErrorCode(1_003_031_006, "订单信息【{}】手机号格式错误");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_DATE_FORMAT_ERROR = new ErrorCode(1_003_031_007, "订单信息【{}】日期格式错误");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_NOT_EXISTS = new ErrorCode(1_003_031_008, "订单【{}】不存在");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_CUSTOMERNO_EXISTS = new ErrorCode(1_003_031_009, "{}【{}】已存在");
|
||||
public static final ErrorCode ORDER_IMPORT_DETAIL_FIELD_EMPTY = new ErrorCode(1_003_031_010, "导入校验异常:第{}行,导入明细【{}】不能为空");
|
||||
public static final ErrorCode ORDER_IMPORT_DETAIL_FIELD_LENGTH_ERROR = new ErrorCode(1_003_031_011, "导入校验异常:第{}行,导入明细【{}】长度不能超过【{}】个字符");
|
||||
public static final ErrorCode ORDER_IMPORT_DETAIL_VALID_ERROR = new ErrorCode(1_003_031_012, "导入校验异常:{}");
|
||||
public static final ErrorCode ORDER_IMPORT_GROUPCODE_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_013, "导入校验异常:板件{}下加工组编码{}不存在于加工组编码列表中");
|
||||
public static final ErrorCode ORDER_IMPORT_ROOMCODE_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_014, "导入校验异常:板件{}下房间编码{}不存在于房间编码列表中");
|
||||
public static final ErrorCode ORDER_IMPORT_BODYCODE_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_015, "导入校验异常:板件{}下柜体编码{}不存在于柜体编码列表中");
|
||||
public static final ErrorCode ORDER_IMPORT_PLATEGOODS_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_016, "导入校验异常:第{}行的板材不存在,请确保板材管理中存在对应商品编号或商品(名称+材质+颜色+厚度+品牌)组合的板材后导入");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_EMPTY = new ErrorCode(1_003_031_004, "订单信息【{0}】不能为空");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_LENGTH_ERROR = new ErrorCode(1_003_031_005, "订单信息【{0}】长度不能超过【{1}】个字符");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_MOBILE_FORMAT_ERROR = new ErrorCode(1_003_031_006, "订单信息【{0}】手机号格式错误");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_DATE_FORMAT_ERROR = new ErrorCode(1_003_031_007, "订单信息【{0}】日期格式错误");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_NOT_EXISTS = new ErrorCode(1_003_031_008, "订单【{0}】不存在");
|
||||
public static final ErrorCode ORDER_IMPORT_ORDER_CUSTOMERNO_EXISTS = new ErrorCode(1_003_031_009, "{0}【{1}】已存在");
|
||||
public static final ErrorCode ORDER_IMPORT_DETAIL_VALID_ERROR = new ErrorCode(1_003_031_012, "导入校验异常:{0}");
|
||||
public static final ErrorCode ORDER_IMPORT_GROUPCODE_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_013, "导入校验异常:板件{0}下加工组编码{1}不存在于加工组编码列表中");
|
||||
public static final ErrorCode ORDER_IMPORT_ROOMCODE_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_014, "导入校验异常:板件{0}下房间编码{1}不存在于房间编码列表中");
|
||||
public static final ErrorCode ORDER_IMPORT_BODYCODE_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_015, "导入校验异常:板件{0}下柜体编码{1}不存在于柜体编码列表中");
|
||||
public static final ErrorCode ORDER_IMPORT_PLATEGOODS_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_016, "导入校验异常:第{0}行的板材不存在,请确保板材管理中存在对应商品编号或商品(名称+材质+颜色+厚度+品牌)组合的板材后导入");
|
||||
|
||||
// ========== manage板材/配件 1_003_001_000 ==========
|
||||
public static final ErrorCode PARTS_NOT_EXISTS = new ErrorCode(1_003_001_000, "配件不存在");
|
||||
|
||||
+8
-2
@@ -81,6 +81,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.DATA_DATA_ERROR;
|
||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.cf.imes.framework.common.pojo.PageParam.PAGE_SIZE_NONE;
|
||||
import static com.cf.imes.framework.common.util.json.JsonUtils.parseArray;
|
||||
import static com.cf.imes.framework.redis.constants.RedisKeyConstants.ORDER_PLAN_OPTIMIZE_KEY;
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
@@ -571,12 +572,17 @@ public class PlanServiceImpl implements PlanService {
|
||||
.likeIfPresent(FIELD_ADDRESS, pageReqVO.getConsigneeAddress())
|
||||
.betweenIfPresent(FIELD_ORDER_DATE, LocalDateTimeUtils.generateTimeSection(pageReqVO.getCreateTime()))
|
||||
.eqIfPresent(FIELD_ORDER_TYPE, pageReqVO.getOrderType());
|
||||
PageDTO<OrderRespVOCopy> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||
|
||||
Integer pageSize = pageReqVO.getPageSize();
|
||||
PageDTO<OrderRespVOCopy> page = new PageDTO<>(pageReqVO.getPageNo(), pageSize);
|
||||
|
||||
// 查询满足未排单条件的顶级订单id
|
||||
IPage<Long> rootOrderIdList = planItemMapper.selectRootOrderIdList(page, queryWrapperX);
|
||||
long rootOrderIdListTotal = rootOrderIdList.getTotal();
|
||||
if (rootOrderIdListTotal == 0) {
|
||||
if (PAGE_SIZE_NONE != pageSize && rootOrderIdListTotal == 0) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
if (PAGE_SIZE_NONE == pageSize && rootOrderIdList.getRecords().isEmpty()) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -537,6 +537,7 @@ public class DefaultOrderImportXmlParserHandler {
|
||||
.createTime(LocalDateTime.now())
|
||||
.detail(JsonUtils.zipString(JSON.toJSONString(boxXmlVO)))
|
||||
.sort(sort++)
|
||||
.area(BigDecimal.ZERO)
|
||||
.build());
|
||||
}
|
||||
|
||||
@@ -1744,6 +1745,7 @@ public class DefaultOrderImportXmlParserHandler {
|
||||
.bodyName(boxName)
|
||||
.createTime(LocalDateTime.now())
|
||||
.sort(sort++)
|
||||
.area(BigDecimal.ZERO)
|
||||
.build());
|
||||
|
||||
roomBodyMap.put(roomBodyKey, RoomBoxXmlVO.builder()
|
||||
|
||||
+6
@@ -44,6 +44,12 @@ public class OrderDO extends BaseDO {
|
||||
* 父单号
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 根单号
|
||||
*/
|
||||
private Long rootId;
|
||||
|
||||
/**
|
||||
* 源订单号
|
||||
*/
|
||||
|
||||
+1
-1
@@ -100,5 +100,5 @@ public class OrderBodyDO extends BaseDO {
|
||||
/**
|
||||
* 成倍序号
|
||||
*/
|
||||
private int sort;
|
||||
private int multiSort;
|
||||
}
|
||||
-1
@@ -251,6 +251,5 @@ public class PlateDO extends BaseDO {
|
||||
/**
|
||||
* 造型数据
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String modelData;
|
||||
}
|
||||
+30
-20
@@ -28,12 +28,10 @@ import com.cf.imes.module.plan.dal.mysql.orderImport.OrderImportTaskMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.orderImport.OrderImportTempDataMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.orderItem.OrderItemMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.orderParts.OrderPartsMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.orderParts.PartsMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.plate.PlateGoodMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.rawgoods.RawGoodsMapper;
|
||||
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.factory.DefaultXmlOrderImportFactory;
|
||||
import com.rabbitmq.client.Channel;
|
||||
@@ -42,9 +40,9 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.amqp.support.AmqpHeaders;
|
||||
import org.springframework.messaging.handler.annotation.Header;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.transaction.support.TransactionTemplate;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
@@ -110,21 +108,17 @@ public class DefaultXmlOrderImportConsumer {
|
||||
@Resource
|
||||
private PlateGoodMapper plateGoodMapper;
|
||||
|
||||
@Resource
|
||||
private OrderInputProcessor orderInputProcessor;
|
||||
|
||||
@Resource
|
||||
private PartsMapper partsMapper;
|
||||
|
||||
@Resource
|
||||
private CustomPlateNoGenerateService customPlateNoGenerateService;
|
||||
|
||||
@Resource
|
||||
private ChenfengCacheProperties chenfengCacheProperties;
|
||||
|
||||
@Resource
|
||||
private TransactionTemplate transactionTemplate;
|
||||
|
||||
@RabbitListener(queues = RabbitMqConstants.ORDER_IMPORT_DEFAULT_XML_QUEUE)
|
||||
@DS("imes_prod")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void orderImport(String message, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) throws Exception {
|
||||
log.info("====================【订单默认xml导入收到消息:{}】====================", message);
|
||||
Long organId = null;
|
||||
@@ -153,16 +147,30 @@ public class DefaultXmlOrderImportConsumer {
|
||||
if (ObjectUtil.isNull(orderImportTaskDO)) {
|
||||
return;
|
||||
}
|
||||
// 创建订单
|
||||
OrderDO orderDO = createOrder(taskId);
|
||||
log.info("====================【订单默认xml导入处理临时数据开始】====================");
|
||||
// 创建工厂
|
||||
DefaultXmlOrderImportFactory defaultExcelOrderImportFactory = new DefaultXmlOrderImportFactory(taskId, orderDO, organId, orderImportTaskDO.getCreator(),
|
||||
snowFlakeGenerator, idWorker, orderImportTaskMapper, orderImportTempDataMapper, orderMapper, goodsMapper, rawGoodsMapper, orderPartsMapper,
|
||||
orderBodyMapper, orderGroupMapper, plateMapper, orderItemMapper, plateGoodMapper, orderInputProcessor, partsMapper, customPlateNoGenerateService);
|
||||
// 解析临时表数据
|
||||
defaultExcelOrderImportFactory.analyzeTempData();
|
||||
log.info("====================【订单默认xml导入处理临时数据结束】====================");
|
||||
|
||||
Long finalOrganId = organId;
|
||||
String creator = orderImportTaskDO.getCreator();
|
||||
transactionTemplate.execute(status -> {
|
||||
try {
|
||||
// 创建订单
|
||||
OrderDO orderDO = createOrder(taskId);
|
||||
log.info("====================【订单默认xml导入处理临时数据开始】====================");
|
||||
// 创建工厂
|
||||
DefaultXmlOrderImportFactory defaultExcelOrderImportFactory = new DefaultXmlOrderImportFactory(taskId, orderDO, finalOrganId, creator,
|
||||
snowFlakeGenerator, idWorker, orderImportTaskMapper, orderImportTempDataMapper, orderMapper, goodsMapper, rawGoodsMapper, orderPartsMapper,
|
||||
orderBodyMapper, orderGroupMapper, plateMapper, orderItemMapper, plateGoodMapper, customPlateNoGenerateService);
|
||||
// 解析临时表数据
|
||||
defaultExcelOrderImportFactory.analyzeTempData();
|
||||
log.info("====================【订单默认xml导入处理临时数据结束】====================");
|
||||
} catch (Exception e) {
|
||||
|
||||
status.setRollbackOnly();
|
||||
|
||||
throw e;
|
||||
}
|
||||
|
||||
return null;
|
||||
});
|
||||
} catch (Exception e) {
|
||||
log.error( ORDER_IMPORT_FAIL.getMsg(), e);
|
||||
orderImportTaskService.updateImportTaskFail(orderImportTaskDO, e);
|
||||
@@ -203,6 +211,8 @@ public class DefaultXmlOrderImportConsumer {
|
||||
OrderDO newOrder = JSON.parseObject(orderTempDetail, OrderDO.class);
|
||||
Long orderId = (Long) snowFlakeGenerator.nextId(null);
|
||||
newOrder.setId(orderId);
|
||||
// todo 后续可能有子单需求?目前只创建主单
|
||||
newOrder.setRootId(orderId);
|
||||
orderMapper.insert(newOrder);
|
||||
// 订单id更新到导入任务表
|
||||
orderImportTaskMapper.update(new LambdaUpdateWrapper<OrderImportTaskDO>()
|
||||
|
||||
+10
-88
@@ -19,7 +19,6 @@ import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd;
|
||||
import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
|
||||
import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper;
|
||||
import com.cf.imes.module.executor.enums.DictTypeConstants;
|
||||
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
||||
import com.cf.imes.module.executor.enums.OrderImportTmpDataTypeEnum;
|
||||
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
||||
import com.cf.imes.module.plan.controller.admin.orderimport.vo.OrderImportTempDataReqVO;
|
||||
@@ -68,7 +67,6 @@ import com.cf.imes.module.plan.dal.elasticsearch.IContourData;
|
||||
import com.cf.imes.module.plan.dal.elasticsearch.IOriginModelingData;
|
||||
import com.cf.imes.module.plan.dal.elasticsearch.ModelDetail;
|
||||
import com.cf.imes.module.plan.dal.elasticsearch.OffSetList;
|
||||
import com.cf.imes.module.plan.dal.elasticsearch.OrderPartsRemark;
|
||||
import com.cf.imes.module.plan.dal.elasticsearch.PartsInfo;
|
||||
import com.cf.imes.module.plan.dal.elasticsearch.Point;
|
||||
import com.cf.imes.module.plan.dal.elasticsearch.PointDetail;
|
||||
@@ -81,14 +79,12 @@ import com.cf.imes.module.plan.dal.mysql.orderImport.OrderImportTaskMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.orderImport.OrderImportTempDataMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.orderItem.OrderItemMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.orderParts.OrderPartsMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.orderParts.PartsMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.plate.PlateGoodMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.rawgoods.RawGoodsMapper;
|
||||
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.vo.CustomPlateNoGenerateConfigVO;
|
||||
import com.cf.imes.module.plan.service.order.OrderInputProcessor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.session.ResultContext;
|
||||
import org.apache.ibatis.session.ResultHandler;
|
||||
@@ -106,8 +102,6 @@ import java.util.stream.Collectors;
|
||||
|
||||
import static com.cf.imes.module.executor.enums.OrderImportConstants.NOT_ASSIGNED;
|
||||
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.ORDER_IMPORT_PLATE_GOODS_NOT_EXISTS;
|
||||
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PARTS_REMARK_MODEL;
|
||||
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL;
|
||||
|
||||
/**
|
||||
* 默认xml导入订单工厂服务
|
||||
@@ -146,9 +140,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
private List<PlateDO> plateDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
private List<OrderItemDO> orderItemDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
private List<PlateGoodDO> plateGoodDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
private List<OrderModelDO> orderModelDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
private List<OrderPartsRemark> orderPartsRemarks = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
// private List<PartsDO> partsDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
|
||||
private static final String EMPTY_STRING = new String();
|
||||
private static final BigDecimal BIG_ZERO = new BigDecimal(0);
|
||||
@@ -194,10 +185,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
|
||||
private PlateGoodMapper plateGoodMapper;
|
||||
|
||||
private OrderInputProcessor orderInputProcessor;
|
||||
|
||||
private PartsMapper partsMapper;
|
||||
|
||||
private String operatorName;
|
||||
|
||||
private CustomPlateNoGenerateService customPlateNoGenerateService;
|
||||
@@ -219,8 +206,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
PlateMapper plateMapper,
|
||||
OrderItemMapper orderItemMapper,
|
||||
PlateGoodMapper plateGoodMapper,
|
||||
OrderInputProcessor orderInputProcessor,
|
||||
PartsMapper partsMapper,
|
||||
CustomPlateNoGenerateService customPlateNoGenerateService) {
|
||||
this.taskId = taskId;
|
||||
this.orderDO = orderDO;
|
||||
@@ -240,8 +225,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
this.plateMapper = plateMapper;
|
||||
this.orderItemMapper = orderItemMapper;
|
||||
this.plateGoodMapper = plateGoodMapper;
|
||||
this.orderInputProcessor = orderInputProcessor;
|
||||
this.partsMapper = partsMapper;
|
||||
this.customPlateNoGenerateService = customPlateNoGenerateService;
|
||||
batchId = (Long) snowFlakeGenerator.nextId(null);
|
||||
}
|
||||
@@ -299,9 +282,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
// 完成所有流程后更新任务为导入成功
|
||||
updateTaskSuccess();
|
||||
} catch (Exception e) {
|
||||
// 数据库数据回滚,此时删除 ES 里的数据
|
||||
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PLATE_MODEL);
|
||||
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PARTS_REMARK_MODEL);
|
||||
throw e;
|
||||
} finally {
|
||||
clearAll();
|
||||
@@ -320,6 +300,7 @@ public class DefaultXmlOrderImportFactory {
|
||||
String bodyCode = bodyDO.getBodyCode();
|
||||
|
||||
Map<String, OrderImportTempDataDO> bodyTempMap = roomBodyMap.get(roomCode);
|
||||
int bodySort = 1;
|
||||
if (MapUtil.isNotEmpty(bodyTempMap)) {
|
||||
OrderImportTempDataDO bodyTempData = bodyTempMap.get(bodyCode);
|
||||
if (ObjectUtil.isNotNull(bodyTempData)) {
|
||||
@@ -329,10 +310,13 @@ public class DefaultXmlOrderImportFactory {
|
||||
// 有房间没柜体,取房间id,后续操作增加房间下柜体
|
||||
Map.Entry<String, OrderImportTempDataDO> anyBody = bodyTempMap.entrySet().iterator().next();
|
||||
bodyDO.setInnerRoomId(anyBody.getValue().getInnerRoomId());
|
||||
bodySort = bodyTempMap.size() + 1;
|
||||
}
|
||||
|
||||
// 创建order_body
|
||||
OrderBodyDO orderBodyDO = createOrderBodyDO(bodyDO);
|
||||
// 设置序号
|
||||
orderBodyDO.setMultiSort(bodySort);
|
||||
orderBodyDOS.add(orderBodyDO);
|
||||
// 批量插入orderGroup
|
||||
orderInfoBatchInsertWithinThreshold(orderBodyMapper, orderBodyDOS, false);
|
||||
@@ -511,6 +495,7 @@ public class DefaultXmlOrderImportFactory {
|
||||
bodyBasePoint = roomBodyTempDataDO.getBodyPosition();
|
||||
} else {
|
||||
roomBodyTempDataDO.setPlateNum(roomBodyTempDataDO.getPlateNum() + 1);
|
||||
roomBodyTempDataDO.setArea(roomBodyTempDataDO.getArea().add(area));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -666,20 +651,18 @@ public class DefaultXmlOrderImportFactory {
|
||||
orderModelDO.setOrganId(organId);
|
||||
orderModelDO.setCreator(operatorName);
|
||||
orderModelDO.setUpdater(operatorName);
|
||||
orderModelDOS.add(orderModelDO);
|
||||
|
||||
// 创建造型数据
|
||||
plateDO.setModelData(JsonUtils.zipString(JsonUtils.toJsonString(orderModelDO)));
|
||||
|
||||
// 批量插入order_plate
|
||||
plateDOS.add(plateDO);
|
||||
orderInfoBatchInsertWithinThreshold(plateMapper, plateDOS, false);
|
||||
// 批量插入造型数据
|
||||
orderModelsBatchInsertWithinThreshold(false);
|
||||
}
|
||||
}
|
||||
);
|
||||
//最后批量插入一次,避免最后一页小于BATCH_THRESHOLD_NUMBER漏插入
|
||||
orderInfoBatchInsertWithinThreshold(plateMapper, plateDOS, true);
|
||||
// 批量插入造型数据
|
||||
orderModelsBatchInsertWithinThreshold(true);
|
||||
|
||||
// 所有自定义板编号生成完成后更新配置到订单
|
||||
customPlateNoGenerateService.updateCustomPlateNoGenerateConfig(plateNoGenerateConfigVO, orderDO);
|
||||
@@ -1271,8 +1254,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
// 最后批量插入一次,避免最后一页小于BATCH_THRESHOLD_NUMBER漏插入
|
||||
orderInfoBatchInsertWithinThreshold(orderPartsMapper, orderPartsDOS, true);
|
||||
orderInfoBatchInsertWithinThreshold(orderItemMapper, orderItemDOS, true);
|
||||
// 批量插入配件备注
|
||||
orderPartsRemarksBatchInsertWithinThreshold(true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1392,14 +1373,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
// 缓存配件
|
||||
orderPartsDOMap.put(itemCode, orderPartsDO);
|
||||
orderInfoBatchInsertWithinThreshold(orderPartsMapper, orderPartsDOS, false);
|
||||
// 批量插入配件备注
|
||||
orderPartsRemarks.add(OrderPartsRemark.builder()
|
||||
.partsId(partId)
|
||||
.batchId(batchId)
|
||||
.orderId(orderId)
|
||||
.remark(partRemarkXmlVOList.toString())
|
||||
.build());
|
||||
orderPartsRemarksBatchInsertWithinThreshold(false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1519,13 +1492,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
// 缓存配件
|
||||
orderPartsDOMap.put(itemCode, orderPartsDO);
|
||||
orderInfoBatchInsertWithinThreshold(orderPartsMapper, orderPartsDOS, false);
|
||||
// 批量插入配件备注
|
||||
orderPartsRemarks.add(OrderPartsRemark.builder()
|
||||
.partsId(partId)
|
||||
.orderId(orderId)
|
||||
.remark(partRemarkXmlVOList.toString())
|
||||
.build());
|
||||
orderPartsRemarksBatchInsertWithinThreshold(false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1644,14 +1610,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
// 缓存配件
|
||||
orderPartsDOMap.put(itemCode, orderPartsDO);
|
||||
orderInfoBatchInsertWithinThreshold(orderPartsMapper, orderPartsDOS, false);
|
||||
// 批量插入配件备注
|
||||
orderPartsRemarks.add(OrderPartsRemark.builder()
|
||||
.partsId(partId)
|
||||
.batchId(batchId)
|
||||
.orderId(orderId)
|
||||
.remark(partRemarkXmlVOList.toString())
|
||||
.build());
|
||||
orderPartsRemarksBatchInsertWithinThreshold(false);
|
||||
}
|
||||
|
||||
private void writeBackToOrders() {
|
||||
@@ -1730,7 +1688,7 @@ public class DefaultXmlOrderImportFactory {
|
||||
.width(NumberUtil.parseDouble(roomBoxXmlVO.getWidth()))
|
||||
.height(NumberUtil.parseDouble(roomBoxXmlVO.getHeight()))
|
||||
.depth(NumberUtil.parseDouble(roomBoxXmlVO.getLength()))
|
||||
.multiNum(0)
|
||||
.multiNum(1)
|
||||
.unregularNum(0)
|
||||
.filename("无")
|
||||
.remark("无")
|
||||
@@ -1802,39 +1760,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 每达到阈值就批量插入一次订单造型数据和压缩数据
|
||||
*
|
||||
* @param isLast 是否最后一次插入,不是就需要清理list
|
||||
*/
|
||||
private void orderModelsBatchInsertWithinThreshold(boolean isLast) {
|
||||
// 达到批量的阈值就做一次插入
|
||||
if (CollUtil.isNotEmpty(orderModelDOS) && (orderModelDOS.size() >= BATCH_THRESHOLD_NUMBER || isLast)) {
|
||||
// 保存订单造型数据
|
||||
orderInputProcessor.batchSaveModel(orderModelDOS);
|
||||
if (!isLast) {
|
||||
// 存储完成清理 list
|
||||
orderModelDOS.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 每达到阈值就批量插入一次订单造型数据和压缩数据
|
||||
*
|
||||
* @param isLast 是否最后一次插入,不是就需要清理list
|
||||
*/
|
||||
private void orderPartsRemarksBatchInsertWithinThreshold(boolean isLast) {
|
||||
// 达到批量的阈值就做一次插入
|
||||
if (CollUtil.isNotEmpty(orderPartsRemarks) && (orderPartsRemarks.size() >= BATCH_THRESHOLD_NUMBER || isLast)) {
|
||||
orderInputProcessor.batchSaveOrderPartsModel(orderPartsRemarks);
|
||||
if (!isLast) {
|
||||
// 存储完成清理 list
|
||||
orderPartsRemarks = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 长度面积数值按单位转换
|
||||
*
|
||||
@@ -1930,9 +1855,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
plateDOS.clear();
|
||||
orderItemDOS.clear();
|
||||
plateGoodDOS.clear();
|
||||
orderModelDOS.clear();
|
||||
orderPartsRemarks.clear();
|
||||
// partsDOS.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1964,6 +1886,6 @@ public class DefaultXmlOrderImportFactory {
|
||||
* 更新为导入成功
|
||||
*/
|
||||
private void updateTaskSuccess() {
|
||||
orderImportTaskMapper.update(new LambdaUpdateWrapper<OrderImportTaskDO>().eq(OrderImportTaskDO::getId, taskId).set(OrderImportTaskDO::getImportStatus, OrderImportStatusEnum.IMPORT_SUCCESS.getStatus()));
|
||||
// orderImportTaskMapper.update(new LambdaUpdateWrapper<OrderImportTaskDO>().eq(OrderImportTaskDO::getId, taskId).set(OrderImportTaskDO::getImportStatus, OrderImportStatusEnum.IMPORT_SUCCESS.getStatus()));
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -709,7 +709,7 @@ public class WebCadOrderImportAsyncFactory {
|
||||
Long bodyId = (Long) snowFlakeGenerator.nextId(null);
|
||||
orderBodyDO = OrderBodyDO.builder().id(bodyId).orderId(orderId).organId(organId)
|
||||
.roomId(roomId).roomName(roomName).name(boxName).width(0.0).height(0.0)
|
||||
.depth(0.0).multiNum(count).sort(i+1).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
.depth(0.0).multiNum(count).multiSort(i+1).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
orderBodyDO.setCreator(operatorName);
|
||||
orderBodyDO.setUpdater(operatorName);
|
||||
orderBodyDO.setCreateTime(now);
|
||||
@@ -1478,7 +1478,7 @@ public class WebCadOrderImportAsyncFactory {
|
||||
Long bodyId = (Long) snowFlakeGenerator.nextId(null);
|
||||
orderBodyDO = OrderBodyDO.builder().id(bodyId).orderId(orderId).organId(organId)
|
||||
.roomId(roomId).roomName(roomName).name(bodyName).width(0.0).height(0.0)
|
||||
.depth(0.0).multiNum(1).sort(1).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
.depth(0.0).multiNum(1).multiSort(1).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
orderBodyDO.setCreator(operatorName);
|
||||
orderBodyDO.setUpdater(operatorName);
|
||||
orderBodyDO.setCreateTime(now);
|
||||
@@ -2667,7 +2667,7 @@ public class WebCadOrderImportAsyncFactory {
|
||||
ps.setString(18, orderBodyDO.getCreator());
|
||||
ps.setString(19, orderBodyDO.getUpdater());
|
||||
ps.setLong(20, cadViewFileId);
|
||||
ps.setInt(21, orderBodyDO.getSort());
|
||||
ps.setInt(21, orderBodyDO.getMultiSort());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-3
@@ -893,7 +893,7 @@ public class WebCadOrderImportFactory {
|
||||
Long bodyId = (Long) snowFlakeGenerator.nextId(null);
|
||||
OrderBodyDO orderBodyDO = OrderBodyDO.builder().id(bodyId).orderId(orderId).organId(organId)
|
||||
.roomId(roomId).roomName(roomName).name(boxName).width(0.0).height(0.0)
|
||||
.depth(0.0).multiNum(count).sort(i + 1).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
.depth(0.0).multiNum(count).multiSort(i + 1).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
orderBodyDO.setCreator(operatorName);
|
||||
orderBodyDO.setUpdater(operatorName);
|
||||
orderBodyDO.setCreateTime(now);
|
||||
@@ -1682,7 +1682,7 @@ public class WebCadOrderImportFactory {
|
||||
Long bodyId = (Long) snowFlakeGenerator.nextId(null);
|
||||
orderBodyDO = OrderBodyDO.builder().id(bodyId).orderId(orderId).organId(organId)
|
||||
.roomId(roomId).roomName(roomName).name(bodyName).width(0.0).height(0.0)
|
||||
.depth(0.0).multiNum(1).sort(1).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
.depth(0.0).multiNum(1).multiSort(1).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
orderBodyDO.setCreator(operatorName);
|
||||
orderBodyDO.setUpdater(operatorName);
|
||||
orderBodyDO.setCreateTime(now);
|
||||
@@ -2443,7 +2443,7 @@ public class WebCadOrderImportFactory {
|
||||
ps.setString(18, orderBodyDO.getCreator());
|
||||
ps.setString(19, orderBodyDO.getUpdater());
|
||||
ps.setLong(20, cadViewFileId);
|
||||
ps.setInt(21, orderBodyDO.getSort());
|
||||
ps.setInt(21, orderBodyDO.getMultiSort());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user