|
|
|
@ -6,7 +6,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StepResult;
|
|
|
|
@ -28,8 +28,8 @@ import java.util.stream.Collectors;
|
|
|
|
|
* @Author : wangjie
|
|
|
|
|
**/
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Service("mesProductionReocrdGenerateStepService")
|
|
|
|
|
public class MesProductionReocrdGenerateStepService extends BaseStepService {
|
|
|
|
|
@Service("mesProductionRecordGenerateStepService")
|
|
|
|
|
public class MesProductionRecordGenerateStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
|
|
|
@ -66,65 +66,51 @@ public class MesProductionReocrdGenerateStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(productionPsOutContextList)) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "上下文中不存在产出零件条码信息,请重置工序解决!");
|
|
|
|
|
|
|
|
|
|
MesEquipVariableCollectContext equipVariableCollectContext = productionDispatchContextStepService.getFirstMouldNoContext(reqBean);
|
|
|
|
|
if (null == equipVariableCollectContext) equipVariableCollectContext = productionDispatchContextStepService.getMouldNoContext(reqBean);
|
|
|
|
|
|
|
|
|
|
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
|
|
|
|
|
|
|
|
|
|
Map<Integer, MesProductionPsOutContext> ppMap = CollectionUtils.isEmpty(productionPsOutContextList) ? null : productionPsOutContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toMap(MesProductionPsOutContext::getForeignKey, o -> o));
|
|
|
|
|
Map<Integer, MesProdRuleContext> prMap = CollectionUtils.isEmpty(prodRuleContextList) ? null : prodRuleContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toMap(MesProdRuleContext::getForeignKey, o -> o));
|
|
|
|
|
|
|
|
|
|
prodRuleContextList.stream().filter(o -> null != o).forEach(o -> saveProductionReocrdData(reqBean, resultBean, stepResult, productionProcessContext, o, ppMap, cellEquipContext));
|
|
|
|
|
String mouldNo = null != equipVariableCollectContext ? equipVariableCollectContext.getEquipVariableValue() : null;
|
|
|
|
|
productionPsOutContextList.stream().filter(o -> null != o).forEach(o -> saveProductionRecordData(reqBean, resultBean, stepResult, mouldNo, productionProcessContext, o, prMap, cellEquipContext));
|
|
|
|
|
|
|
|
|
|
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "保存装配记录成功!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
private void saveProductionAssemblyData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesProdRuleContext prodRuleContext, Map<Integer, MesProductionPsOutContext> ppMap, MesCellEquipContext cellEquipContext) {
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(prodRuleContext.getAssemblyDataJson())) return;
|
|
|
|
|
|
|
|
|
|
List<MesProductionAssemblyNosortContext> productionAssemblyNosortContextList = prodRuleContext.getNosortAssemblyDataContext();
|
|
|
|
|
|
|
|
|
|
MesProductionPsOutContext productionPsOutContext = CollectionUtils.isEmpty(ppMap) ? null : ppMap.get(prodRuleContext.getForeignKey());
|
|
|
|
|
|
|
|
|
|
for (MesProductionAssemblyNosortContext productionAssemblyNosortContext : productionAssemblyNosortContextList) {
|
|
|
|
|
|
|
|
|
|
if (null == productionAssemblyNosortContext) continue;
|
|
|
|
|
|
|
|
|
|
MesProductionAssembly productionAssembly = new MesProductionAssembly();
|
|
|
|
|
BeanUtils.copyProperties(productionAssemblyNosortContext, productionAssembly);
|
|
|
|
|
|
|
|
|
|
productionAssembly.setDataSource(MesExtEnumUtil.PRODUCTION_ASSEMBLY_DATA_SOURCE.NOSORT.getValue());
|
|
|
|
|
productionAssembly.setIsOrigSn(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
private void saveProductionRecordData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, String mouldNo,
|
|
|
|
|
MesProductionProcessContext productionProcessContext, MesProductionPsOutContext productionPsOutContext, Map<Integer, MesProdRuleContext> prMap, MesCellEquipContext cellEquipContext) {
|
|
|
|
|
|
|
|
|
|
productionAssembly.setAreaCode(reqBean.getWorkCenterCode());
|
|
|
|
|
productionAssembly.setWorkCenterCode(reqBean.getWorkCenterCode());
|
|
|
|
|
productionAssembly.setWorkCellCode(reqBean.getWorkCellCode());
|
|
|
|
|
productionAssembly.setProcessCode(reqBean.getProcessCode());
|
|
|
|
|
MesProdRuleContext prodRuleContext = CollectionUtils.isEmpty(prMap) ? null : prMap.get(productionPsOutContext.getForeignKey());
|
|
|
|
|
|
|
|
|
|
productionAssembly.setProcessName(productionProcessContext.getProcessName());
|
|
|
|
|
productionAssembly.setCraftCode(productionProcessContext.getCraftCode());
|
|
|
|
|
productionAssembly.setCraftName(productionProcessContext.getCraftName());
|
|
|
|
|
MesProductionRecord productionRecord = new MesProductionRecord();
|
|
|
|
|
BeanUtils.copyProperties(productionPsOutContext, productionRecord);
|
|
|
|
|
|
|
|
|
|
productionAssembly.setEquipmentCode(cellEquipContext.getEquipmentCode());
|
|
|
|
|
productionRecord.setMouldNo(mouldNo);
|
|
|
|
|
productionRecord.setEquipmentCode(cellEquipContext.getEquipmentCode());
|
|
|
|
|
productionRecord.setEquipmentName(cellEquipContext.getEquipmentName());
|
|
|
|
|
|
|
|
|
|
productionAssembly.setProductionRecordId(prodRuleContext.getProductionRecordId());
|
|
|
|
|
productionAssembly.setMouldNo(prodRuleContext.getMouldNo());
|
|
|
|
|
productionRecord.setReportType(!StringUtils.isEmpty(prodRuleContext.getReportType()) ? prodRuleContext.getReportType() : MesExtEnumUtil.NOSORT_REPORT_TYPE.NO_REPORT.getValue());
|
|
|
|
|
if (MesExtEnumUtil.NOSORT_REPORT_TYPE.NO_REPORT.getValue() != productionRecord.getReportType()) productionRecord.setReportPartNo(productionPsOutContext.getPartNo());
|
|
|
|
|
productionRecord.setReportStatus(MesExtEnumUtil.NOSORT_REPORT_TYPE.NO_REPORT.getValue() != productionRecord.getReportType() ? MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue() : MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_30.getValue());
|
|
|
|
|
|
|
|
|
|
if (null != productionPsOutContext) {
|
|
|
|
|
productionAssembly.setPartNo(productionPsOutContext.getPartNo());
|
|
|
|
|
productionAssembly.setPartName(productionPsOutContext.getPartName());
|
|
|
|
|
productionAssembly.setSerialNumber(productionPsOutContext.getSerialNumber());
|
|
|
|
|
productionAssembly.setProductSn(productionPsOutContext.getProductSn());
|
|
|
|
|
productionAssembly.setCustSn(productionPsOutContext.getCustSn());
|
|
|
|
|
}
|
|
|
|
|
productionRecord.setModuleStatisticsStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
|
|
|
|
|
//TODO 赋开模记录ID
|
|
|
|
|
//productionAssembly.setMouldRecordId();
|
|
|
|
|
//TODO 赋开模记录ID
|
|
|
|
|
//productionRecord.setMouldRecordId();
|
|
|
|
|
//TODO 工序开始时间
|
|
|
|
|
//productionRecord.setStartDateTime();
|
|
|
|
|
|
|
|
|
|
productionAssembly.setOrganizeCode(reqBean.getOrganizeCode());
|
|
|
|
|
ConvertBean.serviceModelInitialize(productionAssembly, reqBean.getUserInfo());
|
|
|
|
|
productionRecord.setIsComplete(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
|
|
|
|
|
productionAssemblyRepository.insert(productionAssembly);
|
|
|
|
|
productionRecord.setOrganizeCode(reqBean.getOrganizeCode());
|
|
|
|
|
ConvertBean.serviceModelInitialize(productionRecord, reqBean.getUserInfo());
|
|
|
|
|
productionRecord.setCompleteDateTime(productionRecord.getModifyDatetime());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
productionRecordRepository.insert(productionRecord);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|