diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java index ba3615a..4fda16f 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java @@ -172,6 +172,32 @@ public interface IMesProductionDispatchContextStepService { @ApiOperation(value = "删除上下文产品加工规则信息集合") void deleteProdRuleDataContext(StationRequestBean reqBean); + @ApiOperation(value = "获取上下文班次班组信息") + List getProdShiftDataContext(StationRequestBean reqBean, String workCenterCode); + + @ApiOperation(value = "验证上下文班次班组信息是否存在") + Boolean checkProdShiftDataIsExistContext(StationRequestBean reqBean, String workCenterCode); + + @ApiOperation(value = "保存上下文班次班组信息", notes = "[JSON]List") + Boolean saveProdShiftDataContext(StationRequestBean reqBean, String workCenterCode, List prodShiftDatList); + + @ApiOperation(value = "删除上下文班次班组信息") + void deleteProdShiftDataContext(StationRequestBean reqBean, String workCenterCode); + + @ApiOperation(value = "获取上下文工位加工数统计信息") + List getProductionStatisticsContext(StationRequestBean reqBean); + + @ApiOperation(value = "保存上下文工位加工数统计信息", notes = "[JSON]List") + Boolean saveProductionStatisticsContext(StationRequestBean reqBean, List prodShiftDatList); + + @ApiOperation(value = "删除上下文工位加工数统计信息") + void deleteProductionStatisticsContext(StationRequestBean reqBean); + + + + + + diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortFunctionModuleService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortFunctionModuleService.java new file mode 100644 index 0000000..3d3fa50 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortFunctionModuleService.java @@ -0,0 +1,110 @@ +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station; +// +//import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +//import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseModuleService; +//import cn.estsh.i3plus.platform.common.util.MesPcnConstWords; +//import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; +//import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel; +//import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +//import cn.estsh.i3plus.pojo.mes.model.StationResultBean; +//import com.alibaba.fastjson.JSONObject; +//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.Map; +// +///** +// * @Description : 展示组件:非排序生产(按钮 临时) +// * @Author :wangjie +// **/ +//@Slf4j +//@Service("mesProductionNoSortFunctionModuleService") +//class MesProductionNoSortFunctionModuleService extends BaseModuleService { +// +// @Autowired +// private IMesProductionProcessContextStepService productionProcessContextStepService; +// +// @Override +// public boolean doFunction(StationRequestBean reqBean) { +// +// StationResultBean resultBean = new StationResultBean(); +// +// String functionCmd = (String) reqBean.getDataMap().get(MesPcnExtConstWords.FUNCTION_CMD); +// ButtonDynamicModel buttonDynamicModel = !StringUtils.isEmpty(functionCmd) ? JSONObject.parseObject(functionCmd, ButtonDynamicModel.class) : null; +// +// if (null != buttonDynamicModel) +// +// +// +// this.sendMessage(reqBean, resultBean, "后端未获取到业务功能指令!", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); +// +// +// +// +// +// switch (command) { +// case MesPcnExtConstWords.CMD_WORK_ORDER : +// if (StringUtils.isEmpty(value)) { +// this.sendMessage(reqBean, null, "请选择启动状态的生产工单!", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); +// return result; +// } +// +// String selectWorkOrderNo = (String) doHandleSelectWorkOrderNo(reqBean, 1, null); +// selectWorkOrderNo = (StringUtils.isEmpty(selectWorkOrderNo) || !selectWorkOrderNo.contains(MesPcnExtConstWords.COLON)) ? selectWorkOrderNo : selectWorkOrderNo.split(MesPcnExtConstWords.COLON)[1]; +// if (!StringUtils.isEmpty(selectWorkOrderNo) && selectWorkOrderNo.equals(value)) return result; +// reqBean.setForceJumpProcess(true); +// if ((Boolean) doHandleSelectWorkOrderNo(reqBean, 2, value.toString())) result = true; +// else { +// this.sendMessage(reqBean, null, String.format("切换的生产工单[%s]缓存失败,请重试!", value), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); +// return result; +// } +// break; +// case MesPcnExtConstWords.CMD_BUSI_FLAG : +// if (StringUtils.isEmpty(value)) { +// this.sendMessage(reqBean, null, "请点击业务按钮!", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); +// return result; +// } +// +// String curBusiFlag = (String) doHandleBusiFlag(reqBean, 1, null); +// if (!StringUtils.isEmpty(curBusiFlag) && curBusiFlag.equals(value)) return result; +// reqBean.setTriggerAutoFsm(true); +// if (StringUtils.isEmpty(curBusiFlag)) { +// if ((Boolean) doHandleBusiFlag(reqBean, 2, value.toString())) result = true; +// else { +// this.sendMessage(reqBean, null, String.format("业务按钮[%s]缓存失败,请重试!", value), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); +// return result; +// } +// } +// break; +// case MesPcnExtConstWords.CMD_FORCE_CENTER_PASS : +// if (StringUtils.isEmpty(value)) { +// this.sendMessage(reqBean, null, "入参缺少产线强制放行的工步代码!", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); +// return result; +// } +// String pwd = (String) dataMap.get(MesPcnExtConstWords.PWD); +// if (!jxProduceSnExtService.checkPorceCenterPassPwd(reqBean, pwd)) { +// this.sendMessage(reqBean, null, String.format("产线强制放行验证密码[%s]不正确!", pwd), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); +// return result; +// } +// reqBean.setForceSpecStepCode(value.toString()); +// result = true; +// break; +// default: +// break; +// } +// +// if (!result) this.sendMessage(reqBean, null, "操作太频繁!", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); +// else { +// //跳过工序 +// reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean)); +// reqBean.setInterfaceType(MesPcnConstWords.SHIPPING); +// reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN); +// shippingDispatchService.doSendScanQueueNextExec(reqBean); +// } +// return result; +// } +// +//} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleServiceBak.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleServiceBak.java deleted file mode 100644 index f755d22..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortModuleServiceBak.java +++ /dev/null @@ -1,50 +0,0 @@ -//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station; -// -//import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; -//import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -//import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseModuleService; -//import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil; -//import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; -//import cn.estsh.i3plus.pojo.mes.bean.MesStateMachineStatus; -//import cn.estsh.i3plus.pojo.mes.model.StationKvBean; -//import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; -//import cn.estsh.i3plus.pojo.mes.model.StationResultBean; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Service; -// -//import java.util.ArrayList; -//import java.util.List; -//import java.util.Map; -// -///** -// * @Description : 展示组件:非排序生产 -// * @Author :wangjie -// **/ -//@Slf4j -//@Service("mesProductionNoSortModuleService") -//public class MesProductionNoSortModuleServiceBak extends BaseModuleService { -// -// @Autowired -// private IMesProductionProcessContextStepService productionProcessContextStepService; -// -// @Override -// public void init(StationRequestBean reqBean) { -// StationResultBean resultBean = new StationResultBean(); -// resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CONTENT.getValue()); -// resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.CUSTOM.getValue()); -// resultBean.setCustomPageName(MesPcnExtConstWords.CUSTOM_PAGE_NAME_DEFAULT); -// resultBean.setSpecialDisplayData(getStepColIndent(reqBean)); -// resultBean.setResultObj(StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(), new StationKvBean("shiftCode", "班次", "白班"), new StationKvBean("shiftGroup", "班组", "注塑"))); -// resultBean.setResultList(productionProcessContextStepService.getModuleContentContext(reqBean)); -// -// this.sendMessage(reqBean, resultBean); -// } -// -// @Override -// public boolean execStateModule(StationRequestBean reqBean, List states, Map wcpcMap) { -// init(reqBean); -// return true; -// } -// -//} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerTabSwitchStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerTabSwitchStepService.java index 91db516..65f1785 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerTabSwitchStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerTabSwitchStepService.java @@ -37,7 +37,9 @@ public class MesManyCellTriggerTabSwitchStepService extends BaseStepService { BeanUtils.copyProperties(reqBean, stationRequestBean); stationRequestBean.setScanInfo(clientInfo); - return execDynamicsCompleteAndSendMsgReturn(stationRequestBean, resultBean.writeDbLog(), stepResult, true, MesPcnEnumUtil.STATION_BUSI_TYPE.TAB_SWITCH, MesPcnEnumUtil.STATION_DATA_TYPE.CUSTOM, String.format("多工位页面切换,从[%s]切换到[%s]!", reqBean.getClientInfo(), clientInfo)); + return clientInfo.equals(reqBean.getClientInfo()) ? + execDynamicsCompleteAndSendMsgReturn(stationRequestBean, resultBean.writeDbLog(), stepResult, true, MesPcnEnumUtil.STATION_BUSI_TYPE.TAB_SWITCH, MesPcnEnumUtil.STATION_DATA_TYPE.CUSTOM, String.format("客户端[%s]监听自动切换页面成功!", reqBean.getClientInfo())) : + execDynamicsCompleteAndSendMsgReturn(stationRequestBean, resultBean.writeDbLog(), stepResult, true, MesPcnEnumUtil.STATION_BUSI_TYPE.TAB_SWITCH, MesPcnEnumUtil.STATION_DATA_TYPE.CUSTOM, String.format("多工位页面切换,从客户端[%s]切换到客户端[%s]!", reqBean.getClientInfo(), clientInfo)); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java index be2dee0..e512453 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java @@ -59,8 +59,6 @@ public class MesProductResultReadStepService extends BaseStepService { } - //TODO 增加参数 发送切换分屏 TODD 增加参数 末道工步清除数据 - @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java index f39db7d..e9cc1b9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java @@ -43,10 +43,6 @@ public class MesProductSnCheckStepService extends BaseStepService { @Autowired private IMesProduceSnExtService produceSnExtService; - //TODO 更新条码 未知 单独工步 - - //TODO 装配件工步 判断空腔条码 - @Override public StepResult execute(StationRequestBean reqBean) { @@ -138,6 +134,7 @@ public class MesProductSnCheckStepService extends BaseStepService { } + //封装 读/扫主条件信息到进料主条码数据信息中 private void createProductionPsInContext(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesWorkCell workCell, Map produceSnMap, String productSn, List productionPsInContextList) { MesProductionPsInContext productionPsInContext = new MesProductionPsInContext(!CollectionUtils.isEmpty(produceSnMap) ? produceSnMap.get(productSn) : null, productSn); if (!StringUtils.isEmpty(productionPsInContext.getId())) productionPsInContext.isCheckSeq(workCell.getIsCheckSeq()).isCheckCraft(workCell.getIsCheckCraft()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnMarkUnkonwStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnMarkUnkonwStepService.java new file mode 100644 index 0000000..51edb19 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnMarkUnkonwStepService.java @@ -0,0 +1,58 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; +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 : wangjie + **/ +@Slf4j +@Service("mesProductSnMarkUnkonwStepService") +public class MesProductSnMarkUnkonwStepService extends BaseStepService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Autowired + private IMesProduceSnExtService produceSnExtService; + + //TODO 更新条码 未知 单独工步 + + //TODO 装配件工步 判断空腔条码 + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //获取上下文信息 + MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean); + + //获取生产过程上下文对象有异常信息 抛出异常 + if (!productionProcessContext.getSuccess()) return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, productionProcessContext.getMessage()); + + //存储生产过程上下文对象 + productionProcessContextStepService.saveProductionProcessContext(reqBean, productionProcessContext); + + return stepResult; + + } + + + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java index 85ddecb..3c136d3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java @@ -23,6 +23,7 @@ import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.StringJoiner; /** * @Description : 获取生产过程上下文对象接口实现【BUSI】 @@ -34,6 +35,8 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp private String getContextKey(StationRequestBean reqBean) { return getFsmBusikey(reqBean, MesPcnExtConstWords.PRODUCTION_PROCESS_CONTEXT); } + private String getContextKey(StationRequestBean reqBean, String busiCode) { return new StringJoiner(":").add(reqBean.getOrganizeCode()).add(MesPcnExtConstWords.PRODUCTION_PROCESS_CONTEXT).add(busiCode).toString(); } + //发送设备质量信息 @Override public void sendEquipQualityMessage(StationRequestBean reqBean, MesCellEquipContext cellEquipContext) { @@ -389,8 +392,52 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PROD_RULE_DATA_CONTEXT); } + //获取上下文班次班组信息 + @Override + public List getProdShiftDataContext(StationRequestBean reqBean, String workCenterCode) { + String prodShiftJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode); + return !StringUtils.isEmpty(prodShiftJson) ? JSONObject.parseArray(prodShiftJson, StationKvBean.class) : null; + } + + //验证上下文班次班组信息是否存在 + @Override + public Boolean checkProdShiftDataIsExistContext(StationRequestBean reqBean, String workCenterCode) { + String prodShiftJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode); + return !StringUtils.isEmpty(prodShiftJson) ? true : false; + } + //保存上下文班次班组信息 [JSON]List + @Override + public Boolean saveProdShiftDataContext(StationRequestBean reqBean, String workCenterCode, List prodShiftDataList) { + if (CollectionUtils.isEmpty(prodShiftDataList)) return false; + return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode, JSONObject.toJSONString(prodShiftDataList)); + } + //删除上下文班次班组信息 + @Override + public void deleteProdShiftDataContext(StationRequestBean reqBean, String workCenterCode) { + deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean, MesPcnExtConstWords.PROD_SHIFT_DATA_CONTEXT), workCenterCode); + } + + //获取上下文工位加工数统计信息 + @Override + public List getProductionStatisticsContext(StationRequestBean reqBean) { + String productionStatisticsJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCTION_STATISTICS_CONTEXT); + return !StringUtils.isEmpty(productionStatisticsJson) ? JSONObject.parseArray(productionStatisticsJson, StationKvBean.class) : null; + } + + //保存上下文工位加工数统计信息 [JSON]List + @Override + public Boolean saveProductionStatisticsContext(StationRequestBean reqBean, List productionStatisticsList) { + if (CollectionUtils.isEmpty(productionStatisticsList)) return false; + return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCTION_STATISTICS_CONTEXT, JSONObject.toJSONString(productionStatisticsList)); + } + + //删除上下文工位加工数统计信息 + @Override + public void deleteProductionStatisticsContext(StationRequestBean reqBean) { + deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCTION_STATISTICS_CONTEXT); + } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 69fca19..aa8bfc4 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -141,6 +141,26 @@ public class MesPcnExtConstWords { // 支持混腔扫描[工位参数] public static final String CAVITY_NOSORT_CFG = "CAVITY_NOSORT_CFG"; + + // 工位/工步 参数按钮事件 + public static final String FUNCTION_CMD = "FUNCTION_CMD"; + // 工位/工步 参数按钮事件值 + public static final String FUNCTION_VALUE = "FUNCTION_VALUE"; + + // 工位参数按钮事件: 跳过工序 + public static final String FUNCTION_JUMP_PROCESS = "FUNCTION_JUMP_PROCESS"; + // 工位参数按钮事件: 强过状态点(工步集) + public static final String FUNCTION_JUMP_STATE = "FUNCTION_JUMP_STATE"; + // 工位参数按钮事件: 重置工位上下文 + public static final String FUNCTION_RESET_CELL_CONTEXT = "FUNCTION_RESET_CELL_CONTEXT"; + // 工位参数按钮事件: 选择工单 + public static final String FUNCTION_CHOOSE_WORK_ORDER = "FUNCTION_CHOOSE_WORK_ORDER"; + // 工位参数按钮事件: 切换工位 + public static final String FUNCTION_SWITCH_CELL = "FUNCTION_SWITCH_CELL"; + + + + // 0 public static final Integer ZERO = 0; // 1 @@ -166,6 +186,8 @@ public class MesPcnExtConstWords { // 生产过程控制上下文目录名 public static final String PRODUCTION_PROCESS_CONTEXT = "PRODUCTION_PROCESS_CONTEXT"; + // 上下文: 班次班组信息 + public static final String PROD_SHIFT_DATA_CONTEXT = "PROD_SHIFT_DATA_CONTEXT"; // 上下文: 基础数据 public static final String BASE_DATA_CONTEXT = "BASE_DATA_CONTEXT"; // 上下文: 展示组件数据 @@ -198,16 +220,16 @@ public class MesPcnExtConstWords { public static final String PRODUCTION_PS_IN_CONTEXT = "PRODUCTION_PS_IN_CONTEXT"; // 上下文: 产出条码数据信息 public static final String PRODUCTION_PS_OUT_CONTEXT = "PRODUCTION_PS_OUT_CONTEXT"; + // 上下文: 加工统计信息 + public static final String PRODUCTION_STATISTICS_CONTEXT = "PRODUCTION_STATISTICS_CONTEXT"; + + + + - /*** - * OPC - */ - public static final String OPC_LINK_URL="OPC_LINK_URL"; - public static final String VALUE="value"; - public static final String CLIENT_HANDLE="clientHandle"; - public static final String CHANNEL="channel"; - public static final String EQUIPMENT_ID="equipmentId"; + @Deprecated public static final String OPC_WRITE_VARIABLE="/api/OPCService/WriteVariable"; + @Deprecated public static final String OPC_READ_VARIABLE="/api/OPCService/ReadVariable";