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-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 e87bc0752..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 @@ -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 0) || (rules.getSingleDownArea() != null && rules.getSingleDownArea().compareTo(BigDecimal.ZERO) > 0)) { @@ -784,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; @@ -792,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() .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