tags/yfai-pcn-ext-v1.0
王杰 1 year ago
parent ce8cec3f64
commit 526d1d3f94

@ -23,7 +23,7 @@ public interface IMesAssemblyExtService {
// @ApiOperation(value = "【排序线】获取装配件清单 【List<MesAssemblyNosortCfg>】")
// List<MesAssemblyNosortCfg> getAssemblyNosortCfgList(MesProductionAssemblyNoSortContext productionAssemblyNosortContext);
// List<MesAssemblyNosortCfg> getAssemblyNosortCfgList(MesProductionAssemblyNosortContext productionAssemblyNosortContext);
@ -33,15 +33,15 @@ public interface IMesAssemblyExtService {
//
// @ApiOperation(value = "【非排序线】获取装配件绑定记录 【List<MesProductionAssembly>】")
// List<MesProductionAssembly> getProductionAssemblyNosortList(MesProductionAssemblyNoSortContext productionAssemblyNosortContext);
// List<MesProductionAssembly> getProductionAssemblyNosortList(MesProductionAssemblyNosortContext productionAssemblyNosortContext);
// @ApiOperation(value = "【排序线】获取生产工单装配件绑定记录 【List<MesProductionAssemblySortContext>】")
// List<MesProductionAssemblySortContext> getProductionAssemblyContextSortList(List<MesWorkOrderAssembly> workOrderAssemblyList, List<MesProductionAssembly> productionAssemblyList);
//
// @ApiOperation(value = "【非排序线】获取装配件绑定记录 【List<MesProductionAssemblyNoSortContext>】")
// List<MesProductionAssemblyNoSortContext> getProductionAssemblyContextNosortList(List<MesWorkOrderAssembly> workOrderAssemblyList, List<MesProductionAssembly> productionAssemblyList);
// @ApiOperation(value = "【非排序线】获取装配件绑定记录 【List<MesProductionAssemblyNosortContext>】")
// List<MesProductionAssemblyNosortContext> getProductionAssemblyContextNosortList(List<MesWorkOrderAssembly> workOrderAssemblyList, List<MesProductionAssembly> productionAssemblyList);
//
// @ApiOperation(value = "获取装配件绑定记录 【List<MesProductionAssemblyContext>】")
// List<MesProductionAssemblyContext> getProductionAssemblyContextList(List<MesWorkOrderAssembly> workOrderAssemblyList, List<MesProductionAssembly> productionAssemblyList);
@ -53,8 +53,8 @@ public interface IMesAssemblyExtService {
// @ApiOperation(value = "【排序线】获取生产工单装配件绑定记录 【List<MesProductionAssemblySortContext>】")
// List<MesProductionAssemblySortContext> getProductionAssemblyContextSortList(MesProductionAssemblySortContext productionAssemblySortContext);
//
// @ApiOperation(value = "【非排序线】获取装配件绑定记录 【List<MesProductionAssemblyNoSortContext>】")
// List<MesProductionAssemblyNoSortContext> getProductionAssemblyContextNosortList(MesProductionAssemblyNoSortContext productionAssemblyNosortContext);
// @ApiOperation(value = "【非排序线】获取装配件绑定记录 【List<MesProductionAssemblyNosortContext>】")
// List<MesProductionAssemblyNosortContext> getProductionAssemblyContextNosortList(MesProductionAssemblyNosortContext productionAssemblyNosortContext);

@ -2,10 +2,12 @@ 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.MesEquipVariableCollectContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesWorkOrderContext;
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.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
@ -154,4 +156,16 @@ public interface IMesProductionDispatchContextStepService {
@ApiOperation(value = "删除上下文产出条码数据信息集合")
void deleteOutProduceSnDataContext(StationRequestBean reqBean);
@ApiOperation(value = "获取上下文装配件数据信息集合")
List<MesProductionAssemblyContext> getAssemblyDataContext(StationRequestBean reqBean, MesWorkCenter workCenter);
@ApiOperation(value = "验证上下文装配件数据信息集合是否存在")
Boolean checkAssemblyDataIsExistContext(StationRequestBean reqBean);
@ApiOperation(value = "保存上下文装配件数据信息集合", notes = "[JSON]List<MesProductionAssemblyContext>")
Boolean saveAssemblyDataContext(StationRequestBean reqBean, List<MesProductionAssemblyContext> productionAssemblyContextList);
@ApiOperation(value = "删除上下文装配件数据信息集合")
void deleteAssemblyDataContext(StationRequestBean reqBean);
}

@ -144,10 +144,10 @@ public class MesAssemblyReadStepService extends BaseStepService {
productionDispatchContextStepService.saveScanAssemblySnContext(reqBean, equipVariableCollectContextList);
//发送工步内容
productionDispatchContextStepService.doSendStepContextMessage(reqBean,
equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)), MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ);
String scanInfo = equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
productionDispatchContextStepService.doSendStepContextMessage(reqBean, scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ);
return stepResult;
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("当前已读取到设备[%s]装配件条码信息[%s]!", cellEquipContext.getEquipmentCode(), scanInfo));
}

@ -50,6 +50,9 @@ public class MesAssemblyScanStepService extends BaseStepService {
if (StringUtils.isEmpty(reqBean.getScanInfo())) execSendGuideAndThrowEx(reqBean, resultBean, "请扫描装配件条码!");
//扫描信息置空
String scanInfo = reqBean.resetScanInfo(null);
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
//获取生产过程上下文对象有异常信息 抛出异常
@ -58,12 +61,10 @@ public class MesAssemblyScanStepService extends BaseStepService {
//保存设备当前一轮工序待验证的装配件条码信息
productionDispatchContextStepService.saveScanAssemblySnContext(reqBean, getAssemblySnJson(reqBean));
//发送工步内容
productionDispatchContextStepService.doSendStepContextMessage(reqBean, reqBean.getScanInfo(), MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN);
//扫描信息置空
reqBean.setScanInfo(null);
return stepResult;
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("当前扫描信息装配件条码[%s]!", scanInfo));
}

@ -0,0 +1,90 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProdRuleCfgExtService;
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.*;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
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.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.List;
import java.util.stream.Collectors;
/**
* @Description :
* @Author : wangjie
**/
@Slf4j
@Service("mesAssemblyShowStepService")
public class MesAssemblyShowSortStepService extends BaseStepService {
@Autowired
private IMesProductionProcessContextStepService productionProcessContextStepService;
@Autowired
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
@Autowired
private IMesProdRuleCfgExtService prodRuleCfgExtService;
@Autowired
private IMesAssemblyExtService assemblyExtService;
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
//从上下文中取出生产线对象
MesWorkCenter workCenter = productionProcessContext.getWorkCenter();
//从上下文中取出生产线对象
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
//获取上下文装配件数据信息集合
List<MesProductionAssemblyContext> productionAssemblyContextList = productionDispatchContextStepService.getAssemblyDataContext(reqBean, workCenter);
//存在装配件数据信息, 直接展示
// if (!CollectionUtils.isEmpty(productionAssemblyContextList)) return showProductionAssembly();
//从上下文中取出生产工单数据信息集合
List<MesWorkOrderContext> workOrderContextList = productionDispatchContextStepService.getWorkOrderDataContext(reqBean);
//上下文中不存在生产工单数据信息集合
if (CollectionUtils.isEmpty(workOrderContextList)) return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]的上下文中已不存在生产工单数据信息,请重新扫描加工单!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
//获取排序线的装配件清单
productionAssemblyContextList = assemblyExtService.getProductionAssemblySortContextList(
new MesProductionAssemblySortContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode()), workOrderContextList.stream().filter(o -> null != o).map(MesWorkOrderContext::getWorkOrderNo).collect(Collectors.toList()));
if (CollectionUtils.isEmpty(productionAssemblyContextList)) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "");
return stepResult;
}
}

@ -1,65 +1,102 @@
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.context.MesProductionProcessContext;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
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 : wangjie
**/
@Slf4j
@Service("mesAssemblyShowStepService")
public class MesAssemblyShowStepService extends BaseStepService {
@Autowired
private IMesProductionProcessContextStepService productionProcessContextStepService;
@Override
public StepResult execute(StationRequestBean reqBean) {
StationResultBean resultBean = new StationResultBean();
StepResult stepResult = StepResult.getSuccessComplete();
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
//配置错误 抛出异常
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
//从上下文中取出生产线对象
MesWorkCenter workCenter = productionProcessContext.getWorkCenter();
// if (MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == workCenter.getCenterType())
return stepResult;
}
}
//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
//
//import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService;
//import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProdRuleCfgExtService;
//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.*;
//import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
//import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
//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.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.List;
//import java.util.stream.Collectors;
//
///**
// * @Description : 显示装配件扫描项工步
// * @Author : wangjie
// **/
//@Slf4j
//@Service("mesAssemblyShowStepService")
//public class MesAssemblyShowStepService extends BaseStepService {
//
// @Autowired
// private IMesProductionProcessContextStepService productionProcessContextStepService;
//
// @Autowired
// private IMesProductionDispatchContextStepService productionDispatchContextStepService;
//
// @Autowired
// private IMesProdRuleCfgExtService prodRuleCfgExtService;
//
// @Autowired
// private IMesAssemblyExtService assemblyExtService;
//
// @Override
// public StepResult execute(StationRequestBean reqBean) {
//
// StationResultBean resultBean = new StationResultBean();
//
// StepResult stepResult = StepResult.getSuccessComplete();
//
// //获取上下文信息
// MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean);
//
// //配置错误 抛出异常
// if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
//
// //从上下文中取出生产线对象
// MesWorkCenter workCenter = productionProcessContext.getWorkCenter();
//
// //从上下文中取出生产线对象
// MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
//
// //获取排序线的装配件清单
// if (MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == workCenter.getCenterType()) return doAssemblyShow2Sort(reqBean, resultBean, stepResult, productionProcessContext, workCenter, cellEquipContext);
//
// //验证上下文是否存在装配件数据信息集合
// List<MesProductionAssemblyContext> productionAssemblyContextList = productionDispatchContextStepService.getAssemblyDataList(workCenter);
//
//
//
//
//
//
//
//
// //获取非排序线的装配件清单
// return doAssemblyShow2Nosort(reqBean, resultBean, stepResult, productionProcessContext, workCenter, cellEquipContext);
//
// }
//
// //获取排序线的装配件清单
// private StepResult doAssemblyShow2Sort(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesWorkCenter workCenter, MesCellEquipContext cellEquipContext) {
//
// //从上下文中取出生产工单数据信息集合
// List<MesWorkOrderContext> workOrderContextList =
//
// //上下文中不存在生产工单数据信息集合
// if (CollectionUtils.isEmpty(workOrderContextList)) return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]的上下文中已不存在生产工单数据信息,请重新扫描加工单!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
//
// List<MesProductionAssemblyContext> productionAssemblyContextList = assemblyExtService.getProductionAssemblySortContextList(
// new MesProductionAssemblySortContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode()), workOrderContextList.stream().filter(o -> null != o).map(MesWorkOrderContext::getWorkOrderNo).collect(Collectors.toList()));
//
// if (CollectionUtils.isEmpty(productionAssemblyContextList)) return stepResult;
//
// //设备
//
//
// return stepResult;
//
// }
//
//
//
//}

@ -167,7 +167,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService {
//更新展示组件MODULE_CONTENT内容
doCacheMoudleContext(reqBean, mouldMultiCavityList, true);
return stepResult;
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("当前已读取到设备[%s]头道模具号[%s]!", cellEquipContext.getEquipmentCode(), firstMouldNo));
}

@ -139,7 +139,7 @@ public class MesMouldNoReadStepService extends BaseStepService {
if (!equipLogDispatchContext.getIsCollectValue() && (equipLogDispatchContext.getNeedNewValue() || (!firstMouldNoIsExist && !workOrderDataIsExist)))
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, false, MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("当前未读取到设备[%s]模具号,持续监听中...", cellEquipContext.getEquipmentCode()));
else if (!equipLogDispatchContext.getIsCollectValue())
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, true, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("当前未读取到设备[%s]模具号,接口逻辑设置只读一次,当前读取模具号直接跳过!", cellEquipContext.getEquipmentCode()));
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, true, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("当前未读取到设备[%s]模具号,接口逻辑设置只读一次,当前读取模具号直接跳过!", cellEquipContext.getEquipmentCode()));
//读取的模具号进行规则匹配
List<MesEquipVariableCollectContext> equipVariableCollectContextList = (List<MesEquipVariableCollectContext>) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.MOULD_NO.getValue(), equipLogDispatchContext.getEquipVariableCfgCollectContextList());
@ -160,8 +160,13 @@ public class MesMouldNoReadStepService extends BaseStepService {
stepResult.obj(equipVariableCollectContextList.get(0));
//判断是否存在头道模具号或生产工单信息
if (firstMouldNoIsExist || workOrderDataIsExist) return stepResult;
if (!firstMouldNoIsExist && !workOrderDataIsExist) doHandleFirstMouldNo(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, mouldNo);
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("当前已读取到设备[%s]模具号信息[%s]!", cellEquipContext.getEquipmentCode(), mouldNo));
}
private void doHandleFirstMouldNo(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, String mouldNo) {
//磨具号当头道模具号的使用
List<MesMouldMultiCavity> mouldMultiCavityList = firstMouldNoReadStepService.getMouldMultiCavityList(reqBean, resultBean, productionProcessContext, cellEquipContext.getEquipmentCode(), mouldNo, false);
@ -174,9 +179,6 @@ public class MesMouldNoReadStepService extends BaseStepService {
//更新展示组件MODULE_CONTENT内容
firstMouldNoReadStepService.doCacheMoudleContext(reqBean, mouldMultiCavityList, false);
return stepResult;
}
}

@ -144,10 +144,10 @@ public class MesProductSnReadStepService extends BaseStepService {
productionDispatchContextStepService.saveScanProductSnContext(reqBean, equipVariableCollectContextList);
//发送工步内容
productionDispatchContextStepService.doSendStepContextMessage(reqBean,
equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON)), MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ);
String scanInfo = equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.joining(MesPcnExtConstWords.SEMICOLON));
productionDispatchContextStepService.doSendStepContextMessage(reqBean, scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ);
return stepResult;
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("当前已读取到设备[%s]主条码信息[%s]!", cellEquipContext.getEquipmentCode(), scanInfo));
}

@ -137,7 +137,7 @@ public class MesReadySignalReadStepService extends BaseStepService {
if (result) productionDispatchContextStepService.doSendStepContextMessage(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.READY_SIGNAL.getDescription(), MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ);
//匹配成功
if (result) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("已读取到设备[%s]就绪信号!", cellEquipContext.getEquipmentCode()));
if (result) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("当前已读取到设备[%s]就绪信号信息!", cellEquipContext.getEquipmentCode()));
//匹配失败
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, false,

@ -1,9 +1,7 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.context;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
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.MesWorkOrderContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
@ -12,6 +10,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
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.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
@ -350,5 +349,40 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.OUT_PRODUCE_SN_DATA_CONTEXT);
}
//获取上下文装配件数据信息集合
@Override
public List<MesProductionAssemblyContext> getAssemblyDataContext(StationRequestBean reqBean, MesWorkCenter workCenter) {
String productionAssemblyJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ASSEMBLY_DATA_CONTEXT);
if (StringUtils.isEmpty(productionAssemblyJson)) return null;
List<MesProductionAssemblyContext> productionAssemblyContextList = new ArrayList<>();
if (MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == workCenter.getCenterType()) {
List<MesProductionAssemblySortContext> productionAssemblySortContextList = JSONObject.parseArray(productionAssemblyJson, MesProductionAssemblySortContext.class);
productionAssemblySortContextList.forEach(o -> productionAssemblyContextList.add(o));
} else {
List<MesProductionAssemblyNosortContext> productionAssemblyNosortContextList = JSONObject.parseArray(productionAssemblyJson, MesProductionAssemblyNosortContext.class);
productionAssemblyNosortContextList.forEach(o -> productionAssemblyContextList.add(o));
}
return productionAssemblyContextList;
}
//验证上下文装配件数据信息集合是否存在
@Override
public Boolean checkAssemblyDataIsExistContext(StationRequestBean reqBean) {
String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ASSEMBLY_DATA_CONTEXT);
return !StringUtils.isEmpty(firstMouldNo) ? true : false;
}
//保存上下文装配件数据信息集合 [JSON]List<MesProductionAssemblyContext>
@Override
public Boolean saveAssemblyDataContext(StationRequestBean reqBean, List<MesProductionAssemblyContext> productionAssemblyContextList) {
if (CollectionUtils.isEmpty(productionAssemblyContextList)) return false;
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ASSEMBLY_DATA_CONTEXT, JSONObject.toJSONString(productionAssemblyContextList));
}
//删除上下文装配件数据信息集合
@Override
public void deleteAssemblyDataContext(StationRequestBean reqBean) {
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.ASSEMBLY_DATA_CONTEXT);
}
}

@ -9,20 +9,47 @@ import java.io.Serializable;
* -()
*/
@Data
public class MesProdRuleNoSortContext extends MesProductionAssemblyContext implements Serializable {
public class MesProdRuleNoSortContext implements Serializable {
private static final long serialVersionUID = 2240955722926511959L;
private static final long serialVersionUID = -6129403108477819932L;
@ApiParam(value = "BOM明细ID")
private String bomDetailId;
@ApiParam(name = "进料零件号")
private String inPartNo;
@ApiParam(value = "是否可复用条码")
private Integer isRepeat;
@ApiParam(name = "产成零件号")
private String outPartNo;
@ApiParam(value = "是否忽略回车")
private Integer isIgnoreEntry;
@ApiParam(name = "设备代码")
private String equipmentCode;
@ApiParam(value = "工序用量")
private Integer qty;
@ApiParam(name = "进料零件规则")
private String inPartNoRule;
@ApiParam(name = "是否打印条码")
private Integer isPrint;
@ApiParam(name = "是否有装配件")
private Integer isHasBind;
@ApiParam(name = "汇报方式")
private Integer reportType;
@ApiParam(name = "是否验证加工单数量")
private Integer isCheckOrderQty;
@ApiParam(name = "是否包装")
private Integer isPackage;
@ApiParam(name = "是否验证装配件扫描顺序")
private Integer isCheckBindSeq;
@ApiParam(name = "成品站点")
private String partLocation;
@ApiParam(name = "子箱设备信号点")
private String packageEquSignal;
@ApiParam(name = "装配件待绑定清单 ([JSON]List<MesProductionAssemblyNosortContext>)")
private String productionAssemblyDataJson;
}

@ -71,9 +71,6 @@ public class MesProductionAssemblyContext implements Serializable {
@ApiParam("来源ID")
public Long sourceId;
@ApiParam(value = "生产线类型 10=排序 20=非排序")
public Integer centerType;
@ApiParam(value = "排序/非排序产品加工规则ID")
public Long pid;

@ -9,7 +9,7 @@ import java.io.Serializable;
* -()
*/
@Data
public class MesProductionAssemblyNoSortContext extends MesProductionAssemblyContext implements Serializable {
public class MesProductionAssemblyNosortContext extends MesProductionAssemblyContext implements Serializable {
private static final long serialVersionUID = -6507517107073405709L;

@ -137,6 +137,8 @@ public class MesPcnExtConstWords {
public static final String IN_PRODUCE_SN_DATA_CONTEXT = "IN_PRODUCE_SN_DATA_CONTEXT";
// 上下文: 产出条码数据信息
public static final String OUT_PRODUCE_SN_DATA_CONTEXT = "OUT_PRODUCE_SN_DATA_CONTEXT";
// 上下文: 装配件清单
public static final String ASSEMBLY_DATA_CONTEXT = "ASSEMBLY_DATA_CONTEXT";

Loading…
Cancel
Save