forked from I3-YF/i3plus-mes-pcn-yfai
修改工步上料
parent
f51eb189e3
commit
42ef11c53c
@ -0,0 +1,64 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.rulematch.containerbind;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesContainerPartsModel;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
// YFWHU|YFNSC901C241223042722|C901|401007574AAABN|9.0|EA|C901|20241223|
|
||||
@Slf4j
|
||||
@Component
|
||||
public class MesContainerBindPackageSnService extends MesAbstractContainerBindDispatchService {
|
||||
@Autowired
|
||||
private MesProduceSnRepository produceSnRDao;
|
||||
|
||||
public MesContainerBindPackageSnService() {
|
||||
super(null, MesExtEnumUtil.CONTAINER_PART_MATCH_TYPE.MATCH_TYPE_30);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> matchNumberRule(String organizeCode, String barcode, MesContainerPartsModel model) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put(MesPcnExtConstWords.RESULT, true);
|
||||
String[] splitBarcode = barcode.split("\\|");
|
||||
if (splitBarcode.length < 8) {
|
||||
MesPcnException.throwMesBusiException("自制件箱码【%s】格式不对, 请检查数据!", barcode);
|
||||
}
|
||||
String barOrganizeCode = splitBarcode[2];
|
||||
if (!Objects.equals(barOrganizeCode, organizeCode)) {
|
||||
MesPcnException.throwMesBusiException("自制件箱码【%s】的工厂代码【%s】与当前工厂不匹配, 请检查数据!", barcode, barOrganizeCode);
|
||||
}
|
||||
|
||||
String barProductSn = splitBarcode[3];
|
||||
MesProduceSn produceSn = produceSnRDao.getByProperty(
|
||||
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, "productSn"},
|
||||
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), barProductSn});
|
||||
if (produceSn == null) {
|
||||
MesPcnException.throwMesBusiException("自制件箱码【%s】的条码【%s】在条码表不存在, 请检查数据!", barcode, barProductSn);
|
||||
}
|
||||
|
||||
if (!Objects.equals(produceSn.getSnStatus(), MesExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getValue()) &&
|
||||
!Objects.equals(produceSn.getSnStatus(), MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue())) {
|
||||
MesPcnException.throwMesBusiException("扫描条码【%s】的条码状态必须为“创建”或“已完成”, 请检查数据!", barcode);
|
||||
}
|
||||
|
||||
if (!Objects.equals(produceSn.getQcStatus(), MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) &&
|
||||
!Objects.equals(produceSn.getQcStatus(), MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS_TO_QUALIFIED.getValue())) {
|
||||
MesPcnException.throwMesBusiException("扫描条码【%s】的质量状态必须为“合格”或“可疑转正常”, 请检查数据!", barcode);
|
||||
}
|
||||
|
||||
result.put(MesPcnExtConstWords.DATA_TYPE, MesExtEnumUtil.CONTAINER_BARCODE_DATA_TYPE.STATUS_10.getValue());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
@ -1,86 +0,0 @@
|
||||
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.IMesProductionCustomContextStepService;
|
||||
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 IMesProductionCustomContextStepService productionCustomContextStepService;
|
||||
@Autowired
|
||||
private IMesConfigService configService;
|
||||
@Autowired
|
||||
private MesContainerPackageRepository containerPackageRDao;
|
||||
|
||||
@Override
|
||||
public StepResult guide(StationRequestBean reqBean) {
|
||||
|
||||
productionCustomContextStepService.sendStepContextMessage(reqBean);
|
||||
|
||||
return stepSuccessCompleteAndSendGuideReturn(reqBean, new StationResultBean().writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "请扫描上料条码!");
|
||||
|
||||
}
|
||||
|
||||
@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