|
|
|
@ -168,7 +168,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
|
|
|
|
|
copy(filterList.get(0)).workOrderNo(productionPartContext.getWorkOrderNo()).foreignKey(productionPartContext.foreignKey(foreignKey += 1).getForeignKey())));
|
|
|
|
|
}
|
|
|
|
|
// 默认头道才有超工单
|
|
|
|
|
validSuperWorkOrder(reqBean, productionPartContextList,workCenter, stepResult, resultBean);
|
|
|
|
|
validSuperWorkOrder(reqBean, productionPartContextList,null,workCenter, stepResult, resultBean);
|
|
|
|
|
|
|
|
|
|
return stepResult;
|
|
|
|
|
}
|
|
|
|
@ -184,7 +184,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
|
|
|
|
|
* @param resultBean
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private StepResult validSuperWorkOrder(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList, MesWorkCenter workCenter, StepResult stepResult, StationResultBean resultBean) {
|
|
|
|
|
private StepResult validSuperWorkOrder(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> productionPsInContextList, MesWorkCenter workCenter, StepResult stepResult, StationResultBean resultBean) {
|
|
|
|
|
// 验证超工单
|
|
|
|
|
//判断是否还存在待匹配的主条码信息, 内部循环匹配成功会标记 foreignKey
|
|
|
|
|
Optional<MesProductionPartContext> optional = productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkOrderNo()))).findFirst();
|
|
|
|
@ -213,6 +213,9 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
|
|
|
|
|
// 如果产线中没有配置超工单,则直接阻断
|
|
|
|
|
if (!Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), workCenter.getIsCheckOrderQty())) {
|
|
|
|
|
productionPartContextList.forEach(o -> o.busiCheckToDelete());
|
|
|
|
|
if (!CollectionUtils.isEmpty(productionPsInContextList)) {
|
|
|
|
|
productionPsInContextList.forEach(o -> o.busiCheckToDelete());
|
|
|
|
|
}
|
|
|
|
|
return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format(
|
|
|
|
|
"请检查工单数量,工单号[%s],工单数量[%s]预完成数量[%s],且未配置超工单",
|
|
|
|
|
workOrder, mesWorkOrder.getQty(), complateQty));
|
|
|
|
@ -220,7 +223,11 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
|
|
|
|
|
// 如果配置了超工单,且比例已经超过了配置的超工单比例,也需要阻断
|
|
|
|
|
double rate = (complateQty - qty)/qty;
|
|
|
|
|
if (rate > workCenter.getOrderRate()) {
|
|
|
|
|
if (CollectionUtils.isEmpty(productionPsInContextList)) {
|
|
|
|
|
productionPartContextList.forEach(o -> o.busiCheckToDelete());
|
|
|
|
|
} else {
|
|
|
|
|
productionPsInContextList.forEach(o -> o.busiCheckToDelete());
|
|
|
|
|
}
|
|
|
|
|
return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format(
|
|
|
|
|
"请检查工单数量,工单号[%s],工单数量[%s]预完成数量[%s],配置了超工单,但超过了比例[%s]",
|
|
|
|
|
workOrder, mesWorkOrder.getQty(), complateQty, workCenter.getOrderRate()));
|
|
|
|
@ -381,7 +388,8 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
|
|
|
|
|
productionPartContextList.stream().filter(o -> (null != o && StringUtils.isEmpty(o.getForeignKey()) && o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).map(MesProductionPartContext::getPartNo).collect(Collectors.toList()).toString(),
|
|
|
|
|
productSnStr));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 默认头道才有超工单
|
|
|
|
|
validSuperWorkOrder(reqBean, productionPartContextList,productionPsInContextList,workCenter, stepResult, resultBean);
|
|
|
|
|
return stepResult;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|