防错 非排序 逻辑调整

tags/yfai-pcn-ext-v2.3
王杰 6 months ago
parent 4305ea53ab
commit bf013da537

@ -108,17 +108,17 @@ public class MesProductSnScanStepService extends BaseStepService {
Boolean isAllowJump = checkIsAllowJump(reqBean, productionPsInContextList);
//当前不允许跳过
if (isCraftJumpCode && !isAllowJump)
if (isCraftJumpCode && (StringUtils.isEmpty(isAllowJump) || !isAllowJump))
return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()).scanInfo(scanInfo), stepResult, String.format("当前扫描信息工艺强过码[%s],当前不支持强过!", scanInfo));
//允许跳过,先更新数据
if (isCraftJumpCode && isAllowJump) {
if (isCraftJumpCode && !StringUtils.isEmpty(isAllowJump) && isAllowJump) {
updateProductionPsInContextList(reqBean, productionPsInContextList, scanInfo);
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()).scanInfo(scanInfo), stepResult, String.format("当前扫描信息工艺强过码[%s]!", scanInfo));
}
//扫描信息为空 并且 判断当前是否必须要扫描
if (StringUtils.isEmpty(scanInfo) && (scanedQty.compareTo(needQty) < 0 || isAllowJump)) stepSendGuideAndThrowEx(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "请扫描主条码!");
if (StringUtils.isEmpty(scanInfo) && (scanedQty.compareTo(needQty) < 0 || StringUtils.isEmpty(isAllowJump) || isAllowJump)) stepSendGuideAndThrowEx(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "请扫描主条码!");
//是否支持混腔扫描[工位参数]
String cavityNosortCfg = getCavityNosortCfg(reqBean);
@ -195,9 +195,9 @@ public class MesProductSnScanStepService extends BaseStepService {
Optional<MesProductionPsInContext> optional = CollectionUtils.isEmpty(productionPsInContextList) ? null :
productionPsInContextList.stream().filter(o -> (null != o && o.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst();
if (null == optional || !optional.isPresent()) return false;
//非排序是否允许强过, 默认不支持
//非排序是否允许强过, 默认不支持, 不支持返回null, 存在可以跳过的数据且支持跳过返回true
String isAllowJump = getIsAllowJump(reqBean);
return StringUtils.isEmpty(isAllowJump) ? false : true;
return StringUtils.isEmpty(isAllowJump) ? null : true;
}
//非排序是否允许强过[工位参数]

@ -76,19 +76,19 @@ public class MesWorkOrderCheckNosortStepService extends MesWorkOrderCheckStepSer
Boolean isAllowJump = checkIsAllowJump(reqBean, cachedProductionPartContextList);
//不属于工艺强过码,如果此前存在顺序验证失败的数据 则清除此前的产出零件信息
if (!isCraftJumpCode && isAllowJump) {
if (StringUtils.isEmpty(isAllowJump) || (!isCraftJumpCode && isAllowJump)) {
//删除上下文产出零件信息
productionDispatchContextStepService.removeProductionPartContext(reqBean);
cachedProductionPartContextList = null;
}
//当前不允许强过
if (isCraftJumpCode && !isAllowJump)
if (isCraftJumpCode && (StringUtils.isEmpty(isAllowJump) || !isAllowJump))
return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()).
scanInfo(equipVariableCollectContextList.get(0).getEquipVariableValue()), stepResult, String.format("当前扫描信息工艺强过码[%s],当前不支持强过!", equipVariableCollectContextList.get(0).getEquipVariableValue()));
//允许强过,先更新数据
if (isCraftJumpCode && isAllowJump) {
if (isCraftJumpCode && !StringUtils.isEmpty(isAllowJump) && isAllowJump) {
updateProductionPartContextList(reqBean, cachedProductionPartContextList, equipVariableCollectContextList.get(0).getEquipVariableValue());
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()).
scanInfo(equipVariableCollectContextList.get(0).getEquipVariableValue()), stepResult, String.format("当前扫描信息工艺强过码[%s]!", equipVariableCollectContextList.get(0).getEquipVariableValue()));
@ -150,9 +150,9 @@ public class MesWorkOrderCheckNosortStepService extends MesWorkOrderCheckStepSer
private Boolean checkIsAllowJump(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList) {
Optional<MesProductionPartContext> optional = CollectionUtils.isEmpty(productionPartContextList) ? null : productionPartContextList.stream().filter(o -> (null != o && o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst();
if (null == optional || !optional.isPresent()) return false;
//非排序是否允许强过, 默认不支持
//非排序是否允许强过, 默认不支持, 不支持返回null, 存在可以跳过的数据且支持跳过返回true
String isAllowJump = getIsAllowJump(reqBean);
return StringUtils.isEmpty(isAllowJump) ? false : true;
return StringUtils.isEmpty(isAllowJump) ? null : true;
}
//非排序是否允许强过[工位参数]

@ -26,7 +26,10 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.StringJoiner;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -323,31 +326,6 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService {
});
}
//验证扫描信息属于工艺强过码 并且支持跳过,进行数据变更
private void updateProductionPartAndPsInContextList(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> cachedProductionPsInContextList, String craftJumpCode) {
productionPartContextList.forEach(o -> {
if (o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) {
o.setCraftJumpCode(craftJumpCode);
}
});
cachedProductionPsInContextList.forEach(o -> {
if (o.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) o.setCraftJumpCode(craftJumpCode);
});
//保存上下文产出零件信息
productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList);
}
//验证是否支持跳过
private Boolean checkIsAllowJump(List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> cachedProductionPsInContextList) {
Optional<MesProductionPartContext> optional1 = CollectionUtils.isEmpty(productionPartContextList) ? null : productionPartContextList.stream().filter(o -> (null != o && o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst();
Optional<MesProductionPsInContext> optional2 = CollectionUtils.isEmpty(cachedProductionPsInContextList) ? null : cachedProductionPsInContextList.stream().filter(o -> (null != o && o.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst();
if (null != optional1 && optional1.isPresent()) return true;
if (null != optional2 && optional2.isPresent()) return true;
return false;
}
public List<MesProductionPartContext> removeBusiData(StationRequestBean reqBean) {
productionDispatchContextStepService.removeProductionPartContext(reqBean);
productionDispatchContextStepService.removeProductionPsInContext(reqBean);
@ -356,24 +334,10 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService {
return null;
}
//验证扫描信息是否属于工艺强过码
public Boolean matchCraftJumpCode(MesProductionProcessContext productionProcessContext, List<MesEquipVariableCollectContext> equipVariableCollectContextList) {
if (equipVariableCollectContextList.size() != 1 || MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() != equipVariableCollectContextList.get(0).getMessageSource()) return false;
if (!equipVariableCollectContextList.get(0).getEquipVariableValue().equals(productionProcessContext.getCraftJumpCode())) return false;
return true;
}
//根据是否空腔搜集数据
public List<MesProductionPartContext> filterProductionPartContext(List<MesProductionPartContext> productionPartContextList, Boolean flag) {
return flag ? productionPartContextList.stream().filter(o -> (null != o && o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).collect(Collectors.toList()) :
productionPartContextList.stream().filter(o -> (null != o && o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0)).collect(Collectors.toList());
}
//验证是否全部为空腔
public Boolean checkIsAllFinishCode(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList) {
Optional<MesProductionPartContext> optional = productionPartContextList.stream().filter(o -> (null != o && o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst();
if (null != optional && optional.isPresent()) return false;
return true;
}
}

Loading…
Cancel
Save