提示信息优化

tags/yfai-pcn-ext-v1.4
王杰 9 months ago
parent a45903ffc7
commit 048f3d3ca3

@ -215,8 +215,8 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
List<MesProductionPartContext> productionPartContexts = entry.getValue();
MesWorkOrder mesWorkOrder = orderListMap.get(workOrder).get(0);
double complateQty = mesWorkOrder.getCompleteQty() + productionPartContexts.size();
double qty = mesWorkOrder.getQty();
Double complateQty = mesWorkOrder.getCompleteQty() + productionPartContexts.size();
Double qty = mesWorkOrder.getQty();
log.info("验证超工单,工单号【{}】,qty=【{}】,complateQty =【{}】begin ->", mesWorkOrder.getWorkOrderNo(), qty, complateQty);
// 如果预完成数量 小于等于工单数量,则直接过
if (complateQty <= qty) continue;
@ -226,14 +226,14 @@ 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.obj(false), String.format("请检查工单数量,工单号[%s],工单数量[%s]预完成数量[%s],且未配置超工单!", workOrder, mesWorkOrder.getQty(), complateQty));
return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult.obj(false), String.format("请检查工单数量,工单号[%s],工单数量[%s]预完成数量[%s],且未配置超工单!", workOrder, mesWorkOrder.getQty().intValue(), complateQty.intValue()));
}
// 如果配置了超工单,且比例已经超过了配置的超工单比例,也需要阻断
double rate = (complateQty - qty)/qty;
Double rate = (complateQty - qty)/qty;
if (rate > workCenter.getOrderRate()/100) {
productionPartContextList.forEach(o -> o.busiCheckToDelete());
if (!CollectionUtils.isEmpty(productionPsInContextList)) productionPsInContextList.forEach(o -> o.busiCheckToDelete());
return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult.obj(false), String.format("请检查工单数量,工单号[%s],工单数量[%s]预完成数量[%s],配置了超工单,但超过了比例[%s]!", workOrder, mesWorkOrder.getQty(), complateQty, workCenter.getOrderRate()));
return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult.obj(false), String.format("请检查工单数量,工单号[%s],工单数量[%s]预完成数量[%s],配置了超工单,但超过了比例[%s]!", workOrder, mesWorkOrder.getQty().intValue(), complateQty.intValue(), workCenter.getOrderRate()));
}
log.info("验证超工单,工单号【{}】,qty=【{}】,complateQty =【{}】,isCheckOrderQty=【{}】, rate = 【{}】end ->", mesWorkOrder.getWorkOrderNo(), qty, complateQty,workCenter.getIsCheckOrderQty(),rate);
}
@ -268,7 +268,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
else productionPsInContextList.forEach(o -> o.busiCheckToDelete());
return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("设备[%s]与进料零件条码%s加工规则配置信息! 进料零件条码[%s]%s",
cellEquipContext.getEquipmentName(), CollectionUtils.isEmpty(filterList) ? "未匹配到" : String.format("匹配到[%s]条", filterList.size()), productionPsInContext.getProductSn(),
StringUtils.isEmpty(productionPsInContext.getPartNo()) ? "为外协件" : String.format("上道工序[%s]工艺[%s]对应零件:%s", productionPsInContext.getProcessCode(), productionPsInContext.getCraftCode(), productionPsInContext.getPartNo())));
StringUtils.isEmpty(productionPsInContext.getPartNo()) ? "为外协件" : String.format("当前零件号[%s]", productionPsInContext.getPartNo())));
}
//时效性验证
@ -403,7 +403,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
if (optional.get().getMessageSource().compareTo(MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue()) == 0) optional.get().busiCheckToDelete();
else productionPsInContextList.forEach(o -> o.busiCheckToDelete());
String productSnStr = productionPsInContextList.stream().filter(o -> (null != o && StringUtils.isEmpty(o.getForeignKey()) && o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0))
.map(o -> String.format(" 进料零件条码[%s]%s", o.getProductSn(), StringUtils.isEmpty(o.getPartNo()) ? "为外协件" : String.format("上道工序[%s]工艺[%s]对应零件:%s", o.getProcessCode(), o.getCraftCode(), o.getPartNo()))).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
.map(o -> String.format(" 进料零件条码[%s]%s", o.getProductSn(), StringUtils.isEmpty(o.getPartNo()) ? "为外协件" : String.format("当前零件号[%s]", o.getPartNo()))).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(productSnStr), stepResult, String.format("设备[%s]产出零件%s与进料零件条码未匹配到唯一的加工规则配置信息!%s", cellEquipContext.getEquipmentName(),
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));

@ -8,6 +8,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipLogDispatchContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
@ -58,7 +59,7 @@ public class MesEquipByPassReadStepService extends BaseStepService {
//当前工位使用的设备
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
if (null == cellEquipContext || StringUtils.isEmpty(cellEquipContext.getCtrlByPass())) return stepResult.isCompleted(false);
if (null == cellEquipContext || StringUtils.isEmpty(cellEquipContext.getCtrlByPass()) || cellEquipContext.getCtrlByPass().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) return stepResult.isCompleted(false);
//获取生产过程上下文对象有异常信息
if (!productionProcessContextStepService.getEquipmentVariableCfgList(productionProcessContext).getSuccess()) return stepResult.isCompleted(false).msg(productionProcessContext.getMessage());

Loading…
Cancel
Save