非排序无显示装配件匹配工步

tags/yfai-pcn-ext-v2.3
王杰 8 months ago
parent 8655825afc
commit 99437630bf

@ -24,12 +24,12 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* @Description : * @Description :
* @Author : wangjie * @Author : wangjie
**/ **/
@Slf4j @Slf4j
@Service("mesAssemblyGeneratePartNoStepService2") @Service("mesAssemblyMatchNosortRetrodictStepService")
public class MesAssemblyGeneratePartNoStepService2 extends BaseStepService { public class MesAssemblyMatchNosortRetrodictStepService extends BaseStepService {
@Autowired @Autowired
private IFsmCommonService fsmCommonService; private IFsmCommonService fsmCommonService;
@ -124,15 +124,19 @@ public class MesAssemblyGeneratePartNoStepService2 extends BaseStepService {
//未知腔数配置【工位参数】, 不验证装配件条码的个数 //未知腔数配置【工位参数】, 不验证装配件条码的个数
String cavityUnknownCfg = getCavityUnknownCfg(reqBean); String cavityUnknownCfg = getCavityUnknownCfg(reqBean);
//根据设备代码获取可复用条码的个数
Integer repeatAssemblySnCount = productionCustomContextStepService.getRepeatAssemblySnCount(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), cellEquipContext.getEquipmentCode());
Integer repeatAssemblySnAmount = repeatAssemblySnCount * (!CollectionUtils.isEmpty(curProductionPsInContextList) ? curProductionPsInContextList.size() : 1);
//非未知腔数,验证装配件条码个数是否匹配 腔数或者未匹配的主条码个数*每腔个数 //非未知腔数,验证装配件条码个数是否匹配 腔数或者未匹配的主条码个数*每腔个数
if (StringUtils.isEmpty(cavityUnknownCfg) && equipVariableCollectContextList.size() != (!CollectionUtils.isEmpty(curProductionPsInContextList) ? curProductionPsInContextList.size() : cellEquipContext.getCavity()) * cellEquipContext.getBindQty()) { if (StringUtils.isEmpty(cavityUnknownCfg) && (equipVariableCollectContextList.size() + repeatAssemblySnAmount) != (!CollectionUtils.isEmpty(curProductionPsInContextList) ? curProductionPsInContextList.size() : cellEquipContext.getCavity()) * cellEquipContext.getBindQty()) {
String suffix = repeatAssemblySnAmount == 0 ? MesPcnExtConstWords.EMPTY : String.format(",可复用个数[%s]", repeatAssemblySnAmount);
if (!CollectionUtils.isEmpty(curProductionPsInContextList)) { if (!CollectionUtils.isEmpty(curProductionPsInContextList)) {
productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toList())); productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toList()));
return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(assemblySn), stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_PRODUCT_SN), return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(assemblySn), stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_PRODUCT_SN),
String.format("当前装配件条码个数[%s]不满足主条码个数[%s]每腔个数[%s]配置!", equipVariableCollectContextList.size(), curProductionPsInContextList.size(), cellEquipContext.getBindQty())); String.format("当前装配件条码个数[%s]%s不满足主条码个数[%s]每腔个数[%s]配置!", equipVariableCollectContextList.size(), suffix, curProductionPsInContextList.size(), cellEquipContext.getBindQty()));
} else { } else {
return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(assemblySn), stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_ASSEMBLY), return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(assemblySn), stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_ASSEMBLY),
String.format("当前装配件条码个数[%s]不满足腔数[%s]每腔个数[%s]配置!", equipVariableCollectContextList.size(), cellEquipContext.getCavity(), cellEquipContext.getBindQty())); String.format("当前装配件条码个数[%s]%s不满足腔数[%s]每腔个数[%s]配置!", equipVariableCollectContextList.size(), suffix, cellEquipContext.getCavity(), cellEquipContext.getBindQty()));
} }
} }
@ -249,54 +253,48 @@ public class MesAssemblyGeneratePartNoStepService2 extends BaseStepService {
if (null == productionAssemblyNosortContext) continue; if (null == productionAssemblyNosortContext) continue;
//非扫描模式 或者 扫描模式情况下非可复用件 for (MesEquipVariableCollectContext equipVariableCollectContext : equipVariableCollectContextListTemp) {
if (equipVariableCollectContextList.get(0).getMessageSource().compareTo(MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue()) != 0 ||
StringUtils.isEmpty(productionAssemblyNosortContext.getIsRepeat()) || productionAssemblyNosortContext.getIsRepeat().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0) {
for (MesEquipVariableCollectContext equipVariableCollectContext : equipVariableCollectContextListTemp) { //已被消费
if (null == equipVariableCollectContext || equipVariableCollectContext.getIsConsume().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) continue;
//已被消费 //匹配规则
if (null == equipVariableCollectContext || equipVariableCollectContext.getIsConsume().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) continue; Map<String, Object> result = numberRuleMatchDispatchService.matchNumberRule(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext);
//匹配规则 //匹配失败
Map<String, Object> result = numberRuleMatchDispatchService.matchNumberRule(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext); if (!(Boolean) result.get(MesPcnExtConstWords.RESULT)) {
String msg = (String) result.get(MesPcnExtConstWords.MESSAGE);
//匹配失败 stepResult.obj(String.format("%s%s", StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj(), StringUtils.isEmpty(msg) ? MesPcnExtConstWords.EMPTY : msg));
if (!(Boolean) result.get(MesPcnExtConstWords.RESULT)) { continue;
String msg = (String) result.get(MesPcnExtConstWords.MESSAGE); }
stepResult.obj(String.format("%s%s", StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj(), StringUtils.isEmpty(msg) ? MesPcnExtConstWords.EMPTY : msg));
continue;
}
MesProductionAssemblyNosortContext filter = (MesProductionAssemblyNosortContext) result.get(MesPcnExtConstWords.DATA); MesProductionAssemblyNosortContext filter = (MesProductionAssemblyNosortContext) result.get(MesPcnExtConstWords.DATA);
//前道防错 //前道防错
if (!StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblyNosortContext.getPreCraftCode())) { if (!StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblyNosortContext.getPreCraftCode())) {
if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) { if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) {
stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(),
String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))); String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode())));
continue; continue;
}
} }
}
//时效性验证 //时效性验证
if (!StringUtils.isEmpty(filter.getProductSnId())) { if (!StringUtils.isEmpty(filter.getProductSnId())) {
result = timeEfficientCfgMatchService.checkSnTimeliness(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), filter.getSourceId(), MesExtEnumUtil.TIME_DATA_SOURCE.DATA_SOURCE30.getValue()); result = timeEfficientCfgMatchService.checkSnTimeliness(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), filter.getSourceId(), MesExtEnumUtil.TIME_DATA_SOURCE.DATA_SOURCE30.getValue());
if (!(Boolean)result.get(MesPcnExtConstWords.RESULT)) { if (!(Boolean)result.get(MesPcnExtConstWords.RESULT)) {
stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), result.get(MesPcnExtConstWords.MESSAGE))); stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), result.get(MesPcnExtConstWords.MESSAGE)));
continue; continue;
}
} }
}
//装配件清单该数据标记已装配 //装配件清单该数据标记已装配
productionAssemblyNosortContext.assemblyStatus(equipVariableCollectContext.getEquipVariableValue()).productSnId(filter.getProductSnId()); productionAssemblyNosortContext.assemblyStatus(equipVariableCollectContext.getEquipVariableValue()).productSnId(filter.getProductSnId());
//临时数据标记已消费
equipVariableCollectContext.isConsume();
break; //临时数据标记已消费
equipVariableCollectContext.isConsume();
} break;
} }
Loading…
Cancel
Save