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