From d7462c0c0615cee1acfbc14a52aa12d72940e49d Mon Sep 17 00:00:00 2001
From: Administrator <1144154118@qq.com>
Date: 星期三, 16 八月 2023 14:25:41 +0800
Subject: [PATCH] 单兵端

---
 ard-work/src/main/java/com/ruoyi/app/patrolplan/service/impl/ArdAppPatrolpointRecordServiceImpl.java |  279 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 271 insertions(+), 8 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/patrolplan/service/impl/ArdAppPatrolpointRecordServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/patrolplan/service/impl/ArdAppPatrolpointRecordServiceImpl.java
index bb94225..d4c769c 100644
--- a/ard-work/src/main/java/com/ruoyi/app/patrolplan/service/impl/ArdAppPatrolpointRecordServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/app/patrolplan/service/impl/ArdAppPatrolpointRecordServiceImpl.java
@@ -15,7 +15,7 @@
 import com.ruoyi.app.patrolplan.domain.ArdAppPatrolplan;
 import com.ruoyi.app.patrolplan.domain.ArdAppPatrolpointRecordImg;
 import com.ruoyi.app.patrolplan.domain.ArdAppPatroluser;
-import com.ruoyi.app.patrolplan.domain.param.ArdAppPatrolpointRecordParam;
+import com.ruoyi.app.patrolplan.domain.param.*;
 import com.ruoyi.app.patrolplan.mapper.ArdAppPatrolplanMapper;
 import com.ruoyi.app.patrolplan.mapper.ArdAppPatrolpointRecordImgMapper;
 import com.ruoyi.app.patrolplan.mapper.ArdAppPatroluserMapper;
@@ -156,11 +156,11 @@
     }
 
     @Override
-    public Results recordMonth(ArdAppPatrolpointRecordParam ardAppPatrolpointRecordParam) throws ParseException {
+    public Results recordMonth(RecordMonthParam recordMonthParam) throws ParseException {
         //鑾峰彇鍓嶇鍙傛暟
-        String begin = ardAppPatrolpointRecordParam.getBegin();
-        String end = ardAppPatrolpointRecordParam.getEnd();
-        String planId = ardAppPatrolpointRecordParam.getPlanId();
+        String begin = recordMonthParam.getBegin();
+        String end = recordMonthParam.getEnd();
+        String planId = recordMonthParam.getPlanId();
         //鏌ヨ璁″垝琛�
         ArdAppPatrolplan ardAppPatrolplan = patrolplanMapper.selectById(planId);
         //鏌ヨ鍑烘湁鏁堟墦鍗℃暟鎹�
@@ -251,12 +251,12 @@
     }
 
     @Override
-    public Results recordDetails(ArdAppPatrolpointRecordParam ardAppPatrolpointRecordParam) throws ParseException {
+    public Results recordDetails(RecordDetailsParam recordDetailsParam) throws ParseException {
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat dateFormatTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
         //鑾峰彇鍙傛暟
-        String planId = ardAppPatrolpointRecordParam.getPlanId();
-        String toDay = ardAppPatrolpointRecordParam.getToDay();
+        String planId = recordDetailsParam.getPlanId();
+        String toDay = recordDetailsParam.getToDay();
         //鏌ヨ璁″垝琛�
         ArdAppPatrolplan ardAppPatrolplan = patrolplanMapper.selectById(planId);
         String cycle = ardAppPatrolplan.getCycle();
@@ -359,4 +359,267 @@
         }
     }
 
+    @Override
+    public Results recordSolo(RecordSoloParam recordSoloParam) {
+        String toDay = recordSoloParam.getToDay();
+        String planId = recordSoloParam.getPlanId();
+        String userId = recordSoloParam.getUserId();
+        String planName = recordSoloParam.getPlanName();
+        String userName = recordSoloParam.getUserName();
+        QueryWrapper<ArdAppPatrolpointRecord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("plan_id", planId).eq("user_id",userId).like("record_time", toDay);
+        //褰撳墠璁″垝閫変腑鏃堕棿閲屾鐢ㄦ埛鐨勬墦鍗¤褰�
+        List<ArdAppPatrolpointRecord> list = ardAppPatrolpointRecordMapper.selectList(queryWrapper);
+        //鏌ヨ璇ヨ鍒掔殑鎵�鏈夊叴瓒g偣
+        List<ArdAlarmpointsWell> wellList = wellMapper.wellByPlanId(planId);
+        if(list.size()==0){
+            for (ArdAlarmpointsWell ardAlarmpointsWell : wellList) {
+                ArdAppPatrolpointRecord ardAppPatrolpointRecord = new ArdAppPatrolpointRecord();
+                ardAppPatrolpointRecord.setAppPatrolpointsId(ardAlarmpointsWell.getId());
+                ardAppPatrolpointRecord.setAppPatrolpointsName(ardAlarmpointsWell.getWellId());
+                ardAppPatrolpointRecord.setPlanId(planId);
+                ardAppPatrolpointRecord.setPlanName(planName);
+                ardAppPatrolpointRecord.setUserId(userId);
+                ardAppPatrolpointRecord.setUserName(userName);
+                ardAppPatrolpointRecord.setLatitude(String.valueOf(ardAlarmpointsWell.getLatitude()));
+                ardAppPatrolpointRecord.setLongitude(String.valueOf(ardAlarmpointsWell.getLongitude().toString()));
+                list.add(ardAppPatrolpointRecord);
+            }
+            return Results.succeed(list);
+        }
+        for (ArdAppPatrolpointRecord appPatrolpointRecord : list) {
+            QueryWrapper<ArdAppPatrolpointRecordImg> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("app_patrolponit_record_id", appPatrolpointRecord.getId());
+            List<ArdAppPatrolpointRecordImg> list1 = recordImgMapper.selectList(queryWrapper1);
+            List<String> strings = new ArrayList<>();
+            for (ArdAppPatrolpointRecordImg ardAppPatrolpointRecordImg : list1) {
+                strings.add(ardAppPatrolpointRecordImg.getImg());
+            }
+            appPatrolpointRecord.setImg(strings);
+        }
+        //鎵撹繃鍗$殑鍦扮偣
+        List<String> pointList = new ArrayList<>();
+        for (ArdAppPatrolpointRecord appPatrolpointRecord : list) {
+            pointList.add(appPatrolpointRecord.getAppPatrolpointsId());
+        }
+        for (ArdAlarmpointsWell ardAlarmpointsWell : wellList) {
+            //鎵�鏈夊簲璇ユ墦鍗$殑鍦扮偣ID
+            String well = ardAlarmpointsWell.getId();
+            //濡傛灉鎵撳崱鍦扮偣涓嶅寘鍚簲鎵撳崱鍦扮偣锛岄偅璇村悕杩欏潡鍎挎病鎵撳崱
+            if (!pointList.contains(well)) {
+                ArdAppPatrolpointRecord ardAppPatrolpointRecord = new ArdAppPatrolpointRecord();
+                ardAppPatrolpointRecord.setAppPatrolpointsId(well);
+                ardAppPatrolpointRecord.setAppPatrolpointsName(ardAlarmpointsWell.getWellId());
+                ardAppPatrolpointRecord.setPlanId(planId);
+                ardAppPatrolpointRecord.setPlanName(planName);
+                ardAppPatrolpointRecord.setUserId(userId);
+                ardAppPatrolpointRecord.setUserName(userName);
+                ardAppPatrolpointRecord.setLatitude(String.valueOf(ardAlarmpointsWell.getLatitude()));
+                ardAppPatrolpointRecord.setLongitude(String.valueOf(ardAlarmpointsWell.getLongitude().toString()));
+                list.add(ardAppPatrolpointRecord);
+            }
+        }
+        return Results.succeed(list);
+    }
+
+    @Override
+    public Results executeMonth(RecordMonthParam RecordMonthParam) throws ParseException {
+        //鑾峰彇鍓嶇鍙傛暟
+        String begin = RecordMonthParam.getBegin();
+        String end = RecordMonthParam.getEnd();
+        String planId = RecordMonthParam.getPlanId();
+        //鏌ヨ璁″垝琛�
+        ArdAppPatrolplan ardAppPatrolplan = patrolplanMapper.selectById(planId);
+        //鏌ヨ鍑烘湁鏁堟墦鍗℃暟鎹�
+        String userId = SecurityUtils.getUserId();
+        QueryWrapper<ArdAppPatrolpointRecord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.between("record_time",begin,end).eq("plan_id",planId).eq("user_id",userId);
+        List<ArdAppPatrolpointRecord> list = ardAppPatrolpointRecordMapper.selectList(queryWrapper);
+        //鏃堕棿鎷嗗垎
+        String[] parts = end.split("[-\\s:]");
+        int year = Integer.parseInt(parts[0]);
+        int month = Integer.parseInt(parts[1]);
+        int day = Integer.parseInt(parts[2]);
+        String monthZero;
+        if(month<10){
+            monthZero = String.format("%02d", month);
+        }else {
+            monthZero = String.valueOf(month);
+        }
+        JSONArray jsonArray = new JSONArray();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        for (int i = 1; i <= day; i++) {
+            String di;
+            if(i<10){
+                di = String.format("%02d", i);
+            }else {
+                di = String.valueOf(i);
+            }
+            JSONObject jsonObject = new JSONObject();
+            Boolean planBoolean = false;
+            //寰幆姣忎竴澶�
+            String ymd = year+"-"+monthZero+"-"+di;
+            //鍖归厤璁″垝鏃堕棿
+            String cycle = ardAppPatrolplan.getCycle();
+            if(cycle.equals("day")){
+                String createTime = ardAppPatrolplan.getCreateTime();
+                int d = ymd.compareTo(createTime);
+                if(d>=0){
+                    planBoolean = true;
+                }
+            }else if(cycle.equals("once")){
+                String onceBegin = ardAppPatrolplan.getPatroBeginTime();
+                String onceEnd = ardAppPatrolplan.getPatroEndTime();
+                int bd = ymd.compareTo(onceBegin);
+                int ed = ymd.compareTo(onceEnd);
+                if(bd>=0 && ed<=0){
+                    planBoolean = true;
+                }
+            }
+            //鍖归厤鎵撳崱鏃堕棿
+            Boolean or = false;
+            if(planBoolean){
+                for (int j = 0; j < list.size(); j++) {
+                    //鎵撳崱鏃堕棿鎷嗗垎
+                    String recordTime = list.get(j).getRecordTime();
+                    String[] part = recordTime.split("[-\\s:]");
+                    int recordYear = Integer.parseInt(part[0]);
+                    int recordMonth = Integer.parseInt(part[1]);
+                    String recordMonthZero;
+                    if(recordMonth<10){
+                        recordMonthZero = String.format("%02d", recordMonth);
+                    }else {
+                        recordMonthZero = String.valueOf(recordMonth);
+                    }
+                    int recordDay = Integer.parseInt(part[2]);
+                    String recordDayZero;
+                    if(recordDay<10){
+                        recordDayZero = String.format("%02d", recordDay);
+                    }else {
+                        recordDayZero = String.valueOf(recordDay);
+                    }
+                    String recordDate = recordYear+"-"+recordMonthZero+"-"+recordDayZero;
+                    //濡傛灉鐩哥瓑璇存槑杩欏ぉ鏈夋墦鍗¤褰曡褰�
+                    if(ymd.equals(recordDate)){
+                        or = true;
+                        break;
+                    }
+                }
+            }
+            jsonObject.put("toDay",ymd );
+            jsonObject.put("plan",planBoolean);
+            jsonObject.put("record",or);
+            jsonArray.add(jsonObject);
+        }
+        return Results.succeed(jsonArray);
+    }
+
+    @Override
+    public Results executeDetails(RecordDetailsParam recordDetailsParam) throws ParseException {
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        SimpleDateFormat dateFormatTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+        String userId = SecurityUtils.getUserId();
+        //鑾峰彇鍙傛暟
+        String planId = recordDetailsParam.getPlanId();
+        String toDay = recordDetailsParam.getToDay();
+        //鏌ヨ璁″垝琛�
+        ArdAppPatrolplan ardAppPatrolplan = patrolplanMapper.selectById(planId);
+        String cycle = ardAppPatrolplan.getCycle();
+        String begin = ardAppPatrolplan.getPatroBeginTime();
+        String end = ardAppPatrolplan.getPatroEndTime();
+        String create = ardAppPatrolplan.getCreateTime();
+        JSONArray jsonArray = new JSONArray();
+        int c = 0;
+        if(cycle.equals("day")){
+            //姣忓ぉ璁″垝鍙栧垱寤烘椂闂�
+            c = toDay.compareTo(create.substring(0,10));
+        }else if(cycle.equals("once")){
+            //鍗曟璁″垝鍙栧紑濮嬫椂闂�
+            c = toDay.compareTo(begin.substring(0,10));
+        }
+        if(cycle.equals("once") && c>0){
+            //鍗曟璁″垝澶т簬寮�濮嬫椂闂�==璺ㄥぉ锛屽湪璁″垝鏃堕棿澶�
+            return Results.succeed("[]");
+        }
+        if(c<0){
+            //姣忔棩璁″垝灏忎簬鍒涘缓鏃堕棿鎴栧崟娆¤鍒掑皬浜庡紑濮嬫椂闂达紝鍦ㄨ鍒掓椂闂村
+            return Results.succeed("[]");
+        }else{
+            //鍦ㄦ瘡鏃ヨ鍒掔殑鏃堕棿鑼冨洿鍐�
+            String date = dateFormat.format(new Date());
+            //姣旇緝閫変腑鐨勬棩鏈熷拰浠婂ぉ鏃ユ湡
+            int d = toDay.compareTo(date);
+            //鏌ヨ璇ヨ鍒掔殑鎵�鏈変汉鍛�
+            List<SysUser> users = sysUserMapper.userByPlanId(planId);
+            //鏌ヨ璇ヨ鍒掔殑鎵�鏈夊叴瓒g偣
+            List<ArdAlarmpointsWell> wellList = wellMapper.wellByPlanId(planId);
+            //澶т簬0浠h〃鏌ヨ浠ュ悗鐨勮褰�
+            if(d>0){
+                //鏌ヨ璁″垝鍐呯殑姣忔棩鏈潵鏁版嵁
+                for (int i = 0; i < users.size(); i++) {
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("wellId",wellList.get(i).getId());
+                    jsonObject.put("wellName",wellList.get(i).getWellId());
+                    jsonObject.put("type",false);
+                    jsonArray.add(jsonObject);
+                }
+                return Results.succeed(jsonArray);
+            }else{
+                //鏌ヨ璁″垝鍐呯殑瀹為檯鍘嗗彶鎵撳崱鏁版嵁
+                QueryWrapper<ArdAppPatrolpointRecord> recordQueryWrapper = new QueryWrapper<>();
+                if(d<0){
+                    //灏忎簬0鏄巻鍙�
+                    recordQueryWrapper.select("app_patrolpoints_id","app_patrolpoints_name").eq("plan_id", planId).eq("user_id",userId).like("record_time", toDay);
+                }else{
+                    //绛変簬0閫変腑鐨勬棩鏈熷氨鏄粖澶╋紝闇�瑕佽繘涓�姝ュ垽鏂皬浜庡綋鍓嶆椂鍒嗙鐨勮褰�
+                    recordQueryWrapper.select("app_patrolpoints_id","app_patrolpoints_name").eq("plan_id", planId).eq("user_id",userId).le("record_time", dateFormatTime.format(new Date()));
+                }
+                List<ArdAppPatrolpointRecord> list = ardAppPatrolpointRecordMapper.selectList(recordQueryWrapper);
+                //寰幆鎵撳崱鍦扮偣
+                for (int i = 0; i < wellList.size(); i++) {
+                    String id = wellList.get(i).getId();
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("wellId",wellList.get(i).getId());
+                    jsonObject.put("wellName",wellList.get(i).getWellId());
+                    if(list.size()>0){
+                        for (int j = 0; j < list.size(); j++) {
+                            if(id.equals(list.get(j).getAppPatrolpointsId())){
+                                jsonObject.put("type",true);
+                                break;
+                            }
+                            if(j==list.size()-1){
+                                jsonObject.put("type",false);
+                            }
+                        }
+                    }else {
+                        jsonObject.put("type",false);
+                    }
+                    jsonArray.add(jsonObject);
+                }
+                return Results.succeed(jsonArray);
+            }
+        }
+    }
+
+    @Override
+    public Results executeSolo(RecordSoloExParam recordSoloExParam) {
+        QueryWrapper<ArdAppPatrolpointRecord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("plan_id",recordSoloExParam.getPlanId())
+                .eq("app_patrolpoints_id",recordSoloExParam.getWellId())
+                .eq("user_id",recordSoloExParam.getUserId())
+                .like("record_time",recordSoloExParam.getToDay());
+        List<ArdAppPatrolpointRecord> list = ardAppPatrolpointRecordMapper.selectList(queryWrapper);
+        for (ArdAppPatrolpointRecord appPatrolpointRecord : list) {
+            QueryWrapper<ArdAppPatrolpointRecordImg> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("app_patrolponit_record_id", appPatrolpointRecord.getId());
+            List<ArdAppPatrolpointRecordImg> list1 = recordImgMapper.selectList(queryWrapper1);
+            List<String> strings = new ArrayList<>();
+            for (ArdAppPatrolpointRecordImg ardAppPatrolpointRecordImg : list1) {
+                strings.add(ardAppPatrolpointRecordImg.getImg());
+            }
+            appPatrolpointRecord.setImg(strings);
+        }
+        return Results.succeed(list);
+    }
+
 }

--
Gitblit v1.9.3