From e16302f9d475c7cc4dd18c5abf1a23cb5502e362 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期三, 28 五月 2025 14:57:56 +0800
Subject: [PATCH] 密码验证加-

---
 src/main/java/com/whyc/service/Fbs9100StateService.java |  344 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 330 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/whyc/service/Fbs9100StateService.java b/src/main/java/com/whyc/service/Fbs9100StateService.java
index f7067bc..452309c 100644
--- a/src/main/java/com/whyc/service/Fbs9100StateService.java
+++ b/src/main/java/com/whyc/service/Fbs9100StateService.java
@@ -6,11 +6,18 @@
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.whyc.constant.DeviceConstant;
+import com.whyc.constant.YamlProperties;
+import com.whyc.dto.BattTestData;
 import com.whyc.dto.Response;
+import com.whyc.dto.paramter.FbsStatePar;
+import com.whyc.dto.result.DischargeState;
+import com.whyc.mapper.BattInfMapper;
+import com.whyc.mapper.BattRtstateMapper;
 import com.whyc.mapper.Fbs9100StateMapper;
+import com.whyc.pojo.Battinf;
 import com.whyc.pojo.Fbs9100State;
 import com.whyc.util.ActionUtil;
-import com.whyc.util.DateUtil;
+import com.whyc.util.ThreadLocalUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -18,6 +25,7 @@
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class Fbs9100StateService {
@@ -25,6 +33,18 @@
     private Fbs9100StateMapper mapper;
     @Autowired
     private Fbs9100SetparamService service;
+
+    @Autowired(required = false)
+    private BattInfMapper binfMapper;
+
+    @Autowired(required = false)
+    private BattRtstateMapper rtstateMapper;
+    @Autowired(required = false)
+
+    private Fbs9600StateService fbs9600StateService;
+    @Autowired(required = false)
+
+    private Ld9StateService ld9StateService;
 
     //寮�鍏崇姸鎬�
     @Transactional
@@ -35,9 +55,12 @@
         Fbs9100State fbs9100State = mapper.selectOne(wrapper);
         if (fbs9100State != null) {
             fbs9100State.setNote(new SimpleDateFormat(ActionUtil.time_yyyyMMddHHmmss).format(new Date()));
+            if((devId / 100000 == 6183)||(devId / 100000 == 6184)){
+                fbs9100State.setDevLastCaptestStopTypeReason(BattTestData.getStopType_6183_4(fbs9100State.getDevLastCaptestStopType()));
+            }else{
+                fbs9100State.setDevLastCaptestStopTypeReason(BattTestData.getStopType_9612(fbs9100State.getDevLastCaptestStopType()));
+            }
         }
-        /*Random random = new Random();
-        fbs9100State.setFbo4830IsOnline(random.nextInt(2));*/
         return new Response().setII(1, fbs9100State == null ? false : true, fbs9100State, "");
     }
 
@@ -58,7 +81,7 @@
         UpdateWrapper wrapper=new UpdateWrapper();
         wrapper.set("dev_res_test_state",0);
         wrapper.eq("dev_id",devId);
-        int flag=mapper.update(null,wrapper);
+        int flag=mapper.update((Fbs9100State) ActionUtil.objeNull,wrapper);
         return  new Response().set(1,flag>0?true:false);
     }
     //涓�浣撴満鐣岄潰寮瑰嚭妗嗙‘璁ゆ搷浣�
@@ -72,7 +95,7 @@
             dev_alarmstat=2;
             wrapper.set("dev_alarmstate",dev_alarmstat);
             wrapper.eq("dev_id",devId);
-            flag=mapper.update(null,wrapper);
+            flag=mapper.update((Fbs9100State) ActionUtil.objeNull,wrapper);
             if(flag>0){
                 boolean b=service.sendCmdToFBS9100Dev(35,0, devId);
                 if(b){
@@ -90,7 +113,7 @@
             dev_alarmstat=3;
             wrapper.set("dev_alarmstate",dev_alarmstat);
             wrapper.eq("dev_id",devId);
-            flag=mapper.update(null,wrapper);
+            flag=mapper.update((Fbs9100State) ActionUtil.objeNull,wrapper);
             if(flag>0){
                 bl=true;
                 msg="淇敼鎴愬姛!";
@@ -121,6 +144,12 @@
         return list;
     }
 
+    /**
+     * 杩欎釜鏄寜鐓ц澶噄d鏉ョ粺璁$殑,涓�鎷栦簩鐨勮澶囨湁涓や釜璁惧id,琚湅浣滀袱涓澶�,寮冪敤
+     * @param userId
+     * @return
+     */
+    @Deprecated
     public Response getBTSEquipStatus(int userId){
 
         Response response = new Response();
@@ -156,10 +185,123 @@
             response.setCode(0);
             return response;
         }*/
-            QueryWrapper<Fbs9100State> wrapper = Wrappers.query();
+            /*QueryWrapper<Fbs9100State> wrapper = Wrappers.query();
             wrapper.select("record_datetime", "dev_workstate");
-            List<Fbs9100State> fbs9100StateList = mapper.selectList(wrapper);
+            List<Fbs9100State> fbs9100StateList = mapper.selectList(wrapper);*/
+            List<Fbs9100State> fbs9100StateList = mapper.getListWithoutZJDYBTSE2(userId, 1);
             //棣栧厛鏌ョ湅鏄惁閫氳鏁呴殰,鏃堕棿澶т簬1鍒嗛挓涓洪�氳鏁呴殰
+            for (int i = 0; i < fbs9100StateList.size(); i++) {
+                Calendar instance = Calendar.getInstance();
+                instance.add(Calendar.MINUTE, -1);
+                Date time = instance.getTime();
+                //if (time.compareTo(DateUtil.YYYY_MM_DD_HH_MM_SS.parse(fbs9100StateList.get(i).getRecordDatetime())) > 0) {
+                if (time.compareTo(ThreadLocalUtil.parse(fbs9100StateList.get(i).getRecordDatetime(),1)) > 0) {
+                    resultMap.put("閫氳鏁呴殰鏁伴噺", resultMap.get("閫氳鏁呴殰鏁伴噺") + 1);
+                } else {
+                    switch (fbs9100StateList.get(i).getDevWorkstate()) {
+                        case DeviceConstant.DEV_ONLINE_CHARGE:
+                            resultMap.put("鍦ㄧ嚎娴厖鏁伴噺", resultMap.get("鍦ㄧ嚎娴厖鏁伴噺") + 1);
+                            break;
+                        case DeviceConstant.DEV_PRE_CHARGE:
+                            resultMap.put("棰勫厖鐢垫暟閲�", resultMap.get("棰勫厖鐢垫暟閲�") + 1);
+                            break;
+                        case DeviceConstant.DEV_NUCLEAR_CAP:
+                            resultMap.put("鏍稿娴嬭瘯鏁伴噺", resultMap.get("鏍稿娴嬭瘯鏁伴噺") + 1);
+                            break;
+                        case DeviceConstant.DEV_RES_TEST:
+                            resultMap.put("鍐呴樆娴嬭瘯鏁伴噺", resultMap.get("鍐呴樆娴嬭瘯鏁伴噺") + 1);
+                            break;
+                    }
+                }
+            }
+
+            return response.setII(1, true, resultMap, "");
+        } catch (Exception e) {
+            return response.set(1, false, "鍙戠敓寮傚父:" + e.getCause());
+        }
+    }
+
+    /**
+     * 杩欎釜鏄寜鐓ц澶噄p鏉ョ粺璁$殑.
+     * 閫氳鏁呴殰>鏍稿鏀剧數>鍏呯數>鍐呴樆>娴厖,
+     * 濡傛灉涓�鎷栦簩鐨勮澶�,鏈変袱涓笉鍚岀姸鎬�,瀹炵幇鐘舵�佷紭鍏堢骇瑕嗙洊
+     *
+     * 璁惧鐨勬暟閲忕粺璁″拰璁惧鐘舵�佺殑缁熻,閫昏緫鏄笉鍚岀殑,鏁版嵁搴撶瓫閫夌殑鏃跺�欐潯浠堕�昏緫蹇呭畾鏄笉鍚岀殑: TODO
+     *  閫氬父鎯呭喌涓�,璁惧鏁伴噺缁熻,瑕佹帓闄ゆ帀涓�涓澶囦袱涓猧d鐨勪竴鎷栦簩鎯呭喌;
+     *  鑰岃澶囩姸鎬佺粺璁�,鍙渶瑕佸尯鍒嗕竴涓澶囩殑瀛楁,涓�涓澶囨湁澶氭潯璁板綍涔熸槸姝e父鍚堢悊鐨�,閫氳繃鐘舵�佷紭鍏堢骇瑕嗙洊鏉ュ畾涔夋暣涓澶囩殑鐘舵��
+     *
+     * @param userId
+     * @param type 1-澶師鎺掗櫎钃勭數姹犺澶囦竴鎷栦簩鐨勭浜岀粍鐘舵�佺粺璁�
+     * @param type 2-缁熻鎵�鏈夎澶噄p鐨勭姸鎬�
+     * @return
+     */
+    public Response getBTSEquipStatus2(int userId,int type){
+
+        Response response = new Response();
+        try {
+            Map<String, Integer> resultMap = new HashMap<>();
+            resultMap.put("鐩磋繛鍏呯數鏁伴噺", 0);
+            resultMap.put("棰勫厖鐢垫暟閲�", 0);
+            resultMap.put("鏍稿娴嬭瘯鏁伴噺", 0);
+            resultMap.put("鍐呴樆娴嬭瘯鏁伴噺", 0);
+            resultMap.put("閫氳鏁呴殰鏁伴噺", 0);
+
+            List<Fbs9100State> fbs9100StateList = mapper.getListWithoutZJDYBTSE2(userId,type);
+            //涓婇潰鐨勫垎缁勫瓧娈� 鍙鑳藉尯鍒� 涓嶅悓鐨勮澶囧氨琛屼簡. 鍥犱负濡傛灉鏄竴鎷栦簩鐨勬儏鍐�,涔熷彲閫氳繃鍚庨潰鐨勭姸鎬佷紭鍏堢骇鏉ヨ鐩�,璁惧涓嶄細閲嶅
+            //澶緵鍙互閫氳繃ip鏉ョ‘瀹氭槸鍝彴璁惧
+            Map<String, List<Fbs9100State>> deviceMap = null;
+            if(YamlProperties.systemSubType == 3){ //鏅嬫簮 - 鍥犱负鎵�鏈夎澶囧叡鐢ㄤ竴涓猧p, 鎵�浠ラ渶瑕佸姞涓奷evId
+                deviceMap = fbs9100StateList.stream().collect(Collectors.groupingBy(state ->  String.format("%s_%s",state.getDevIp(), state.getDevId())));
+            }else{ //榛樿閫氱敤
+                deviceMap = fbs9100StateList.stream().collect(Collectors.groupingBy(state -> String.valueOf(state.getDevIp())));
+            }
+            //Map<String, List<Fbs9100State>> deviceMap = fbs9100StateList.stream().collect(Collectors.groupingBy(state ->
+            //        String.format("%s_%s",state.getDevIp(), state.getDevId())));
+            Set<String> deviceSet = deviceMap.keySet();
+            Calendar instance = Calendar.getInstance();
+            instance.add(Calendar.MINUTE, -1);
+            Date time = instance.getTime();
+            //杩欎釜閬嶅巻閲岄潰,鏄寜鐓roupingBy(瀛楁)鏉ヨ繘琛屽垎缁勭殑,鍙互瀛樺湪涓�涓澶囧涓褰�,鍗冲嚭鐜颁竴鎷栦簩鐨勬儏鍐�. 杩欎釜鏃跺�欐寜鐓т紭鍏堢骇杩涜瑕嗙洊鏉ュ畾涔夋暣涓澶囩殑鐘舵��
+            //涓婇潰鐨勫垎缁勫瓧娈� 鍙鑳藉尯鍒� 涓嶅悓鐨勮澶囧氨琛屼簡. 鍥犱负濡傛灉鏄竴鎷栦簩鐨勬儏鍐�,涔熷彲閫氳繃鐘舵�佷紭鍏堢骇鏉ヨ鐩�
+            for (String deviceIp : deviceSet) {
+                List<Fbs9100State> fbs9100States = deviceMap.get(deviceIp);
+                //瀛樺湪6186璁惧,杩欎釜璁惧鐨勮澶囩姸鎬佸�奸噰鐢ㄧ殑鏄痙evAlarmState,鎵�浠ラ渶瑕佸崟鐙鐞�
+                List<Integer> workStateList;
+                if(fbs9100States.get(0).getDevId().toString().startsWith("6186")){
+                    workStateList = fbs9100States.stream().map(Fbs9100State::getDevAlarmstate).collect(Collectors.toList());
+                }else {
+                    workStateList = fbs9100States.stream().map(Fbs9100State::getDevWorkstate).collect(Collectors.toList());
+                }
+                Map<Integer, List<Integer>> workStateMap = workStateList.stream().collect(Collectors.groupingBy(Integer::intValue));
+                Set<Integer> workStateSet = workStateMap.keySet();
+                boolean commError = false;
+                for (Fbs9100State state : fbs9100States) {
+                    //if (time.compareTo(DateUtil.YYYY_MM_DD_HH_MM_SS.parse(state.getRecordDatetime())) > 0) {
+                    if (time.compareTo(ThreadLocalUtil.parse(state.getRecordDatetime(),1)) > 0) {
+                        resultMap.put("閫氳鏁呴殰鏁伴噺", resultMap.get("閫氳鏁呴殰鏁伴噺") + 1);
+                        commError = true;
+                        break;
+                    }
+                }
+                //涓嶅瓨鍦ㄩ�氳鏁呴殰,鍒欓渶瑕佸啀鍒ゆ柇浼樺厛绾ц鐩�
+                if(!commError){
+                    if(workStateSet.contains(DeviceConstant.DEV_NUCLEAR_CAP)) {
+                        resultMap.put("鏍稿娴嬭瘯鏁伴噺", resultMap.get("鏍稿娴嬭瘯鏁伴噺") + 1);
+                    }
+                    else if(workStateSet.contains(DeviceConstant.DEV_PRE_CHARGE)) {
+                        resultMap.put("棰勫厖鐢垫暟閲�", resultMap.get("棰勫厖鐢垫暟閲�") + 1);
+                    }
+                    else if(workStateSet.contains(DeviceConstant.DEV_RES_TEST)) {
+                        resultMap.put("鍐呴樆娴嬭瘯鏁伴噺", resultMap.get("鍐呴樆娴嬭瘯鏁伴噺") + 1);
+                    }
+                    else if(workStateSet.contains(DeviceConstant.DEV_ONLINE_CHARGE)) {
+                        resultMap.put("鐩磋繛鍏呯數鏁伴噺", resultMap.get("鐩磋繛鍏呯數鏁伴噺") + 1);
+                    }
+
+                }
+
+            }
+            /*//棣栧厛鏌ョ湅鏄惁閫氳鏁呴殰,鏃堕棿澶т簬1鍒嗛挓涓洪�氳鏁呴殰
             for (int i = 0; i < fbs9100StateList.size(); i++) {
                 Calendar instance = Calendar.getInstance();
                 instance.add(Calendar.MINUTE, -1);
@@ -175,23 +317,197 @@
                             resultMap.put("棰勫厖鐢垫暟閲�", resultMap.get("棰勫厖鐢垫暟閲�") + 1);
                             break;
                         case DeviceConstant.DEV_NUCLEAR_CAP:
-                            resultMap.put("鏍稿鏁伴噺", resultMap.get("鏍稿娴嬭瘯鏁伴噺") + 1);
+                            resultMap.put("鏍稿娴嬭瘯鏁伴噺", resultMap.get("鏍稿娴嬭瘯鏁伴噺") + 1);
                             break;
                         case DeviceConstant.DEV_RES_TEST:
                             resultMap.put("鍐呴樆娴嬭瘯鏁伴噺", resultMap.get("鍐呴樆娴嬭瘯鏁伴噺") + 1);
                             break;
                     }
                 }
-            }
+            }*/
 
-            return response.setII(1, true, resultMap, null);
+            return response.setII(1, true, resultMap, "");
         } catch (Exception e) {
             return response.set(1, false, "鍙戠敓寮傚父:" + e.getCause());
         }
     }
 
-    //绠$悊鍛橀椤碉細绔欑偣鐘舵�佷俊鎭�
-    public Response getSateAnalysis(int userId) {
-        return new Response().set(1);
+    //灞辫タ鏅嬫簮鐗瑰畾鎺ュ彛
+    public Response getBTSEquipStatus2JY(int type){
+
+        Response response = new Response();
+        try {
+            Map<String, Integer> resultMap = new HashMap<>();
+            resultMap.put("鐩磋繛鍏呯數鏁伴噺", 0);
+            resultMap.put("棰勫厖鐢垫暟閲�", 0);
+            resultMap.put("鏍稿娴嬭瘯鏁伴噺", 0);
+            resultMap.put("鍐呴樆娴嬭瘯鏁伴噺", 0);
+            resultMap.put("閫氳鏁呴殰鏁伴噺", 0);
+
+            List<Fbs9100State> fbs9100StateList = mapper.getListWithoutZJDYBTSE2JY(type);
+
+            //Map<String, List<Fbs9100State>> deviceMap = fbs9100StateList.stream().collect(Collectors.groupingBy(Fbs9100State::getDevIp));
+            //JY鐨勮澶�,ip閮戒竴鏍�,鎵�浠ュ尯鍒嗕笉鍚岀殑璁惧,闇�瑕侀�氳繃ip+id
+            Map<String, List<Fbs9100State>> deviceMap = fbs9100StateList.stream().collect(Collectors.groupingBy(state ->String.format("%s_%s",state.getDevIp(), state.getDevId())));
+            Set<String> deviceSet = deviceMap.keySet();
+            Calendar instance = Calendar.getInstance();
+            instance.add(Calendar.MINUTE, -1);
+            Date time = instance.getTime();
+            for (String deviceIp : deviceSet) {
+                List<Fbs9100State> fbs9100States = deviceMap.get(deviceIp);
+                //瀛樺湪6186璁惧,杩欎釜璁惧鐨勮澶囩姸鎬佸�奸噰鐢ㄧ殑鏄痙evAlarmState,鎵�浠ラ渶瑕佸崟鐙鐞�
+                List<Integer> workStateList;
+                if(fbs9100States.get(0).getDevId().toString().startsWith("6186")){
+                    workStateList = fbs9100States.stream().map(Fbs9100State::getDevAlarmstate).collect(Collectors.toList());
+                }else {
+                    workStateList = fbs9100States.stream().map(Fbs9100State::getDevWorkstate).collect(Collectors.toList());
+                }
+                Map<Integer, List<Integer>> workStateMap = workStateList.stream().collect(Collectors.groupingBy(Integer::intValue));
+                Set<Integer> workStateSet = workStateMap.keySet();
+                boolean commError = false;
+                for (Fbs9100State state : fbs9100States) {
+                    //if (time.compareTo(DateUtil.YYYY_MM_DD_HH_MM_SS.parse(state.getRecordDatetime())) > 0) {
+                    if (time.compareTo(ThreadLocalUtil.parse(state.getRecordDatetime(),1)) > 0) {
+                        resultMap.put("閫氳鏁呴殰鏁伴噺", resultMap.get("閫氳鏁呴殰鏁伴噺") + 1);
+                        commError = true;
+                        break;
+                    }
+                }
+                //涓嶅瓨鍦ㄩ�氳鏁呴殰,鍒欓渶瑕佸啀鍒ゆ柇浼樺厛绾ц鐩�
+                if(!commError){
+                    if(workStateSet.contains(DeviceConstant.DEV_NUCLEAR_CAP)) {
+                        resultMap.put("鏍稿娴嬭瘯鏁伴噺", resultMap.get("鏍稿娴嬭瘯鏁伴噺") + 1);
+                    }
+                    else if(workStateSet.contains(DeviceConstant.DEV_PRE_CHARGE)) {
+                        resultMap.put("棰勫厖鐢垫暟閲�", resultMap.get("棰勫厖鐢垫暟閲�") + 1);
+                    }
+                    else if(workStateSet.contains(DeviceConstant.DEV_RES_TEST)) {
+                        resultMap.put("鍐呴樆娴嬭瘯鏁伴噺", resultMap.get("鍐呴樆娴嬭瘯鏁伴噺") + 1);
+                    }
+                    else if(workStateSet.contains(DeviceConstant.DEV_ONLINE_CHARGE)) {
+                        resultMap.put("鐩磋繛鍏呯數鏁伴噺", resultMap.get("鐩磋繛鍏呯數鏁伴噺") + 1);
+                    }
+
+                }
+
+            }
+            /*//棣栧厛鏌ョ湅鏄惁閫氳鏁呴殰,鏃堕棿澶т簬1鍒嗛挓涓洪�氳鏁呴殰
+            for (int i = 0; i < fbs9100StateList.size(); i++) {
+                Calendar instance = Calendar.getInstance();
+                instance.add(Calendar.MINUTE, -1);
+                Date time = instance.getTime();
+                if (time.compareTo(DateUtil.YYYY_MM_DD_HH_MM_SS.parse(fbs9100StateList.get(i).getRecordDatetime())) > 0) {
+                    resultMap.put("閫氳鏁呴殰鏁伴噺", resultMap.get("閫氳鏁呴殰鏁伴噺") + 1);
+                } else {
+                    switch (fbs9100StateList.get(i).getDevWorkstate()) {
+                        case DeviceConstant.DEV_ONLINE_CHARGE:
+                            resultMap.put("鍦ㄧ嚎娴厖鏁伴噺", resultMap.get("鍦ㄧ嚎娴厖鏁伴噺") + 1);
+                            break;
+                        case DeviceConstant.DEV_PRE_CHARGE:
+                            resultMap.put("棰勫厖鐢垫暟閲�", resultMap.get("棰勫厖鐢垫暟閲�") + 1);
+                            break;
+                        case DeviceConstant.DEV_NUCLEAR_CAP:
+                            resultMap.put("鏍稿娴嬭瘯鏁伴噺", resultMap.get("鏍稿娴嬭瘯鏁伴噺") + 1);
+                            break;
+                        case DeviceConstant.DEV_RES_TEST:
+                            resultMap.put("鍐呴樆娴嬭瘯鏁伴噺", resultMap.get("鍐呴樆娴嬭瘯鏁伴噺") + 1);
+                            break;
+                    }
+                }
+            }*/
+
+            return response.setII(1, true, resultMap, "");
+        } catch (Exception e) {
+            return response.set(1, false, "鍙戠敓寮傚父:" + e.getCause());
+        }
+    }
+
+
+    public List<Fbs9100State> getStateList(int userId) {
+        List<Fbs9100State> list = mapper.getStateList(userId);
+        return list;
+    }
+
+    //棣栭〉涓婄偣鍑诲仠鐢电珯
+    public List<Battinf> searchPowerOff(String uId) {
+        List<Battinf> list = mapper.searchPowerOff(uId);
+        return list;
+    }
+
+    //棣栭〉涓婄偣鍑绘牳瀹规斁鐢电珯
+    public List<Battinf> searchCheckCapDischarge(String uId) {
+        List<Battinf> list = mapper.searchCheckCapDischarge(uId);
+        return list;
+    }
+
+    //浠婃棩鏀剧數绔欑偣缁熻
+    public Response getChargeStaticToday(int userId) {
+        try {
+            Map<String, Object> map = new HashMap<>();
+            List<DischargeState> list = mapper.getChargeStaticToday(userId);
+            Map<String, Object> stateMap = new HashMap<>();
+            Map<String, Object> stateNumMap = new HashMap<>();
+            stateNumMap.put("state2", 0);
+            stateNumMap.put("state3", 0);
+            stateMap.put("state2", new ArrayList<>());
+            stateMap.put("state3", new ArrayList<>());
+            Map<Integer, List<DischargeState>> stateDisMap = list.stream().collect(Collectors.groupingBy(DischargeState::getDevWorkstate));
+            for (Integer workState : stateDisMap.keySet()) {
+                if (workState == 2 || workState == 3) {
+                    stateNumMap.put("state" + workState, stateDisMap.get(workState).size());
+                    List<DischargeState> worklist = stateDisMap.get(workState);
+                    stateMap.put("state" + workState, worklist);
+                }
+            }
+            map.put("stateNumMap", stateNumMap);
+            map.put("stateMap", stateMap);
+            //map.put("nowTime", ActionUtil.sdf.format(new Date()));
+            map.put("nowTime", ThreadLocalUtil.format(new Date(),1));
+            return new Response().setII(1, true, map, "浠婃棩鏀剧數绔欑偣缁熻");
+        } catch (Exception e) {
+            return new Response().set(1, false, "鍑虹幇寮傚父" + e.getMessage());
+        }
+    }
+
+    //瀹炴椂鍋滅數鏀剧數
+    public int getJcAnalysis(int userId) {
+        int jcdisNum = mapper.getJcAnalysis(userId);
+        return jcdisNum;
+    }
+
+    public Response getFbsState(FbsStatePar fbsStatePar) {
+        Map<String, Response> res=new HashMap<>();
+        //鏌ヨfbs9100淇℃伅
+        Response f9100stateRes = searchByCondition(fbsStatePar.getPageNum(),fbsStatePar.getPageSize(),fbsStatePar.getDevErrcommcount(),fbsStatePar.getUserId());
+        res.put("f9100state",f9100stateRes);
+
+        Response f9600StateRes = fbs9600StateService.searchByCondition(fbsStatePar.getPageNum(),fbsStatePar.getPageSize(),fbsStatePar.getDevErrcommcount(),fbsStatePar.getUserId());
+        res.put("f9600state",f9600StateRes);
+
+        Response ld9stateRes = ld9StateService.searchByCondition(fbsStatePar.getPageNum(),fbsStatePar.getPageSize(),fbsStatePar.getDevErrcommcount(),fbsStatePar.getUserId());
+        res.put("ld9state",ld9stateRes);
+        return new Response().set(1, res);
+    }
+
+    public void addOrUpdate(List<Fbs9100State> deviceStateList) {
+        List<Long> devIdList = deviceStateList.stream().map(Fbs9100State::getDevId).collect(Collectors.toList());
+        QueryWrapper<Fbs9100State> query = Wrappers.query();
+        query.in("dev_id",devIdList);
+        List<Fbs9100State> fbs9100StateListInDB = mapper.selectList(query);
+        List<Long> devIdListInDB = fbs9100StateListInDB.stream().map(Fbs9100State::getDevId).collect(Collectors.toList());
+
+        for (Fbs9100State fbs9100State : deviceStateList) {
+            if(devIdListInDB.contains(fbs9100State.getDevId())){ //鏇存柊
+                UpdateWrapper<Fbs9100State> update = Wrappers.update();
+                update.set("dev_workstate",fbs9100State.getDevWorkstate())
+                        .set("dev_last_captest_stop_type",fbs9100State.getDevLastCaptestStopType())
+                        .set("record_datetime",fbs9100State.getRecordDatetime())
+                        .eq("dev_id",fbs9100State.getDevId());
+                mapper.update(null,update);
+            }else{ //鏂板
+                mapper.insert(fbs9100State);
+            }
+        }
+
     }
 }

--
Gitblit v1.9.1