package com.dy.rtuMw.server.rtuData.p206V1_0_0; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.dy.common.mw.protocol.p206V1_0_0.*; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd92Vo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd93Vo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd97Vo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd98Vo; import com.dy.common.util.DateTime; import com.dy.pipIrrGlobal.pojoPr.PrController; import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; import com.dy.rtuMw.server.rtuData.TaskSurpport; import com.dy.common.mw.protocol.Data; import com.dy.rtuMw.server.rtuData.dbSv.DbSv; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** * @Author liurunyu * @Date 2024/4/2 13:45 * @LastEditTime 2024/4/2 13:45 * @Description 处理命令响应上报 */ public class TkRtuDealCommandResponse extends TaskSurpport { private static final Logger log = LogManager.getLogger(TkRtuDealCommandResponse.class.getName()) ; //类ID,一定与Tree.xml配置文件中配置一致 public static final String taskId = "TkRtuDealCommandResponse" ; /** * 执行节点任务:处理命令响应上报 * @param data 需要处理的数据 */ @Override public void execute(Object data) { Data d = (Data) data; Object subD = d.getSubData(); if (subD != null) { DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD; if (dV1_0_1 != null && dV1_0_1.subData != null) { Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ; DbSv sv = (DbSv)objs[0] ; //PrController controller = (PrController)objs[1] ; try{ RmCommandHistory po = sv.getCommandLog(d.commandId) ; if(po != null){ po = this.updateCommandLogPo(po, dV1_0_1, dV1_0_1.subData) ; sv.updateCommandLog(po); } }catch (Exception e){ log.error("保存控制器自报数据时发生异常", e); } } } } public RmCommandHistory updateCommandLogPo(RmCommandHistory po, DataV1_0_1 dV1_0_1, Object obj) throws Exception{ if(obj instanceof DataCd97Vo){ DataCd97Vo vo = (DataCd97Vo)obj ; po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)) ; po.setResultText((JSONObject) JSON.toJSON(vo)); }else if(obj instanceof DataCd98Vo){ DataCd98Vo vo = (DataCd98Vo)obj ; po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)); po.setResultText((JSONObject) JSON.toJSON(vo)); }else if(obj instanceof DataCd92Vo){ DataCd92Vo vo = (DataCd92Vo)obj ; po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)) ; po.setResultText((JSONObject) JSON.toJSON(vo)); }else if(obj instanceof DataCd93Vo){ DataCd93Vo vo = (DataCd93Vo)obj ; po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)) ; po.setResultText((JSONObject) JSON.toJSON(vo)); } return po ; } }