|
|
|
@ -1,20 +1,17 @@
|
|
|
|
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
|
|
|
|
|
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.MesSnProductionProcessContext;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesModelMultiCavity;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesMouldMultiCavity;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
|
|
|
|
@ -22,17 +19,14 @@ import cn.estsh.i3plus.pojo.mes.model.StepResult;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
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.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description : 生成零件条码
|
|
|
|
@ -41,6 +35,8 @@ import java.util.stream.Collectors;
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Service("mesGenerateSnService")
|
|
|
|
|
public class MesGenerateSnService extends BaseStepService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private SnowflakeIdMaker snowflakeIdMaker;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
|
|
|
@ -65,11 +61,10 @@ public class MesGenerateSnService extends BaseStepService {
|
|
|
|
|
StepResult stepResult = StepResult.getSuccessComplete();
|
|
|
|
|
|
|
|
|
|
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<MesModelMultiCavity> mesModelMultiCavities = productionProcessContext.getMesModelMultiCavities();
|
|
|
|
|
MesWorkCell mesWorkCell = productionProcessContext.getWorkCell();
|
|
|
|
|
List<MesMouldMultiCavity> mesModelMultiCavities = productionProcessContext.getMouldCavityList();
|
|
|
|
|
List<MesProduceSn> mesProduceSns = new ArrayList<>();
|
|
|
|
|
for (MesModelMultiCavity modelMultiCavity : mesModelMultiCavities) {
|
|
|
|
|
for (MesMouldMultiCavity modelMultiCavity : mesModelMultiCavities) {
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(modelMultiCavity.getPartNo(), "partNo", packBean);
|
|
|
|
|
MesPart mesPart = mesPartRepository.getByProperty(packBean);
|
|
|
|
@ -77,10 +72,12 @@ public class MesGenerateSnService extends BaseStepService {
|
|
|
|
|
return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "零件号不存在");
|
|
|
|
|
}
|
|
|
|
|
String sn = generateByRule(mesPart);
|
|
|
|
|
MesProduceSn mesProduceSn = generateMesProduceSn(mesPart, sn);
|
|
|
|
|
MesProduceSn mesProduceSn = generateMesProduceSn(mesPart, sn,mesWorkCell, productionProcessContext,reqBean);
|
|
|
|
|
mesProduceSns.add(mesProduceSn);
|
|
|
|
|
}
|
|
|
|
|
mesProduceSnRepository.saveAll(mesProduceSns);
|
|
|
|
|
MesSnProductionProcessContext mesSnProductionProcessContext = (MesSnProductionProcessContext) productionProcessContext;
|
|
|
|
|
mesSnProductionProcessContext.productSns(mesProduceSns);
|
|
|
|
|
|
|
|
|
|
return StepResult.getSuccessComplete();
|
|
|
|
|
}
|
|
|
|
@ -94,21 +91,31 @@ public class MesGenerateSnService extends BaseStepService {
|
|
|
|
|
return resultList.get(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn) {
|
|
|
|
|
private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, MesWorkCell mesWorkCell,MesProductionProcessContext productionProcessContext, StationRequestBean reqBean) {
|
|
|
|
|
long serialNum = snowflakeIdMaker.nextId();
|
|
|
|
|
|
|
|
|
|
MesProduceSn mesProduceSn = new MesProduceSn();
|
|
|
|
|
mesProduceSn.setSerialNumber(serialNum + "");
|
|
|
|
|
mesProduceSn.setProductSn(sn);
|
|
|
|
|
mesProduceSn.setQcStatus();
|
|
|
|
|
mesProduceSn.setWorkOrderNo();
|
|
|
|
|
mesProduceSn.setAreaCode();
|
|
|
|
|
mesProduceSn.setColorName();
|
|
|
|
|
mesProduceSn.setCompensateTime();
|
|
|
|
|
mesProduceSn.setCraftCode();
|
|
|
|
|
mesProduceSn.setCustCode();
|
|
|
|
|
mesProduceSn.setCustLabelTemplate();
|
|
|
|
|
mesProduceSn.setCustPartNo();
|
|
|
|
|
mesProduceSn.setEquipmentCode();
|
|
|
|
|
mesProduceSn.setEquipmentName();
|
|
|
|
|
mesProduceSn.set();
|
|
|
|
|
|
|
|
|
|
mesProduceSn.setCustSn(sn);
|
|
|
|
|
mesProduceSn.setPartNo(mesPart.getPartNo());
|
|
|
|
|
mesProduceSn.setPartNameRdd(mesPart.getPartName());
|
|
|
|
|
mesProduceSn.setAreaCode(mesWorkCell.getAreaCode());
|
|
|
|
|
mesProduceSn.setWorkCenterCode(mesWorkCell.getWorkCenterCode());
|
|
|
|
|
mesProduceSn.setWorkCellCode(mesWorkCell.getWorkCellCode());
|
|
|
|
|
mesProduceSn.setProcessLabelTemplate(mesPart.getProcessLabelTemplate());
|
|
|
|
|
mesProduceSn.setCustLabelTemplate(mesPart.getCustLabelTemplate());
|
|
|
|
|
mesProduceSn.setProcessLabelTemplate(mesPart.getProcessLabelTemplate());
|
|
|
|
|
mesProduceSn.setQty(1d);
|
|
|
|
|
mesProduceSn.setSnStatus(10);
|
|
|
|
|
mesProduceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
|
|
|
|
|
mesProduceSn.setLotNo(DateUtil.format(new Date(), "YYYYMMDD"));
|
|
|
|
|
mesProduceSn.setRouteCode(reqBean.getRouteCode());
|
|
|
|
|
mesProduceSn.setProcessCode(productionProcessContext.getProcessCode());
|
|
|
|
|
mesProduceSn.setCraftCode(productionProcessContext.getCraftCode());
|
|
|
|
|
mesProduceSn.setPrintCount(0);
|
|
|
|
|
mesProduceSn.setPrintStatus(10);
|
|
|
|
|
|
|
|
|
|
return mesProduceSn;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|