自动化线接口

mes-uat-changshu0609^2^2
jason 4 days ago
parent c4f5f32963
commit 4f72b2b291

@ -54,11 +54,6 @@ public class MesEquipmentProductionResultServiceImpl implements IMesEquipmentPro
log.error("没有配置表mes_config,cfg_code为CHANG_SHU_AUTO_LINE_INTERFACE,key为CHANG_SHU_ORGANIZE_CODE没有配置"); log.error("没有配置表mes_config,cfg_code为CHANG_SHU_AUTO_LINE_INTERFACE,key为CHANG_SHU_ORGANIZE_CODE没有配置");
return; return;
} }
StationRequestBean reqBean = new StationRequestBean(organizeCode, info.getWorkCenterCode(), info.getWorkCellCode(), "webservices");
reqBean.setBusiType(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_DO_SCAN.getCode());
reqBean.setInterfaceType(MesPcnConstWords.SHIPPING);
reqBean.setScanInfo(info.getProductSn());
shippingDispatchService.sendScanQueueNextExec(reqBean);
MesEquipmentProductionResult result = new MesEquipmentProductionResult(); MesEquipmentProductionResult result = new MesEquipmentProductionResult();
result.setOrganizeCode(organizeCode); result.setOrganizeCode(organizeCode);
@ -84,5 +79,12 @@ public class MesEquipmentProductionResultServiceImpl implements IMesEquipmentPro
resultDetailRDao.insert(detail); resultDetailRDao.insert(detail);
} }
} }
// StationRequestBean reqBean = new StationRequestBean(organizeCode, info.getWorkCenterCode(), info.getWorkCellCode(), "webservices");
// reqBean.setBusiType(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_DO_SCAN.getCode());
// reqBean.setInterfaceType(MesPcnConstWords.SHIPPING);
// reqBean.setClientInfo("");
// reqBean.setIsWs(false);
// shippingDispatchService.sendScanQueueNextExec(reqBean);
} }
} }

@ -0,0 +1,62 @@
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.pojo.context.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
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.MesEquipmentProductionResultRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @Description : 线
* @Author : jason.niu
**/
@Slf4j
@Service("mesAutoLineHandleCompleteStepService")
public class MesAutoLineHandleCompleteStepService extends BaseStepService {
@Autowired
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
@Autowired
private MesEquipmentProductionResultRepository equipmentProductionResultRDao;
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
final String organizeCode = reqBean.getOrganizeCode();
StepResult stepResult = StepResult.getSuccessComplete();
//获取进料主条码数据信息
List<MesProductionPsInContext> productionPsInContextList = productionDispatchContextStepService.getProductionPsInContext(reqBean);
if (!CollectionUtils.isEmpty(productionPsInContextList)) {
List<String> productSnList = new ArrayList<>();
for (MesProductionPsInContext context : productionPsInContextList) {
productSnList.add(context.getProductSn());
}
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(productSnList, "productSn", ddlPackBean);
equipmentProductionResultRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "generateRecord"},
new Object[]{reqBean.getUserInfo(), TimeTool.getNowTime(true),
CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}, ddlPackBean);
}
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "处理自动化线生产结果成功!");
}
}

@ -0,0 +1,78 @@
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.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
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.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentProductionResult;
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.MesEquipmentProductionResultRepository;
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.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @Description : 线
* @Author : jason.niu
**/
@Slf4j
@Service("mesAutoLineProductionResultStepService")
public class MesAutoLineProductionResultStepService extends BaseStepService {
@Autowired
private IMesProductionProcessContextStepService productionProcessContextStepService;
@Autowired
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
@Autowired
private MesEquipmentProductionResultRepository equipmentProductionResultRDao;
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete();
final String organizeCode = reqBean.getOrganizeCode();
//获取工位当前设备信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) {
stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
}
List<MesEquipmentProductionResult> productionResults = getEquipmentProductionResult(organizeCode);
if (CollectionUtils.isEmpty(productionResults)) {
stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "未获取到设备生产结果!");
}
List<MesEquipVariableCollectContext> equipVariableCollectContextList = new ArrayList<>();
for (MesEquipmentProductionResult result : productionResults) {
MesEquipVariableCollectContext context = new MesEquipVariableCollectContext(organizeCode, result.getProductSn(), MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ.getValue());
context.setQty(result.getQty());
context.setEquipVariableId(result.getId());
equipVariableCollectContextList.add(context);
}
productionDispatchContextStepService.dispatchScanProductSnContext(reqBean, equipVariableCollectContextList);
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "收集自动化线生产结果成功!");
}
private List<MesEquipmentProductionResult> getEquipmentProductionResult(String organizeCode) {
List<MesEquipmentProductionResult> result = new ArrayList<>();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumNOEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), "generateRecord", packBean);
return equipmentProductionResultRDao.findByHqlWhere(packBean);
}
}

@ -1,45 +0,0 @@
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.mes.pcn.serviceimpl.fsm.BaseStepService;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Description : 线
* @Author : jason.niu
**/
@Slf4j
@Service("mesEquipmentProductionResultStepService")
public class MesEquipmentProductionResultStepService extends BaseStepService {
@Autowired
private IMesProductionProcessContextStepService productionProcessContextStepService;
@Autowired
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete();
final String organizeCode = reqBean.getOrganizeCode();
//获取工位当前设备信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) {
stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
}
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "收集自动化线生产结果成功!");
}
}

@ -83,6 +83,9 @@ public class MesProductSnCheckStepService extends BaseStepService {
//获取进料主条码数据信息 //获取进料主条码数据信息
List<MesProductionPsInContext> productionPsInContextList = productionDispatchContextStepService.getProductionPsInContext(reqBean); List<MesProductionPsInContext> productionPsInContextList = productionDispatchContextStepService.getProductionPsInContext(reqBean);
if (productionPsInContextList == null) {
productionPsInContextList = new ArrayList<>();
}
//处理条码验证逻辑 //处理条码验证逻辑
checkProduceSnValid(reqBean, resultBean, stepResult, productionProcessContext, equipVariableCollectContextList, productionPsInContextList); checkProduceSnValid(reqBean, resultBean, stepResult, productionProcessContext, equipVariableCollectContextList, productionPsInContextList);

Loading…
Cancel
Save