mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 12:52:07 +08:00
贴皮相关批量插入改真实批量插入
This commit is contained in:
+1
@@ -210,6 +210,7 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode VENEER_PLAN_PLATE_RECORD_REQUIRED = new ErrorCode(1_003_009_048, "veneer.plan.plate.record.required");
|
||||
public static final ErrorCode VENEER_PLAN_PLATE_SOURCE_MISMATCH = new ErrorCode(1_003_009_049, "veneer.plan.plate.source.mismatch");
|
||||
public static final ErrorCode VENEER_PLAN_PLATE_STATUS_CHANGED = new ErrorCode(1_003_009_050, "veneer.plan.plate.status.changed");
|
||||
public static final ErrorCode VENEER_DECOMPOSE_RECORD_INSERT_FAILED = new ErrorCode(1_003_009_051, "veneer.decompose.record.insert.failed");
|
||||
|
||||
//=========== 部件管理 1-003-010-000 ============
|
||||
public static final ErrorCode ORDER_COMPONENT_NOT_EXIST = new ErrorCode(1_003_010_000, "order.component.not.exist");
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.veneer;
|
||||
|
||||
import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper;
|
||||
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderPlateVeneerDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 订单板件贴皮记录批量 Mapper。
|
||||
*
|
||||
* <p>使用单条 {@code INSERT ... VALUES (...), (...)} SQL 批量写入。</p>
|
||||
*/
|
||||
@Mapper
|
||||
public interface OrderPlateVeneerBatchMapper extends BaseBatchMapper<OrderPlateVeneerDO> {
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.veneer;
|
||||
|
||||
import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper;
|
||||
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderVeneerPlanDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 贴皮排单批量 Mapper。
|
||||
*
|
||||
* <p>使用单条 {@code INSERT ... VALUES (...), (...)} SQL 批量写入。</p>
|
||||
*/
|
||||
@Mapper
|
||||
public interface OrderVeneerPlanBatchMapper extends BaseBatchMapper<OrderVeneerPlanDO> {
|
||||
}
|
||||
+7
-3
@@ -28,7 +28,7 @@ import com.cf.imes.module.executor.dal.dataobject.veneer.VeneerDecomposedPlateCo
|
||||
import com.cf.imes.module.executor.dal.dataobject.veneer.VeneerDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.veneer.OrderPlateVeneerMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.veneer.OrderPlateVeneerBatchMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.veneer.VeneerDecomposeMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.veneer.VeneerMapper;
|
||||
import com.cf.imes.module.executor.enums.VeneerPlateSurfaceEnum;
|
||||
@@ -51,6 +51,7 @@ import static com.cf.imes.framework.common.pojo.PageParam.PAGE_SIZE_NONE;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.GOODS_PLATE_UPDATE_CONCURRENCY_ERROR;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_PLATE_UPDATE_CONCURRENCY_ERROR;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_DECOMPOSE_PLATE_STATUS_CHANGED;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_DECOMPOSE_RECORD_INSERT_FAILED;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_DECOMPOSE_SCOPE_REQUIRED;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_DECOMPOSE_SIDE_REQUIRED;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.VENEER_NOT_EXIST;
|
||||
@@ -75,7 +76,7 @@ public class VeneerDecomposeServiceImpl implements VeneerDecomposeService {
|
||||
private VeneerDecomposeMapper veneerDecomposeMapper;
|
||||
|
||||
@Resource
|
||||
private OrderPlateVeneerMapper orderPlateVeneerMapper;
|
||||
private OrderPlateVeneerBatchMapper orderPlateVeneerBatchMapper;
|
||||
|
||||
@Resource
|
||||
private VeneerMapper veneerMapper;
|
||||
@@ -276,7 +277,10 @@ public class VeneerDecomposeServiceImpl implements VeneerDecomposeService {
|
||||
// A/B 贴皮记录分批插入,控制单条 INSERT 的参数数量和报文大小。
|
||||
for (List<OrderPlateVeneerDO> plateVeneerBatch
|
||||
: CollUtil.split(plateVeneers, DECOMPOSE_BATCH_SIZE)) {
|
||||
orderPlateVeneerMapper.insertBatch(plateVeneerBatch);
|
||||
int inserted = orderPlateVeneerBatchMapper.insertBatchSomeColumn(plateVeneerBatch);
|
||||
if (inserted != plateVeneerBatch.size()) {
|
||||
throw new ServiceException(VENEER_DECOMPOSE_RECORD_INSERT_FAILED);
|
||||
}
|
||||
}
|
||||
|
||||
// 以 order_plate 当前状态重新统计,不使用本次请求数量做增量计算。
|
||||
|
||||
+10
-1
@@ -32,6 +32,7 @@ import com.cf.imes.module.executor.dal.dataobject.veneer.VeneerPlannedPlateCount
|
||||
import com.cf.imes.module.executor.dal.dataobject.veneer.VeneerPlanStatisticsDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.veneer.OrderVeneerPlanBatchMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.veneer.VeneerPlanMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.veneer.VeneerMapper;
|
||||
import com.cf.imes.module.executor.enums.VeneerPlanStatusEnum;
|
||||
@@ -130,6 +131,9 @@ public class VeneerPlanServiceImpl implements VeneerPlanService {
|
||||
@Resource
|
||||
private VeneerPlanMapper veneerPlanMapper;
|
||||
|
||||
@Resource
|
||||
private OrderVeneerPlanBatchMapper orderVeneerPlanBatchMapper;
|
||||
|
||||
@Resource
|
||||
private IdentifierGenerator identifierGenerator;
|
||||
|
||||
@@ -211,9 +215,14 @@ public class VeneerPlanServiceImpl implements VeneerPlanService {
|
||||
.build());
|
||||
}
|
||||
|
||||
if (Boolean.FALSE.equals(veneerPlanMapper.insertBatch(plans, PLAN_INSERT_BATCH_SIZE))) {
|
||||
// 使用多值 INSERT 分批写入,并校验每批实际插入数量。
|
||||
for (List<OrderVeneerPlanDO> planBatch
|
||||
: CollUtil.split(plans, PLAN_INSERT_BATCH_SIZE)) {
|
||||
int inserted = orderVeneerPlanBatchMapper.insertBatchSomeColumn(planBatch);
|
||||
if (inserted != planBatch.size()) {
|
||||
throw new ServiceException(VENEER_PLAN_CREATE_FAILED);
|
||||
}
|
||||
}
|
||||
|
||||
// 排单完成后以数据库当前状态重新统计,避免使用本次请求数量增量更新导致计数漂移。
|
||||
List<Long> affectedOrderIds = veneers.stream()
|
||||
|
||||
+1
@@ -73,6 +73,7 @@ veneer.not.exist=貼皮不存在
|
||||
veneer.decompose.scope.required=訂單ID列表和板材商品編碼不能同時為空
|
||||
veneer.decompose.side.required=A面和B面貼皮至少選擇一個
|
||||
veneer.decompose.plate.status.changed=板件分解狀態已變更,請重新整理後再試
|
||||
veneer.decompose.record.insert.failed=貼皮分解記錄生成失敗,請重新整理後再試
|
||||
veneer.decompose.plate.no.required=板件編號不能為空
|
||||
veneer.decompose.outer.margin.min=外擴餘量不能小於0
|
||||
veneer.reselect.record.required=請選擇需要重選貼皮的資料
|
||||
|
||||
+1
@@ -73,6 +73,7 @@ veneer.not.exist=veneer not exist
|
||||
veneer.decompose.scope.required=Order ID list and goods code cannot both be empty
|
||||
veneer.decompose.side.required=At least one veneer must be selected for side A or B
|
||||
veneer.decompose.plate.status.changed=Plate decomposition status has changed. Please refresh and retry
|
||||
veneer.decompose.record.insert.failed=Failed to create veneer decomposition records. Please refresh and retry
|
||||
veneer.decompose.plate.no.required=Plate numbers cannot be empty
|
||||
veneer.decompose.outer.margin.min=Outer margin cannot be less than 0
|
||||
veneer.reselect.record.required=Please select records for veneer reselection
|
||||
|
||||
+1
@@ -73,6 +73,7 @@ veneer.not.exist=贴皮不存在
|
||||
veneer.decompose.scope.required=订单ID列表和板材商品编码不能同时为空
|
||||
veneer.decompose.side.required=A面和B面贴皮至少选择一个
|
||||
veneer.decompose.plate.status.changed=板件分解状态已变更,请刷新后重试
|
||||
veneer.decompose.record.insert.failed=贴皮分解记录生成失败,请刷新后重试
|
||||
veneer.decompose.plate.no.required=板件编号不能为空
|
||||
veneer.decompose.outer.margin.min=外扩余量不能小于0
|
||||
veneer.reselect.record.required=请选择需要重选贴皮的数据
|
||||
|
||||
Reference in New Issue
Block a user