From 2f3e3ec2c0cad87eab8a6d170caffc06a4e11c2d Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期四, 07 十一月 2019 09:55:24 +0800 Subject: [PATCH] set getData 1 sec and add day task --- src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java | 93 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 88 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java b/src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java index 7bbcf97..80c0d12 100644 --- a/src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java +++ b/src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java @@ -4,6 +4,7 @@ import com.cloud.count.model.Config; import com.cloud.count.model.People; import com.cloud.count.service.CountService; +import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.ParseException; @@ -31,6 +32,19 @@ */ public static volatile int totalExits = 0; /** + * 缁熻璁惧鍙粺璁$殑鏈�澶ф暟閲� + */ + private static final int MAXCOUNT = 65535; + /** + * 缁熻璁惧鍗曡瘝鍙粺璁$殑鏈�澶ф暟閲� + */ + private static final int MAXCOUNTONCE = 100; + /** + * 璁$畻鐨勮繘鍏ヤ腑闂村彉閲� + */ + private static volatile int tmpEnter = 0; + private static volatile int tmpExit = 0; + /** * 瀹炴椂璁$畻鏃朵綔涓鸿绠楃殑杩涙牎浜烘暟鍩哄噯鍊� */ public static volatile int realtimeBaseEnters = 0; @@ -51,6 +65,36 @@ private static String[] time2={"00","05","10","15","20","25", "30","35","40","45","50","55"}; public static volatile int countType = 0; + + public static Map<Integer,Integer> dayAllMap = new HashMap<>(); + public static Map<Integer,Integer> dayOutMap = new HashMap<>(); + public static Map<Integer,Integer> dayInMap = new HashMap<>(); + + public static int addEnter(int count) { + int inCre = 0; + if(tmpEnter <= count){ + inCre = count - tmpEnter; + } else { + if(tmpEnter >= (MAXCOUNT-MAXCOUNTONCE) && count <= MAXCOUNT) { + inCre = count + MAXCOUNT - tmpEnter; + } + } + tmpEnter = count; + return inCre; + } + + public static int addExit(int count) { + int inCre = 0; + if(tmpExit <= count){ + inCre = count - tmpExit; + } else { + if(tmpExit >= (MAXCOUNT-MAXCOUNTONCE) && count <= MAXCOUNT) { + inCre = count + MAXCOUNT - tmpExit; + } + } + tmpExit = count; + return inCre; + } /** * 缁熻鍙傛暟鍒濆鍖栵紝鐢ㄤ簬缁熻璁惧閲嶅惎鎯呭喌(鍙戦�佺殑绗竴鏉℃姤鏂�) @@ -82,6 +126,15 @@ Map<String,Object> map = new HashMap<>(16); // 鑾峰彇涓�浜涘垵濮嬪�� Config config = dao.getConfig(); + if(config==null) { + config = new Config(); + config.setCor(1); + config.setPassword("123456"); + config.setCountStartTime("06:00"); + config.setInit(1); + config.setInitialPeople(60); + config.setInitialTime("00:00"); + } // 鍒濆浜烘暟鍊� int initialPeople = (config.getInit()==1)?config.getInitialPeople():0; // 鏍℃浜烘暟鍊� @@ -100,6 +153,10 @@ if (now>start-1 && now<start+11){//琛ㄧず浠庤缃殑鍒濆鍖栨椂闂村紑濮嬮噸鏂拌鏁� baseEnters = totalEnters; baseExits = totalExits; + + dayAllMap = new HashMap<>(); + dayInMap = new HashMap<>(); + dayOutMap = new HashMap<>(); } // 浠庡紑濮嬭绠楁椂闂村埌鐜板湪鐨勮繘鏍℃暟 @@ -119,10 +176,10 @@ // 寮�濮嬬粺璁℃椂闂� 鍒嗗紑 濡�06:40 String[] times = config.getCountStartTime().split(":"); // 鍒濆璁剧疆鏃堕棿鍒嗗紑 - String[] times2 = initialTime.split(":"); + String[] times2 = initialTime.split(":");//鍒濆鍖栨椂闂�06:00 // 璁剧疆鏃堕棿鍥捐〃鐨勯」 - int charat = Integer.parseInt(times[0]); - int mm =Integer.parseInt(times2[0])-charat; + int charat = Integer.parseInt(times[0]);//缁熻寮�濮嬫椂闂�06:00 + int mm =Integer.parseInt(times2[0])-charat;//鍒嗛挓鏄�00 // 璁剧疆鏃堕棿鍥捐〃鐨勯」锛屾瘮濡傚浘琛ㄧ殑寮�濮嬬粺璁℃椂闂翠负06:40锛屽垯time_set灏辨槸[06:40,07:40,08:40,09:40,10:40,11:40,12:40,] for(int i=0;i<minute;i++){ //time_set[i]=time[charat]+":"+times[1]; @@ -139,9 +196,35 @@ people[i]=initialPeople; set = hourset; //杩欒浠g爜寰堥噸瑕侊紝琛ㄧず閲嶆柊缁熻 }else { - //System.out.println("绗�"+i+"涓皬鏃剁殑鏁版嵁:"); + // people[i] = dao.countInPeople(set-60,hourset+3599)- dao.countOutPeople(set-60,hourset+3599)+initialPeople+correctionPeople; - people[i] = getDataValue(map,countType,set-60,hourset+1799,initialPeople,correctionPeople); + //姣忔閮藉疄鏃惰绠楋紝浼氶噸澶嶈绠楀巻鍙叉暟鎹� +// people[i] = getDataValue(map,countType,set-60,hourset+1799,initialPeople,correctionPeople); + //閲囩敤缂撳瓨鐨勬柟寮忥紝绠楄繃鐨勫氨涓嶅啀璁$畻浜� + if(countType == 1){ + if(dayInMap.containsKey(i) && minute >1 && (i != minute-1)){ + people[i] = dayInMap.get(i); + }else{ + people[i] = getDataValue(map,countType,set-60,hourset+1799,initialPeople,correctionPeople); + dayInMap.put(i, people[i]); + } + } else if(countType == 0) { + if(dayAllMap.containsKey(i) && minute >1 && (i != minute-1)){ + people[i] = dayAllMap.get(i); + }else{ + people[i] = getDataValue(map,countType,set-60,hourset+1799,initialPeople,correctionPeople); + dayAllMap.put(i, people[i]); + } + } else { + if(dayOutMap.containsKey(i) && minute >1 && (i != minute-1)){ + people[i] = dayOutMap.get(i); + }else{ + people[i] = getDataValue(map,countType,set-60,hourset+1799,initialPeople,correctionPeople); + dayOutMap.put(i, people[i]); + } + } + + } hourset +=1800; } -- Gitblit v1.8.0