|
|
@ -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,10 +253,6 @@ public class MesAssemblyGeneratePartNoStepService2 extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
|
|
if (null == productionAssemblyNosortContext) continue;
|
|
|
|
if (null == productionAssemblyNosortContext) continue;
|
|
|
|
|
|
|
|
|
|
|
|
//非扫描模式 或者 扫描模式情况下非可复用件
|
|
|
|
|
|
|
|
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) {
|
|
|
|
for (MesEquipVariableCollectContext equipVariableCollectContext : equipVariableCollectContextListTemp) {
|
|
|
|
|
|
|
|
|
|
|
|
//已被消费
|
|
|
|
//已被消费
|
|
|
@ -298,8 +298,6 @@ public class MesAssemblyGeneratePartNoStepService2 extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String getRepeatAssemblySn = getRepeatAssemblySn(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), productionAssemblyNosortContext);
|
|
|
|
String getRepeatAssemblySn = getRepeatAssemblySn(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), productionAssemblyNosortContext);
|
|
|
|
if (!StringUtils.isEmpty(getRepeatAssemblySn)) productionAssemblyNosortContext.assemblyStatus(getRepeatAssemblySn);
|
|
|
|
if (!StringUtils.isEmpty(getRepeatAssemblySn)) productionAssemblyNosortContext.assemblyStatus(getRepeatAssemblySn);
|
|
|
|
|
|
|
|
|