Administrator
2023-08-11 3975da343b27ac03df285ecbb1093579d929e4b9
ard-work/src/main/java/com/ruoyi/app/patrolplan/service/impl/ArdAppPatrolpointRecordServiceImpl.java
@@ -11,6 +11,7 @@
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;
@@ -148,30 +149,42 @@
        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+"-"+month+"-"+i;
            Date ymdDate = dateFormat.parse(ymd);
            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 = ymdDate.compareTo(beginCreateDate);
//                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);
//                Date onceBeginDate = dateFormat.parse(onceBegin);
                String onceEnd = ardAppPatrolplan.getPatroEndTime();
                Date onceEndDate = dateFormat.parse(onceEnd);
                int bd = ymdDate.compareTo(onceBeginDate);
                int ed = ymdDate.compareTo(onceEndDate);
//                Date onceEndDate = dateFormat.parse(onceEnd);
                int bd = ymd.compareTo(onceBegin);
                int ed = ymd.compareTo(onceEnd);
                if(bd>=0 && ed<=0){
                    planBoolean = true;
                }
@@ -185,8 +198,20 @@
                    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 recordDate = recordYear+"-"+recordMonth+"-"+recordDay;
                    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;
@@ -194,11 +219,57 @@
                    }
                }
            }
            jsonObject.put("toDay",ymdDate);
            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();
    }
}