|
|
|
|
@ -252,18 +252,18 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 如果厂内占比大于已经设置的比列,则直接分派外协
|
|
|
|
|
if (rate <= craftAbility.getInFactoryPercent()) { |
|
|
|
|
log.info("{}自动分派按照比例分派给厂内:{},分派比例:{} 应分比例:{}", yieldOrder.getCardNo(), |
|
|
|
|
workCenter.getWcName(), rate, craftAbility.getInFactoryPercent()); |
|
|
|
|
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.size() > 0) { |
|
|
|
|
if (dispatchCraftList != null && !dispatchCraftList.isEmpty()) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 外协
|
|
|
|
|
log.info("{}自动分派按照比例分派给外协:{},分派比例:{} 应分比例:{}", yieldOrder.getCardNo(), oemCustomer.getOcName(), rate, craftAbility.getInRate()); |
|
|
|
|
dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
@ -373,6 +373,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM |
|
|
|
|
//作业中心
|
|
|
|
|
WorkCenter workCenter = null; |
|
|
|
|
//如果找到合适的作业中心直接分派,反之如果未找到合适的作业中心(bool 是true的情况下强制厂内,bool是false是优先厂内,不满足的情况下直接返回空)
|
|
|
|
|
// todo 待完善
|
|
|
|
|
YieldOrderAssignDaily dayAbilityAssignment = dailyAssignService.findMinNum(hostCaId, wcList); |
|
|
|
|
if (Func.isEmpty(dayAbilityAssignment)) { |
|
|
|
|
return null; |
|
|
|
|
@ -466,7 +467,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM |
|
|
|
|
BsAssignEntity assign = this.getRules(yieldOrder, hostCaId, BsAssignEntity.OUTSOURCE); |
|
|
|
|
if (assign != null) { |
|
|
|
|
//限制类型是必须(强制按此规则分派)
|
|
|
|
|
if (assign.getLimitType().equals(BsAssignEntity.MUST)) { |
|
|
|
|
if (assign.getLimitType().equals(BsAssignEntity.MUST.toString())) { |
|
|
|
|
//如果指定了外协商,则强制分派到此外协商;反之则分派至厂外有同种工艺能力的外协商
|
|
|
|
|
if (assign.getOemId() != null) { |
|
|
|
|
//判断规则中配置的外协商是否满足当前工艺能力要求,如果不满足,则此条规则作废
|
|
|
|
|
@ -536,7 +537,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM |
|
|
|
|
|
|
|
|
|
// 获取到满足条件的供应商
|
|
|
|
|
// 对有能力做这个单子厂家按照偏差因子排序
|
|
|
|
|
if (ocList != null && ocList.size() > 0) { |
|
|
|
|
if (!ocList.isEmpty()) { |
|
|
|
|
List<YieldOrderAssignSteer> bsPlanAssignSteerList = assignSteerService.sortDataByFactor(ocList, hostCaId); |
|
|
|
|
CraftAbilityEntity craftAbility = iCraftAbilityService.getById(hostCaId); |
|
|
|
|
for (YieldOrderAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) { |
|
|
|
|
|