|
|
|
@ -2,7 +2,10 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
|
|
|
|
|
|
|
|
|
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.pojo.context.*;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
|
|
|
|
|
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.MesScanMonitorContext;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
|
|
|
@ -10,16 +13,11 @@ import cn.estsh.i3plus.pojo.mes.bean.MesProdMouldRecord;
|
|
|
|
|
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.IMesMouldMappingCfgRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesProdMouldRecordRepository;
|
|
|
|
|
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 java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description : 生成开模记录工步
|
|
|
|
|
* @Author : zxw
|
|
|
|
@ -29,77 +27,50 @@ import java.util.List;
|
|
|
|
|
public class MesMouldRecordGenerateStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesProdMouldRecordRepository mesProdMouldRecordRepository;
|
|
|
|
|
private MesProdMouldRecordRepository prodMouldRecordRepository;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesMouldMappingCfgRepository mesMouldMappingCfgRepository;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
|
|
|
|
|
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public StepResult execute(StationRequestBean reqBean) {
|
|
|
|
|
|
|
|
|
|
StationResultBean resultBean = new StationResultBean();
|
|
|
|
|
|
|
|
|
|
StepResult stepResult = StepResult.getSuccessComplete();
|
|
|
|
|
|
|
|
|
|
//获取上下文信息
|
|
|
|
|
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue());
|
|
|
|
|
|
|
|
|
|
//List<MesProductionPartContext> productionPartContextList = mesProductionDispatchContextStepService.getProductionPartContext(reqBean);
|
|
|
|
|
// 获取条码信息
|
|
|
|
|
List<MesProductionPsOutContext> mesProduceSnContexts = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean);
|
|
|
|
|
// 获取头道模具号
|
|
|
|
|
MesEquipVariableCollectContext mesFirstMouldNoCollectContext = mesProductionDispatchContextStepService.getFirstMouldNoContext(reqBean);
|
|
|
|
|
// 获取模具号
|
|
|
|
|
MesEquipVariableCollectContext mesMouldNoCollectContext = mesProductionDispatchContextStepService.getMouldNoContext(reqBean);
|
|
|
|
|
/**
|
|
|
|
|
* 保存开模记录
|
|
|
|
|
*/
|
|
|
|
|
saveMouldRecord(reqBean, resultBean, productionProcessContext, mesProduceSnContexts, mesFirstMouldNoCollectContext, mesMouldNoCollectContext);
|
|
|
|
|
|
|
|
|
|
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "生成开模记录成功!");
|
|
|
|
|
}
|
|
|
|
|
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getProductionProcessContext(reqBean);
|
|
|
|
|
|
|
|
|
|
private void saveMouldRecord(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, List<MesProductionPsOutContext> mesProduceSns, MesEquipVariableCollectContext mesFirstMouldNoCollectContext, MesEquipVariableCollectContext mesMouldNoCollectContext) {
|
|
|
|
|
List<MesProdMouldRecord> mesProdMouldRecords = new ArrayList<>();
|
|
|
|
|
//配置错误 抛出异常
|
|
|
|
|
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
|
|
|
|
|
|
|
|
|
|
MesScanMonitorContext mesScanMonitorContext = productionProcessContextStepService.doHandleScanMonitorContext(reqBean, true);
|
|
|
|
|
//获取工位设备信息
|
|
|
|
|
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
|
|
|
|
|
|
|
|
|
|
Long moduleId = mesScanMonitorContext.getMouldRecordId();
|
|
|
|
|
// 获取工位设备信息
|
|
|
|
|
MesCellEquipContext mesCellEquipContext = productionProcessContext.getCurCellEquip();
|
|
|
|
|
//获取头道模具号
|
|
|
|
|
MesEquipVariableCollectContext firstMouldNoContext = productionDispatchContextStepService.getFirstMouldNoContext(reqBean);
|
|
|
|
|
|
|
|
|
|
String equipmentCode = mesCellEquipContext.getEquipmentCode();
|
|
|
|
|
//获取模具号
|
|
|
|
|
MesEquipVariableCollectContext mouldNoContext = productionDispatchContextStepService.getMouldNoContext(reqBean);
|
|
|
|
|
|
|
|
|
|
String mouldNo = "";
|
|
|
|
|
//获取上下文工位扫描监控信息
|
|
|
|
|
MesScanMonitorContext scanMonitorContext = productionProcessContextStepService.doHandleScanMonitorContext(reqBean, true);
|
|
|
|
|
|
|
|
|
|
if (mesFirstMouldNoCollectContext != null) {
|
|
|
|
|
mouldNo = mesFirstMouldNoCollectContext.getEquipVariableValue();
|
|
|
|
|
} else if (mesFirstMouldNoCollectContext == null && mesMouldNoCollectContext != null) {
|
|
|
|
|
mouldNo = mesMouldNoCollectContext.getEquipVariableValue();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MesProdMouldRecord prodMouldRecord = getMesProdMouldRecord(mesCellEquipContext, mouldNo, moduleId);
|
|
|
|
|
MesProdMouldRecord prodMouldRecord = new MesProdMouldRecord();
|
|
|
|
|
prodMouldRecord.setId(scanMonitorContext.getMouldRecordId());
|
|
|
|
|
prodMouldRecord.setEquipId(cellEquipContext.getEquipId());
|
|
|
|
|
prodMouldRecord.setEquipmentCode(cellEquipContext.getEquipmentCode());
|
|
|
|
|
if (null != firstMouldNoContext) prodMouldRecord.setMouldNo(firstMouldNoContext.getEquipVariableValue());
|
|
|
|
|
else if (null != mouldNoContext) prodMouldRecord.setMouldNo(mouldNoContext.getEquipVariableValue());
|
|
|
|
|
prodMouldRecord.setOrganizeCode(reqBean.getOrganizeCode());
|
|
|
|
|
ConvertBean.serviceModelInitialize(prodMouldRecord, reqBean.getUserInfo());
|
|
|
|
|
mesProdMouldRecords.add(prodMouldRecord);
|
|
|
|
|
|
|
|
|
|
prodMouldRecordRepository.save(prodMouldRecord);
|
|
|
|
|
|
|
|
|
|
mesProdMouldRecordRepository.saveAll(mesProdMouldRecords);
|
|
|
|
|
}
|
|
|
|
|
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), String.format("开模记录生成成功! ID:%s", scanMonitorContext.getMouldRecordId()));
|
|
|
|
|
|
|
|
|
|
private MesProdMouldRecord getMesProdMouldRecord(MesCellEquipContext mesCellEquipContext, String mouldNo, Long mouldId) {
|
|
|
|
|
MesProdMouldRecord mesProdMouldRecord = new MesProdMouldRecord();
|
|
|
|
|
mesProdMouldRecord.setEquipId(mesCellEquipContext.getEquipId());
|
|
|
|
|
mesProdMouldRecord.setId(mouldId);
|
|
|
|
|
/* mesProdMouldRecord.setMeterName(mesMouldMappingCfg == null ? null : mesMouldMappingCfg.getMeterName());
|
|
|
|
|
mesProdMouldRecord.setAssetNum(mesMouldMappingCfg == null ? null : mesMouldMappingCfg.getAssetNum());*/
|
|
|
|
|
mesProdMouldRecord.setMouldNo(mouldNo);
|
|
|
|
|
mesProdMouldRecord.setEquipmentCode(mesCellEquipContext.getEquipmentCode());
|
|
|
|
|
return mesProdMouldRecord;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|