forked from I3-YF/i3plus-mes-pcn-yfai
等离子功能开发
parent
023203efaf
commit
33cbf3d537
@ -0,0 +1,33 @@
|
|||||||
|
package cn.estsh.i3plus.ext.mes.pcn.api.busi.recyclablepackage;
|
||||||
|
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBinding;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingDetail;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingLog;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description : 回收包装绑定LOG
|
||||||
|
* @Reference :
|
||||||
|
* @Author : junsheng.li
|
||||||
|
* @CreateDate 2024/9/13 10:04
|
||||||
|
* @Modify:
|
||||||
|
**/
|
||||||
|
public interface IMesRecyclablePackageBindingLogService {
|
||||||
|
|
||||||
|
@ApiOperation("写入操作记录(创建)")
|
||||||
|
MesRecyclablePackageBindingLog insertCreate(MesRecyclablePackageBinding mesRecyclablePackageBinding);
|
||||||
|
|
||||||
|
@ApiOperation("写入操作记录(关箱)")
|
||||||
|
MesRecyclablePackageBindingLog insertClose(MesRecyclablePackageBinding mesRecyclablePackageBinding);
|
||||||
|
|
||||||
|
@ApiOperation("写入操作记录(绑定)")
|
||||||
|
MesRecyclablePackageBindingLog insertBinding(MesRecyclablePackageBinding mesRecyclablePackageBinding, MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail);
|
||||||
|
|
||||||
|
@ApiOperation("写入操作记录(解绑)")
|
||||||
|
MesRecyclablePackageBindingLog insertUnBinding(MesRecyclablePackageBinding mesRecyclablePackageBinding, MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail);
|
||||||
|
|
||||||
|
@ApiOperation("写入操作记录(解绑)")
|
||||||
|
void insertUnBinding(MesRecyclablePackageBinding mesRecyclablePackageBinding, List<MesRecyclablePackageBindingDetail> mesRecyclablePackageBindingDetail);
|
||||||
|
}
|
@ -0,0 +1,97 @@
|
|||||||
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.recyclablepackage;
|
||||||
|
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.recyclablepackage.IMesRecyclablePackageBindingLogService;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||||
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBinding;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingDetail;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingLog;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.repository.recyclablepackage.MesRecyclablePackageBindingLogRepository;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||||
|
import groovy.util.logging.Slf4j;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description : 回收包装绑定LOG
|
||||||
|
* @Reference :
|
||||||
|
* @Author : junsheng.li
|
||||||
|
* @CreateDate 2024/9/13 9:18
|
||||||
|
* @Modify:
|
||||||
|
**/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class MesRecyclablePackageBindingLogServiceImpl implements IMesRecyclablePackageBindingLogService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MesRecyclablePackageBindingLogRepository mesRecyclablePackageBindingLogRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MesRecyclablePackageBindingLog insertCreate(MesRecyclablePackageBinding mesRecyclablePackageBinding) {
|
||||||
|
return insert(mesRecyclablePackageBinding, MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_MODIFY_TYPE.CREATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MesRecyclablePackageBindingLog insertClose(MesRecyclablePackageBinding mesRecyclablePackageBinding) {
|
||||||
|
return insert(mesRecyclablePackageBinding, MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_MODIFY_TYPE.CLOSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MesRecyclablePackageBindingLog insertBinding(MesRecyclablePackageBinding mesRecyclablePackageBinding, MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail) {
|
||||||
|
return insert(mesRecyclablePackageBinding, mesRecyclablePackageBindingDetail, MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_MODIFY_TYPE.BINDING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MesRecyclablePackageBindingLog insertUnBinding(MesRecyclablePackageBinding mesRecyclablePackageBinding, MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail) {
|
||||||
|
return insert(mesRecyclablePackageBinding, mesRecyclablePackageBindingDetail, MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_MODIFY_TYPE.UN_BINDING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertUnBinding(MesRecyclablePackageBinding mesRecyclablePackageBinding, List<MesRecyclablePackageBindingDetail> mesRecyclablePackageBindingDetailList) {
|
||||||
|
List<MesRecyclablePackageBindingLog> logList = new ArrayList<>();
|
||||||
|
MesRecyclablePackageBindingLog mesRecyclablePackageBindingLog;
|
||||||
|
for (MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail : mesRecyclablePackageBindingDetailList) {
|
||||||
|
mesRecyclablePackageBindingLog = new MesRecyclablePackageBindingLog();
|
||||||
|
BeanUtils.copyProperties(mesRecyclablePackageBinding, mesRecyclablePackageBindingLog, MesPcnExtConstWords.ID, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME);
|
||||||
|
//明细数据填充
|
||||||
|
mesRecyclablePackageBindingLog.setPackageSn(mesRecyclablePackageBindingDetail.getProductSn());
|
||||||
|
mesRecyclablePackageBindingLog.setPartNo(mesRecyclablePackageBindingDetail.getPartNo());
|
||||||
|
mesRecyclablePackageBindingLog.setPartName(mesRecyclablePackageBindingDetail.getPartName());
|
||||||
|
mesRecyclablePackageBindingLog.setQty(mesRecyclablePackageBindingDetail.getQty());
|
||||||
|
mesRecyclablePackageBindingLog.setOrderCode(mesRecyclablePackageBindingDetail.getOrderCode());
|
||||||
|
mesRecyclablePackageBindingLog.setLotNumber(mesRecyclablePackageBindingDetail.getLotNumber());
|
||||||
|
mesRecyclablePackageBindingLog.setModifyType(MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_MODIFY_TYPE.UN_BINDING.getValue());
|
||||||
|
ConvertBean.serviceModelInitialize(mesRecyclablePackageBindingLog, mesRecyclablePackageBindingDetail.getModifyUser());
|
||||||
|
logList.add(mesRecyclablePackageBindingLog);
|
||||||
|
}
|
||||||
|
mesRecyclablePackageBindingLogRepository.saveAll(logList);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MesRecyclablePackageBindingLog insert(MesRecyclablePackageBinding mesRecyclablePackageBinding, MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_MODIFY_TYPE modifyType) {
|
||||||
|
MesRecyclablePackageBindingLog mesRecyclablePackageBindingLog = new MesRecyclablePackageBindingLog();
|
||||||
|
BeanUtils.copyProperties(mesRecyclablePackageBinding, mesRecyclablePackageBindingLog, MesPcnExtConstWords.ID, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME);
|
||||||
|
mesRecyclablePackageBindingLog.setModifyType(modifyType.getValue());
|
||||||
|
ConvertBean.serviceModelInitialize(mesRecyclablePackageBindingLog, mesRecyclablePackageBinding.getModifyUser());
|
||||||
|
return mesRecyclablePackageBindingLogRepository.insert(mesRecyclablePackageBindingLog);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MesRecyclablePackageBindingLog insert(MesRecyclablePackageBinding mesRecyclablePackageBinding, MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail, MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_MODIFY_TYPE modifyType) {
|
||||||
|
MesRecyclablePackageBindingLog mesRecyclablePackageBindingLog = new MesRecyclablePackageBindingLog();
|
||||||
|
BeanUtils.copyProperties(mesRecyclablePackageBinding, mesRecyclablePackageBindingLog, MesPcnExtConstWords.ID, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME);
|
||||||
|
//明细数据填充
|
||||||
|
mesRecyclablePackageBindingLog.setPackageSn(mesRecyclablePackageBindingDetail.getProductSn());
|
||||||
|
mesRecyclablePackageBindingLog.setPartNo(mesRecyclablePackageBindingDetail.getPartNo());
|
||||||
|
mesRecyclablePackageBindingLog.setPartName(mesRecyclablePackageBindingDetail.getPartName());
|
||||||
|
mesRecyclablePackageBindingLog.setQty(mesRecyclablePackageBindingDetail.getQty());
|
||||||
|
mesRecyclablePackageBindingLog.setOrderCode(mesRecyclablePackageBindingDetail.getOrderCode());
|
||||||
|
mesRecyclablePackageBindingLog.setLotNumber(mesRecyclablePackageBindingDetail.getLotNumber());
|
||||||
|
mesRecyclablePackageBindingLog.setModifyType(modifyType.getValue());
|
||||||
|
ConvertBean.serviceModelInitialize(mesRecyclablePackageBindingLog, mesRecyclablePackageBindingDetail.getModifyUser());
|
||||||
|
return mesRecyclablePackageBindingLogRepository.insert(mesRecyclablePackageBindingLog);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.processmethod;
|
||||||
|
|
||||||
|
import groovy.util.logging.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
/**
|
||||||
|
* @Description : 原箱进原箱出
|
||||||
|
* @Reference :
|
||||||
|
* @Author : junsheng.li
|
||||||
|
* @CreateDate 2024/9/12 21:24
|
||||||
|
* @Modify:
|
||||||
|
**/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class MesProcessMethodSourceBoxInOutServiceImpl {
|
||||||
|
}
|
@ -0,0 +1,201 @@
|
|||||||
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
||||||
|
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.recyclablepackage.IMesRecyclablePackageBindingService;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||||
|
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService;
|
||||||
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBinding;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingDetail;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.model.StepResult;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description : 原箱进原箱出
|
||||||
|
* @Reference :
|
||||||
|
* @Author : junsheng.li
|
||||||
|
* @CreateDate 2024/9/12 11:20
|
||||||
|
* @Modify:
|
||||||
|
**/
|
||||||
|
@Slf4j
|
||||||
|
@Service("mesProcessMethodSourceBoxInOutStepService")
|
||||||
|
public class MesProcessMethodSourceBoxInOutStepService extends BaseStepService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMesRecyclablePackageBindingService mesRecyclablePackageBindingService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMesProduceSnExtService produceSnExtService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IConfigService configService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StepResult execute(StationRequestBean reqBean) {
|
||||||
|
|
||||||
|
StationResultBean resultBean = new StationResultBean();
|
||||||
|
|
||||||
|
StepResult stepResult = StepResult.getSuccessComplete();
|
||||||
|
|
||||||
|
//获取上下文信息
|
||||||
|
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean);
|
||||||
|
|
||||||
|
//配置错误 抛出异常
|
||||||
|
if (!productionProcessContext.getSuccess()){
|
||||||
|
stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
//存储生产过程上下文对象
|
||||||
|
productionProcessContextStepService.dispatchProductionProcessContext(reqBean, productionProcessContext);
|
||||||
|
|
||||||
|
//获取上下文生产扫/读信息:可回用包装条码
|
||||||
|
List<MesEquipVariableCollectContext> equipVariableCollectContextList = productionDispatchContextStepService.getScanRecyclablePackageContext(reqBean);
|
||||||
|
if (CollectionUtils.isEmpty(equipVariableCollectContextList)){
|
||||||
|
return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前缺失可回用包装条码信息!");
|
||||||
|
}
|
||||||
|
|
||||||
|
//清除本次已获取得到的可回用包装条码信息
|
||||||
|
productionDispatchContextStepService.removeScanRecyclablePackageContext(reqBean);
|
||||||
|
|
||||||
|
//从上下文中取出工位对象
|
||||||
|
MesWorkCell workCell = productionProcessContext.getWorkCell();
|
||||||
|
|
||||||
|
List<MesProductionPsInContext> productionPsInContextList = new ArrayList<>();
|
||||||
|
|
||||||
|
if (!sourceBoxInOut(reqBean, equipVariableCollectContextList, stepResult, productionPsInContextList, workCell).isCompleted()) {
|
||||||
|
return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg());
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取进料主条码数据信息
|
||||||
|
List<MesProductionPsInContext> productionPsInContext = productionDispatchContextStepService.getProductionPsInContext(reqBean);
|
||||||
|
if (!CollectionUtils.isEmpty(productionPsInContext)) {
|
||||||
|
productionPsInContextList.addAll(productionPsInContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
//保存进料主条码数据
|
||||||
|
productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList);
|
||||||
|
|
||||||
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("可回用包装条码%s状态成功!", equipVariableCollectContextList.iterator().next().getEquipVariableValue()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public StepResult sourceBoxInOut(StationRequestBean reqBean, List<MesEquipVariableCollectContext> equipVariableCollectContextList, StepResult stepResult, List<MesProductionPsInContext> productionPsInContextList, MesWorkCell workCell) {
|
||||||
|
//获取包装绑定主表
|
||||||
|
MesRecyclablePackageBinding recyclablePackageBinding = mesRecyclablePackageBindingService.getMesRecyclablePackageBindingByPackageSn(reqBean.getOrganizeCode(), equipVariableCollectContextList.iterator().next().getEquipVariableValue());
|
||||||
|
if (Objects.isNull(recyclablePackageBinding))
|
||||||
|
return stepResult.isCompleted(false).msg(String.format("回收包装绑定[%s]信息不存在", equipVariableCollectContextList.iterator().next().getEquipVariableValue()));
|
||||||
|
//校验状态
|
||||||
|
if (MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_STATUS.CLOSED.getValue() != recyclablePackageBinding.getStatus()) {
|
||||||
|
return stepResult.isCompleted(false).msg(String.format("回收包装绑定[%s]状态不为[已关箱]", equipVariableCollectContextList.iterator().next().getEquipVariableValue()));
|
||||||
|
}
|
||||||
|
//获取绑定明细信息
|
||||||
|
List<MesRecyclablePackageBindingDetail> bindingDetailList = mesRecyclablePackageBindingService.findMesRecyclablePackageBindingDetailByPid(reqBean.getOrganizeCode(), recyclablePackageBinding.getId());
|
||||||
|
|
||||||
|
if (CollectionUtils.isEmpty(bindingDetailList))
|
||||||
|
return stepResult.isCompleted(false).msg(String.format("回收包装绑定[%s]明细信息不存在", equipVariableCollectContextList.iterator().next().getEquipVariableValue()));
|
||||||
|
//查询条码信息
|
||||||
|
Map<String, List<MesProduceSn>> produceSnMap = produceSnExtService.getProduceSnMap(reqBean.getOrganizeCode(), bindingDetailList.stream().map(MesRecyclablePackageBindingDetail::getProductSn).collect(Collectors.toList()));
|
||||||
|
for (MesRecyclablePackageBindingDetail bindingDetail : bindingDetailList) {
|
||||||
|
//外协件
|
||||||
|
if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(bindingDetail.getProductSn())) {
|
||||||
|
for (int i = 0; i < bindingDetail.getQty(); i++) {
|
||||||
|
productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), bindingDetail.getProductSn()).messageSource(equipVariableCollectContextList.iterator().next().getMessageSource()));
|
||||||
|
}
|
||||||
|
//自制件
|
||||||
|
} else {
|
||||||
|
createProductionPsInContext(reqBean, stepResult, workCell, equipVariableCollectContextList.iterator().next(), produceSnMap.get(bindingDetail.getProductSn()), productionPsInContextList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return stepResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private StepResult createProductionPsInContext(StationRequestBean reqBean, StepResult stepResult, MesWorkCell workCell,
|
||||||
|
MesEquipVariableCollectContext equipVariableCollectContext, List<MesProduceSn> produceSnList, List<MesProductionPsInContext> productionPsInContextList) {
|
||||||
|
|
||||||
|
String suffixMsg = !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() + MesPcnExtConstWords.SEMICOLON : MesPcnExtConstWords.EMPTY;
|
||||||
|
|
||||||
|
List<MesProduceSn> unknowList = produceSnList.stream().filter(o -> (null != o && o.getSnStatus().compareTo(MesExtEnumUtil.PRODUCE_SN_STATUS.UNKNOW.getValue()) == 0)).collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (!CollectionUtils.isEmpty(unknowList) && unknowList.size() > 1) {
|
||||||
|
return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]信息异常,存在[%s]条[未知]状态的记录", suffixMsg, equipVariableCollectContext.getEquipVariableValue(), unknowList.size()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!CollectionUtils.isEmpty(unknowList) && checkAllowUnknowCenterCfg(reqBean) && (unknowList.size() > 1 || (!unknowList.get(0).getWorkCenterCode().equals(reqBean.getWorkCenterCode()) || !unknowList.get(0).getWorkCellCode().equals(reqBean.getWorkCellCode())))) {
|
||||||
|
return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]信息条码状态已被%s标记[未知]", suffixMsg, equipVariableCollectContext.getEquipVariableValue(),
|
||||||
|
unknowList.stream().filter(Objects::nonNull).map(o -> new StringJoiner(MesPcnExtConstWords.AND).add(o.getWorkCenterCode()).add(o.getWorkCellCode()).toString()).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON))));
|
||||||
|
}
|
||||||
|
|
||||||
|
produceSnList = produceSnList.stream().filter(Objects::nonNull).sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList());
|
||||||
|
|
||||||
|
MesProduceSn produceSn = produceSnList.get(0);
|
||||||
|
|
||||||
|
if (produceSn.getQcStatus().compareTo(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) != 0 && produceSn.getQcStatus().compareTo(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue()) != 0)
|
||||||
|
return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]质量状态[%s]", suffixMsg, equipVariableCollectContext.getEquipVariableValue(), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus())));
|
||||||
|
|
||||||
|
if (produceSn.getSnStatus().compareTo(MesExtEnumUtil.PRODUCE_SN_STATUS.ASSEMBLY_BACK.getValue()) > 0)
|
||||||
|
return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]条码状态[%s]", suffixMsg, equipVariableCollectContext.getEquipVariableValue(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus())));
|
||||||
|
|
||||||
|
//正常条码
|
||||||
|
if (produceSn.getSnStatus().compareTo(MesExtEnumUtil.PRODUCE_SN_STATUS.UNKNOW.getValue()) != 0) {
|
||||||
|
|
||||||
|
productionPsInContextList.add(new MesProductionPsInContext(workCell, produceSn).messageSource(equipVariableCollectContext.getMessageSource()));
|
||||||
|
|
||||||
|
return stepResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
//未知条码【工序为空 代表新做的工序没有加工完成】
|
||||||
|
if (StringUtils.isEmpty(produceSn.getProcessCode()) && produceSnList.size() > 1) {
|
||||||
|
|
||||||
|
productionPsInContextList.add(new MesProductionPsInContext(workCell, produceSnList.get(1)).messageSource(equipVariableCollectContext.getMessageSource()).relateId(produceSn.getId()));
|
||||||
|
|
||||||
|
return stepResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
//未知条码【工序为空 代表新做的工序没有加工完成】【只有一条条码记录 代表是打印的条码自进自出直接被标记为未知】
|
||||||
|
if (StringUtils.isEmpty(produceSn.getProcessCode())) {
|
||||||
|
|
||||||
|
productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue()).messageSource(equipVariableCollectContext.getMessageSource()).relateId(produceSn.getId()));
|
||||||
|
|
||||||
|
return stepResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
//未知条码【工序不为空 代表已完成的工序被重做后没有加工完成】
|
||||||
|
productionPsInContextList.add(new MesProductionPsInContext(workCell, produceSn).messageSource(equipVariableCollectContext.getMessageSource()).relateId(produceSn.getId()));
|
||||||
|
|
||||||
|
return stepResult;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private Boolean checkAllowUnknowCenterCfg(StationRequestBean reqBean) {
|
||||||
|
List<MesConfig> configList = configService.doCachedConfigList(MesPcnExtConstWords.ALLOW_UNKNOW_CENTER_CFG, reqBean.getOrganizeCode());
|
||||||
|
if (CollectionUtils.isEmpty(configList)) return true;
|
||||||
|
List<String> allowUnknowCenterList = Arrays.asList(configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgValue()))).map(MesConfig::getCfgValue).collect(Collectors.joining(MesPcnExtConstWords.COMMA)).split(MesPcnExtConstWords.COMMA));
|
||||||
|
return CollectionUtils.isEmpty(allowUnknowCenterList) || !allowUnknowCenterList.contains(reqBean.getWorkCenterCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,226 +0,0 @@
|
|||||||
//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
|
||||||
//
|
|
||||||
//import cn.estsh.i3plus.ext.mes.pcn.api.busi.*;
|
|
||||||
//import cn.estsh.i3plus.ext.mes.pcn.api.busi.recyclablepackage.IMesRecyclablePackageBindingService;
|
|
||||||
//import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*;
|
|
||||||
//import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
|
||||||
//import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService;
|
|
||||||
//import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService;
|
|
||||||
//import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
|
||||||
//import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
|
|
||||||
//import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
||||||
//import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
|
||||||
//import cn.estsh.i3plus.pojo.mes.bean.*;
|
|
||||||
//import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBinding;
|
|
||||||
//import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingDetail;
|
|
||||||
//import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
|
|
||||||
//import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
|
||||||
//import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
|
|
||||||
//import cn.estsh.i3plus.pojo.mes.model.StepResult;
|
|
||||||
//import cn.estsh.i3plus.pojo.mes.repository.MesStationRepository;
|
|
||||||
//import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
||||||
//import com.alibaba.fastjson.JSONObject;
|
|
||||||
//import lombok.extern.slf4j.Slf4j;
|
|
||||||
//import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
//import org.springframework.stereotype.Service;
|
|
||||||
//import org.springframework.util.CollectionUtils;
|
|
||||||
//import org.springframework.util.StringUtils;
|
|
||||||
//
|
|
||||||
//import java.util.*;
|
|
||||||
//import java.util.stream.Collectors;
|
|
||||||
//import java.util.stream.Stream;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * @Description : 可回用包装条码匹配工步
|
|
||||||
// * @Reference :
|
|
||||||
// * @Author : junsheng.li
|
|
||||||
// * @CreateDate 2024/9/12 11:20
|
|
||||||
// * @Modify:
|
|
||||||
// **/
|
|
||||||
//@Slf4j
|
|
||||||
//@Service("mesRecyclablePackageMatchStepService")
|
|
||||||
//public class MesRecyclablePackageMatchStepService extends BaseStepService {
|
|
||||||
//
|
|
||||||
// @Autowired
|
|
||||||
// private IMesProductionProcessContextStepService productionProcessContextStepService;
|
|
||||||
//
|
|
||||||
// @Autowired
|
|
||||||
// private IMesProductionDispatchContextStepService productionDispatchContextStepService;
|
|
||||||
//
|
|
||||||
// @Autowired
|
|
||||||
// private IMesStationService mesStationService;
|
|
||||||
//
|
|
||||||
// @Autowired
|
|
||||||
// private IMesRecyclablePackageBindingService mesRecyclablePackageBindingService;
|
|
||||||
//
|
|
||||||
// @Autowired
|
|
||||||
// private IMesProduceSnExtService produceSnExtService;
|
|
||||||
//
|
|
||||||
// @Autowired
|
|
||||||
// private IConfigService configService;
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public StepResult execute(StationRequestBean reqBean) {
|
|
||||||
//
|
|
||||||
// StationResultBean resultBean = new StationResultBean();
|
|
||||||
//
|
|
||||||
// StepResult stepResult = StepResult.getSuccessComplete();
|
|
||||||
//
|
|
||||||
// //获取上下文信息
|
|
||||||
// MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean);
|
|
||||||
//
|
|
||||||
// //配置错误 抛出异常
|
|
||||||
// if (!productionProcessContext.getSuccess()) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
|
|
||||||
//
|
|
||||||
// //存储生产过程上下文对象
|
|
||||||
// productionProcessContextStepService.dispatchProductionProcessContext(reqBean, productionProcessContext);
|
|
||||||
//
|
|
||||||
// //获取上下文生产扫/读信息:可回用包装条码
|
|
||||||
// List<MesEquipVariableCollectContext> equipVariableCollectContextList = productionDispatchContextStepService.getScanRecyclablePackageContext(reqBean);
|
|
||||||
// if (CollectionUtils.isEmpty(equipVariableCollectContextList)) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前缺失可回用包装条码信息!");
|
|
||||||
//
|
|
||||||
// //清除本次已获取得到的可回用包装条码信息
|
|
||||||
// productionDispatchContextStepService.removeScanRecyclablePackageContext(reqBean);
|
|
||||||
//
|
|
||||||
// //从上下文中取出设备信息
|
|
||||||
// MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
|
|
||||||
//
|
|
||||||
// //根据设备代码获取点位信息
|
|
||||||
// MesStation station = mesStationService.getMesStationByEquipmentCode(reqBean.getOrganizeCode(),cellEquipContext.getEquipmentCode());
|
|
||||||
// if (Objects.isNull(station) || Objects.isNull(station.getProcessMethod())) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("设备[%s]站点信息未维护", cellEquipContext.getEquipmentCode()));
|
|
||||||
//
|
|
||||||
// //加工模式
|
|
||||||
// switch (MesExtEnumUtil.STATION_PROCESS_METHOD.valueOfType(station.getProcessMethod())){
|
|
||||||
// case STATION_TYPE_10:
|
|
||||||
// case STATION_TYPE_20:
|
|
||||||
// case STATION_TYPE_30:
|
|
||||||
// case STATION_TYPE_40:{
|
|
||||||
// //获取包装绑定主表
|
|
||||||
// MesRecyclablePackageBinding recyclablePackageBinding = mesRecyclablePackageBindingService.getMesRecyclablePackageBindingByPackageSn(reqBean.getOrganizeCode(), equipVariableCollectContextList.iterator().next().getEquipVariableValue());
|
|
||||||
// if(Objects.isNull(recyclablePackageBinding)) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("回收包装绑定[%s]信息不存在",equipVariableCollectContextList.iterator().next().getEquipVariableValue()));
|
|
||||||
// //获取绑定明细信息
|
|
||||||
// List<MesRecyclablePackageBindingDetail> bindingDetailList = mesRecyclablePackageBindingService.findMesRecyclablePackageBindingDetailByPid(reqBean.getOrganizeCode(), recyclablePackageBinding.getId());
|
|
||||||
// if(CollectionUtils.isEmpty(bindingDetailList)) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("回收包装绑定[%s]明细信息不存在",equipVariableCollectContextList.iterator().next().getEquipVariableValue()));
|
|
||||||
// //查询条码信息
|
|
||||||
// Map<String, List<MesProduceSn>> produceSnMap = produceSnExtService.getProduceSnMap(reqBean.getOrganizeCode(), bindingDetailList.stream().map(MesRecyclablePackageBindingDetail::getProductSn).collect(Collectors.toList()));
|
|
||||||
// List<MesProductionPsInContext> productionPsInContextList = new ArrayList<>();
|
|
||||||
// for (MesRecyclablePackageBindingDetail bindingDetail : bindingDetailList) {
|
|
||||||
// //外协件
|
|
||||||
// if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(bindingDetail.getProductSn())){
|
|
||||||
// for (int i = 0; i < bindingDetail.getQty(); i++) {
|
|
||||||
// //查询物料信息
|
|
||||||
// productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), bindingDetail.getProductSn()).messageSource(equipVariableCollectContextList.iterator().next().getMessageSource()));
|
|
||||||
// }
|
|
||||||
// //自制件
|
|
||||||
// }else{
|
|
||||||
// createProductionPsInContext(reqBean, resultBean, stepResult, workCell, equipVariableCollectContext, produceSnMap.get(equipVariableCollectContext.getEquipVariableValue()), productionPsInContextList);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// };break;
|
|
||||||
// default:stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "站点加工模式未实现!");break;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// for (MesEquipVariableCollectContext equipVariableCollectContext : equipVariableCollectContextList) {
|
|
||||||
// if (null == equipVariableCollectContext || StringUtils.isEmpty(equipVariableCollectContext.getEquipVariableValue())) continue;
|
|
||||||
// if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(equipVariableCollectContext.getEquipVariableValue()))
|
|
||||||
// productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue()).messageSource(equipVariableCollectContext.getMessageSource()));
|
|
||||||
// else createProductionPsInContext(reqBean, resultBean, stepResult, workCell, equipVariableCollectContext, produceSnMap.get(equipVariableCollectContext.getEquipVariableValue()), productionPsInContextList);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// //获取上下文产出零件信息
|
|
||||||
// List<MesProductionPartContext> cachedProductionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean);
|
|
||||||
//
|
|
||||||
// //非扫描场景 清除历史产出零件信息
|
|
||||||
// if (MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() != equipVariableCollectContextList.get(0).getMessageSource() && !CollectionUtils.isEmpty(cachedProductionPartContextList)) removeBusiData(reqBean);
|
|
||||||
// //保存上下文产出零件信息
|
|
||||||
// productionDispatchContextStepService.dispatchProductionPartContext(reqBean, productionPartContextList);
|
|
||||||
//
|
|
||||||
// //存储展示组件MODULE_CONTENT内容
|
|
||||||
// productionDispatchContextStepService.dispatchModuleContentContext(reqBean, getModuleContextData(reqBean, productionPartContextList));
|
|
||||||
//
|
|
||||||
// //当前工位使用的设备
|
|
||||||
// MesCellEquipContext cellEquipmentContext = productionProcessContext.getCurCellEquip();
|
|
||||||
// if (MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() == equipVariableCollectContextList.get(0).getMessageSource() && cellEquipmentContext.getCavity().compareTo(productionPartContextList.size()) > 0)
|
|
||||||
// return stepDynamicsCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(equipVariableCollectContextList.get(0).getEquipVariableValue()),
|
|
||||||
// stepResult, false, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT,
|
|
||||||
// String.format("当前扫描信息加工单[%s]验证工单状态成功,已知腔数[%s],还需要再连续扫描[%s]次加工单!", equipVariableCollectContextList.get(0).getEquipVariableValue(), cellEquipmentContext.getCavity(), cellEquipmentContext.getCavity() - productionPartContextList.size()));
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// String workOrderStr = equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.toList()).toString();
|
|
||||||
// return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(workOrderStr), stepResult, String.format("当前%s加工单%s验证工单状态成功%s!",
|
|
||||||
// MesExtEnumUtil.CELL_MESSAGE_SOURCE.valueOfDescription(equipVariableCollectContextList.get(0).getMessageSource()), workOrderStr,
|
|
||||||
// MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() == equipVariableCollectContextList.get(0).getMessageSource() ? String.format(",当前加工单个数[%s]已满足腔数", productionPartContextList.size()) : MesPcnExtConstWords.EMPTY));
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// private StepResult createProductionPsInContext(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult,
|
|
||||||
// MesWorkCell workCell, MesEquipVariableCollectContext equipVariableCollectContext, List<MesProduceSn> produceSnList, List<MesProductionPsInContext> productionPsInContextList) {
|
|
||||||
//
|
|
||||||
// String suffixMsg = !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() + MesPcnExtConstWords.SEMICOLON : MesPcnExtConstWords.EMPTY;
|
|
||||||
//
|
|
||||||
// List<MesProduceSn> unknowList = produceSnList.stream().filter(o -> (null != o && o.getSnStatus().compareTo(MesExtEnumUtil.PRODUCE_SN_STATUS.UNKNOW.getValue()) == 0)).collect(Collectors.toList());
|
|
||||||
//
|
|
||||||
// if (!CollectionUtils.isEmpty(unknowList) && unknowList.size() > 1) {
|
|
||||||
// return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]信息异常,存在[%s]条[未知]状态的记录", suffixMsg, equipVariableCollectContext.getEquipVariableValue(), unknowList.size()));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (!CollectionUtils.isEmpty(unknowList) && checkAllowUnknowCenterCfg(reqBean) && (unknowList.size() > 1 || (!unknowList.get(0).getWorkCenterCode().equals(reqBean.getWorkCenterCode()) || !unknowList.get(0).getWorkCellCode().equals(reqBean.getWorkCellCode())))) {
|
|
||||||
// return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]信息条码状态已被%s标记[未知]", suffixMsg, equipVariableCollectContext.getEquipVariableValue(),
|
|
||||||
// unknowList.stream().filter(Objects::nonNull).map(o -> new StringJoiner(MesPcnExtConstWords.AND).add(o.getWorkCenterCode()).add(o.getWorkCellCode()).toString()).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON))));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// produceSnList = produceSnList.stream().filter(Objects::nonNull).sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList());
|
|
||||||
//
|
|
||||||
// MesProduceSn produceSn = produceSnList.get(0);
|
|
||||||
//
|
|
||||||
// if (produceSn.getQcStatus().compareTo(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) != 0 && produceSn.getQcStatus().compareTo(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue()) != 0)
|
|
||||||
// return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]质量状态[%s]", suffixMsg, equipVariableCollectContext.getEquipVariableValue(), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus())));
|
|
||||||
//
|
|
||||||
// if (produceSn.getSnStatus().compareTo(MesExtEnumUtil.PRODUCE_SN_STATUS.ASSEMBLY_BACK.getValue()) > 0)
|
|
||||||
// return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]条码状态[%s]", suffixMsg, equipVariableCollectContext.getEquipVariableValue(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus())));
|
|
||||||
//
|
|
||||||
// //正常条码
|
|
||||||
// if (produceSn.getSnStatus().compareTo(MesExtEnumUtil.PRODUCE_SN_STATUS.UNKNOW.getValue()) != 0) {
|
|
||||||
//
|
|
||||||
// productionPsInContextList.add(new MesProductionPsInContext(workCell, produceSn).messageSource(equipVariableCollectContext.getMessageSource()));
|
|
||||||
//
|
|
||||||
// return stepResult;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// //未知条码【工序为空 代表新做的工序没有加工完成】
|
|
||||||
// if (StringUtils.isEmpty(produceSn.getProcessCode()) && produceSnList.size() > 1) {
|
|
||||||
//
|
|
||||||
// productionPsInContextList.add(new MesProductionPsInContext(workCell, produceSnList.get(1)).messageSource(equipVariableCollectContext.getMessageSource()).relateId(produceSn.getId()));
|
|
||||||
//
|
|
||||||
// return stepResult;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// //未知条码【工序为空 代表新做的工序没有加工完成】【只有一条条码记录 代表是打印的条码自进自出直接被标记为未知】
|
|
||||||
// if (StringUtils.isEmpty(produceSn.getProcessCode())) {
|
|
||||||
//
|
|
||||||
// productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue()).messageSource(equipVariableCollectContext.getMessageSource()).relateId(produceSn.getId()));
|
|
||||||
//
|
|
||||||
// return stepResult;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// //未知条码【工序不为空 代表已完成的工序被重做后没有加工完成】
|
|
||||||
// productionPsInContextList.add(new MesProductionPsInContext(workCell, produceSn).messageSource(equipVariableCollectContext.getMessageSource()).relateId(produceSn.getId()));
|
|
||||||
//
|
|
||||||
// return stepResult;
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private Boolean checkAllowUnknowCenterCfg(StationRequestBean reqBean) {
|
|
||||||
// List<MesConfig> configList = configService.doCachedConfigList(MesPcnExtConstWords.ALLOW_UNKNOW_CENTER_CFG, reqBean.getOrganizeCode());
|
|
||||||
// if (CollectionUtils.isEmpty(configList)) return true;
|
|
||||||
// List<String> allowUnknowCenterList = Arrays.asList(configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgValue()))).map(MesConfig::getCfgValue).collect(Collectors.joining(MesPcnExtConstWords.COMMA)).split(MesPcnExtConstWords.COMMA));
|
|
||||||
// return CollectionUtils.isEmpty(allowUnknowCenterList) || !allowUnknowCenterList.contains(reqBean.getWorkCenterCode());
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
@ -0,0 +1,59 @@
|
|||||||
|
package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
|
||||||
|
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingDetail;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生产过程上下文对象-可回用包装
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class MesProductionRecyclablePackageContext implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 4337949265011880288L;
|
||||||
|
|
||||||
|
@ApiParam("组织代码")
|
||||||
|
private String organizeCode;
|
||||||
|
|
||||||
|
@ApiParam("工单号")
|
||||||
|
private String workOrderNo;
|
||||||
|
|
||||||
|
@ApiParam(name = "包条码")
|
||||||
|
private String packageSn;
|
||||||
|
|
||||||
|
@ApiParam(name = "包类型")
|
||||||
|
private String packageTypeCode;
|
||||||
|
|
||||||
|
@ApiParam("零件条码ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiParam("零件条码")
|
||||||
|
private String productSn;
|
||||||
|
|
||||||
|
@ApiParam("零件号")
|
||||||
|
private String partNo;
|
||||||
|
|
||||||
|
@ApiParam("零件名称")
|
||||||
|
private String partName;
|
||||||
|
|
||||||
|
public MesProductionRecyclablePackageContext() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MesProductionRecyclablePackageContext(String organizeCode, String packageSn, String packageTypeCode) {
|
||||||
|
this.organizeCode = organizeCode;
|
||||||
|
this.packageSn = packageSn;
|
||||||
|
this.packageTypeCode = packageTypeCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MesProductionRecyclablePackageContext copy(MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail) {
|
||||||
|
this.partName = mesRecyclablePackageBindingDetail.getPartName();
|
||||||
|
this.partNo = mesRecyclablePackageBindingDetail.getPartNo();
|
||||||
|
this.productSn = mesRecyclablePackageBindingDetail.getProductSn();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue