From be945fe471dcd9a85dc8d9101d77a84a4d2b4071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Fri, 5 Jun 2026 20:05:33 +0800 Subject: [PATCH 1/4] =?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 --- .../impl/YieldOrderCraftServiceImpl.java | 107 ++++++++---------- 1 file changed, 50 insertions(+), 57 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java index e87bc0752..3e250f766 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java @@ -1,6 +1,7 @@ package org.springblade.desk.order.service.impl; import com.alibaba.fastjson.JSONObject; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -218,68 +219,60 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl 0) { - return; - } - - // 厂内优先 - if (workCenter.getLimitType().equals(WorkCenter.LIMIT_TYPE_PRIOR)) { - log.info("自动分派,流程卡号:{},优先厂内", yieldOrder.getCardNo()); - dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); - } - - //如果匹配到了作业单位,则直接停止 - if (dispatchCraftList != null && dispatchCraftList.size() > 0) { - return; - } - - //外协优先 - if (oemCustomer.getLimitType().equals(WorkCenter.LIMIT_TYPE_PRIOR)) { - log.info("自动分派,流程卡号:{},优先外协", yieldOrder.getCardNo()); - dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); - } + if (CollectionUtils.isEmpty(dispatchCraftList)) { + // 厂内优先 + if (workCenter.getLimitType().equals(WorkCenter.LIMIT_TYPE_PRIOR)) { + log.info("自动分派,流程卡号:{},优先厂内", yieldOrder.getCardNo()); + dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); + } - //如果匹配到了作业单位,则直接停止 - if (dispatchCraftList != null && dispatchCraftList.size() > 0) { - return; - } + //如果匹配到了作业单位,则直接停止 + if (CollectionUtils.isEmpty(dispatchCraftList)) { + //外协优先 + if (oemCustomer.getLimitType().equals(WorkCenter.LIMIT_TYPE_PRIOR)) { + log.info("自动分派,流程卡号:{},优先外协", yieldOrder.getCardNo()); + dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); + } - // 开始根据分派比例分派 - Long facTotalNum = 0L; - YieldOrderAssignCount facCapacity = dailyAssignService.queryCount(hostAbilityId, BsAssignEntity.IN_FACTORY); - if (facCapacity != null) { - facTotalNum = facCapacity.getTotalNum(); - } - // 获取厂外已经分派的总量 - Long oemTotalNum = 0L; - YieldOrderAssignCount oemCapacity = dailyAssignService.queryCount(hostAbilityId, BsAssignEntity.OUTSOURCE); - if (oemCapacity != null) { - oemTotalNum = oemCapacity.getTotalNum(); - } + //如果匹配到了作业单位,则直接停止 + if (CollectionUtils.isEmpty(dispatchCraftList)) { + // 开始根据分派比例分派 + Long facTotalNum = 0L; + YieldOrderAssignCount facCapacity = dailyAssignService.queryCount(hostAbilityId, BsAssignEntity.IN_FACTORY); + if (facCapacity != null) { + facTotalNum = facCapacity.getTotalNum(); + } + // 获取厂外已经分派的总量 + Long oemTotalNum = 0L; + YieldOrderAssignCount oemCapacity = dailyAssignService.queryCount(hostAbilityId, BsAssignEntity.OUTSOURCE); + if (oemCapacity != null) { + oemTotalNum = oemCapacity.getTotalNum(); + } - //日分派总量 - Long totalNum = facTotalNum + oemTotalNum; - // 厂内分派比列 - Double rate = 0D; - if (totalNum > 0) { - rate = Double.valueOf(facTotalNum) / Double.valueOf(totalNum) * 100; - } - log.info("自动分派,流程卡号:{},分派总量:{},厂内分派比列:{}", yieldOrder.getCardNo(), totalNum, rate); + //日分派总量 + Long totalNum = facTotalNum + oemTotalNum; + // 厂内分派比列 + Double rate = 0D; + if (totalNum > 0) { + rate = Double.valueOf(facTotalNum) / Double.valueOf(totalNum) * 100; + } + log.info("自动分派,流程卡号:{},分派总量:{},厂内分派比列:{}", yieldOrder.getCardNo(), totalNum, rate); - // 如果厂内占比大于已经设置的比列,则直接分派外协 - if (rate <= Double.parseDouble(craftAbility.getInRate())) { - log.info("{}自动分派按照比例分派给厂内:{},分派比例:{} 应分比例:{}", yieldOrder.getCardNo(), workCenter.getWcName(), rate, craftAbility.getInRate()); - dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); - } + // 如果厂内占比大于已经设置的比列,则直接分派外协 + if (rate <= Double.parseDouble(craftAbility.getInRate())) { + log.info("{}自动分派按照比例分派给厂内:{},分派比例:{} 应分比例:{}", yieldOrder.getCardNo(), workCenter.getWcName(), rate, craftAbility.getInRate()); + dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); + } - //如果匹配到了作业单位,则直接停止 - if (dispatchCraftList != null && !dispatchCraftList.isEmpty()) { - return; + //如果匹配到了作业单位,则直接停止 + if (CollectionUtils.isEmpty(dispatchCraftList)) { + // 外协 + log.info("{}自动分派按照比例分派给外协:{},分派比例:{} 应分比例:{}", yieldOrder.getCardNo(), oemCustomer.getOcName(), rate, craftAbility.getInRate()); + dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); + } + } + } } - - // 外协 - log.info("{}自动分派按照比例分派给外协:{},分派比例:{} 应分比例:{}", yieldOrder.getCardNo(), oemCustomer.getOcName(), rate, craftAbility.getInRate()); - dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); } } else { if (Boolean.TRUE.equals(factor)) { @@ -295,7 +288,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl Date: Sat, 6 Jun 2026 09:33:43 +0800 Subject: [PATCH 2/4] =?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 --- .../wms/pojo/entity/StGraphiteMoldOut.java | 13 ++++++++++++- .../wms/mapper/StGraphiteMoldOutMapper.xml | 1 + .../service/impl/StGraphiteMoldOutServiceImpl.java | 10 ++++++---- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StGraphiteMoldOut.java b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StGraphiteMoldOut.java index 0351d8457..0648e0ed9 100644 --- a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StGraphiteMoldOut.java +++ b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StGraphiteMoldOut.java @@ -158,6 +158,17 @@ public class StGraphiteMoldOut extends TenantEntity { * 齐套数量 */ @Schema(description = "齐套数量") - private Double completeQuantity; + private Integer completeQuantity; + /** + * 生产数量 + */ + @Schema(description = "生产数量") + private Double produceQuantity; + + /** + * 单套数量 + */ + @Schema(description = "单套数量") + private Double singleQuantity; } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGraphiteMoldOutMapper.xml b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGraphiteMoldOutMapper.xml index 42a12dbd8..99f1df0a2 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGraphiteMoldOutMapper.xml +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGraphiteMoldOutMapper.xml @@ -36,6 +36,7 @@ gmo.card_no, gmo.need_quantity, gmo.outed_quantity, gmo.cur_status, gmo.out_time, gmo.out_user, gmo.out_code, gmo.picker, gmo.parent_out_code, gmo.complete_quantity, + gmo.produce_quantity, gmo.single_quantity, -- 物料表字段 g.goods_code, g.id AS goodsId, diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGraphiteMoldOutServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGraphiteMoldOutServiceImpl.java index 02047c490..603e5256f 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGraphiteMoldOutServiceImpl.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGraphiteMoldOutServiceImpl.java @@ -170,8 +170,10 @@ public class StGraphiteMoldOutServiceImpl extends BaseServiceImpl Date: Sat, 6 Jun 2026 10:09:50 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=A4=96=E5=8D=8F=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=8D=95=E5=B7=A5=E5=BA=8F=E8=BD=AC=E5=8E=82=E5=86=85=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=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 --- .../produce/service/impl/WorkOrderRunServiceImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 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 2799440f1..c4774b7bf 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 @@ -414,7 +414,7 @@ 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); @@ -495,8 +495,10 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl Date: Sat, 6 Jun 2026 14:15:45 +0800 Subject: [PATCH 4/4] =?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 | 2 ++ .../desk/order/service/impl/YieldOrderCraftServiceImpl.java | 5 +++-- .../desk/order/service/impl/YieldOrderDailyAssignImpl.java | 4 ++-- 3 files changed, 7 insertions(+), 4 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 d54dec213..4be8bb3a4 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 @@ -25,6 +25,7 @@ INNER JOIN BS_CENTER_TEAM c ON b.OTHER_ID = c.wc_id INNER JOIN BS_TEAM_TIME d ON c.TS_ID = d.TS_ID WHERE a.CRAFT_ABILITY_ID = #{hostCaId} + AND b.IS_DELETED = 0 AND a.CREATE_TIME >= TRUNC(SYSDATE) AND a.CREATE_TIME < TRUNC(SYSDATE) + 1 AND a.WORK_CENTER_ID IN @@ -59,6 +60,7 @@ INNER JOIN BS_CENTER_TEAM c ON b.ID = c.wc_id INNER JOIN BS_TEAM_TIME d ON c.TS_ID = d.TS_ID WHERE a.CRAFT_ABILITY_ID = #{hostCaId} + AND b.IS_DELETED = 0 AND a.CREATE_TIME >= TRUNC(SYSDATE) AND a.CREATE_TIME < TRUNC(SYSDATE) + 1 AND a.WORK_CENTER_ID IN diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java index 3e250f766..07c99278f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java @@ -755,6 +755,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl 0) || (rules.getSingleDownArea() != null && rules.getSingleDownArea().compareTo(BigDecimal.ZERO) > 0)) { @@ -777,7 +778,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl 0) { - if (areaVal.compareTo(rules.getLowArea()) >= 0) { + if (ypArea.compareTo(rules.getLowArea()) >= 0) { sum = sum + 7; } else { return 0; @@ -785,7 +786,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl 0) { - if (areaVal.compareTo(rules.getUpArea()) <= 0) { + if (ypArea.compareTo(rules.getUpArea()) <= 0) { sum = sum + 4; } else { return 0; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderDailyAssignImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderDailyAssignImpl.java index 11ef334e6..e14d89942 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderDailyAssignImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderDailyAssignImpl.java @@ -73,8 +73,8 @@ public class YieldOrderDailyAssignImpl extends BaseServiceImpl