From bcffe049acc4d80b21d923f5c002496c280d5668 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期六, 02 十一月 2019 16:59:57 +0800
Subject: [PATCH] fix count mechine limit 65535

---
 src/main/java/com/cloud/count/listener/CountListener.java |   33 +++++++++++++++++++++++----------
 1 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/cloud/count/listener/CountListener.java b/src/main/java/com/cloud/count/listener/CountListener.java
index 23e34da..f51b4db 100644
--- a/src/main/java/com/cloud/count/listener/CountListener.java
+++ b/src/main/java/com/cloud/count/listener/CountListener.java
@@ -2,6 +2,7 @@
 import com.cloud.count.dao.CountDao;
 import com.cloud.count.model.CountState;
 import com.cloud.count.model.People;
+import com.cloud.count.service.CountService;
 import com.cloud.count.service.serviceImpl.CountServiceImpl;
 import com.cloud.count.utils.XmlUtil;
 import org.slf4j.Logger;
@@ -62,29 +63,38 @@
                         byte[] b=new byte[1024];
                         is.read(b);
                         String str = new String(b);
-//                        logger.info(str);
+
                         sendAck(iWriter);
                         try{
                             String xmlStr = XmlUtil.toXmlStr(str);
+
                             // 濡傛灉瀛樺湪TotalEnters銆傚垯璇佹槑杩斿洖鐨勬槸瀹炴椂鏁版嵁鐨剎ml
                             People people = null;
                             if(xmlStr.indexOf("TotalEnters")>-1){
                                 people = XmlUtil.realTimeXmlToPeople(xmlStr);
-                                dao.savePeople(people);
-                                CountServiceImpl.totalEnters = people.getEnters();
-                                CountServiceImpl.totalExits = people.getExits();
+                                int inCreEnter = CountServiceImpl.addEnter(people.getEnters());//杩涘叆浜烘暟澧為噺
+                                int inCreExit = CountServiceImpl.addExit(people.getExits());//鍑哄幓浜烘暟澧為噺
+                                System.out.println("TotalEnters:"+people.getEnters());
+                                CountServiceImpl.totalEnters += inCreEnter;
+                                CountServiceImpl.totalExits += inCreExit;
 
-                                if( CountServiceImpl.totalEnters < CountServiceImpl.baseEnters){
-                                    //琛ㄧず缁熻璁惧閲嶆柊鍚姩浜�,缁熻鍙傛暟褰掗浂
-                                    CountServiceImpl.initCountArgs(people);
-                                }
+
+                                people.setEnters(CountServiceImpl.totalEnters);//灏嗙疮鍔犲悗鐨勬暟閲忓瓨鍒版暟鎹簱涓�
+                                people.setExits(CountServiceImpl.totalExits);
+                                boolean resultB = dao.savePeople(people);
+
+                                //鎬昏繘鍏ユ暟閲忔垨鑰呮�诲嚭鍘绘暟閲忥紝涓嶄竴瀹氬摢涓�涓厛鍒�2瀛楄妭int鐨勪笂闄�65535
+//                                if( CountServiceImpl.totalEnters < CountServiceImpl.baseEnters){
+//                                    //琛ㄧず缁熻璁惧閲嶆柊鍚姩浜�,缁熻鍙傛暟褰掗浂
+//                                    CountServiceImpl.initCountArgs(people);
+//                                }
                                op: if(!isServerReboot){
                                     isServerReboot = true;
                                     CountState state = dao.getCountState();//鎭㈠缁熻鐘舵��
                                     Date nowDate = new Date();
                                     Date BaseDate = new Date(state.getBaseTime()*1000L);
                                     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-                                    if(!sdf.format(nowDate).equals(sdf.format(BaseDate))){
+                                    if(!sdf.format(nowDate).equals(sdf.format(BaseDate))){//鍘嗗彶鏁版嵁涓嶇瓑浜庡綋澶�
                                         CountServiceImpl.baseEnters  = people.getEnters();
                                         CountServiceImpl.baseExits = people.getExits();
                                         CountServiceImpl.realtimeBaseEnters = people.getEnters();
@@ -92,6 +102,7 @@
                                         CountServiceImpl.errorCount = 0;
                                         break op;
                                     }
+                                    //杩樺師鐘舵��
                                     CountServiceImpl.baseEnters  = state.getBaseEnters();
                                     CountServiceImpl.baseExits = state.getBaseExits();
                                     CountServiceImpl.totalEnters = state.getTotalEnters();
@@ -117,6 +128,8 @@
                                 currentState.setErrorCount(CountServiceImpl.errorCount);
                                 currentState.setBaseTime(people.getTimestamp());
                                 dao.updateCountState(currentState);//鏇存柊褰撳墠缁熻鐘舵��
+                            } else {
+                                System.out.println("noTotalEners");
                             }
                             // 濡傛灉瀛樺湪ReportData銆傚垯璇佹槑杩斿洖鐨勬槸缁熻鏁版嵁鐨剎ml
                             if(xmlStr.indexOf("ReportData")>-1){
@@ -124,7 +137,7 @@
                                 dao.savePeople(people);
                             }
                         }catch (Exception e){
-
+                            System.out.println(e.getMessage());
                         }
 
                     }catch (IOException ex){

--
Gitblit v1.8.0