| | |
| | | package com.dy.aceMw.server.rtuData.p206V1_0_0; |
| | | |
| | | import com.dy.aceMw.server.rtuData.TaskSurpport; |
| | | import com.dy.aceMw.server.rtuData.dbSv.RtuSv; |
| | | import com.dy.aceMw.server.rtuData.dbSv.DbSv; |
| | | import com.dy.common.mw.protocol.Data; |
| | | import com.dy.common.springUtil.SpringContextUtil; |
| | | import com.dy.common.util.DateTime; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | |
| | | import java.text.DateFormat; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | public class TkPreGenObjs extends TaskSurpport { |
| | | |
| | |
| | | * @param data 需要处理的数据 |
| | | */ |
| | | @Override |
| | | public void execute(Object data) { |
| | | public void execute(Object data) throws ParseException { |
| | | Data d = (Data)data ; |
| | | String rtuAddr = d.getRtuAddr() ; |
| | | log.info("RTU" + rtuAddr + "数据到此,进行数据库存储测试"); |
| | | |
| | | RtuSv sv = (RtuSv)SpringContextUtil.getBean(RtuSv.class) ; |
| | | sv.save(d) ; |
| | | |
| | | //得到本地RTU 数据,以备后面节点应用 |
| | | /* |
| | | BuziInterface baseBusi = BuziGeter.getBaseBusi() ; |
| | | BuziInterface orgBusi = null ; |
| | | SyRtu nbRtu = null ; |
| | | SyRtuTramp rtuTramp = null ; |
| | | if(baseBusi != null){ |
| | | nbRtu = DbSyBuzi.getRtu(baseBusi, imei) ; |
| | | if(nbRtu != null){ |
| | | //数据库中查询到NB产品(RTU实体) |
| | | if(nbRtu.orgTag != null && !nbRtu.orgTag.trim().equals("")){ |
| | | orgBusi = BuziGeter.getBusi(nbRtu.orgTag) ; |
| | | if(orgBusi == null){ |
| | | log.error("严重错误,未能得到标签为" + nbRtu.orgTag + "的供水机构数据库业务Busi"); |
| | | }else{ |
| | | BaMeter meter = DbOrgBuzi.getMeterByImeiAndNo(orgBusi, imei, rtuAddr) ; |
| | | //可能未查询到meter,即仍是流浪者RTU,但仍要后续处理:(1)、仍能识别出流浪者RTU,(2)、仍要记录其上报数据 |
| | | if(meter != null){ |
| | | String protocol = d.getProtocol() ; |
| | | if(protocol != null){ |
| | | protocol = protocol.trim(); |
| | | if(!protocol.equals("")){ |
| | | if(meter.protocol == null |
| | | || meter.protocol.trim().equals("") |
| | | || !meter.protocol.trim().equals(protocol)){ |
| | | //需要更新协议名称 |
| | | DbOrgBuzi.updateMeter4Protocol(orgBusi, meter.id, protocol); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, null, meter} ; |
| | | this.toNextTasks(data); |
| | | } |
| | | }else{ |
| | | //NB产品(RTU实体)未分配给具体的供水机构 |
| | | //流浪者RTU |
| | | rtuTramp = DbSyBuzi.getSyRtuTramp(baseBusi, imei, rtuAddr) ; |
| | | if(rtuTramp == null){ |
| | | rtuTramp = new SyRtuTramp(imei, rtuAddr) ; |
| | | } |
| | | this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, rtuTramp, null} ; |
| | | this.toNextOneTask(data, TkDealRtuTramp.taskId); |
| | | String rtuAddr = d.getRtuAddr() ;//TkRtuData里判断了rtuAddr为空 |
| | | DbSv sv = (DbSv)SpringContextUtil.getBean(DbSv.class) ; |
| | | if(sv != null){ |
| | | PrController controller = sv.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ; |
| | | PrControllerTramp controllerTramp = null ; |
| | | if(controller == null){ |
| | | //数据库中未查询(已经绑定且控制器地址相符)到控制器(RTU实体) |
| | | //流浪者控制器 |
| | | controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr); |
| | | if(controllerTramp == null){ |
| | | controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ; |
| | | //this.taskResult = new Object[]{sv, null, rtuTramp} ; |
| | | //this.toNextOneTask(data, TkDealControllerTramp.taskId); |
| | | } |
| | | }else{ |
| | | //数据库中未查询到NB产品(RTU实体) |
| | | //流浪者RTU |
| | | rtuTramp = DbSyBuzi.getSyRtuTramp(baseBusi, imei, rtuAddr) ; |
| | | if(rtuTramp == null){ |
| | | rtuTramp = new SyRtuTramp(imei, rtuAddr) ; |
| | | } |
| | | this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, rtuTramp, null} ; |
| | | this.toNextOneTask(data, TkDealRtuTramp.taskId); |
| | | } |
| | | //不论是否为流浪控制器(RTU实体),都要进行下步工作,记录其上报的一些数据,当绑定控制器后,数据自动有了归属 |
| | | this.taskResult = new Object[]{sv, controller, controllerTramp} ; |
| | | this.toNextTasks(data); |
| | | }else{ |
| | | log.error("严重错误,未能得到BaseBusi对象"); |
| | | log.error("严重错误,未能得到DbSv对象"); |
| | | } |
| | | */ |
| | | } |
| | | } |