Merge remote-tracking branch 'origin/dev' into dev

tags/yfai-pcn-ext-v1.0
jun 11 months ago
commit 28a6c74ad8

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyNosortContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam;
@ -49,16 +50,16 @@ public interface IMesProductionProcessContextStepService {
//正常情况下均直接调用以下方法获取上下文
@ApiOperation(value = "获取工位当前设备信息")
MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean);
MesProductionProcessContext doHandleCurCellEquipment(StationRequestBean reqBean);
@ApiOperation(value = "获取工位当前设备信息")
MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext);
MesProductionProcessContext doHandleCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext);
@ApiOperation(value = "获取工位当前设备信息")
MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean, Optional<Map<String, MesProdRouteOptParam>> stepParamMap);
MesProductionProcessContext doHandleCurCellEquipment(StationRequestBean reqBean, Optional<Map<String, MesProdRouteOptParam>> stepParamMap);
@ApiOperation(value = "获取工位当前设备信息")
MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, Optional<Map<String, MesProdRouteOptParam>> stepParamMap);
MesProductionProcessContext doHandleCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, Optional<Map<String, MesProdRouteOptParam>> stepParamMap);
@ApiOperation(value = "获取设备数据变量接口逻辑信息")
MesProductionProcessContext getEquipmentVariableCfgList(StationRequestBean reqBean);
@ -111,5 +112,13 @@ public interface IMesProductionProcessContextStepService {
@ApiOperation(value = "删除手动选择的腔数及工单信息上下文")
void deleteFunctionChooseCavityOrderContext(StationRequestBean reqBean);
@ApiOperation(value = "获取上下文工位扫描监控信息")
MesScanMonitorContext doHandleScanMonitorContext(StationRequestBean reqBean, Boolean isSave);
@ApiOperation(value = "保存上下文工位扫描监控信息", notes = "工序开始时记录雪花ID,工序开始时间等基础信息, 处理基础上下文时赋值设备信息")
Boolean saveScanMonitorContext(StationRequestBean reqBean);
@ApiOperation(value = "删除上下文工位扫描监控信息")
void deleteScanMonitorContext(StationRequestBean reqBean);
}

@ -43,9 +43,9 @@ public interface IMesWorkOrderService {
List<MesProduceSn> getPreDayReportMesProduceSn(String organizeCode ,List<MesProductionRecord> mesProductionRecordList );
public List<MesWorkOrder> insertMesWorkOrder(List<MesProduceSn> mesProduceSns,List<MesShift> mesShiftList,String organizeCode, String userName );
List<MesWorkOrder> insertMesWorkOrder(List<MesProductionRecord> mesProductionRecordList,List<MesShift> mesShiftList,String organizeCode, String userName );
void doPcnJobProductReport(List<MesProduceSn> mesProduceSns,List<MesShift> mesShiftList,String organizeCode, String userName, MesWorkOrder mesWorkOrder);
void doPcnJobProductReport(List<MesProductionRecord> mesProductionRecordList,List<MesShift> mesShiftList,String organizeCode, String userName, MesWorkOrder mesWorkOrder);
void doProductReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName);

@ -49,6 +49,7 @@ public class TestController {
private MesShiftRepository mesShiftRepository;
@Autowired
private IMesConfigService configService;
@GetMapping("/equipment/log/query")
@ApiOperation(value = "查询设备交互")
public ResultBean queryReworkTaskByPager(String organizeCode, Integer equipId) {
@ -61,6 +62,7 @@ public class TestController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping("/reportWorkByPreDayJob")
@ApiOperation(value = "查询设备交互")
public ResultBean queryReworkTaskByPager(String organizeCode) {
@ -74,29 +76,31 @@ public class TestController {
for (String workCenterCode : workCenterCodeList) {
List<MesShift> mesShiftList = mesShiftListAll.stream().filter(s -> s.getWorkCenterCode().equalsIgnoreCase(workCenterCode)).collect(Collectors.toList());
//1.获取生产加工记录production_record表中report_status为待汇报状态的工单
List<MesProductionRecord> mesProductionRecordList = workOrderService.getPreDayReportMesProductionRecord(organizeCode,mesShiftList,workCenterCode);
if(CollectionUtils.isEmpty(mesProductionRecordList)){
continue;
}
//2. 查询 mesProduceSn
List<MesProduceSn> unReportMesProduceSn = workOrderService.getPreDayReportMesProduceSn(organizeCode,mesProductionRecordList);
if(CollectionUtils.isEmpty(unReportMesProduceSn)){
List<MesProductionRecord> mesProductionRecordList = workOrderService.getPreDayReportMesProductionRecord(organizeCode, mesShiftList, workCenterCode);
if (CollectionUtils.isEmpty(mesProductionRecordList)) {
continue;
}
List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(unReportMesProduceSn, mesShiftList,organizeCode, userName);
if(CollectionUtils.isEmpty(mesWorkOrders)){
//3.插入生产工单表
List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(mesProductionRecordList, mesShiftList, organizeCode, userName);
if (CollectionUtils.isEmpty(mesWorkOrders)) {
continue;
}
//根据产线+物料产生的工单报工
//4.根据产线+物料产生的工单报工
for (MesWorkOrder mesWorkOrder : mesWorkOrders) {
List<MesProduceSn> mesProduceSnList = unReportMesProduceSn.stream().filter(w -> w.getPartNo().equalsIgnoreCase(mesWorkOrder.getPartNo())).collect(Collectors.toList());
workOrderService.doPcnJobProductReport(mesProduceSnList,mesShiftList,organizeCode,userName, mesWorkOrder);
List<MesProductionRecord> mesProductionRecords = mesProductionRecordList.stream().filter(
w -> w.getWorkCenterCode().equalsIgnoreCase(mesWorkOrder.getWorkCenterCode())
&& w.getPartNo().equalsIgnoreCase(mesWorkOrder.getPartNo())).collect(Collectors.toList());
workOrderService.doPcnJobProductReport(mesProductionRecords, mesShiftList, organizeCode, userName, mesWorkOrder);
}
for (MesProductionRecord mesProductionRecord : mesProductionRecordList) {
mesProductionRecord.setReportStatus(20);
ConvertBean.serviceModelUpdate(mesProductionRecord, userName);
}
productionRecordRao.saveAll(mesProductionRecordList);
}
return ResultBean.success("查询成功").setResultList(null);
} catch (ImppBusiException imppException) {

@ -78,13 +78,13 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
continue;
}
//2. 查询 mesProduceSn
List<MesProduceSn> unReportMesProduceSn = workOrderService.getPreDayReportMesProduceSn(organizeCode, mesProductionRecordList);
if (CollectionUtils.isEmpty(unReportMesProduceSn)) {
continue;
}
LOGGER.info("产线:{}报工mesWorkOrders:{}", workCenterCode, unReportMesProduceSn);
// List<MesProduceSn> unReportMesProduceSn = workOrderService.getPreDayReportMesProduceSn(organizeCode, mesProductionRecordList);
// if (CollectionUtils.isEmpty(unReportMesProduceSn)) {
// continue;
// }
LOGGER.info("产线:{}报工mesProductionRecordList:{}", workCenterCode, mesProductionRecordList);
//3.插入生产工单表
List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(unReportMesProduceSn, mesShiftList, organizeCode, userName);
List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(mesProductionRecordList, mesShiftList, organizeCode, userName);
if (CollectionUtils.isEmpty(mesWorkOrders)) {
continue;
@ -93,14 +93,16 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
//4.根据产线+物料产生的工单报工
try {
for (MesWorkOrder mesWorkOrder : mesWorkOrders) {
List<MesProduceSn> mesProduceSnList = unReportMesProduceSn.stream().filter(w -> w.getPartNo().equalsIgnoreCase(mesWorkOrder.getPartNo())).collect(Collectors.toList());
workOrderService.doPcnJobProductReport(mesProduceSnList, mesShiftList, organizeCode, userName, mesWorkOrder);
for (MesProductionRecord mesProductionRecord : mesProductionRecordList) {
mesProductionRecord.setReportStatus(20);
ConvertBean.serviceModelUpdate(mesProductionRecord, userName);
}
productionRecordRao.saveAll(mesProductionRecordList);
List<MesProductionRecord> mesProductionRecords = mesProductionRecordList.stream().filter(
w -> w.getWorkCenterCode().equalsIgnoreCase(mesWorkOrder.getWorkCenterCode())
&& w.getPartNo().equalsIgnoreCase(mesWorkOrder.getPartNo())).collect(Collectors.toList());
workOrderService.doPcnJobProductReport(mesProductionRecords, mesShiftList, organizeCode, userName, mesWorkOrder);
}
for (MesProductionRecord mesProductionRecord : mesProductionRecordList) {
mesProductionRecord.setReportStatus(20);
ConvertBean.serviceModelUpdate(mesProductionRecord, userName);
}
productionRecordRao.saveAll(mesProductionRecordList);
} catch (ImppBusiException e) {
LOGGER.error("产线:{}报工失败:{}", workCenterCode, e.getErrorDetail());
// for (MesProductionRecord mesProductionRecord : mesProductionRecordList) {

@ -62,6 +62,8 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
private IMesJisShippingService jisShippingService;
@Autowired
private MesLoadingListDetailRepository vehiclesOrderDetailRepository;
@Autowired
private MesLoadingListRepository vehiclesOrderRepository;
@Override
public MesSortShippingCheckModel queryShippingOrderNo(MesShippingOrderManagement shippingOrderManagement) {
@ -434,6 +436,17 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
}
//保存当前发运单明细报工
jisShippingRepository.saveAll(jisShippingList);
if(!StringUtil.isEmpty(vehiclesOrderDetail)){
MesLoadingList loadingList = vehiclesOrderRepository.getById(vehiclesOrderDetail.getPid());
if (!StringUtils.isEmpty(loadingList)) {
loadingList.setStatus(MesExtEnumUtil.MES_LOADING_STATUS.ASN.getValue());
ConvertBean.serviceModelUpdate(loadingList, userName);
vehiclesOrderRepository.save(loadingList);
}
}
}
}

@ -253,7 +253,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
mesProductOffLineRDao.saveAll(mesProductOffLineList);
}
}
public void doPcnJobProductReport(List<MesProduceSn> mesProduceSns,List<MesShift> mesShiftList,String organizeCode, String userName ,MesWorkOrder mesWorkOrderDb) {
public void doPcnJobProductReport(List<MesProductionRecord> mesProductionRecordList,List<MesShift> mesShiftList,String organizeCode, String userName ,MesWorkOrder mesWorkOrderDb) {
//查询物料信息
DdlPackBean ddlPackBeanPart = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode());
@ -279,8 +279,6 @@ public class MesWorkOrderService implements IMesWorkOrderService {
//更新工单
// updateMesWorkOrder(mesWorkOrderDb, userName );
//生成条码 todo 有条码 不生成
//保存数据
// List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
// for (MesBom mesBom : mesBoms) {
@ -288,11 +286,11 @@ public class MesWorkOrderService implements IMesWorkOrderService {
// }
// mesProductOffLineService.insertBatch(mesProductOffLineList);
LOGGER.info("产线:{} 零件:{}更新工单mesProduceSns:{}", mesWorkOrderDb.getWorkCenterCode(), mesWorkOrderDb.getPartNo(),mesProduceSns.size());
LOGGER.info("产线:{} 零件:{}更新工单mesProduceSns:{}", mesWorkOrderDb.getWorkCenterCode(), mesWorkOrderDb.getPartNo(),mesProductionRecordList.size());
//保存数据
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
MesProductOffLine newMesProductOffLine;
for (MesProduceSn produceSn : mesProduceSns) {
for (MesProductionRecord mesProductionRecord : mesProductionRecordList) {
for (MesBom mesBom : mesBoms) {
newMesProductOffLine = new MesProductOffLine();
newMesProductOffLine.setReportPartNo(mesWorkOrderDb.getPartNo());
@ -303,9 +301,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint());
newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint());
newMesProductOffLine.setQty(1d);
newMesProductOffLine.setReportSn(produceSn.getProductSn());
newMesProductOffLine.setReportSn(mesProductionRecord.getProductSn());
newMesProductOffLine.setBomVersion(mesWorkOrderDb.getProductVersion());
newMesProductOffLine.setSerialNumber(produceSn.getProductSn());
newMesProductOffLine.setSerialNumber(mesProductionRecord.getProductSn());
newMesProductOffLine.setUnit(mesBom.getUnit());
newMesProductOffLine.setItemUnit(mesBom.getItemUnit());
newMesProductOffLine.setWorkOrderNo(mesWorkOrderDb.getWorkOrderNo());
@ -809,12 +807,12 @@ public class MesWorkOrderService implements IMesWorkOrderService {
}
@Override
public List<MesWorkOrder> insertMesWorkOrder(List<MesProduceSn> mesProduceSns,List<MesShift> mesShiftList, String organizeCode, String userName) {
public List<MesWorkOrder> insertMesWorkOrder(List<MesProductionRecord> mesProductionRecordList,List<MesShift> mesShiftList, String organizeCode, String userName) {
List<MesWorkOrder> mesWorkOrderList=new ArrayList<>();
Map<String, List<MesProduceSn>> snListMap = mesProduceSns.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() +"="+ sn.getPartNo()));
for (Map.Entry<String, List<MesProduceSn>> stringListEntry : snListMap.entrySet()) {
List<MesProduceSn> value = stringListEntry.getValue();
MesProduceSn mesProduceSn = value.get(0);
Map<String, List<MesProductionRecord>> mesProductionRecordListMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() +"="+ sn.getPartNo()));
for (Map.Entry<String, List<MesProductionRecord>> stringListEntry : mesProductionRecordListMap.entrySet()) {
List<MesProductionRecord> value = stringListEntry.getValue();
MesProductionRecord mesProductionRecord = value.get(0);
String[] split = stringListEntry.getKey().split("=");
String workCenterCode = split[0];
String partNo = split[1];
@ -853,11 +851,11 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesPcnException.throwMesBusiException("单号流水码生成重复");
}
item.setWorkOrderNo(orderNo);
item.setPartName(mesProduceSn.getPartName());
item.setPartName(mesProductionRecord.getPartName());
//生产时间新增取当天
item.setProduceTime(TimeTool.getToday());
item.setUnCompleteQty(0d);
item.setQty(value.stream().mapToDouble(MesProduceSn::getQty).sum());
item.setQty(value.stream().mapToDouble(MesProductionRecord::getQty).sum());
item.setReportedQty(item.getQty());
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
@ -877,17 +875,11 @@ public class MesWorkOrderService implements IMesWorkOrderService {
item.setProductVersion(mesProductVersion.getProductVersion());
//获取bom信息
List<MesBom> bomList = findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList());
//item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
//发送工单信息给WMS
saveMesWorkOrderToWms.addAll(saveMesWorkOrderToWms(item, bomList));
}
// if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()){
// //生产工单-非排序手工插单,关闭该零件当天之前日期非排序工单
// List<String> partNoList = Collections.singletonList(item.getPartNo());
// deleteUnSortOrder(orderNo,partNoList);
// }
item.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelInitialize(item, userName);
MesWorkOrder mesWorkOrder = workOrderRepository.insert(item);

@ -48,11 +48,11 @@ public class MesFunctionChooseCavityOrderService extends BaseSwsService implemen
MesWorkCell workCell = productionProcessContext.getWorkCell();
if (StringUtils.isEmpty(workCell.getIsAllowOrder()) || CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == workCell.getIsAllowOrder()) {
this.sendMessage(reqBean, resultBean.writeDbLog(), String.format("生产线[%s]工位[%s]%s失败,工位未设置允许界面选工单!",
reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), buttonDynamicModel.getButtonName()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
return false;
}
// if (StringUtils.isEmpty(workCell.getIsAllowOrder()) || CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == workCell.getIsAllowOrder()) {
// this.sendMessage(reqBean, resultBean.writeDbLog(), String.format("生产线[%s]工位[%s]%s失败,工位未设置允许界面选工单!",
// reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), buttonDynamicModel.getButtonName()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
// return false;
// }
List<StationKvBean> resultList = checkCavityOrderIsValid(buttonDynamicModel.getFunctionValue());
if (CollectionUtils.isEmpty(resultList)) {

@ -63,7 +63,7 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete().nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_ASSEMBLY);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -57,7 +57,7 @@ public class MesAssemblyMatchNosortStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -41,7 +41,7 @@ public class MesAssemblyMatchStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -72,7 +72,7 @@ public class MesAssemblyReadStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -58,7 +58,7 @@ public class MesAssemblySaveNosortStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -33,7 +33,7 @@ public class MesAssemblySaveStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -59,7 +59,7 @@ public class MesAssemblyScanStepService extends BaseStepService {
String scanInfo = reqBean.resetScanInfo(reqBean.getScanInfo());
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -56,7 +56,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -54,7 +54,7 @@ public class MesAssemblyShowSortStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -33,7 +33,7 @@ public class MesAssemblyShowStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -81,7 +81,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//获取生产过程上下文对象有异常信息 抛出异常
if (!productionProcessContextStepService.getEquipmentVariableCfgList(productionProcessContext).getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -62,7 +62,7 @@ public class MesMaterialReadStepService extends BaseStepService {
//获取工步参数
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
String equipmentCode = productionProcessContext.getCurCellEquip().getEquipmentCode();

@ -74,7 +74,7 @@ public class MesMouldNoReadStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工序已存在模具号
if (productionDispatchContextStepService.checkMouldNoIsExistContext(reqBean)) return stepResult;

@ -54,7 +54,7 @@ public class MesProdCraftRouteCheckStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//获取生产过程上下文对象有异常信息 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -70,7 +70,7 @@ public class MesProductResultReadStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工序已存在加工结果
if (!StringUtils.isEmpty(productionDispatchContextStepService.getProductResultContext(reqBean))) return stepResult;

@ -48,7 +48,7 @@ public class MesProductSnCheckNosortStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//获取生产过程上下文对象有异常信息 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -51,7 +51,7 @@ public class MesProductSnCheckSortStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//获取生产过程上下文对象有异常信息 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -33,7 +33,7 @@ public class MesProductSnCheckStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -80,7 +80,7 @@ public class MesProductSnGenerateStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -73,7 +73,7 @@ public class MesProductSnReadStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工序已存在读取待验证的主条码信息
if (productionDispatchContextStepService.checkScanProductSnIsExistContext(reqBean)) return stepResult;

@ -60,7 +60,7 @@ public class MesProductSnSaveStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -70,7 +70,7 @@ public class MesProductSnScanNosortStepService extends BaseStepService {
if (!StringUtils.isEmpty(scanInfo)) productionCustomContextStepService.doSendStepContextMessage(reqBean, scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//获取生产过程上下文对象有异常信息 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -69,7 +69,7 @@ public class MesProductSnScanSortStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//获取生产过程上下文对象有异常信息 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -51,7 +51,7 @@ public class MesProductSnScanStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -77,7 +77,7 @@ public class MesProductionPartNoReadStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工序已存在产出零件号跟产出零件信息
if (productionDispatchContextStepService.checkProductionPartNoIsExistContext(reqBean) && productionDispatchContextStepService.checkProductionPartIsExistContext(reqBean)) return stepResult;

@ -63,7 +63,7 @@ public class MesProductionRecordGenerateStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
MesWorkCell mesWorkCell = productionProcessContext.getWorkCell();

@ -68,7 +68,7 @@ public class MesReadySignalReadStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工序已存在就绪信号
if (!StringUtils.isEmpty(productionDispatchContextStepService.getReadySignalContext(reqBean))) return stepResult;

@ -53,7 +53,7 @@ public class MesReportGenerateStepService extends BaseStepService {
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess())

@ -73,7 +73,7 @@ public class MesSendCavityGroupParamsCmdStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工位使用的设备
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();

@ -62,7 +62,7 @@ public class MesSendEquipParamsCmdStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工位使用的设备
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
@ -105,7 +105,7 @@ public class MesSendEquipParamsCmdStepService extends BaseStepService {
*/
private Map<Integer, List<MesEquipmentProdParamCfg>> getMesEquipmentProdParamCfgs(StationRequestBean reqBean, List<MesProdRuleContext> prodRuleContextList, List<MesEquipmentProdParamCfg> mesEquipmentProdParamCfgList) {
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
Map<Integer, List<MesEquipmentProdParamCfg>> map = new HashMap<>();
for (MesProdRuleContext mesProdRuleContext : prodRuleContextList) {

@ -55,7 +55,7 @@ public class MesSendInitializationCmdStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//获取生产过程上下文对象有异常信息 抛出异常
if (!productionProcessContextStepService.getEquipmentVariableCfgList(productionProcessContext).getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -55,7 +55,7 @@ public class MesSendProcessCmdStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工序已存在发送允许加工指令
if (!StringUtils.isEmpty(productionDispatchContextStepService.getSendProcessCmdContext(reqBean))) return stepResult;

@ -69,7 +69,7 @@ public class MesVariableWhenFinishedReadStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
// 获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
// 获取条码信息
List<MesProductionPsOutContext> mesProduceSnContexts = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean);

@ -57,7 +57,7 @@ public class MesWorkOrderCheckNosortStepService extends MesWorkOrderCheckStepSer
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -55,7 +55,7 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -65,7 +65,7 @@ public class MesWorkOrderCheckStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -70,7 +70,7 @@ public class MesWorkOrderReadStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工序已存在读取待验证的加工单信息
if (productionDispatchContextStepService.checkScanWorkOrderNoIsExistContext(reqBean)) return stepResult;

@ -69,7 +69,7 @@ public class MesWorkOrderSaveStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -61,7 +61,7 @@ public class MesWorkOrderScanStepService extends BaseStepService {
String scanInfo = reqBean.resetScanInfo(reqBean.getScanInfo());
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
//获取生产过程上下文对象有异常信息 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());

@ -65,7 +65,7 @@ public class MesWriteMainBarcodeCmdStepService extends BaseStepService {
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean, stepParamMap);
//当前工位使用的设备
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
@ -109,7 +109,7 @@ public class MesWriteMainBarcodeCmdStepService extends BaseStepService {
*/
private Map<Integer, List<MesEquipmentProdParamCfg>> getMesEquipmentProdParamCfgs(StationRequestBean reqBean, List<MesProdRuleContext> prodRuleContextList, List<MesEquipmentProdParamCfg> mesEquipmentProdParamCfgList) {
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
Map<Integer, List<MesEquipmentProdParamCfg>> map = new HashMap<>();
for (MesProdRuleContext mesProdRuleContext : prodRuleContextList) {

@ -43,6 +43,7 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MODULE_CONTENT_CONTEXT, JSONObject.toJSONString(dataList));
}
//获取展示组件MODULE_CONTENT内容
@Override
public List<List<StationKvBean>> getModuleContentContext(StationRequestBean reqBean) {
String moduleContent = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MODULE_CONTENT_CONTEXT);

@ -6,16 +6,20 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepServ
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyNosortContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesScanMonitorContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmRouteDataService;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@ -44,6 +48,9 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
@Autowired
private IConfigService configService;
@Autowired
private SnowflakeIdMaker snowflakeIdMaker;
private String getContextKey(StationRequestBean reqBean) { return getFsmBusikey(reqBean, new StringJoiner(MesPcnExtConstWords.COLON).add(MesPcnExtConstWords.PRODUCTION_PROCESS_CONTEXT).add(MesPcnExtConstWords.BASE_DATA_CONTEXT).toString()); }
//清除上下文中的所有基础数据
@ -155,29 +162,29 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
//获取工位当前设备信息
@Override
public MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean) {
return getCurCellEquipment(reqBean, getCellEquipmentList(reqBean));
public MesProductionProcessContext doHandleCurCellEquipment(StationRequestBean reqBean) {
return doHandleCurCellEquipment(reqBean, getCellEquipmentList(reqBean));
}
//获取工位当前设备信息
@Override
public MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) {
public MesProductionProcessContext doHandleCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) {
if (!productionProcessContext.getSuccess()) return productionProcessContext;
return getCurCellEquipment(reqBean, productionProcessContext, getStepParams(reqBean));
return doHandleCurCellEquipment(reqBean, productionProcessContext, getStepParams(reqBean));
}
//获取工位当前设备信息
@Override
public MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean, Optional<Map<String, MesProdRouteOptParam>> stepParamMap) {
return getCurCellEquipment(reqBean, getCellEquipmentList(reqBean), stepParamMap);
public MesProductionProcessContext doHandleCurCellEquipment(StationRequestBean reqBean, Optional<Map<String, MesProdRouteOptParam>> stepParamMap) {
return doHandleCurCellEquipment(reqBean, getCellEquipmentList(reqBean), stepParamMap);
}
//获取工位当前设备信息
@Override
public MesProductionProcessContext getCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, Optional<Map<String, MesProdRouteOptParam>> stepParamMap) {
public MesProductionProcessContext doHandleCurCellEquipment(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, Optional<Map<String, MesProdRouteOptParam>> stepParamMap) {
if (!productionProcessContext.getSuccess()) return productionProcessContext;
@ -192,6 +199,10 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
//从工位设备集合信息中获取当前设备信息
MesCellEquipContext cellEquipmentContext = productionProcessContext.filterCurCellEquip(equipmentCode);
//保存上下文工位扫描监控信息【设备信息】
if (null != cellEquipmentContext) saveScanMonitorContext(reqBean,
doHandleScanMonitorContext(reqBean, true).equipment(cellEquipmentContext.getEquipId(), cellEquipmentContext.getEquipmentCode(), cellEquipmentContext.getEquipmentName()), false);
//生产过程上下文对象赋值当前设备代码
if (null != cellEquipmentContext) return productionProcessContext.curCellEquipJson(cellEquipmentContext.kepwareFlagJson(equipmentExtService.getEquipmentChannelList(reqBean.getOrganizeCode(), cellEquipmentContext.getEquipmentCode())))
.cavityGroupDetailJson(equipmentExtService.getMesCavityGroupDetailCfgList(reqBean.getOrganizeCode(), cellEquipmentContext.getEquipmentCode()));
@ -204,7 +215,7 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
//获取设备数据变量接口逻辑信息
@Override
public MesProductionProcessContext getEquipmentVariableCfgList(StationRequestBean reqBean) {
return getEquipmentVariableCfgList(getCurCellEquipment(reqBean));
return getEquipmentVariableCfgList(doHandleCurCellEquipment(reqBean));
}
//获取设备数据变量接口逻辑信息
@ -363,4 +374,61 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FUNCTION_CHOOSE_CAVITY_ORDER);
}
//获取上下文工位扫描监控信息, 没有就重新封装工位扫描监控信息, 同时处理基础上下文信息 【其他地方调用 isSave 必须传 true 】
@Override
public MesScanMonitorContext doHandleScanMonitorContext(StationRequestBean reqBean, Boolean isSave) {
MesScanMonitorContext scanMonitorContext = getScanMonitorContext(reqBean);
//封装工位扫描监控信息, 同时处理基础上下文信息
if (null == scanMonitorContext) {
//获取生产过程上下文对象
MesProductionProcessContext productionProcessContext = getProductionProcessContext(reqBean);
//存储生产过程上下文对象
saveProductionProcessContext(reqBean, productionProcessContext);
scanMonitorContext = new MesScanMonitorContext(reqBean.getOrganizeCode(),
productionProcessContext.getProcessCode(), productionProcessContext.getProcessName(), productionProcessContext.getCraftCode(), productionProcessContext.getCraftName());
MesWorkCell workCell = productionProcessContext.getWorkCell();
if (null != workCell) BeanUtils.copyProperties(workCell, scanMonitorContext);
if (isSave) saveScanMonitorContext(reqBean, scanMonitorContext, true);
}
return scanMonitorContext;
}
//保存上下文工位扫描监控信息
@Override
public Boolean saveScanMonitorContext(StationRequestBean reqBean) {
MesScanMonitorContext scanMonitorContext = doHandleScanMonitorContext(reqBean, false);
return saveScanMonitorContext(reqBean, scanMonitorContext, true);
}
//保存上下文工位扫描监控信息
private Boolean saveScanMonitorContext(StationRequestBean reqBean, MesScanMonitorContext scanMonitorContext, Boolean isSetMouldRecordId) {
if (null == scanMonitorContext) return false;
//开模记录ID, 工序开始时间
if (isSetMouldRecordId) scanMonitorContext.mouldRecordId(snowflakeIdMaker.nextId()).startDateTime(TimeTool.getNowTime(true));
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_MONITOR_CONTEXT, JSONObject.toJSONString(scanMonitorContext));
}
//获取上下文工位扫描监控信息
private MesScanMonitorContext getScanMonitorContext(StationRequestBean reqBean) {
String scanMonitorContextJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_MONITOR_CONTEXT);
return !StringUtils.isEmpty(scanMonitorContextJson) ? JSONObject.parseObject(scanMonitorContextJson, MesScanMonitorContext.class) : null;
}
//删除上下文工位扫描监控信息
@Override
public void deleteScanMonitorContext(StationRequestBean reqBean) {
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_MONITOR_CONTEXT);
}
}

@ -6,7 +6,6 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepServ
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.process.BaseProcessMonitorService;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
@ -30,16 +29,10 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic
@Autowired
private IFsmCommonService fsmCommonService;
@Autowired
private SnowflakeIdMaker snowflakeIdMaker;
@Override
public Boolean doProcessStart(StationRequestBean requestBean) {
// Long mouldId = snowflakeIdMaker.nextId();
return true;
//保存上下文工位扫描监控信息
return productionProcessContextStepService.saveScanMonitorContext(requestBean);
}
@Override

@ -0,0 +1,82 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import java.io.Serializable;
/**
* -
*/
@Data
public class MesScanMonitorContext implements Serializable {
private static final long serialVersionUID = 8234923032970057500L;
@ApiParam("组织代码")
private String organizeCode;
@ApiParam("开模记录ID")
private Long mouldRecordId;
@ApiParam(value ="工序开始时间")
private String startDateTime;
@ApiParam("区域代码")
private String areaCode;
@ApiParam("生产线")
private String workCenterCode;
@ApiParam("工位")
private String workCellCode;
@ApiParam("设备ID")
private Integer equipId;
@ApiParam("设备代码")
private String equipmentCode;
@ApiParam("设备名称")
private String equipmentName;
@ApiParam("工序代码")
private String processCode;
@ApiParam("工序名称")
private String processName;
@ApiParam("工艺代码")
private String craftCode;
@ApiParam("工艺名称")
private String craftName;
public MesScanMonitorContext() {}
public MesScanMonitorContext(String organizeCode, String processCode, String processName, String craftCode, String craftName) {
this.organizeCode = organizeCode;
this.processCode = processCode;
this.processName = processName;
this.craftCode = craftCode;
this.craftName = craftName;
}
public MesScanMonitorContext mouldRecordId(Long mouldRecordId) {
this.mouldRecordId = mouldRecordId;
return this;
}
public MesScanMonitorContext startDateTime(String startDateTime) {
this.startDateTime = startDateTime;
return this;
}
public MesScanMonitorContext equipment(Integer equipId, String equipmentCode, String equipmentName) {
this.equipId = equipId;
this.equipmentCode = equipmentCode;
this.equipmentName = equipmentName;
return this;
}
}

@ -0,0 +1,28 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import java.io.Serializable;
/**
* -
*/
@Data
public class MesScanMonitorDetailContext implements Serializable {
private static final long serialVersionUID = -7678933218854960945L;
@ApiParam("扫描/读取信息")
private String scanInfo;
@ApiParam("日志类型")
private Integer logType;
@ApiParam("日志内容")
private String message;
@ApiParam("信息类型")
private String messageType;
}

@ -276,6 +276,8 @@ public class MesPcnExtConstWords {
// 上下文: 展示组件数据
public static final String MODULE_CONTENT_CONTEXT = "MODULE_CONTENT_CONTEXT";
// 上下文: 工位扫描监控信息
public static final String SCAN_MONITOR_CONTEXT = "SCAN_MONITOR_CONTEXT";
// 上下文: 加工结果
public static final String PRODUCT_RESULT_CONTEXT = "PRODUCT_RESULT_CONTEXT";
// 上下文: 就绪信号

Loading…
Cancel
Save