forked from I3-YF/i3plus-mes-pcn-yfai
工步上料
parent
619a3d72b5
commit
6c1e758399
@ -0,0 +1,88 @@
|
|||||||
|
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.MesProductionProcessContext;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesContainerPartsModel;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||||
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||||
|
import cn.estsh.i3plus.platform.common.util.MesConstWords;
|
||||||
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.*;
|
||||||
|
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.MesContainerSnPartRepository;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.repository.MesContainerSnStationRepository;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.repository.MesContainerTypePartRepository;
|
||||||
|
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.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description : 零件条码绑定装配件站点容器工步
|
||||||
|
* @Author : jason.niu
|
||||||
|
**/
|
||||||
|
@Slf4j
|
||||||
|
@Service("mesStationFeedContainerPackageDetailStepService")
|
||||||
|
public class MesStationFeedContainerPackageDetailStepService extends BaseStepService {
|
||||||
|
@Autowired
|
||||||
|
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
|
||||||
|
@Autowired
|
||||||
|
private MesContainerSnStationRepository containerSnStationRDao;
|
||||||
|
@Autowired
|
||||||
|
private MesContainerTypePartRepository containerTypePartRDao;
|
||||||
|
@Autowired
|
||||||
|
private MesContainerSnPartRepository containerSnPartRDao;
|
||||||
|
|
||||||
|
@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());
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取站点用于缺料时进行上料绑定
|
||||||
|
List<MesStation> stationList = productionDispatchContextStepService.getMatchStationContext(reqBean);
|
||||||
|
if (CollectionUtils.isEmpty(stationList)) {
|
||||||
|
stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "容器条码扣减装配件时验证设备未关联支持上料的站点");
|
||||||
|
}
|
||||||
|
final String organizeCode = reqBean.getOrganizeCode();
|
||||||
|
|
||||||
|
String containerSn = productionDispatchContextStepService.getMatchStationFeedScanSnContext(reqBean);
|
||||||
|
containerSn = "10002325002";
|
||||||
|
for (MesStation station : stationList) {
|
||||||
|
List<MesContainerSnStation> containerSnStations = getMesContainerSnStation(organizeCode, station.getStation());
|
||||||
|
if (CollectionUtils.isEmpty(containerSnStations)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (MesContainerSnStation containerSnStation : containerSnStations) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "容器条码扣减装配件验证成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<MesContainerSnStation> getMesContainerSnStation(String organizeCode, String station) {
|
||||||
|
List<MesContainerSnStation> containerSnStations = containerSnStationRDao.findByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_VALID, MesConstWords.IS_DELETED, "station"},
|
||||||
|
new Object[]{organizeCode, CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), station});
|
||||||
|
containerSnStations.removeIf(temp -> !Objects.equals(temp.getContainerSn(), temp.getTopContainerSn()));
|
||||||
|
return containerSnStations;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,74 @@
|
|||||||
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
||||||
|
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
|
||||||
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||||
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||||
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
||||||
|
import cn.estsh.i3plus.platform.common.util.MesConstWords;
|
||||||
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||||
|
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
|
||||||
|
import cn.estsh.i3plus.pojo.mes.bean.MesContainerPackage;
|
||||||
|
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.MesContainerPackageRepository;
|
||||||
|
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.StringUtils;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description : 容器上料扫描容器条码/扫描原料条码/扫描关箱工步
|
||||||
|
* @Author : jason.niu
|
||||||
|
**/
|
||||||
|
@Slf4j
|
||||||
|
@Service("mesStationFeedScanSnStepService")
|
||||||
|
public class MesStationFeedScanSnStepService extends BaseStepService {
|
||||||
|
@Autowired
|
||||||
|
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
|
||||||
|
@Autowired
|
||||||
|
private IMesConfigService configService;
|
||||||
|
@Autowired
|
||||||
|
private MesContainerPackageRepository containerPackageRDao;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StepResult execute(StationRequestBean reqBean) {
|
||||||
|
StationResultBean resultBean = new StationResultBean();
|
||||||
|
|
||||||
|
StepResult stepResult = StepResult.getSuccessComplete();
|
||||||
|
|
||||||
|
//扫描信息置空
|
||||||
|
String scanInfo = reqBean.resetScanInfo(reqBean.getScanInfo());
|
||||||
|
|
||||||
|
if (StringUtils.isEmpty(scanInfo)) stepSendGuideAndThrowEx(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "请扫描装配件条码!");
|
||||||
|
|
||||||
|
// 判断是否为关箱条码
|
||||||
|
MesConfig mesConfig = configService.getCfgValueByCode(reqBean.getOrganizeCode(), MesPcnExtConstWords.MATCH_STATION_FEED_CLOSE_PACKAGE);
|
||||||
|
if (mesConfig != null && Objects.equals(scanInfo, mesConfig.getCfgValue())) {
|
||||||
|
String containerSn = productionDispatchContextStepService.getMatchStationFeedContainerSnContext(reqBean);
|
||||||
|
if (StringUtils.isEmpty(containerSn)) {
|
||||||
|
stepSendGuideAndThrowEx(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "不存在需要关箱的容器条码!");
|
||||||
|
}
|
||||||
|
MesContainerPackage containerPackage = containerPackageRDao.getByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_VALID, MesConstWords.IS_DELETED, "containerSn"},
|
||||||
|
new Object[]{reqBean.getOrganizeCode(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), containerSn});
|
||||||
|
if (containerPackage == null) {
|
||||||
|
stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("容器条码【%s】未绑定零件!", containerSn));
|
||||||
|
}
|
||||||
|
assert containerPackage != null;
|
||||||
|
containerPackage.setPackageStatus(MesExtEnumUtil.CONTAINER_PACKAGE_STATUS.STATUS_20.getValue());
|
||||||
|
ConvertBean.serviceModelUpdate(containerPackage, reqBean.getUserInfo());
|
||||||
|
containerPackageRDao.update(containerPackage);
|
||||||
|
}
|
||||||
|
|
||||||
|
//保存扫描条码用于缺料时进行上料绑定
|
||||||
|
productionDispatchContextStepService.dispatchMatchStationFeedScanSnContext(reqBean, scanInfo);
|
||||||
|
|
||||||
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()).scanInfo(scanInfo), stepResult,
|
||||||
|
String.format("当前扫描信息装配件条码[%s]", scanInfo));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue