| | |
| | | import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.*; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeClient; |
| | | import com.dy.rtuMw.server.ServerProperties; |
| | | import com.dy.rtuMw.server.rtuData.TaskSurpport; |
| | | import com.dy.rtuMw.server.rtuData.dbSv.DbSv; |
| | | import com.dy.common.mw.protocol.Data; |
| | |
| | | |
| | | import java.text.ParseException; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | public class TkPreGenObjs extends TaskSurpport { |
| | | |
| | | private static final Map<String, Boolean> onceUpDataRtus = new HashMap<>(); |
| | | |
| | | private static final Logger log = LogManager.getLogger(TkPreGenObjs.class.getName()) ; |
| | | |
| | |
| | | public void execute(Object data) throws ParseException { |
| | | Data d = (Data)data ; |
| | | String rtuAddr = d.getRtuAddr() ;//TkRtuData里判断了rtuAddr为空 |
| | | if(d.subData != null && d.subData instanceof DataV1_0_1){ |
| | | DataV1_0_1 dataV1_0_1 = (DataV1_0_1)d.subData ; |
| | | if(dataV1_0_1.subData != null && dataV1_0_1.subData instanceof DataCd02Vo){ |
| | | //过滤掉心跳数据 |
| | | if(onceUpDataRtus.containsKey(rtuAddr)){ |
| | | return ; |
| | | } |
| | | } |
| | | } |
| | | if(!onceUpDataRtus.containsKey(rtuAddr)){ |
| | | onceUpDataRtus.put(rtuAddr, true) ; |
| | | } |
| | | |
| | | DbSv sv = (DbSv)SpringContextUtil.getBean(DbSv.class) ; |
| | | if(sv != null){ |
| | | PrController controller = sv.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ; |
| | |
| | | controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr); |
| | | if(controllerTramp == null){ |
| | | //第一次发现 |
| | | controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ; |
| | | controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date(), ServerProperties.orgTag) ; |
| | | //第一次发现,下发清空RTU历史命令,以使其重新开始记录新地点的数据 |
| | | this.sendClearCommand(rtuAddr, d.protocol); |
| | | } |
| | | }else{ |
| | | if(d.subData != null && d.subData instanceof DataV1_0_1){ |
| | | DataV1_0_1 d1 = (DataV1_0_1)d.subData ; |
| | | clientVo = this.getClient(sv, d1); |
| | | clientVo = this.getClient(sv, (DataV1_0_1)d.subData); |
| | | } |
| | | } |
| | | //不论是否为流浪控制器(RTU实体),都要进行下步工作,记录其上报的一些数据,当绑定控制器后,数据自动有了归属 |