| | |
| | | package com.ruoyi.app.patrolplan.service.impl; |
| | | |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import com.alibaba.fastjson2.JSONArray; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | 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.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | |
| | | import com.ruoyi.app.patrolplan.service.IArdAppPatrolpointRecordService; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.xml.crypto.Data; |
| | | |
| | | /** |
| | | * app巡检计划记录Service业务层处理 |
| | |
| | | |
| | | @Resource |
| | | private ArdAppPatrolpointRecordImgMapper recordImgMapper; |
| | | |
| | | @Resource |
| | | private ArdAppPatrolplanMapper patrolplanMapper; |
| | | |
| | | /** |
| | | * 查询app巡检计划记录 |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Results recordMonth(Map<String, Object> map) { |
| | | String begin = (String) map.get("begin"); |
| | | String end = (String) map.get("end"); |
| | | |
| | | return null; |
| | | public Results recordMonth(ArdAppPatrolpointRecordParam ardAppPatrolpointRecordParam) throws ParseException { |
| | | //获取前端参数 |
| | | String begin = ardAppPatrolpointRecordParam.getBegin(); |
| | | String end = ardAppPatrolpointRecordParam.getEnd(); |
| | | String planId = ardAppPatrolpointRecordParam.getPlanId(); |
| | | //查询计划表 |
| | | ArdAppPatrolplan ardAppPatrolplan = patrolplanMapper.selectById(planId); |
| | | //查询出有效打卡数据 |
| | | QueryWrapper<ArdAppPatrolpointRecord> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.between("record_time",begin,end).eq("plan_id",planId); |
| | | 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; |
| | | // Date ymdDate = dateFormat.parse(ymd); |
| | | //匹配计划时间 |
| | | String cycle = ardAppPatrolplan.getCycle(); |
| | | if(cycle.equals("day")){ |
| | | String createTime = ardAppPatrolplan.getCreateTime(); |
| | | // Date beginCreateDate = dateFormat.parse(createTime); |
| | | int d = ymd.compareTo(createTime); |
| | | if(d>=0){ |
| | | planBoolean = true; |
| | | } |
| | | }else if(cycle.equals("once")){ |
| | | String onceBegin = ardAppPatrolplan.getPatroBeginTime(); |
| | | // Date onceBeginDate = dateFormat.parse(onceBegin); |
| | | String onceEnd = ardAppPatrolplan.getPatroEndTime(); |
| | | // Date onceEndDate = dateFormat.parse(onceEnd); |
| | | 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 recordDetails(ArdAppPatrolpointRecordParam ardAppPatrolpointRecordParam) throws ParseException { |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
| | | //获取参数 |
| | | 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); |
| | | if(cycle.equals("day")){ |
| | | |
| | | }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"); |
| | | |
| | | } |
| | | }else { |
| | | return Results.succeed("[]"); |
| | | } |
| | | } |
| | | return Results.succeed(); |
| | | } |
| | | |
| | | } |