通信中间件增加功能:
1、实现消息心中;
2、开阀报、关阀报、报警数据都会在消息中间件存入消息;
3、在消息中心注册消息接收者,消息中心周期性向消息接收者推送消息。
| | |
| | | <!-- æ ¹æ®æ°´å¡ç¼å·è·åæ°´å¡å¯¹åºçåæ·idåå§å --> |
| | | <select id="getClientIdAndNameByCardAddrAndCardNo" resultType="java.util.Map"> |
| | | SELECT cli.id AS clientId, |
| | | cli.name AS clientName |
| | | cli.name AS clientName, |
| | | cli.address AS clientAddress |
| | | FROM se_client_card card |
| | | INNER JOIN se_client cli ON card.clientId = cli.id |
| | | WHERE card.cardAddr = #{cardAddr} |
| | |
| | | SELECT id FROM se_virtual_card WHERE state = 1 AND vc_num = #{vcNum} |
| | | </select> |
| | | |
| | | <!--æ ¹æ®èæå¡ç¼å·è·åèæå¡ID--> |
| | | <!--æ ¹æ®èæå¡ç¼å·è·ååæ·idãå§åãå°å--> |
| | | <select id="getClientIdAndNameByVsCardNo" resultType="java.util.Map"> |
| | | SELECT |
| | | cli.id AS clientId, |
| | | cli.name AS clientName |
| | | cli.name AS clientName, |
| | | cli.address AS clientAddress |
| | | FROM se_virtual_card card |
| | | INNER JOIN se_client cli ON card.client_id = cli.id |
| | | WHERE card.state = 1 AND card.vc_num = #{vcNum} |
| | |
| | | import java.util.List; |
| | | |
| | | import com.dy.rtuMw.server.*; |
| | | import com.dy.rtuMw.server.msCenter.MsCenterConfigVo; |
| | | import com.dy.rtuMw.server.msCenter.MsCenterUnit; |
| | | import com.dy.rtuMw.server.rtuData.RtuDataUnit; |
| | | import com.dy.rtuMw.server.rtuData.RtuDataUnitConfigVo; |
| | | import com.dy.rtuMw.server.tasks.FromRtuComResultConstantTask; |
| | |
| | | } |
| | | */ |
| | | |
| | | |
| | | ///////////////// |
| | | //æ¶æ¯ä¸å¿æ¨¡å |
| | | MsCenterConfigVo mscVo = new MsCenterConfigVo(); |
| | | mscVo.enable = conf.getSetAttrBoolean(doc, "config.msCenter", "enable", null, null) ; |
| | | mscVo.notifyMsInterval = conf.getSetAttrPlusInt(doc, "config.msCenter", "notifyInterval", null, 1, 600, null) * 1000L ; |
| | | mscVo.showStartInfo = showStartInfo ; |
| | | AdapterImp_MsCenterUnit mscAdapt = new AdapterImp_MsCenterUnit(); |
| | | mscAdapt.setConfig(mscVo); |
| | | MsCenterUnit mscUnit = MsCenterUnit.getInstance(); |
| | | mscUnit.setAdapter(mscAdapt); |
| | | mscUnit.start(obj -> { |
| | | }); |
| | | units.add(mscUnit) ; |
| | | |
| | | |
| | | ///////////////// |
| | | //RTUè¿ç¨å级模å |
| | | UpgradeUnitConfigVo ugVo = new UpgradeUnitConfigVo(); |
New file |
| | |
| | | package com.dy.rtuMw.server; |
| | | |
| | | |
| | | import com.dy.rtuMw.server.msCenter.MsCenterConfigVo; |
| | | import com.dy.rtuMw.server.msCenter.MsCenterUnitAdapter; |
| | | |
| | | public class AdapterImp_MsCenterUnit implements MsCenterUnitAdapter { |
| | | |
| | | private MsCenterConfigVo configVo ; |
| | | |
| | | public MsCenterConfigVo getConfig() { |
| | | return configVo; |
| | | } |
| | | |
| | | public void setConfig(MsCenterConfigVo configVo){ |
| | | this.configVo = configVo ; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw.server.msCenter; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/2/12 13:57 |
| | | * @Description |
| | | */ |
| | | public class MsCenterConfigVo { |
| | | public Boolean showStartInfo ; |
| | | public Boolean enable ;//æ¨¡åæ¯å¦å¯å¨ |
| | | |
| | | public Long notifyMsInterval ;//éç¥é´é(å使¯«ç§) |
| | | |
| | | public MsCenterConfigVo(){ |
| | | this.showStartInfo = false ; |
| | | this.enable = false ; |
| | | this.notifyMsInterval = 1000L ; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw.server.msCenter; |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.queue.Queue; |
| | | import com.dy.common.springUtil.SpringContextUtil; |
| | | import com.dy.common.threadPool.ThreadPool; |
| | | import com.dy.common.threadPool.TreadPoolFactory; |
| | | import com.dy.common.util.Callback; |
| | | import com.dy.common.util.TimerTaskJob; |
| | | import com.dy.rtuMw.web.webRequest.WebRequestDeal; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/2/12 14:12 |
| | | * @Description |
| | | */ |
| | | public class MsCenterManager extends TimerTaskJob implements Callback { |
| | | |
| | | private static final Logger log = LogManager.getLogger(MsCenterManager.class.getName()); |
| | | |
| | | private static final MsCenterManager INSTANCE = new MsCenterManager(); |
| | | //æ¶æ¯ç¼åéåï¼çº¿ç¨å®å
¨ç |
| | | private static final Queue msQueue = new Queue("MsCenterQueue") ; |
| | | |
| | | private static final Map<String, String> msReceivers = new HashMap<>() ; |
| | | |
| | | |
| | | private MsCenterManager(){ |
| | | } |
| | | |
| | | protected static MsCenterManager getInstance() { |
| | | return MsCenterManager.INSTANCE; |
| | | } |
| | | |
| | | /** |
| | | * åå§åé
ç½®ä¿¡æ¯ |
| | | */ |
| | | protected void initOption(MsCenterConfigVo configVo) { |
| | | } |
| | | /** |
| | | * æ³¨åæ¶æ¯æ¥æ¶å¨ |
| | | * @param webUrl æ¥æ¶è
web http post url |
| | | */ |
| | | protected void registerMsReceiver(String webUrl){ |
| | | if(!msReceivers.containsKey(webUrl)){ |
| | | msReceivers.put(webUrl, webUrl) ; |
| | | } |
| | | } |
| | | |
| | | protected void pushMs(MsObj msNode){ |
| | | try { |
| | | msQueue.pushTail(msNode); |
| | | }catch (Exception e){ |
| | | log.error("æ¶æ¯ä¸å¿éååå
¥æ¶æ¯æ¶åçå¼å¸¸", e); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public Object execute() throws Exception { |
| | | if(msQueue.size() > 0){ |
| | | JSONObject msNode1 = (JSONObject)msQueue.pop() ; |
| | | if(msNode1 != null){ |
| | | //大é¨åæ¶é´msNode1æ¯null |
| | | List<JSONObject> list = new ArrayList<>() ; |
| | | list.add(msNode1) ; |
| | | JSONObject msNode ; |
| | | do{ |
| | | msNode = (JSONObject)msQueue.pop() ; |
| | | if(msNode != null){ |
| | | list.add(msNode) ; |
| | | } |
| | | }while (msNode != null); |
| | | this.notifyMs(list) ; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | //////////////////////////////////////////////////// |
| | | // |
| | | // æ¶æ¯éç¥éç¥å·¥ä½çº¿ç¨æ§è¡å®æååè°çæ¹æ³ï¼ |
| | | // ä¹å°±æ¯ä¸é¢executeæ¹æ³æ§è¡å®æè¿åææåºå¼å¸¸åï¼æ§è¡ä¸é¢ä¸ä¸ªæ¹æ³ |
| | | // |
| | | //////////////////////////////////////////////////// |
| | | @Override |
| | | public void call(Object obj) { |
| | | //线ç¨å·¥ä½æ§è¡å®äºï¼obj = Boolean(true) |
| | | } |
| | | @Override |
| | | public void call(Object... objs) { |
| | | } |
| | | @Override |
| | | public void exception(Exception e) { |
| | | log.error("æ¶æ¯éç¥ä¼ºæçº¿ç¨åçå¼å¸¸", e); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ææ¶æ¯éç¥åºå» |
| | | * @param list |
| | | */ |
| | | private void notifyMs(List<JSONObject> list){ |
| | | try { |
| | | if(msReceivers.size() > 0){ |
| | | ThreadPool.Pool pool = TreadPoolFactory.getThreadPoolLong() ; |
| | | pool.putJob(new ThreadPool.Job() { |
| | | public void execute() { |
| | | Iterator<String> it = msReceivers.keySet().iterator() ; |
| | | while (it.hasNext()){ |
| | | doNotifyMs(it.next(), list) ; |
| | | } |
| | | } |
| | | @Override |
| | | public void destroy(){ |
| | | } |
| | | @Override |
| | | public boolean isDestroy(){ |
| | | return false ; |
| | | } |
| | | |
| | | }); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("å¨RtuDataNodeå
åçå¼å¸¸", e); |
| | | } |
| | | } |
| | | |
| | | private void doNotifyMs(String receiverWebUrl, List<JSONObject> list){ |
| | | WebRequestDeal deal = SpringContextUtil.getBean(WebRequestDeal.class) ; |
| | | deal.deal(receiverWebUrl, list); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw.server.msCenter; |
| | | |
| | | import com.dy.common.mw.UnitAdapterInterface; |
| | | import com.dy.common.mw.UnitCallbackInterface; |
| | | import com.dy.common.mw.UnitInterface; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/2/12 13:55 |
| | | * @Description |
| | | */ |
| | | public class MsCenterUnit implements UnitInterface { |
| | | |
| | | private static MsCenterUnit instance = new MsCenterUnit() ; |
| | | |
| | | public static MsCenterUnitAdapter adapter ; |
| | | public static MsCenterConfigVo confVo ; |
| | | |
| | | private static MsCenterManager manager ; |
| | | |
| | | private MsCenterUnit(){} ; |
| | | |
| | | public static MsCenterUnit getInstance(){ |
| | | return instance ; |
| | | } |
| | | |
| | | @Override |
| | | public void setAdapter(UnitAdapterInterface adapter) throws Exception { |
| | | if(adapter == null){ |
| | | throw new Exception("æ¶æ¯ä¸å¿æ¨¡åéé
å¨å¯¹è±¡ä¸è½ä¸ºç©ºï¼") ; |
| | | } |
| | | MsCenterUnit.adapter = (MsCenterUnitAdapter)adapter ; |
| | | MsCenterUnit.confVo = MsCenterUnit.adapter.getConfig() ; |
| | | if(MsCenterUnit.confVo == null){ |
| | | throw new Exception("æ¶æ¯ä¸å¿æ¨¡åé
置对象ä¸è½ä¸ºç©ºï¼") ; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * åå§å |
| | | */ |
| | | @Override |
| | | public void start(UnitCallbackInterface callback) throws Exception { |
| | | if(confVo.enable){ |
| | | manager = MsCenterManager.getInstance() ; |
| | | manager.initOption(confVo); |
| | | manager.start(1000L, confVo.notifyMsInterval, manager); |
| | | callback.call(null) ; |
| | | System.out.println("æ¶æ¯ä¸å¿æ¨¡åæåå¯å¨"); |
| | | }else{ |
| | | System.out.println("æ¶æ¯ä¸å¿æ¨¡åé
ç½®ä¸å¯å¨"); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void stop(UnitCallbackInterface callback) throws Exception { |
| | | if(manager != null){ |
| | | manager.stop(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * åå
¥æ¶æ¯ |
| | | * @param msNode |
| | | */ |
| | | public void pushMs(MsObj msNode){ |
| | | if(manager != null){ |
| | | manager.pushMs(msNode) ; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ³¨åæ¶æ¯æ¥æ¶å¨ |
| | | * @param webUrl æ¥æ¶è
web http post url |
| | | */ |
| | | public void registerMsReceiver(String webUrl){ |
| | | if(manager != null){ |
| | | manager.registerMsReceiver(webUrl) ; |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw.server.msCenter; |
| | | |
| | | import com.dy.common.mw.UnitAdapterInterface; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/2/12 13:58 |
| | | * @Description |
| | | */ |
| | | public interface MsCenterUnitAdapter extends UnitAdapterInterface { |
| | | MsCenterConfigVo getConfig(); |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw.server.msCenter; |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.dy.common.queue.NodeObj; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/2/12 15:14 |
| | | * @Description |
| | | */ |
| | | public class MsObj extends JSONObject implements NodeObj { |
| | | } |
New file |
| | |
| | | package com.dy.rtuMw.server.msCenter; |
| | | |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/2/12 15:35 |
| | | * @Description |
| | | */ |
| | | //使起ä½ç¨ï¼æ¬ç±»æ³¨è§£@Componentï¼å¹¶å¨PipIrrMwRtuApplication注解@EnableScheduling |
| | | //@Component |
| | | public class TestMsResource { |
| | | |
| | | // è®¾ç½®å®æ¶åç§ä¸æ¬¡ |
| | | @Scheduled(cron = "0/1 * * * * ?") |
| | | public void WsHeartBeat() throws Exception { |
| | | MsObj obj = new MsObj() ; |
| | | obj.put("id", System.currentTimeMillis()); |
| | | obj.put("ms", "æ¶æ¯" + System.currentTimeMillis()); |
| | | MsCenterUnit.getInstance().pushMs(obj); |
| | | } |
| | | |
| | | } |
| | |
| | | vo = new SeClient() ; |
| | | vo.setId(Long.parseLong(map.get("clientId").toString())); |
| | | vo.setName(map.get("clientName").toString()); |
| | | vo.setAddress(map.get("clientAddress").toString()); |
| | | } |
| | | } |
| | | return vo ; |
| | |
| | | vo = new SeClient() ; |
| | | vo.setId(Long.parseLong(map.get("clientId").toString())); |
| | | vo.setName(map.get("clientName").toString()); |
| | | vo.setAddress(map.get("clientAddress").toString()); |
| | | } |
| | | } |
| | | return vo ; |
| | |
| | | import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory; |
| | | import com.dy.rtuMw.server.ServerProperties; |
| | | import com.dy.rtuMw.server.forMs.SendMsCache; |
| | | import com.dy.rtuMw.server.msCenter.MsCenterUnit; |
| | | import com.dy.rtuMw.server.msCenter.MsObj; |
| | | import com.dy.rtuMw.server.rtuData.TaskSurpport; |
| | | import com.dy.rtuMw.server.rtuData.dbSv.DbSv; |
| | | import com.dy.common.mw.protocol.Data; |
| | |
| | | Object[] objs = this.getTaskResults(TkPreGenObjs.taskId); |
| | | DbSv sv = (DbSv) objs[0]; |
| | | PrController controller = (PrController) objs[1]; |
| | | this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo); |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo); |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo); |
| | | if(dataCd81Vo.stateVo != null && dataCd81Vo.stateVo.valveState != null && dataCd81Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){ |
| | |
| | | Object[] objs = this.getTaskResults(TkPreGenObjs.taskId); |
| | | DbSv sv = (DbSv) objs[0]; |
| | | PrController controller = (PrController) objs[1]; |
| | | this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo); |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo); |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo); |
| | | /** éå¼å·¥ä½æ¥ï¼éé¨ç¶æä¸å®æ¯æå¼ç¶æï¼æä»¥ä¸è®¾ç½®ä¸é¢æ°æ®ä»¥å¤åç»ä»»å¡è®¾ç½®èæå¡ç¶æ |
| | |
| | | Object[] objs = this.getTaskResults(TkPreGenObjs.taskId); |
| | | DbSv sv = (DbSv) objs[0]; |
| | | PrController controller = (PrController) objs[1]; |
| | | this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo); |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo); |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo); |
| | | if(dataCdC0Vo.stateVo != null && dataCdC0Vo.stateVo.valveState != null && dataCdC0Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){ |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¦ç¶ææ°æ®åå
¥æ¶æ¯ä¸å¿ |
| | | * @param controller æ§å¶å¨å¯¹è±¡ |
| | | * @param rtuAddr æ§å¶å¨å°å |
| | | * @param dV1 æ°æ®å¯¹è±¡ |
| | | * @param alarmVo æ¥è¦å¯¹è±¡ |
| | | * @param stateVo ç¶æå¯¹è±¡ |
| | | */ |
| | | private void toMsCenter(PrController controller, String rtuAddr, DataV1 dV1, DataAlarmVo alarmVo, DataStateVo stateVo){ |
| | | if(alarmVo != null && controller != null){ |
| | | MsObj msObj = new MsObj() ; |
| | | msObj.put("name", "æ¥è¦"); |
| | | msObj.put("rtuAddr", rtuAddr); |
| | | msObj.put("intakeId", controller.getIntakeId()); |
| | | msObj.put("alarm", alarmVo.alarmContent()); |
| | | MsCenterUnit.getInstance().pushMs(msObj); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * ä¿åæ¥è¦ç¶æææ°æ°æ® |
| | | * @param sv æå¡ |
| | |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeClient; |
| | | import com.dy.rtuMw.server.msCenter.MsCenterUnit; |
| | | import com.dy.rtuMw.server.msCenter.MsObj; |
| | | import com.dy.rtuMw.server.rtuData.TaskSurpport; |
| | | import com.dy.rtuMw.server.rtuData.dbSv.DbSv; |
| | | import org.apache.logging.log4j.LogManager; |
| | |
| | | PrController controller = (PrController)objs[1] ; |
| | | SeClient clientVo = (SeClient)objs[3] ;//è¿ä¸ªå¼å¯¹è±¡ä¸åªæidånameä¼æå¼ |
| | | try{ |
| | | this.toMsCenter(clientVo, controller, d.getRtuAddr(), dV1, (DataCd83CloseVo)cdObj) ; |
| | | this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1, (DataCd83CloseVo)cdObj) ; |
| | | }catch (Exception e){ |
| | | log.error("ä¿åæ§å¶å¨å¼é䏿¥æ¶åçå¼å¸¸", e); |
| | |
| | | } |
| | | |
| | | /** |
| | | * æå¼éæ¶æ¯åå
¥æ¶æ¯ä¸å¿ |
| | | * @param clientVo |
| | | * @param controller |
| | | * @param rtuAddr |
| | | * @param dV1 |
| | | * @param dataCd83CloseVo |
| | | */ |
| | | private void toMsCenter(SeClient clientVo, PrController controller, String rtuAddr, DataV1 dV1, DataCd83CloseVo dataCd83CloseVo){ |
| | | if(clientVo != null && controller != null){ |
| | | MsObj msObj = new MsObj() ; |
| | | msObj.put("name", "å
³é"); |
| | | msObj.put("clientId", clientVo.getId()); |
| | | msObj.put("clientName", clientVo.getName()); |
| | | msObj.put("clientAddress", clientVo.getAddress()); |
| | | msObj.put("icCardNo", dataCd83CloseVo.icCardNo); |
| | | msObj.put("rtuAddr", rtuAddr); |
| | | msObj.put("intakeId", controller.getIntakeId()); |
| | | MsCenterUnit.getInstance().pushMs(msObj); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * ä¿åæ°æ® |
| | | * @param sv æå¡ |
| | | * @param clientVo åæ·å¯¹è±¡ï¼ä¸ä¸ºç©ºæ¶ï¼åªæidånameæå¼ï¼ |
| | |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeClient; |
| | | import com.dy.rtuMw.server.msCenter.MsCenterUnit; |
| | | import com.dy.rtuMw.server.msCenter.MsObj; |
| | | import com.dy.rtuMw.server.rtuData.TaskSurpport; |
| | | import com.dy.rtuMw.server.rtuData.dbSv.DbSv; |
| | | import org.apache.logging.log4j.LogManager; |
| | |
| | | PrController controller = (PrController)objs[1] ; |
| | | SeClient clientVo = (SeClient)objs[3] ;//è¿ä¸ªå¼å¯¹è±¡ä¸åªæidånameä¼æå¼ |
| | | try{ |
| | | this.toMsCenter(clientVo, controller, d.getRtuAddr(), dV1, (DataCd83OpenVo)cdObj) ; |
| | | this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1, (DataCd83OpenVo)cdObj) ; |
| | | }catch (Exception e){ |
| | | log.error("ä¿åæ§å¶å¨å¼é䏿¥æ¶åçå¼å¸¸", e); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æå¼éæ¶æ¯åå
¥æ¶æ¯ä¸å¿ |
| | | * @param clientVo |
| | | * @param controller |
| | | * @param rtuAddr |
| | | * @param dV1 |
| | | * @param dataCd83OpenVo |
| | | */ |
| | | private void toMsCenter(SeClient clientVo, PrController controller, String rtuAddr, DataV1 dV1, DataCd83OpenVo dataCd83OpenVo){ |
| | | if(clientVo != null && controller != null){ |
| | | MsObj msObj = new MsObj() ; |
| | | msObj.put("name", "å¼é"); |
| | | msObj.put("clientId", clientVo.getId()); |
| | | msObj.put("clientName", clientVo.getName()); |
| | | msObj.put("clientAddress", clientVo.getAddress()); |
| | | msObj.put("icCardNo", dataCd83OpenVo.icCardNo); |
| | | msObj.put("rtuAddr", rtuAddr); |
| | | msObj.put("intakeId", controller.getIntakeId()); |
| | | MsCenterUnit.getInstance().pushMs(msObj); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * ä¸å¡å¤ç |
| | | * @param sv æå¡ |
| | |
| | | } |
| | | |
| | | /** |
| | | * åå§åä¸è¡æ°æ®å¤ç任塿± |
| | | * åå§å |
| | | */ |
| | | @Override |
| | | public void start(UnitCallbackInterface callback) throws Exception { |
| | |
| | | import com.dy.rtuMw.server.forTcp.TcpSessionCache; |
| | | import com.dy.rtuMw.server.local.CommandInnerDeaLer; |
| | | import com.dy.rtuMw.server.local.ReturnCommand; |
| | | import com.dy.rtuMw.server.msCenter.MsCenterUnit; |
| | | import com.dy.rtuMw.server.tasks.WebDownComTask; |
| | | import com.dy.common.mw.core.CoreUnit; |
| | | import com.dy.common.mw.protocol.Command; |
| | |
| | | return BaseResponseUtils.buildSuccess(list); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * æ³¨åæ¶æ¯æ¥æ¶è
|
| | | * @param msReceiverWebUrl æ¶æ¯æ¥æ¶è
web http post url |
| | | * @return |
| | | */ |
| | | @GetMapping("/registerMsReceiverWebUrl") |
| | | public BaseResponse<List<String>> registerMsReceiverWebUrl(String msReceiverWebUrl){ |
| | | try{ |
| | | MsCenterUnit.getInstance().registerMsReceiver(msReceiverWebUrl); |
| | | }catch (Exception e){ |
| | | log.error("æ³¨åæ¶æ¯æ¥æ¶è
æ¶åçå¼å¸¸", e); |
| | | return BaseResponseUtils.buildError("æ³¨åæ¶æ¯æ¥æ¶è
æ¶åçå¼å¸¸" + (e.getMessage() == null?"":("ï¼" + e.getMessage()))); |
| | | } |
| | | return BaseResponseUtils.buildSuccess(true); |
| | | } |
| | | |
| | | /** |
| | | * æ¥æ¶webç³»ç»åæ¥åçº§ä»»å¡ |
| | | * @param vo |
| | |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | <!-- RTU æ¶æ¯ä¸å¿ |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | notifyInterval: æ¶æ¯éç¥é´éï¼ç§ï¼ |
| | | --> |
| | | <msCenter enable="true" |
| | | notifyInterval="5" |
| | | /> |
| | | |
| | | <!-- RTU 软件å级 |
| | | enable: æ¨¡åæ¯å¦å¯å¨ |
| | | openNoUpgrade: éå¼ï¼æ³µå¼ï¼ä¸æ§è¡å级 |
| | |
| | | |
| | | // 客æ·ç«¯è¿æ¥ä¼è¯ï¼éè¿å®ç»å®¢æ·ç«¯åéæ°æ® |
| | | private Session session; |
| | | |
| | | // 客æ·ç«¯ä¸çº¿æ¶å» |
| | | //private String onLineDt ; |
| | | // 客æ·ç«¯id |
| | | private String id = ""; |
| | | |
| | |
| | | @OnOpen |
| | | public void onOpen(Session session, @PathParam("id") String id) { |
| | | this.session = session; |
| | | //this.onLineDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; |
| | | this.id = id; |
| | | if(this.id == null || this.id.length() == 0){ |
| | | this.id = "" + System.nanoTime() ; |