diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProduceSnExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProduceSnExtService.java index db5b81d..10b9c96 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProduceSnExtService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProduceSnExtService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -10,4 +11,7 @@ public interface IMesProduceSnExtService { @ApiOperation(value = "根据零件条码查询零件条码信息") List getProduceSnList(String organizeCode, List productSnList); + @ApiOperation(value = "根据零件条码ID修改条码状态,工位") + void saveProduceSnList(StationRequestBean reqBean, Integer snStatus, List idList); + } 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 1c4871d..f872d3c 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 @@ -173,6 +173,9 @@ public interface IMesProductionDispatchContextStepService { @ApiOperation(value = "删除上下文产品加工规则信息集合") void deleteProdRuleDataContext(StationRequestBean reqBean); + @ApiOperation(value = "获取生产线的当前班组班次信息") + MesProdShiftContext getMesProdShiftKvBean(String orgainzeCode, String workCenterCode); + @ApiOperation(value = "获取上下文班次班组信息") List getProdShiftDataContext(String orgainzeCode, String workCenterCode); @@ -197,7 +200,23 @@ public interface IMesProductionDispatchContextStepService { @ApiOperation(value = "删除上下文工位加工数统计信息") void deleteProductionStatisticsContext(StationRequestBean reqBean); - MesProdShiftContext getMesProdShiftKvBean(String orgainzeCode, String workCenterCode); + @ApiOperation(value = "获取手动选择的腔数及工单信息上下文") + String getFunctionChooseCavityOrderContext(StationRequestBean reqBean); + + @ApiOperation(value = "保存手动选择的腔数及工单信息上下文", notes = "腔数=工单个数 数据格式: 腔数;工单1;工单2;工单3") + Boolean saveFunctionChooseCavityOrderContext(StationRequestBean reqBean, String value); + + @ApiOperation(value = "删除手动选择的腔数及工单信息上下文") + void deleteFunctionChooseCavityOrderContext(StationRequestBean reqBean); + + @ApiOperation(value = "获取料桶原材料数据集合") + List getMesRawPartChargingDataContext(StationRequestBean reqBean); + + @ApiOperation(value = "保存料桶原材料数据集合", notes = "[JSON]List") + Boolean saveMesRawPartChargingDataContext(StationRequestBean reqBean, List mesRawPartChargingList); + + @ApiOperation(value = "删除料桶原材料数据集合") + void deleteMesRawPartChargingDataContext(StationRequestBean reqBean); @@ -227,13 +246,4 @@ public interface IMesProductionDispatchContextStepService { void deleteOutProduceSnDataContext(StationRequestBean reqBean); - @ApiOperation(value = "获取料桶原材料数据集合") - List getMesRawPartChargingDataContext(StationRequestBean reqBean); - - @ApiOperation(value = "保存料桶原材料数据集合", notes = "[JSON]List") - Boolean saveMesRawPartChargingDataContext(StationRequestBean reqBean, List mesRawPartChargingList); - - @ApiOperation(value = "删除料桶原材料数据集合") - void deleteMesRawPartChargingDataContext(StationRequestBean reqBean); - } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java index 27bc969..783f0b6 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionProcessContextStepService.java @@ -21,6 +21,9 @@ public interface IMesProductionProcessContextStepService { @ApiOperation(value = "存储生产过程上下文对象【工步根据业务实际情况执行,配置错误等情况无需执行】") Boolean saveProductionProcessContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext); + @ApiOperation(value = "删除生产过程上下文对象") + void deleteProductionProcessContext(StationRequestBean reqBean); + @ApiOperation(value = "获取生产过程上下文对象") MesProductionProcessContext getProductionProcessContext(StationRequestBean reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java index a04dc8f..4d3dcbd 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java @@ -2,10 +2,12 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -49,4 +51,18 @@ public class MesProduceSnExtService implements IMesProduceSnExtService { produceSnDataList.stream().filter(o -> null != o).distinct().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesProduceSn::getProductSn))), ArrayList::new)); } + @Override + public void saveProduceSnList(StationRequestBean reqBean, Integer snStatus, List idList) { + + DdlPackBean packBean = new DdlPackBean(); + DdlPreparedPack.getStringEqualPack(reqBean.getOrganizeCode(), MesPcnExtConstWords.ORGANIZE_CODE, packBean); + DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.ID, packBean); + produceSnRepository.updateByProperties( + new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.WORK_CELL_CODE, MesPcnExtConstWords.SN_STATUS}, + new Object[]{reqBean.getUserInfo(), TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), snStatus}, + packBean); + + } + + } 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 deleted file mode 100644 index 3d3fa50..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionNoSortFunctionModuleService.java +++ /dev/null @@ -1,110 +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.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/function/MesFunctionChooseWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionChooseWorkOrderService.java new file mode 100644 index 0000000..9c75ec7 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionChooseWorkOrderService.java @@ -0,0 +1,78 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +/** + * @Description : 工位参数按钮事件接口实现【选择工单】 + **/ +@Service +public class MesFunctionChooseWorkOrderService extends BaseSwsService implements IFsmModuleFunctionService { + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Autowired + private IShippingDispatchService shippingDispatchService; + + @Override + public boolean doFunction(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) { + + if (!checkCavityOrderIsValid(buttonDynamicModel.getFunctionValue())) { + this.sendMessage(reqBean, resultBean.writeDbLog(), String.format("生产线[%s]工位[%s]%s失败,请检查选择的工单信息[%s]的有效性!", + reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), buttonDynamicModel.getButtonName(), buttonDynamicModel.getFunctionValue()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + return false; + } + + //保存手动选择的腔数及工单信息上下文 + productionDispatchContextStepService.saveFunctionChooseCavityOrderContext(reqBean, buttonDynamicModel.getFunctionValue()); + + reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean)); + reqBean.setInterfaceType(MesPcnConstWords.SHIPPING); + reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN); + reqBean.setTriggerAutoFsm(true); + + shippingDispatchService.doSendScanQueueIfNoQueue(reqBean, false); + + return true; + + } + + //腔数=工单个数 数据格式: 腔数;工单1;工单2;工单3 + private Boolean checkCavityOrderIsValid(String functionValue) { + + if (StringUtils.isEmpty(functionValue)) return false; + + String[] value = functionValue.split(MesPcnExtConstWords.SEMICOLON); + + if (null == value) return false; + + try { + + Integer cavity = Integer.valueOf(value[0]); + + if (cavity != value.length - 1) return false; + + } catch (NumberFormatException e) { + + return false; + + } + + return true; + + + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionJumpProcessService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionJumpProcessService.java new file mode 100644 index 0000000..9eefe57 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionJumpProcessService.java @@ -0,0 +1,34 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; + +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; +import cn.estsh.i3plus.platform.common.util.MesPcnConstWords; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description : 工位参数按钮事件接口实现【重置工序】 + **/ +@Service +public class MesFunctionJumpProcessService implements IFsmModuleFunctionService { + + @Autowired + private IShippingDispatchService shippingDispatchService; + + @Override + public boolean doFunction(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) { + + reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean)); + reqBean.setInterfaceType(MesPcnConstWords.SHIPPING); + reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN); + reqBean.setForceJumpProcess(true); + shippingDispatchService.doSendScanQueueNextExec(reqBean); + + return true; + + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionJumpStateService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionJumpStateService.java new file mode 100644 index 0000000..376a0cf --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionJumpStateService.java @@ -0,0 +1,52 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; + +import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.Map; + +/** + * @Description : 工位参数按钮事件接口实现【强过工步集】 + **/ +@Service +public class MesFunctionJumpStateService extends BaseSwsService implements IFsmModuleFunctionService { + + @Autowired + private IFsmCommonService fsmCommonService; + + @Autowired + private IShippingDispatchService shippingDispatchService; + + @Override + public boolean doFunction(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) { + + Map wcpcMap = fsmCommonService.doHandleFsmWcpcMapDataForDoScan(reqBean); + String jumpState = wcpcMap.get(MesPcnEnumUtil.STATION_REQUEST_BEAN_CMD.JUMP_STATE.getCode()); + + if (StringUtils.isEmpty(jumpState)) { + this.sendMessage(reqBean, resultBean.writeDbLog(), String.format("生产线[%s]工位[%s]%s失败,未配置工位参数[%s]!", + reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), buttonDynamicModel.getButtonName(), MesPcnEnumUtil.STATION_REQUEST_BEAN_CMD.JUMP_STATE.getCode()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + return false; + } + + reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean)); + reqBean.setInterfaceType(MesPcnConstWords.SHIPPING); + reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN); + reqBean.setScanInfo(jumpState); + shippingDispatchService.doSendScanQueueNextExec(reqBean); + + return true; + + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionResetCellContextService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionResetCellContextService.java new file mode 100644 index 0000000..7a0f690 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionResetCellContextService.java @@ -0,0 +1,37 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; +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 cn.estsh.impp.framework.boot.util.SpringContextsUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description : 工位参数按钮事件接口实现【重置上下文】 + **/ +@Service +public class MesFunctionResetCellContextService implements IFsmModuleFunctionService { + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Override + public boolean doFunction(StationRequestBean reqBean) { + + //删除BASE上下文数据 + productionProcessContextStepService.deleteProductionProcessContext(reqBean); + + //删除BUSI上下文数据 + return ((IStepService) SpringContextsUtil.getBean("mesProductionContextFlushStepService")).execute(reqBean).isCompleted(); + + + } + + @Override + public boolean doFunction(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) { return doFunction(reqBean); } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionSwitchCellService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionSwitchCellService.java new file mode 100644 index 0000000..707a5a0 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionSwitchCellService.java @@ -0,0 +1,32 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; + +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description : 工位参数按钮事件接口实现【切换工位】 + **/ +@Service +public class MesFunctionSwitchCellService extends BaseSwsService implements IFsmModuleFunctionService { + + @Autowired + private IShippingDispatchService shippingDispatchService; + + @Override + public boolean doFunction(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) { + + 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.TEXT); + + return true; + + } + +} 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 e9cc1b9..a230bd4 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,6 +43,8 @@ public class MesProductSnCheckStepService extends BaseStepService { @Autowired private IMesProduceSnExtService produceSnExtService; + //TODO 装配件工步 判断空腔条码 + @Override public StepResult execute(StationRequestBean reqBean) { @@ -71,7 +73,7 @@ public class MesProductSnCheckStepService extends BaseStepService { List finishCodeList = filterEquipVariableCollectContextList(productionProcessContext, equipVariableCollectContextList, false); //验证上下文中主条码的有效性 - Map produceSnMap = checkProduceSnValid(reqBean, resultBean, stepResult, productionProcessContext, productSnList); + List produceSnList = checkProduceSnValid(reqBean, resultBean, stepResult, productionProcessContext, productSnList); //清除本次已完成验证的主条码信息 productionDispatchContextStepService.deleteScanProductSnContext(reqBean); @@ -81,6 +83,8 @@ public class MesProductSnCheckStepService extends BaseStepService { //获取上下文的工位 MesWorkCell workCell = productionProcessContext.getWorkCell(); + Map produceSnMap = CollectionUtils.isEmpty(produceSnList) ? null : produceSnList.stream().filter(o -> null != o).collect(Collectors.toMap(MesProduceSn::getProductSn, o -> o)); + //封装 读/扫主条件信息到进料主条码数据信息中 List productionPsInContextList = new ArrayList<>(); if (!CollectionUtils.isEmpty(productSnList)) productSnList.stream().filter(o -> null != o).forEach(o -> createProductionPsInContext(reqBean, resultBean, stepResult, workCell, produceSnMap, o, productionPsInContextList)); @@ -93,9 +97,10 @@ public class MesProductSnCheckStepService extends BaseStepService { //保存进料主条码数据 productionDispatchContextStepService.saveProductionPsInContext(reqBean, productionPsInContextList); - return CollectionUtils.isEmpty(produceSnMap) ? - execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, String.format("上下文中的主条码[%s]验证条码状态成功!", productSnList)) : - execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, String.format("上下文中的主条码[%s]验证条码状态成功,进料零件主条码即将标记状态[未知]!", productSnList)); + //变更主条码状态为未知 + saveProduceSnList(reqBean, resultBean, produceSnList); + + return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, String.format("上下文中的主条码[%s]验证条码状态成功!", productSnList)); } @@ -105,7 +110,7 @@ public class MesProductSnCheckStepService extends BaseStepService { } //获取进料主条码数据信息 - private Map checkProduceSnValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List productSnList) { + private List checkProduceSnValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List productSnList) { //根据零件条码查询零件条码信息 List produceSnList = produceSnExtService.getProduceSnList(reqBean.getOrganizeCode(), productSnList); @@ -115,7 +120,7 @@ public class MesProductSnCheckStepService extends BaseStepService { //循环获取进料主条码数据信息 produceSnList.stream().filter(o -> null != o).forEach(o -> checkProduceSnValid(reqBean, stepResult, productionProcessContext, o)); - return !stepResult.isCompleted() ? null : produceSnList.stream().filter(o -> null != o).collect(Collectors.toMap(MesProduceSn::getProductSn, o -> o)); + return !stepResult.isCompleted() ? null : produceSnList; } @@ -127,7 +132,8 @@ public class MesProductSnCheckStepService extends BaseStepService { if (MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue() != produceSn.getQcStatus()) return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]质量状态[%s]", suffixMsg, produceSn.getProductSn(), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus()))); - if (MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue() != produceSn.getSnStatus() || (MesExtEnumUtil.PRODUCE_SN_STATUS.UNKNOW.getValue() == produceSn.getSnStatus() && !produceSn.getWorkCellCode().equals(reqBean.getWorkCellCode()))) + if (MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue() != produceSn.getSnStatus() || + (MesExtEnumUtil.PRODUCE_SN_STATUS.UNKNOW.getValue() == produceSn.getSnStatus() && !produceSn.getWorkCenterCode().equals(reqBean.getWorkCenterCode()) && !produceSn.getWorkCellCode().equals(reqBean.getWorkCellCode()))) return stepResult.isCompleted(false).msg(String.format("%s主条码[%s]条码状态[%s]", suffixMsg, produceSn.getProductSn(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()))); return stepResult; @@ -141,4 +147,12 @@ public class MesProductSnCheckStepService extends BaseStepService { productionPsInContextList.add(productionPsInContext); } + //变更主条码状态为未知 + private void saveProduceSnList(StationRequestBean reqBean, StationResultBean resultBean, List produceSnList) { + if (CollectionUtils.isEmpty(produceSnList)) return; + Map psMap = produceSnList.stream().filter(o -> null != o).collect(Collectors.toMap(MesProduceSn::getProductSn, MesProduceSn::getId)); + produceSnExtService.saveProduceSnList(reqBean, MesExtEnumUtil.PRODUCE_SN_STATUS.UNKNOW.getValue(), new ArrayList<>(psMap.values())); + this.sendMessage(reqBean, resultBean, String.format("主条码%s信息已变更[%s]状态", psMap.keySet().toString(), MesExtEnumUtil.PRODUCE_SN_STATUS.UNKNOW.getDescription()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); + } + } 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 deleted file mode 100644 index 51edb19..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnMarkUnkonwStepService.java +++ /dev/null @@ -1,58 +0,0 @@ -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 229a71f..d33ea9a 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 @@ -394,6 +394,23 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PROD_RULE_DATA_CONTEXT); } + //获取生产线的当前班组班次信息 + @Override + public MesProdShiftContext getMesProdShiftKvBean(String orgainzeCode, String workCenterCode) { + List stationKvBeans = getProdShiftDataContext(orgainzeCode, workCenterCode); + + MesProdShiftContext mesProdShiftContext = new MesProdShiftContext(); + if (CollectionUtils.isEmpty(stationKvBeans)) { + return null; + } + StationKvBean shiftGroupKvBean = stationKvBeans.stream().filter(stationKvBean -> Objects.equal(stationKvBean.getKey(), "shiftGroup")).findFirst().orElse(null); + StationKvBean shiftCodeKvBean = stationKvBeans.stream().filter(stationKvBean -> Objects.equal(stationKvBean.getKey(), "shiftCode")).findFirst().orElse(null); + + mesProdShiftContext.setShiftCode(shiftGroupKvBean == null ? null : shiftGroupKvBean.getValue()); + mesProdShiftContext.setShiftGroup(shiftCodeKvBean == null ? null : shiftCodeKvBean.getValue()); + return mesProdShiftContext; + } + //获取上下文班次班组信息 @Override public List getProdShiftDataContext(String orgainzeCode, String workCenterCode) { @@ -464,6 +481,42 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCTION_STATISTICS_CONTEXT); } + //获取手动选择的腔数及工单信息上下文 + @Override + public String getFunctionChooseCavityOrderContext(StationRequestBean reqBean) { + return getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FUNCTION_CHOOSE_CAVITY_ORDER); + } + + //保存手动选择的腔数及工单信息上下文 腔数=工单个数 数据格式: 腔数;工单1;工单2;工单3 + @Override + public Boolean saveFunctionChooseCavityOrderContext(StationRequestBean reqBean, String value) { + if (StringUtils.isEmpty(value)) return false; + return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FUNCTION_CHOOSE_CAVITY_ORDER, value); + } + + //删除手动选择的腔数及工单信息上下文 + @Override + public void deleteFunctionChooseCavityOrderContext(StationRequestBean reqBean) { + deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FUNCTION_CHOOSE_CAVITY_ORDER); + } + + @Override + public List getMesRawPartChargingDataContext(StationRequestBean reqBean) { + String mesRawPartChargingDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "RAW_PART_CHARGING_DATA_CONTEXT"); + return !StringUtils.isEmpty(mesRawPartChargingDataJson) ? JSONObject.parseArray(mesRawPartChargingDataJson, MesRawPartCharging.class) : null; + } + + @Override + public Boolean saveMesRawPartChargingDataContext(StationRequestBean reqBean, List mesRawPartChargingList) { + if (CollectionUtils.isEmpty(mesRawPartChargingList)) return false; + return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "RAW_PART_CHARGING_DATA_CONTEXT", JSONObject.toJSONString(mesRawPartChargingList)); + } + + @Override + public void deleteMesRawPartChargingDataContext(StationRequestBean reqBean) { + deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "RAW_PART_CHARGING_DATA_CONTEXT"); + } + @@ -503,36 +556,5 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "OUT_PRODUCE_SN_DATA_CONTEXT"); } - @Override - public List getMesRawPartChargingDataContext(StationRequestBean reqBean) { - String mesRawPartChargingDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "RAW_PART_CHARGING_DATA_CONTEXT"); - return !StringUtils.isEmpty(mesRawPartChargingDataJson) ? JSONObject.parseArray(mesRawPartChargingDataJson, MesRawPartCharging.class) : null; - } - - @Override - public Boolean saveMesRawPartChargingDataContext(StationRequestBean reqBean, List mesRawPartChargingList) { - if (CollectionUtils.isEmpty(mesRawPartChargingList)) return false; - return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "RAW_PART_CHARGING_DATA_CONTEXT", JSONObject.toJSONString(mesRawPartChargingList)); - } - - @Override - public void deleteMesRawPartChargingDataContext(StationRequestBean reqBean) { - deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), "RAW_PART_CHARGING_DATA_CONTEXT"); - } - - @Override - public MesProdShiftContext getMesProdShiftKvBean(String orgainzeCode, String workCenterCode) { - List stationKvBeans = getProdShiftDataContext(orgainzeCode, workCenterCode); - - MesProdShiftContext mesProdShiftContext = new MesProdShiftContext(); - if (CollectionUtils.isEmpty(stationKvBeans)) { - return null; - } - StationKvBean shiftGroupKvBean = stationKvBeans.stream().filter(stationKvBean -> Objects.equal(stationKvBean.getKey(), "shiftGroup")).findFirst().orElse(null); - StationKvBean shiftCodeKvBean = stationKvBeans.stream().filter(stationKvBean -> Objects.equal(stationKvBean.getKey(), "shiftCode")).findFirst().orElse(null); - mesProdShiftContext.setShiftCode(shiftGroupKvBean == null ? null : shiftGroupKvBean.getValue()); - mesProdShiftContext.setShiftGroup(shiftCodeKvBean == null ? null : shiftCodeKvBean.getValue()); - return mesProdShiftContext; - } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java index 203e6fa..bbddfab 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java @@ -54,6 +54,9 @@ public class MesProductionProcessContextStepService extends BaseStepService impl return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.BASE_DATA_CONTEXT, JSONObject.toJSONString(productionProcessContext)); } + @Override + public void deleteProductionProcessContext(StationRequestBean reqBean) { deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.BASE_DATA_CONTEXT); } + //获取生产过程上下文对象 @Override public MesProductionProcessContext getProductionProcessContext(StationRequestBean reqBean) { 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 ba3e600..cf3284e 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 @@ -48,6 +48,8 @@ public class MesPcnExtConstWords { public static final String MODIFY_USER = "modifyUser"; // 修改人 public static final String USER_INFO = "userInfo"; + // 同步标志 + public static final String SYSTEM_SYNC_STATUS = "systemSyncStatus"; // 零件编码 public static final String PART_NO = "partNo"; // 零件名称 @@ -112,6 +114,8 @@ public class MesPcnExtConstWords { public static final String PRODUCT_SN = "productSn"; // 客户条码 public static final String CUST_SN = "custSn"; + // 条码状态 + public static final String SN_STATUS = "snStatus"; //设备数据变量读写访问配置 @@ -151,14 +155,18 @@ public class MesPcnExtConstWords { // 工位/工步 参数按钮事件值 public static final String FUNCTION_VALUE = "FUNCTION_VALUE"; - // 工位参数按钮事件: 跳过工序 + // 工位参数按钮事件参数: 是否验证密码 + public static final String IS_CHECK_WCPC_PWD = "IS_CHECK_WCPC_PWD"; + // 工位参数按钮事件参数: 是否二次确认 + public static final String IS_CONFIRM = "IS_CONFIRM"; + // 工位参数按钮事件: 重置工序 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_CHOOSE_CAVITY_ORDER = "FUNCTION_CHOOSE_CAVITY_ORDER"; // 工位参数按钮事件: 切换工位 public static final String FUNCTION_SWITCH_CELL = "FUNCTION_SWITCH_CELL"; @@ -177,6 +185,8 @@ public class MesPcnExtConstWords { public static final String EMPTY = ""; // ; public static final String SEMICOLON = ";"; + // , + public static final String comma = ","; // 定制页面名称(默认) public static final String CUSTOM_PAGE_NAME_DEFAULT = "CUSTOM_PAGE_NAME_DEFAULT"; @@ -238,7 +248,6 @@ public class MesPcnExtConstWords { 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