From 27030d7ceba88410219f41f3029e3c433491ae29 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Fri, 5 Jun 2026 10:05:19 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/service/impl/WorkOrderServiceImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index bdb6f972b..c947755ad 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -496,8 +496,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl oldWorkPlanList = workPlanService.list(Wrappers.lambdaQuery().eq(WorkPlanEntity::getWoId,oldWorkOrder.getId()).orderByAsc(WorkPlanEntity::getOrders)); - List ppsIds = oldWorkPlanList.stream().map(WorkPlanEntity::getPpsId).collect(Collectors.toList()); - craftList = yieldOrderCraftService.list(Wrappers.lambdaQuery().eq(YieldOrderCraftEntity::getYoId, order.getId()).ne(YieldOrderCraftEntity::getCaId, 27).notIn(YieldOrderCraftEntity::getPpsId,ppsIds).orderByAsc(YieldOrderCraftEntity::getProcessNo)); + if(CollectionUtils.isNotEmpty(oldWorkPlanList)){ + List ppsIds = oldWorkPlanList.stream().map(WorkPlanEntity::getPpsId).collect(Collectors.toList()); + craftList = yieldOrderCraftService.list(Wrappers.lambdaQuery().eq(YieldOrderCraftEntity::getYoId, order.getId()).ne(YieldOrderCraftEntity::getCaId, 27).notIn(YieldOrderCraftEntity::getPpsId,ppsIds).orderByAsc(YieldOrderCraftEntity::getProcessNo)); + } } //过滤非外协工序 List craftList1 = craftList.stream().filter(item -> item.getIsOutsource() == false).collect(Collectors.toList()); From 90803bb7f64850360089a23123e6608717c5b3b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Fri, 5 Jun 2026 10:35:06 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=86=E6=B4=BE?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/order/mapper/YieldOrderDailyAssignMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderDailyAssignMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderDailyAssignMapper.xml index 9b6c48f90..8d2668263 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderDailyAssignMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderDailyAssignMapper.xml @@ -26,7 +26,7 @@ INNER JOIN BS_TEAM_TIME d ON c.TS_ID = d.TS_ID WHERE a.CA_ID = #{hostCaId} - AND a.DAA_DATE >= TRUNC(SYSDATE) AND a.DAA_DATE < TRUNC(SYSDATE) + 1 + AND a.CREATE_TIME >= TRUNC(SYSDATE) AND a.CREATE_TIME < TRUNC(SYSDATE) + 1 AND a.wc_id IN #{id} @@ -61,7 +61,7 @@ INNER JOIN BS_TEAM_TIME d ON c.TS_ID = d.TS_ID WHERE a.CA_ID = #{hostCaId} - AND a.DAA_DATE >= TRUNC(SYSDATE) AND a.DAA_DATE < TRUNC(SYSDATE) + 1 + AND a.CREATE_TIME >= TRUNC(SYSDATE) AND a.CREATE_TIME < TRUNC(SYSDATE) + 1 AND a.wc_id IN #{id} From ec056055bb8e9b3d6dc70007615b6ebdf5f9be04 Mon Sep 17 00:00:00 2001 From: zangzhipeng Date: Fri, 5 Jun 2026 11:16:44 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=A4=96=E5=8D=8F=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=BD=AC=E5=8E=82=E5=86=85=E5=AE=A1=E6=89=B9=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WorkOrderRunServiceImpl.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java index 99318e844..2799440f1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java @@ -413,6 +413,14 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl() .eq(WorkPlan::getId, wpr.getWpId())); + + // 如果是外协工序,且未报工,清空班组和时间,便于排产 + if (wp.getStatus().compareTo(WorkPlan.STATUS_WORK_OK) < 0) { + wp.setMakeTeam(null); + wp.setPlanStartTime(null); + wp.setPlanEndTime(null); + } + //如果不是勾选工序不处理 if (!wpr.getHandle()) { continue; @@ -422,18 +430,18 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl() - .eq(BsProcessSetEntity::getId, nextWorkPlan.getPpsId())); - if (nextWorkPlan.getMakeTeam() != null && bsProcessSetEntity != null && !"1".equalsIgnoreCase(bsProcessSetEntity.getIsDispatch())) { - teamSet = teamSetMapper.selectOne(new LambdaQueryWrapper() - .eq(TeamSet::getId, nextWorkPlan.getMakeTeam())); - } - wp.setMakeTeam(teamSet == null ? null : teamSet.getId()); +// BsProcessSetEntity bsProcessSetEntity = processSetMapper.selectOne(new LambdaQueryWrapper() +// .eq(BsProcessSetEntity::getId, nextWorkPlan.getPpsId())); +// if (nextWorkPlan.getMakeTeam() != null && bsProcessSetEntity != null && !"1".equalsIgnoreCase(bsProcessSetEntity.getIsDispatch())) { +// teamSet = teamSetMapper.selectOne(new LambdaQueryWrapper() +// .eq(TeamSet::getId, nextWorkPlan.getMakeTeam())); +// } +// wp.setMakeTeam(teamSet == null ? null : teamSet.getId()); + + // 工序信息重置,重新排产 wp.setOem(null); - wp.setPlanStartTime(null); wp.setUnqualifiedQty(0d); wp.setWorkQty(0d); - wp.setPlanEndTime(null); wp.setSubsidiaryTeam(null); wp.setOem("0"); wp.setCaId(wpr.getCaId()); From 77a66f9a48f72046893b86c00123ad15b8722223 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Fri, 5 Jun 2026 11:33:45 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/service/impl/WorkOrderServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index c947755ad..7e0efb302 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -728,7 +728,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Date: Fri, 5 Jun 2026 13:45:44 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/service/impl/WorkOrderServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index 7e0efb302..36e2d51a3 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -631,8 +631,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(EquipResourceEntity::getCraftId, craft.getCaId()) .eq(EquipResourceEntity::getWorkCenterId, craft.getWorkCenterId()) - .ge(EquipResourceEntity::getStartTime, dateTime) .eq(EquipResourceEntity::getIsUsed, 0) + .ge(EquipResourceEntity::getStartTime, dateTime) .in(EquipResourceEntity::getEquipOrder, entry.getKey()); //返工订单需要原班组加工 if(StringUtils.isNotEmpty(order.getReworkCode())){ From 0a1f12d811c4850e124813715af079f1dfc0bcf4 Mon Sep 17 00:00:00 2001 From: wusiyu <2015098864@qq.com> Date: Fri, 5 Jun 2026 14:50:25 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StGlassCakeOutController.java | 2 +- .../StGraphiteMoldOutController.java | 2 +- .../StOtherOutRecordController.java | 2 +- .../wms/mapper/StStockInoutRecordMapper.java | 6 +- .../wms/mapper/StStockInoutRecordMapper.xml | 24 +++++- .../service/IStStockInoutRecordService.java | 2 + .../impl/StClassRequestServiceImpl.java | 2 +- .../impl/StGlassCakeOutServiceImpl.java | 23 +----- .../impl/StGraphiteMoldOutServiceImpl.java | 21 +---- .../impl/StOtherOutRecordServiceImpl.java | 24 +----- .../impl/StOtherReceiptRecordServiceImpl.java | 19 +---- .../impl/StStockInoutRecordServiceImpl.java | 81 +++++++++++-------- 12 files changed, 85 insertions(+), 123 deletions(-) diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGlassCakeOutController.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGlassCakeOutController.java index 12727e22a..37ca5c166 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGlassCakeOutController.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGlassCakeOutController.java @@ -140,7 +140,7 @@ public class StGlassCakeOutController extends BladeController { @Operation(summary = "生成玻璃饼出库单号", description = "获取新单据号并返回空账单对象") public R generateCode() { // 1. 生成单号 - String sirCode = stStockInoutRecordService.generateCode(); + String sirCode = stStockInoutRecordService.generateOutStockNo(); // 2. 封装合表 VO StStockInoutRecordVO vo = new StStockInoutRecordVO(); diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGraphiteMoldOutController.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGraphiteMoldOutController.java index e2287665c..88b383db0 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGraphiteMoldOutController.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGraphiteMoldOutController.java @@ -140,7 +140,7 @@ public class StGraphiteMoldOutController extends BladeController { @Operation(summary = "生成石墨模出库单号", description = "获取新单据号并返回空账单对象") public R generateCode() { // 1. 生成单号 - String sirCode = stStockInoutRecordService.generateCode(); + String sirCode = stStockInoutRecordService.generateOutStockNo(); // 2. 封装合表 VO StStockInoutRecordVO vo = new StStockInoutRecordVO(); diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StOtherOutRecordController.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StOtherOutRecordController.java index b4d0cf0ac..b4d0bc9bb 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StOtherOutRecordController.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StOtherOutRecordController.java @@ -219,7 +219,7 @@ public class StOtherOutRecordController extends BladeController { @Operation(summary = "生成其他出库单号", description = "获取新单据号并返回空账单对象") public R generateCode() { // 1. 生成单号 - String sirCode = stStockInoutRecordService.generateCode(); + String sirCode = stStockInoutRecordService.generateOutStockNo(); // 2. 封装合表 VO StStockInoutRecordVO vo = new StStockInoutRecordVO(); diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStockInoutRecordMapper.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStockInoutRecordMapper.java index b9d2c8421..097663b92 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStockInoutRecordMapper.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStockInoutRecordMapper.java @@ -48,6 +48,10 @@ public interface StStockInoutRecordMapper extends BaseMapper String getTeamSetByUserId(Long picker); - int getMaxSerialNoByDate(String dateTime); + void insertTodaySeq(String today); + + Integer getCurrentSeqForUpdate(String today); + + void incrementSeq(String today); } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStockInoutRecordMapper.xml b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStockInoutRecordMapper.xml index f13f0be0c..6bc449e14 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStockInoutRecordMapper.xml +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStockInoutRecordMapper.xml @@ -174,10 +174,26 @@ USER_ID - + SELECT current_num + FROM st_seq_daily + WHERE seq_date = #{today} FOR UPDATE diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStStockInoutRecordService.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStStockInoutRecordService.java index 7f9bada86..4ed2a5e11 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStStockInoutRecordService.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStStockInoutRecordService.java @@ -49,5 +49,7 @@ public interface IStStockInoutRecordService extends BaseService stockList = Collections.singletonList(stock); /* 2. 生成账单号 & 批次号 */ - String sirCode = stStockInoutRecordService.generateCode(); + String sirCode = stStockInoutRecordService.generateOutStockNo(); // String piNo = stStockInoutRecordService.generatePiNo("Q"); /* 3. 一条记录 = 原主账单 + 原明细 字段合并 */ diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGlassCakeOutServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGlassCakeOutServiceImpl.java index ea71a512c..389105223 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGlassCakeOutServiceImpl.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGlassCakeOutServiceImpl.java @@ -1,8 +1,6 @@ package org.springblade.wms.service.impl; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -160,23 +158,6 @@ public class StGlassCakeOutServiceImpl extends BaseServiceImpl preOutStockList = new ArrayList<>(); - String datePrefix = DateUtil.format(new Date(), "yyyyMMdd"); - // 2. 当天最大序号 - String maxCode = stStockInoutRecordMapper.getMaxCheckCode(datePrefix); - int lastNum = 0; - if (StrUtil.isNotBlank(maxCode)) { - String number = maxCode.substring(datePrefix.length()); - String[] arr = number.split("-"); - // 防止没有"-"导致数组空 - if(arr.length >= 1){ - String realNum = arr[0]; - // 只有全数字才转整型 - if(StrUtil.isNumeric(realNum)){ - lastNum = Integer.parseInt(realNum); - } - } - } - // 4. 遍历每个玻璃饼,单独匹配库存+判断是否生成预出库 if (!CollectionUtils.isEmpty(glassCakePartList)) { for (DsPartEntity glassCake : glassCakePartList) { @@ -291,9 +272,7 @@ public class StGlassCakeOutServiceImpl extends BaseServiceImpl preOutStockList = new ArrayList<>(); - String datePrefix = DateUtil.format(new Date(), "yyyyMMdd"); - // 2. 当天最大序号 - String maxCode = stStockInoutRecordMapper.getMaxCheckCode(datePrefix); - int lastNum = 0; - if (StrUtil.isNotBlank(maxCode)) { - String number = maxCode.substring(datePrefix.length()); - String[] arr = number.split("-"); - // 防止没有"-"导致数组空 - if(arr.length >= 1){ - String realNum = arr[0]; - // 只有全数字才转整型 - if(StrUtil.isNumeric(realNum)){ - lastNum = Integer.parseInt(realNum); - } - } - } int childNum = 1; - lastNum++; + String parentOutCode = stStockInoutRecordService.generateOutStockNo(); // 遍历每个子件 for (DsPartEntity subItem : allChildPartList) { @@ -183,7 +165,6 @@ public class StGraphiteMoldOutServiceImpl extends BaseServiceImpl stockMap = stockList.stream() .collect(Collectors.toMap(StRealtimeStock::getId, Function.identity())); - String datePrefix = DateUtil.format(new Date(), "yyyyMMdd"); - // 2. 当天最大序号 - String maxCode = stStockInoutRecordMapper.getMaxCheckCode(datePrefix); - int lastNum = 0; - if (StrUtil.isNotBlank(maxCode)) { - String number = maxCode.substring(datePrefix.length()); - String[] arr = number.split("-"); - // 防止没有"-"导致数组空 - if(arr.length >= 1){ - String realNum = arr[0]; - // 只有全数字才转整型 - if(StrUtil.isNumeric(realNum)){ - lastNum = Integer.parseInt(realNum); - } - } - } - // ========== 1.3 组装所有商品明细 ========== for (StRealtimeStock stock : outList) { StRealtimeStock entity = stockMap.get(stock.getId()); @@ -265,9 +248,8 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl Integer.parseInt(p.substring(9))) .orElse(0); - // 当天最大序号 - String maxCode = stStockInoutRecordMapper.getMaxCheckCode(datePrefix); - int lastNum = 0; - if (StrUtil.isNotBlank(maxCode)) { - String number = maxCode.substring(datePrefix.length()); - String[] arr = number.split("-"); - // 防止没有"-"导致数组空 - if(arr.length >= 1){ - String realNum = arr[0]; - // 只有全数字才转整型 - if(StrUtil.isNumeric(realNum)){ - lastNum = Integer.parseInt(realNum); - } - } - } // 主账单字段 = 明细合计 for (StStockInoutRecord detail : inoutList) { // 校验单条明细的必传字段 @@ -145,9 +130,7 @@ public class StOtherReceiptRecordServiceImpl extends BaseServiceImpl= 1){ +// String realNum = arr[0]; +// // 只有全数字才转整型 +// if(StrUtil.isNumeric(realNum)){ +// lastNum = Integer.parseInt(realNum); +// } +// } +// } +// // 3. 补零拼接 +// return datePrefix + StrUtil.padPre(String.valueOf(++lastNum), 4, '0'); +// } + + @Transactional(rollbackFor = Exception.class) public String generateCode() { - // 1. 日期前缀 - String datePrefix = DateUtil.format(new Date(), "yyyyMMdd"); - // 2. 当天最大序号 - String maxCode = baseMapper.getMaxCheckCode(datePrefix); - int lastNum = 0; - if (StrUtil.isNotBlank(maxCode)) { - String number = maxCode.substring(datePrefix.length()); - String[] arr = number.split("-"); - // 防止没有"-"导致数组空 - if(arr.length >= 1){ - String realNum = arr[0]; - // 只有全数字才转整型 - if(StrUtil.isNumeric(realNum)){ - lastNum = Integer.parseInt(realNum); - } - } - } - // 3. 补零拼接 - return datePrefix + StrUtil.padPre(String.valueOf(++lastNum), 4, '0'); + // 1. 获取日期 + String today = DateUtil.format(new Date(), "yyMMdd"); + // 初始化当天序号(不存在则插入0) + baseMapper.insertTodaySeq(today); + // 3. 原子 +1 + baseMapper.incrementSeq(today); + // 4. 加行锁,查询当前值 + Integer currentNum = baseMapper.getCurrentSeqForUpdate(today); + String seqNo = String.format("%05d", currentNum); + return "RK" + today + seqNo; } -// @Override -// @Transactional -// public String makeCode() { -// // 时间格式:yyMMddHHmmss(2位年+月+日+时+分+秒) -// String dateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")); -// // 获取下一个流水号 -// int serialNo = baseMapper.getMaxSerialNoByDate(dateTime); -// // 拼接最终单号:CK + 时间 + 4位流水号(前面补0) -// String sirCode = "CK" + dateTime + String.format("%04d", serialNo); -// -// return sirCode; -// } + @Transactional(rollbackFor = Exception.class) + public String generateOutStockNo() { + // 1. 获取日期 + String today = DateUtil.format(new Date(), "yyMMdd"); + // 初始化当天序号(不存在则插入0) + baseMapper.insertTodaySeq(today); + // 3. 原子 +1 + baseMapper.incrementSeq(today); + // 4. 加行锁,查询当前值 + Integer currentNum = baseMapper.getCurrentSeqForUpdate(today); + String seqNo = String.format("%05d", currentNum); + return "CK" + today + seqNo; + } @Override public String getMaxPiNo(String typeCode) { From d3a414bdbb00a85edc6916c63ddb6890ef06ccac Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Fri, 5 Jun 2026 15:29:05 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/service/impl/WorkOrderServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index 36e2d51a3..3b802c01c 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -619,6 +619,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl> equipAbilityMap = equipAbilityList.stream().collect(Collectors.groupingBy(EquipAbilityEntity::getEquipOrder)); //匹配设备资源 @@ -660,6 +661,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl> equipResourceMap = equipResourceList.stream() .collect(Collectors.groupingBy( @@ -679,6 +681,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl capacityList = capacitySplit(equipResourceMap, sumCapacity); @@ -801,6 +804,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl