pcn 客户端下线

tags/yfai-pcn-ext-v1.0
王杰 11 months ago
parent ab8fe77754
commit f595d98629

@ -20,7 +20,6 @@ public interface IMesEquipVariableRwExtService {
@ApiOperation(value = "写值")
MesEquipVariableRwResult writeVariable(MesEquipmentVariableCfg equipmentVariableCfg, MesEquipmentVariable equipmentVariable, String kepwareFlag);
@ApiOperation(value = "写值")
MesEquipVariableRwResult writeVariable(String value, MesEquipmentVariable equipmentVariable, String kepwareFlag);
}

@ -82,12 +82,15 @@ public class MesEquipmentRwExtService implements IMesEquipVariableRwExtService {
params.put(MesPcnExtConstWords.CLIENT_HANDLE, equipVariableRwModel.getClientHandle().toString());
params.put(MesPcnExtConstWords.CHANNEL, equipVariableRwModel.getChannel());
params.put(MesPcnExtConstWords.EQUIPMENT_ID, equipVariableRwModel.getEquipId().toString());
LOGGER.info("设备数据变量写值开始-> 地址:{}, params={}", equipVariableRwModel.getWriteRequestUrl(), params);
String data = HttpClientTool.doHttpUrl(CommonEnumUtil.HTTP_METHOD_TYPE.POST, false, equipVariableRwModel.getWriteRequestUrl(), params, null, null);
LOGGER.info("设备数据变量写值返回-> data:{} ", data);
if (!StringUtils.isEmpty(data)) return JsonUtilTool.decode(data, MesEquipVariableRwResult.class).obj(JSONObject.toJSONString(equipVariableRwModel));
else return result.noSuccessed().message(String.format("设备数据变量写值失败! CLIENT_HANDLE[%s] CHANNEL[%s] EQUIPMENT_ID[%s] VALUE[%s]",
equipVariableRwModel.getClientHandle(), equipVariableRwModel.getChannel(), equipVariableRwModel.getEquipId(), equipVariableRwModel.getValue())).obj(JSONObject.toJSONString(equipVariableRwModel));
result = !StringUtils.isEmpty(data) ? JsonUtilTool.decode(data, MesEquipVariableRwResult.class).obj(JSONObject.toJSONString(equipVariableRwModel)) : result.noSuccessed();
return result.obj(JSONObject.toJSONString(equipVariableRwModel)).message(String.format("%s设备数据变量写值%s! CLIENT_HANDLE[%s] CHANNEL[%s] EQUIPMENT_ID[%s] VALUE[%s]",
!StringUtils.isEmpty(result.getMessage()) ? String.format("%s!", result.getMessage()) : MesPcnExtConstWords.EMPTY,
result.getIsSuccessed() ? "成功" : "失败", equipVariableRwModel.getClientHandle(), equipVariableRwModel.getChannel(), equipVariableRwModel.getEquipId(), equipVariableRwModel.getValue()));
}

@ -9,7 +9,6 @@ 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.serviceimpl.fsm.IStepService;
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
@ -90,7 +89,7 @@ public class MesProductionNoSortModuleService extends BaseModuleService {
this.sendMessage(reqBean, shiftCountBean);
//验证工位是否锁定
reqBean.getDataMap().put(MesPcnConstWords.WS_CMD_INIT_MODULE, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr());
reqBean.getDataMap().put(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_INIT_MODULE.getCode(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr());
((IStepService) SpringContextsUtil.getBean("mesCountDownShowStepService")).execute(reqBean);
//设备BYPASS监控

@ -69,7 +69,7 @@ public class MesFunctionChooseCavityOrderService extends BaseSwsService implemen
reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean));
reqBean.setInterfaceType(MesPcnConstWords.SHIPPING);
reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN);
reqBean.setBusiType(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_DO_SCAN.getCode());
reqBean.setTriggerAutoFsm(true);
shippingDispatchService.doSendScanQueueIfNoQueue(reqBean, false);

@ -41,7 +41,7 @@ public class MesFunctionJumpProcessService extends BaseSwsService implements IFs
reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean));
reqBean.setInterfaceType(MesPcnConstWords.SHIPPING);
reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN);
reqBean.setBusiType(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_DO_SCAN.getCode());
reqBean.setForceJumpProcess(true);
shippingDispatchService.doSendScanQueueNextExec(reqBean);

@ -41,7 +41,7 @@ public class MesFunctionJumpStateService extends BaseSwsService implements IFsmM
reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean));
reqBean.setInterfaceType(MesPcnConstWords.SHIPPING);
reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN);
reqBean.setBusiType(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_DO_SCAN.getCode());
reqBean.setScanInfo(jumpState);
shippingDispatchService.doSendScanQueueNextExec(reqBean);

@ -39,7 +39,7 @@ public class MesFunctionProductionUnlockService extends BaseSwsService implement
reqBean.setClientInfo(shippingDispatchService.getActorClientInfo(reqBean));
reqBean.setInterfaceType(MesPcnConstWords.SHIPPING);
reqBean.setBusiType(MesPcnConstWords.WS_CMD_DO_SCAN);
reqBean.setBusiType(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_DO_SCAN.getCode());
reqBean.setTriggerAutoFsm(true);
shippingDispatchService.doSendScanQueueIfNoQueue(reqBean, false);

@ -7,7 +7,6 @@ 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.BaseStepService;
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
@ -49,8 +48,8 @@ public class MesCountDownShowStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
//展示组件会调用, 执行到 判断isInit结束,
Boolean isInit = reqBean.getDataMap().containsKey(MesPcnConstWords.WS_CMD_INIT_MODULE) ? true : false;
if (reqBean.getDataMap().containsKey(MesPcnConstWords.WS_CMD_INIT_MODULE)) reqBean.getDataMap().remove(MesPcnConstWords.WS_CMD_INIT_MODULE);
Boolean isInit = reqBean.getDataMap().containsKey(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_INIT_MODULE.getCode()) ? true : false;
if (reqBean.getDataMap().containsKey(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_INIT_MODULE.getCode())) reqBean.getDataMap().remove(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_INIT_MODULE.getCode());
//获取上下文信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getProductionProcessContext(reqBean);

@ -256,7 +256,7 @@ public class MesProductSnScanNosortStepService extends BaseStepService {
}
////比对产出零件的空腔数量与主条码的空腔数量, 产出零件的空腔数必须小于等于 剩余待扫描主条码数量加上已扫描的空腔数量
//比对产出零件的空腔数量与主条码的空腔数量, 产出零件的空腔数必须小于等于 剩余待扫描主条码数量加上已扫描的空腔数量
private StepResult checkFinishCodeSize(StepResult stepResult, List<MesProductionPartContext> productionPartContextList, List<MesProductionPsInContext> productionPsInContextList, Boolean scanInfoIsFinishCode) {
//没有产出零件 不需要对比空腔数量

@ -112,7 +112,11 @@ public class MesSendInitializationCmdStepService extends BaseStepService {
if (!equipVariableRwResult.getIsSuccessed() && equipVariableRwResult.getIsNoCfg()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("设备[%s]:初始化指令发送失败!原因:%s", cellEquipContext.getEquipmentCode(), equipVariableRwResult.getMessage()));
if (equipVariableRwResult.getIsSuccessed()) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("设备[%s]:初始化指令发送成功!", cellEquipContext.getEquipmentCode()));
if (equipVariableRwResult.getIsSuccessed()) {
String message = String.format("设备[%s]:初始化指令发送成功!", cellEquipContext.getEquipmentCode());
this.sendMessage(reqBean, new StationResultBean().writeDbLog(), String.format("%s%s", message, equipVariableRwResult.getMessage()), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, message);
}
execNonCompleteAndSendMsg(reqBean, resultBean.writeDbLog(), stepResult, String.format("设备[%s]:初始化指令发送失败!累计次数[%s]!原因:%s", cellEquipContext.getEquipmentCode(), i, equipVariableRwResult.getMessage()));

@ -114,7 +114,11 @@ public class MesSendProcessCmdStepService extends BaseStepService {
if (!equipVariableRwResult.getIsSuccessed() && equipVariableRwResult.getIsNoCfg()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("设备[%s]:允许加工指令发送失败!原因:%s", cellEquipContext.getEquipmentCode(), equipVariableRwResult.getMessage()));
if (equipVariableRwResult.getIsSuccessed()) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("设备[%s]:允许加工指令发送成功!", cellEquipContext.getEquipmentCode()));
if (equipVariableRwResult.getIsSuccessed()) {
String message = String.format("设备[%s]:允许加工指令发送成功!", cellEquipContext.getEquipmentCode());
this.sendMessage(reqBean, new StationResultBean().writeDbLog(), String.format("%s%s", message, equipVariableRwResult.getMessage()), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, message);
}
execNonCompleteAndSendMsg(reqBean, resultBean.writeDbLog(), stepResult, String.format("设备[%s]:允许加工指令发送失败!累计次数[%s]!原因:%s", cellEquipContext.getEquipmentCode(), i, equipVariableRwResult.getMessage()));

@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepServi
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.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;
@ -27,18 +28,15 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic
private IMesProductionCustomContextStepService productionCustomContextStepService;
@Autowired
private IFsmCommonService fsmCommonService;
@Autowired
private SnowflakeIdMaker snowflakeIdMaker;
@Override
public Boolean doProcessStart(StationRequestBean requestBean) {
Long mouldId = snowflakeIdMaker.nextId();
// Long mouldId = snowflakeIdMaker.nextId();
return true;
@ -46,6 +44,7 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic
@Override
public Boolean doProcessComplete(StationRequestBean requestBean) {
//执行跳过工序二开实现逻辑
doJumpProcess(requestBean);
//发送工序完成音
this.sendMessage(requestBean, new StationResultBean().resultObj(MesPcnExtConstWords.PROCESS_COMPLETE).busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.CUSTOM_COMPONENT.getValue()).dataType(MesPcnEnumUtil.STATION_DATA_TYPE.SOUND.getValue()));
@ -58,10 +57,18 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic
productionDispatchContextStepService.doFlushProductionDispatchContext(requestBean);
//清除工步客制化区域数据【装配件清单】
this.sendMessage(requestBean, new StationResultBean().busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CUSTOM_CONTENT.getValue()).dataType(MesPcnEnumUtil.STATION_DATA_TYPE.TABLES.getValue()));
return true;
}
//清除上下文中的所有基础数据 //TODO 临时增加 后面删掉
@Override
public Boolean doOffLine(StationRequestBean requestBean) {
//删除当前状态点
fsmCommonService.doFlushCache(requestBean);
//执行跳过工序二开实现逻辑
doJumpProcess(requestBean);
//清除上下文中的所有基础数据
productionProcessContextStepService.doFlushProductionProcessContext(requestBean);
return true;
}
}

@ -161,7 +161,7 @@ public class MesPcnExtConstWords {
// 读取失败睡眠毫秒数[工步参数]
public static final String READ_FAILURE_SLEEP = "READ_FAILURE_SLEEP";
// 读取失败睡眠默认毫秒数
public static final Long READ_FAILURE_SLEEP_DEFAULT_TIME = 1000L;
public static final Long READ_FAILURE_SLEEP_DEFAULT_TIME = 2000L;
// 最大重试次数[工步参数]
public static final String MAX_RETRY_TIMES = "MAX_RETRY_TIMES";
// 最大重试次数[工步参数]

Loading…
Cancel
Save