Merge remote-tracking branch 'origin/dev-wuhan-temp' into dev-wuhan-temp

tags/yfai-pcn-ext-v2.3
臧学普 6 months ago
commit f1b2f1ce53

@ -1,13 +1,13 @@
//package cn.estsh.i3plus.ext.mes.pcn.api.job;
//
//import java.util.Map;
//
//public interface IMesWorkOrderOfflineRestoreService {
//
// /**
// * 补录离线生产数据JOB
// * @param paramMap
// */
// void doRestoreWorkOrderOfflineData(Map<String, String> paramMap);
//
//}
package cn.estsh.i3plus.ext.mes.pcn.api.job;
import java.util.Map;
public interface IMesWorkOrderOfflineRestoreService {
/**
* 线JOB
* @param paramMap
*/
void doRestoreWorkOrderOfflineData(Map<String, String> paramMap);
}

@ -1,77 +1,77 @@
//package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob;
//
//
//import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderOfflineRestoreService;
//import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
//import cn.estsh.impp.framework.boot.init.ApplicationProperties;
//import com.alibaba.fastjson.JSONObject;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import org.quartz.DisallowConcurrentExecution;
//import org.quartz.JobExecutionContext;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//import org.springframework.util.CollectionUtils;
//import org.springframework.util.StopWatch;
//import org.springframework.util.StringUtils;
//
//import java.util.Map;
//
///**
// * @author wangjie
// * @Description 补录离线生产数据JOB
// * @version 1.0
// * @date 2021/2/2 16:44
// **/
//@Slf4j
//@DisallowConcurrentExecution
//@Component
//@ApiOperation("补录离线生产数据JOB")
//public class MesWorkOrderOfflineRestoreJob extends BaseMesScheduleJob {
//
// public MesWorkOrderOfflineRestoreJob() {
// super(MesWorkOrderOfflineRestoreJob.class, "补录离线生产数据JOB");
// }
//
// @Autowired
// private IMesWorkOrderOfflineRestoreService workOrderOfflineRestoreService;
//
// @Override
// public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) {
//
// String jobParam = this.getJobParam();
// if (StringUtils.isEmpty(jobParam)) {
// log.info("补录离线生产数据JOB --- 参数为空 ---");
// return;
// }
//
// Map<String, String> paramMap = JSONObject.parseObject(jobParam, Map.class);
//
// if (CollectionUtils.isEmpty(paramMap) || !paramMap.containsKey(MesPcnExtConstWords.ORGANIZE_CODE)) {
// log.info("补录离线生产数据JOB --- 参数未配置:工厂代码[organizeCode] ---");
// return;
// }
//
// StopWatch stopWatch = new StopWatch();
//
// try {
//
// stopWatch.start();
//
// workOrderOfflineRestoreService.doRestoreWorkOrderOfflineData(paramMap);
//
// } catch (Exception e) {
//
// log.info("补录离线生产数据JOB --- ERROR --- {} ---", e.toString());
//
// } finally {
//
// stopWatch.stop();
//
// log.info("补录离线生产数据JOB --- END --- 耗时: {} ms ---", stopWatch.getTotalTimeMillis());
//
// }
//
// }
//
//}
package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob;
import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderOfflineRestoreService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.impp.framework.boot.init.ApplicationProperties;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StopWatch;
import org.springframework.util.StringUtils;
import java.util.Map;
/**
* @author wangjie
* @Description 线JOB
* @version 1.0
* @date 2021/2/2 16:44
**/
@Slf4j
@DisallowConcurrentExecution
@Component
@ApiOperation("补录离线生产数据JOB")
public class MesWorkOrderOfflineRestoreJob extends BaseMesScheduleJob {
public MesWorkOrderOfflineRestoreJob() {
super(MesWorkOrderOfflineRestoreJob.class, "补录离线生产数据JOB");
}
@Autowired
private IMesWorkOrderOfflineRestoreService workOrderOfflineRestoreService;
@Override
public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) {
String jobParam = this.getJobParam();
if (StringUtils.isEmpty(jobParam)) {
log.info("补录离线生产数据JOB --- 参数为空 ---");
return;
}
Map<String, String> paramMap = JSONObject.parseObject(jobParam, Map.class);
if (CollectionUtils.isEmpty(paramMap) || !paramMap.containsKey(MesPcnExtConstWords.ORGANIZE_CODE)) {
log.info("补录离线生产数据JOB --- 参数未配置:工厂代码[organizeCode] ---");
return;
}
StopWatch stopWatch = new StopWatch();
try {
stopWatch.start();
workOrderOfflineRestoreService.doRestoreWorkOrderOfflineData(paramMap);
} catch (Exception e) {
log.info("补录离线生产数据JOB --- ERROR --- {} ---", e.toString());
} finally {
stopWatch.stop();
log.info("补录离线生产数据JOB --- END --- 耗时: {} ms ---", stopWatch.getTotalTimeMillis());
}
}
}

@ -1,52 +1,88 @@
//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job;
//
//import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderOfflineRestoreService;
//import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
//import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
//import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
//import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
//import cn.estsh.i3plus.pojo.mes.bean.offline.MesWorkOrderAssemblyOffline;
//import cn.estsh.i3plus.pojo.mes.repository.offline.MesWorkOrderAssemblyOfflineRepository;
//import cn.estsh.i3plus.pojo.mes.repository.offline.MesWorkOrderOfflineRepository;
//import cn.estsh.i3plus.pojo.mes.repository.offline.MesWorkOrderOfflineRestoreRecordRepository;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.List;
//import java.util.Map;
//
//@Slf4j
//@Service
//public class MesWorkOrderOfflineRestoreService implements IMesWorkOrderOfflineRestoreService {
//
// @Autowired
// private MesWorkOrderAssemblyOfflineRepository workOrderAssemblyOfflineRepository;
//
// @Autowired
// private MesWorkOrderOfflineRepository workOrderOfflineRepository;
//
// @Autowired
// private MesWorkOrderOfflineRestoreRecordRepository workOrderOfflineRestoreRecordRepository;
//
// @Override
// public void doRestoreWorkOrderOfflineData(Map<String, String> paramMap) {
//
// String organizeCode = paramMap.get(MesPcnExtConstWords.ORGANIZE_CODE);
//
// Integer qty = paramMap.containsKey(MesPcnExtConstWords.QTY) ? Integer.valueOf(paramMap.get(MesPcnExtConstWords.QTY)) : MesPcnExtConstWords.ONE_HUNDRED;
//
// Map<String, List<MesWorkOrderAssemblyOffline>> workOrderAssemblyOfflineMap = getWorkOrderAssemblyOfflineMap(organizeCode, qty);
//
//
// }
//
// private Map<String, List<MesWorkOrderAssemblyOffline>> getWorkOrderAssemblyOfflineMap(String organizeCode, Integer qty) {
//
// DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
// DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtConstWords.SYSTEM_SYNC_STATUS, packBean);
// List<MesWorkOrderAssemblyOffline> workOrderAssemblyOfflineList = workOrderAssemblyOfflineRepository.findByHqlTopWhere(packBean, qty);
//
// }
//
//}
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job;
import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderOfflineRestoreService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.offline.MesWorkOrderAssemblyOffline;
import cn.estsh.i3plus.pojo.mes.bean.offline.MesWorkOrderOfflineRestoreRecord;
import cn.estsh.i3plus.pojo.mes.repository.offline.MesWorkOrderAssemblyOfflineRepository;
import cn.estsh.i3plus.pojo.mes.repository.offline.MesWorkOrderOfflineRepository;
import cn.estsh.i3plus.pojo.mes.repository.offline.MesWorkOrderOfflineRestoreRecordRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
public class MesWorkOrderOfflineRestoreService implements IMesWorkOrderOfflineRestoreService {
@Autowired
private MesWorkOrderAssemblyOfflineRepository workOrderAssemblyOfflineRepository;
@Autowired
private MesWorkOrderOfflineRepository workOrderOfflineRepository;
@Autowired
private MesWorkOrderOfflineRestoreRecordRepository workOrderOfflineRestoreRecordRepository;
@Override
public void doRestoreWorkOrderOfflineData(Map<String, String> paramMap) {
String organizeCode = paramMap.get(MesPcnExtConstWords.ORGANIZE_CODE);
Integer qty = paramMap.containsKey(MesPcnExtConstWords.QTY) ? Integer.valueOf(paramMap.get(MesPcnExtConstWords.QTY)) : MesPcnExtConstWords.ONE_HUNDRED;
Map<String, List<MesWorkOrderAssemblyOffline>> workOrderAssemblyOfflineMap = getWorkOrderAssemblyOfflineMap(organizeCode, qty);
if (CollectionUtils.isEmpty(workOrderAssemblyOfflineMap)) return;
Map<String, MesWorkOrderOfflineRestoreRecord> workOrderOfflineRestoreRecordMap = getWorkOrderOfflineRestoreRecordMap(organizeCode, new ArrayList<>(workOrderAssemblyOfflineMap.keySet()));
for (Map.Entry<String, List<MesWorkOrderAssemblyOffline>> entry : workOrderAssemblyOfflineMap.entrySet()) {
if (null == entry) continue;
List<MesWorkOrderAssemblyOffline> workOrderAssemblyOfflineList = entry.getValue();
}
}
//查询排序工单装配件离线数据[未同步的数据]
private Map<String, List<MesWorkOrderAssemblyOffline>> getWorkOrderAssemblyOfflineMap(String organizeCode, Integer qty) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtConstWords.SYSTEM_SYNC_STATUS, packBean);
List<MesWorkOrderAssemblyOffline> workOrderAssemblyOfflineList = workOrderAssemblyOfflineRepository.findByHqlTopWhere(packBean, qty);
if (CollectionUtils.isEmpty(workOrderAssemblyOfflineList)) log.info("补录离线生产数据JOB --- 当前没有需要补录的工单装配件离线数据 ---");
return CollectionUtils.isEmpty(workOrderAssemblyOfflineList) ? null :
workOrderAssemblyOfflineList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssemblyOffline::getWorkOrderNo));
}
//离线工单补录记录表
private Map<String, MesWorkOrderOfflineRestoreRecord> getWorkOrderOfflineRestoreRecordMap(String organizeCode, List<String> workOrderNoList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workOrderNoList, MesPcnExtConstWords.WORK_ORDER_NO, packBean);
List<MesWorkOrderOfflineRestoreRecord> workOrderOfflineRestoreRecordList = workOrderOfflineRestoreRecordRepository.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(workOrderOfflineRestoreRecordList)) return null;
workOrderOfflineRestoreRecordList = workOrderOfflineRestoreRecordList.stream().filter(o -> null != o).
collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesWorkOrderOfflineRestoreRecord::getWorkOrderNo))), ArrayList::new));
Map<String, MesWorkOrderOfflineRestoreRecord> workOrderOfflineRestoreRecordMap = workOrderOfflineRestoreRecordList.stream().filter(o -> null != o).collect(Collectors.toMap(MesWorkOrderOfflineRestoreRecord::getWorkOrderNo, o -> o));
log.info("补录离线生产数据JOB --- 查询到已补录过的生产工单包含: {} ---", workOrderOfflineRestoreRecordMap.keySet().toString());
return workOrderOfflineRestoreRecordMap;
}
}

@ -42,7 +42,7 @@ public class MesNumberRuleMatchRegularExpressionService implements IMesNumberRul
return result;
}
private /**static**/ Boolean match(String ruleStr, String barCode) {
private /*static*/ Boolean match(String ruleStr, String barCode) {
if (StringUtils.isEmpty(ruleStr)) {
return false;
}
@ -79,17 +79,17 @@ public class MesNumberRuleMatchRegularExpressionService implements IMesNumberRul
return false;
}
public /**static**/ String transfer(String str){
public /*static*/ String transfer(String str){
// 1. 定义正则表达式,匹配特殊字符
String regex = "[^a-zA-Z0-9^\\s^*?[)>.:^/]]";
// 2. 使用正则表达式替换特殊字符为空字符串
return str.replaceAll(regex, "");
}
// public static void main(String[] args) {
// String sn = "M00061603-R80512000";
// String matchRule = "M00061596*";
// System.out.println(match(matchRule, sn));
// }
/* public static void main(String[] args) {
String sn = "[)>@06@Y8360100000000B@P26462392@12V654406818@T1124107207000344@@";
String matchRule = "*26462392*";
System.out.println(match(matchRule, sn));
}*/
}

@ -136,7 +136,9 @@ public class MesProdCraftRouteCheckNosortStepService extends MesProdCraftRouteCh
for (MesProductionPsInContext productionPsInContext : productionPsInContextList) {
if (null == productionPsInContext || StringUtils.isEmpty(productionPsInContext.getPartNo()) || productionPsInContext.getCheckCraftResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
if (null == productionPsInContext) continue;
if (StringUtils.isEmpty(productionPsInContext.getPartNo())) continue;
if (productionPsInContext.getCheckCraftResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
//前道工艺防错验证
Boolean result = doProdCraftRouteCheckNosort(reqBean, stepResult, productionProcessContext, productionPsInContext, craftRouteDataMap.get(productionPsInContext.getPartNo()), suffix);

@ -99,7 +99,9 @@ public class MesProdCraftRouteCheckSortStepService extends MesProdCraftRouteChec
for (MesProductionPsInContext productionPsInContext : productionPsInContextList) {
if (null == productionPsInContext || StringUtils.isEmpty(productionPsInContext.getPartNo()) || productionPsInContext.getCheckCraftResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
if (null == productionPsInContext) continue;
if (StringUtils.isEmpty(productionPsInContext.getPartNo())) continue;
if (productionPsInContext.getCheckCraftResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
//前道工艺防错验证
Boolean result = doProdCraftRouteCheckSort(reqBean, stepResult, productionProcessContext, productionPsInContext, craftRouteDataMap.get(productionPsInContext.getPartNo()));

@ -80,7 +80,9 @@ public class MesProdCraftRouteCheckStepService extends BaseStepService {
for (MesProductionPsInContext productionPsInContext : productionPsInContextList) {
if (null == productionPsInContext || productionPsInContext.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0 || StringUtils.isEmpty(productionPsInContext.getCraftJumpCode())) continue;
if (null == productionPsInContext) continue;
if (productionPsInContext.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) continue;
if (StringUtils.isEmpty(productionPsInContext.getCraftJumpCode())) continue;
if (CollectionUtils.isEmpty(productSnList2Jump)) productSnList2Jump = new ArrayList<>();

@ -76,13 +76,14 @@ public class MesProductSeqCheckCustOrderNoStepService extends MesProductSeqCheck
for (MesProductionPartContext productionPartContext : productionPartContextList) {
if (null == productionPartContext || productionPartContext.getCustomCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0 || StringUtils.isEmpty(productionPartContext.getCraftJumpCode())) continue;
if (null == productionPartContext) continue;
if (productionPartContext.getCustomCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) continue;
if (StringUtils.isEmpty(productionPartContext.getCraftJumpCode())) continue;
if (CollectionUtils.isEmpty(workOrderNoList2Jump)) workOrderNoList2Jump = new ArrayList<>();
workOrderNoList2Jump.add(productionPartContext.getWorkOrderNo());
//验证成功不需要标记【checkSeqResult】
productionPartContext.customCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
}
@ -108,14 +109,14 @@ public class MesProductSeqCheckCustOrderNoStepService extends MesProductSeqCheck
for (MesProductionPartContext productionPartContext : productionPartContextList) {
if (null == productionPartContext || StringUtils.isEmpty(productionPartContext.getWorkOrderNo()) || productionPartContext.getCustomCheckSeqResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
if (null == productionPartContext) continue;
if (StringUtils.isEmpty(productionPartContext.getWorkOrderNo())) continue;
if (productionPartContext.getCustomCheckSeqResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
//顺序防错验证
Boolean result = doProductSeqCheckSort(reqBean, stepResult, productionProcessContext, productionPartContext);
//验证失败需要同时标记【checkSeqResult】,但验证成功不需要标记【checkSeqResult】
if (result) productionPartContext.customCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
else productionPartContext.customCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()).checkSeqResult(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
productionPartContext.customCheckSeqResult(!result ? CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() : CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
workOrderNoList.add(productionPartContext.getWorkOrderNo());

@ -81,14 +81,16 @@ public class MesProductSeqCheckNosortStepService extends MesProductSeqCheckStepS
}
//顺序防错验证处理h
//顺序防错验证处理
private void doHandleProductSeqCheck(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List<MesProductionPartContext> productionPartContextList) {
List<String> workOrderNoList = new ArrayList<>();
for (MesProductionPartContext productionPartContext : productionPartContextList) {
if (null == productionPartContext || StringUtils.isEmpty(productionPartContext.getWorkOrderNo()) || productionPartContext.getCheckSeqResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
if (null == productionPartContext) continue;
if (StringUtils.isEmpty(productionPartContext.getWorkOrderNo())) continue;
if (productionPartContext.getCheckSeqResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
//顺序防错验证
Boolean result = doProductSeqCheckNosort(reqBean, stepResult, productionProcessContext, productionPartContext);

@ -79,7 +79,9 @@ public class MesProductSeqCheckSortStepService extends MesProductSeqCheckStepSer
for (MesProductionPartContext productionPartContext : productionPartContextList) {
if (null == productionPartContext || StringUtils.isEmpty(productionPartContext.getWorkOrderNo()) || productionPartContext.getCheckSeqResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
if (null == productionPartContext) continue;
if (StringUtils.isEmpty(productionPartContext.getWorkOrderNo())) continue;
if (productionPartContext.getCheckSeqResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
//顺序防错验证
Boolean result = doProductSeqCheckSort(reqBean, stepResult, productionProcessContext, productionPartContext);

@ -85,7 +85,9 @@ public class MesProductSeqCheckStepService extends BaseStepService {
for (MesProductionPartContext productionPartContext : productionPartContextList) {
if (null == productionPartContext || productionPartContext.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0 || StringUtils.isEmpty(productionPartContext.getCraftJumpCode())) continue;
if (null == productionPartContext) continue;
if (productionPartContext.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) continue;
if (StringUtils.isEmpty(productionPartContext.getCraftJumpCode())) continue;
if (CollectionUtils.isEmpty(workOrderNoList2Jump)) workOrderNoList2Jump = new ArrayList<>();

@ -146,24 +146,29 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi
}
//验证是否支持跳过
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();
private Boolean checkIsAllowJump(List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> productionPsInContextList) {
Optional<MesProductionPartContext> optional1 = CollectionUtils.isEmpty(productionPartContextList) ? null :
productionPartContextList.stream().filter(o -> (null != o && (o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0 || o.getCustomCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0))).findFirst();
Optional<MesProductionPsInContext> optional2 = CollectionUtils.isEmpty(productionPsInContextList) ? null :
productionPsInContextList.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;
}
//验证扫描信息属于工艺强过码 并且支持跳过,进行数据变更
private void updateProductionPartAndPsInContextList(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> cachedProductionPsInContextList, String craftJumpCode) {
private void updateProductionPartAndPsInContextList(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> productionPsInContextList, String craftJumpCode) {
productionPartContextList.forEach(o -> {
if (o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) o.setCraftJumpCode(craftJumpCode);
if (o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0 &&
(o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0 || o.getCustomCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0)) o.setCraftJumpCode(craftJumpCode);
});
cachedProductionPsInContextList.forEach(o -> {
if (o.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) o.setCraftJumpCode(craftJumpCode);
productionPsInContextList.forEach(o -> {
if (o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0 && o.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0) o.setCraftJumpCode(craftJumpCode);
});
//保存上下文产出零件信息
productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList);
//保存上下文条码信息
productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList);
}
//验证工单的有效性

@ -114,7 +114,7 @@ public class MesProductionPartContext implements Serializable {
@ApiParam("顺序防错结果")
private Integer checkSeqResult = MesPcnExtConstWords.ZERO;
//默认未验证, 验证失败需要同时标记【checkSeqResult】,但验证成功不需要标记【checkSeqResult】, 目前使用场景【通用汽车顺序防错验证客户订单号的流水号】
//默认未验证, 目前使用场景【通用汽车顺序防错验证客户订单号的流水号】
@ApiParam("附加客制化顺序防错结果")
private Integer customCheckSeqResult = MesPcnExtConstWords.ZERO;

Loading…
Cancel
Save