From d3865247e3e89cb26419d68248fd76edec62b3b1 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 29 Jul 2026 15:24:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B4=E7=9A=AE=E6=8E=92=E5=8D=95=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../veneer/VeneerDecomposeServiceImpl.java | 28 +++++++++++++++++++ .../service/veneer/VeneerPlanServiceImpl.java | 24 ++++++++++++++-- .../service/veneer/VeneerServiceImpl.java | 13 +++++++++ 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerDecomposeServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerDecomposeServiceImpl.java index e89d7766c..0491ef46c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerDecomposeServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerDecomposeServiceImpl.java @@ -11,6 +11,8 @@ import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.util.date.LocalDateTimeUtils; import com.cf.imes.framework.common.util.json.JsonUtils; +import com.cf.imes.framework.security.core.LoginUser; +import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerDecomposeCreateReqVO; import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerDecomposeGoodsPageReqVO; import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerDecomposeGoodsRespVO; @@ -39,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -46,6 +49,7 @@ import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import static com.cf.imes.framework.common.pojo.PageParam.PAGE_SIZE_NONE; @@ -293,6 +297,8 @@ public class VeneerDecomposeServiceImpl implements VeneerDecomposeService { // 从贴皮库加载 A/B 面贴皮,并将贴皮属性以快照形式写入板件贴皮表。 Map sourceVeneerMap = loadSourceVeneers(req); List plateVeneers = new ArrayList<>(); + LoginUser loginUser = Objects.requireNonNull(SecurityFrameworkUtils.getLoginUser()); + LocalDateTime createTime = LocalDateTime.now(); for (PlateDO plate : plates) { if (req.getAVeneerId() != null) { plateVeneers.add(buildPlateVeneer( @@ -305,6 +311,11 @@ public class VeneerDecomposeServiceImpl implements VeneerDecomposeService { VeneerSideEnum.B, req.getOuterMargin())); } } + // BaseBatchMapper 会显式写入 BaseDO 字段,数据库默认值不会对这些列生效。 + for (OrderPlateVeneerDO plateVeneer : plateVeneers) { + initializeBatchInsertFields( + plateVeneer, createTime, loginUser.getNickname()); + } // 原板状态分批更新;租户插件追加 organ_id 后由 MyCat 按组织路由。 List plateIds = plates.stream().map(PlateDO::getId).toList(); @@ -331,6 +342,23 @@ public class VeneerDecomposeServiceImpl implements VeneerDecomposeService { refreshDecomposedPlateCount(affectedOrderIds, affectedOrderGoodsIds); } + /** + * 初始化板件贴皮批量新增所需的公共审计字段。 + * + * @param plateVeneer 待新增的板件贴皮 + * @param createTime 创建时间 + * @param operator 当前操作人 + */ + private void initializeBatchInsertFields(OrderPlateVeneerDO plateVeneer, + LocalDateTime createTime, + String operator) { + plateVeneer.setCreateTime(createTime); + plateVeneer.setUpdateTime(createTime); + plateVeneer.setCreator(operator); + plateVeneer.setUpdater(operator); + plateVeneer.setDeleted(false); + } + /** * 根据原板件当前分解状态重新统计订单和订单板材的已分解板件数量。 * diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanServiceImpl.java index 125de4136..fa87f928e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanServiceImpl.java @@ -196,7 +196,7 @@ public class VeneerPlanServiceImpl implements VeneerPlanService { } } - plans.add(OrderVeneerPlanDO.builder() + OrderVeneerPlanDO plan = OrderVeneerPlanDO.builder() .id(planId) .organId(loginUser.getOrganId()) .status(VeneerPlanStatusEnum.NOCUTTING.getStatus()) @@ -209,7 +209,10 @@ public class VeneerPlanServiceImpl implements VeneerPlanService { .veneerArea(calculateVeneerArea(group)) .operator(loginUser.getNickname()) .version(0) - .build()); + .build(); + // BaseBatchMapper 会显式写入 BaseDO 字段,需在批量插入前主动初始化。 + initializeBatchInsertFields(plan, planTime, loginUser.getNickname()); + plans.add(plan); } // 使用多值 INSERT 分批写入,并校验每批实际插入数量。 @@ -235,6 +238,23 @@ public class VeneerPlanServiceImpl implements VeneerPlanService { refreshPlannedVeneerPlateCount(affectedOrderIds, affectedOrderGoodsIds); } + /** + * 初始化贴皮排单批量新增所需的公共审计字段。 + * + * @param plan 待新增的贴皮排单 + * @param createTime 创建时间 + * @param operator 当前操作人 + */ + private void initializeBatchInsertFields(OrderVeneerPlanDO plan, + LocalDateTime createTime, + String operator) { + plan.setCreateTime(createTime); + plan.setUpdateTime(createTime); + plan.setCreator(operator); + plan.setUpdater(operator); + plan.setDeleted(false); + } + @Override @Transactional(rollbackFor = Exception.class) public void updatePlan(VeneerPlanUpdateReqVO req) { diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerServiceImpl.java index 87173b43b..b9cd8b371 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerServiceImpl.java @@ -217,6 +217,19 @@ public class VeneerServiceImpl implements VeneerService { @Override public void batchInsert(List list) { + LocalDateTime createTime = LocalDateTime.now(); + // BaseBatchMapper 不触发逐实体自动填充,批量新增前补齐非空公共字段。 + for (VeneerDO veneer : list) { + if (veneer.getCreateTime() == null) { + veneer.setCreateTime(createTime); + } + if (veneer.getUpdateTime() == null) { + veneer.setUpdateTime(createTime); + } + if (veneer.getDeleted() == null) { + veneer.setDeleted(false); + } + } veneerBatchMapper.insertBatchSomeColumn(list); }