From 63edade94bb54e20e622098ce096a66e7cb641cf Mon Sep 17 00:00:00 2001 From: Administrator <1144154118@qq.com> Date: 星期五, 11 八月 2023 17:29:33 +0800 Subject: [PATCH] 巡检计划日历下指定天数打卡记录 --- ard-work/src/main/java/com/ruoyi/app/patrolplan/service/impl/ArdAppPatrolpointRecordServiceImpl.java | 139 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 113 insertions(+), 26 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 f518db1..bb94225 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 @@ -2,6 +2,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -9,14 +10,19 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; +import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; 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.mapper.ArdAppPatrolplanMapper; import com.ruoyi.app.patrolplan.mapper.ArdAppPatrolpointRecordImgMapper; +import com.ruoyi.app.patrolplan.mapper.ArdAppPatroluserMapper; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.uuid.IdUtils; +import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.utils.result.Results; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -43,6 +49,15 @@ @Resource private ArdAppPatrolplanMapper patrolplanMapper; + + @Resource + private ArdAppPatroluserMapper userMapper; + + @Resource + private SysUserMapper sysUserMapper; + + @Resource + private ArdAlarmpointsWellMapper wellMapper; /** * 鏌ヨapp宸℃璁″垝璁板綍 @@ -115,6 +130,14 @@ public Results record(ArdAppPatrolpointRecord ardAppPatrolpointRecord) { String id = IdUtils.simpleUUID(); ardAppPatrolpointRecord.setId(id); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + //鏌ヨ璇ョ敤鎴蜂粖澶╃殑鎵撳崱鏁版嵁 + QueryWrapper<ArdAppPatrolpointRecord> recordQueryWrapper = new QueryWrapper<>(); + recordQueryWrapper.eq("plan_id", ardAppPatrolpointRecord.getPlanId()) + .like("record_time", dateFormat.format(new Date())) + .eq("user_id",ardAppPatrolpointRecord.getUserId()); + List<ArdAppPatrolpointRecord> recordList = ardAppPatrolpointRecordMapper.selectList(recordQueryWrapper); + ardAppPatrolpointRecord.setPointsNum(recordList.size()+1); int num = ardAppPatrolpointRecordMapper.insert(ardAppPatrolpointRecord); List<String> list = ardAppPatrolpointRecord.getImg(); for (int i = 0; i < list.size(); i++) { @@ -230,46 +253,110 @@ @Override public Results recordDetails(ArdAppPatrolpointRecordParam ardAppPatrolpointRecordParam) 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(); - Date toDayDate = dateFormat.parse(toDay); //鏌ヨ璁″垝琛� ArdAppPatrolplan ardAppPatrolplan = patrolplanMapper.selectById(planId); String cycle = ardAppPatrolplan.getCycle(); String begin = ardAppPatrolplan.getPatroBeginTime(); - Date beginDate = dateFormat.parse(begin); String end = ardAppPatrolplan.getPatroEndTime(); - Date endDate = dateFormat.parse(end); String create = ardAppPatrolplan.getCreateTime(); - Date createDate = dateFormat.parse(create); + JSONArray jsonArray = new JSONArray(); + int c = 0; if(cycle.equals("day")){ - + //姣忓ぉ璁″垝鍙栧垱寤烘椂闂� + c = toDay.compareTo(create.substring(0,10)); }else if(cycle.equals("once")){ - int bd = toDayDate.compareTo(beginDate); - int en = toDayDate.compareTo(endDate); - if(bd>=0 && en<=0){ - //浼犲叆鏃堕棿涓鸿璁″垝鍐呮椂闂� - String date = dateFormat.format(new Date()); - Date dateDate = dateFormat.parse(date); - int d = toDayDate.compareTo(dateDate); - if(d < 0) { - //鏌ヨ璁″垝鍐呯殑鍘嗗彶鏁版嵁 - QueryWrapper<ArdAppPatrolpointRecord> recordQueryWrapper = new QueryWrapper<>(); - recordQueryWrapper.eq("plan_id", planId).like("record_time", toDay).groupBy("user_id"); - List<ArdAppPatrolpointRecord> list = ardAppPatrolpointRecordMapper.selectList(recordQueryWrapper); - return Results.succeed(list); - }else if(d > 0){ - //鏌ヨ璁″垝鍐呯殑鏈潵鏁版嵁 - QueryWrapper<ArdAppPatroluser> appPatroluserQueryWrapper = new QueryWrapper<>(); - appPatroluserQueryWrapper.eq("patrolplan_id",planId).groupBy("app_user_id"); - + //鍗曟璁″垝鍙栧紑濮嬫椂闂� + 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); + //澶т簬0浠h〃鏌ヨ浠ュ悗鐨勮褰� + if(d>0){ + //鏌ヨ璁″垝鍐呯殑姣忔棩鏈潵鏁版嵁 + for (int i = 0; i < users.size(); i++) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("userId",users.get(i).getUserId()); + jsonObject.put("userName",users.get(i).getNickName()); + jsonObject.put("type",false); + jsonArray.add(jsonObject); } - }else { - return Results.succeed("[]"); + return Results.succeed(jsonArray); + }else{ + //鏌ヨ璁″垝鍐呯殑瀹為檯鍘嗗彶鎵撳崱鏁版嵁 + QueryWrapper<ArdAppPatrolpointRecord> recordQueryWrapper = new QueryWrapper<>(); + if(d<0){ + //灏忎簬0鏄巻鍙� + recordQueryWrapper.select("max(points_num) pointsNum","user_id","user_name").eq("plan_id", planId).like("record_time", toDay).groupBy("user_id","user_name"); + }else{ + //绛変簬0閫変腑鐨勬棩鏈熷氨鏄粖澶╋紝闇�瑕佽繘涓�姝ュ垽鏂皬浜庡綋鍓嶆椂鍒嗙鐨勮褰� + recordQueryWrapper.select("max(points_num) pointsNum","user_id","user_name").eq("plan_id", planId).le("record_time", dateFormatTime.format(new Date())).groupBy("user_id","user_name");; + } + List<ArdAppPatrolpointRecord> list = ardAppPatrolpointRecordMapper.selectList(recordQueryWrapper); + //閫変腑杩欏ぉ璇ヨ鍒掍笅娌℃湁浠讳綍鎵撳崱璁板綍 + if(list.size()==0){ + for (int i = 0; i < users.size(); i++) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("userId",users.get(i).getUserId()); + jsonObject.put("userName",users.get(i).getNickName()); + jsonObject.put("type",false); + jsonArray.add(jsonObject); + } + return Results.succeed(jsonArray); + } + //鏌ヨ璇ヨ鍒掔殑鎵�鏈夊叴瓒g偣 + List<ArdAlarmpointsWell> wellList = wellMapper.wellByPlanId(planId); + Integer wellNum = wellList.size(); + //鍙栧嚭鎵�鏈夋墦浜嗗崱鐨剈serId + List<String> userIdList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + userIdList.add(list.get(i).getUserId()); + } + //鏈夋墦鍗¤褰曟椂鐨勬墦鍗℃儏鍐垫煡鍑轰竴娆¢兘娌℃墦鍗$殑浜哄憳 + for (int i = 0; i < users.size(); i++) { + String userId = users.get(i).getUserId(); + String userName = users.get(i).getNickName(); + //濡傛灉璇ヨ鍒掔殑鎵�鏈変汉鍛榰serId涓嶅湪鎵�鏈夋墦浜嗗崱鐨剈serId涓� + if (!userIdList.contains(userId)) { + //璁板綍璇ヤ汉鍛樻湭瀹屾垚鎵撳崱 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("userId", userId); + jsonObject.put("userName", userName); + jsonObject.put("type", false); + jsonArray.add(jsonObject); + continue; + } + } + //鍏ㄩ儴鎵撳畬鍗℃垨鎵撲簡閮ㄥ垎鍗$殑浜哄憳 + for (ArdAppPatrolpointRecord ardAppPatrolpointRecord : list) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("userId", ardAppPatrolpointRecord.getUserId()); + jsonObject.put("userName", ardAppPatrolpointRecord.getUserName()); + if (ardAppPatrolpointRecord.getPointsNum().equals(wellNum)) { + jsonObject.put("type", true); + } else { + jsonObject.put("type", false); + } + jsonArray.add(jsonObject); + } + return Results.succeed(jsonArray); } } - return Results.succeed(); } } -- Gitblit v1.9.3