| | |
| | | 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 { |
| | | |
| | | private static final Logger log = LogManager.getLogger(TkPreGenObjs.class.getName()) ; |
| | |
| | | * @param data 需要处理的数据 |
| | | */ |
| | | @Override |
| | | public void execute(Object data) { |
| | | public void execute(Object data) throws ParseException { |
| | | Data d = (Data)data ; |
| | | String rtuAddr = d.getRtuAddr() ;//TkRtuData里判断了rtuAddr为空 |
| | | DbSv sv = (DbSv)SpringContextUtil.getBean(DbSv.class) ; |
| | | if(sv != null){ |
| | | PrController controller = sv.getPrControllerByRtuAddr(rtuAddr) ; |
| | | PrController controller = sv.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ; |
| | | PrControllerTramp controllerTramp = null ; |
| | | if(controller == null){ |
| | | //数据库中未查询到控制器(RTU实体) |
| | | //数据库中未查询(已经绑定且控制器地址相符)到控制器(RTU实体) |
| | | //流浪者控制器 |
| | | PrControllerTramp rtuTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr); |
| | | if(rtuTramp == null){ |
| | | rtuTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), DateTime.yyyy_MM_dd_HH_mm_ss()) ; |
| | | this.taskResult = new Object[]{sv, null, rtuTramp} ; |
| | | this.toNextOneTask(data, TkDealControllerTramp.taskId); |
| | | 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); |
| | | } |
| | | } |
| | | //不论是否为流浪控制器(RTU实体),都要进行下步工作 |
| | | this.taskResult = new Object[]{sv, controller, null} ; |
| | | //不论是否为流浪控制器(RTU实体),都要进行下步工作,记录其上报的一些数据,当绑定控制器后,数据自动有了归属 |
| | | this.taskResult = new Object[]{sv, controller, controllerTramp} ; |
| | | this.toNextTasks(data); |
| | | }else{ |
| | | log.error("严重错误,未能得到DbSv对象"); |