Administrator
2023-08-10 b8275ff6375a174258ecf96eb38c819813e3fd84
ard-work/src/main/java/com/ruoyi/app/patrolplan/service/impl/ArdAppPatrolpointRecordServiceImpl.java
@@ -1,8 +1,18 @@
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.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;
@@ -14,6 +24,7 @@
import com.ruoyi.app.patrolplan.service.IArdAppPatrolpointRecordService;
import javax.annotation.Resource;
import javax.xml.crypto.Data;
/**
 * app巡检计划记录Service业务层处理
@@ -28,6 +39,9 @@
    @Resource
    private ArdAppPatrolpointRecordImgMapper recordImgMapper;
    @Resource
    private ArdAppPatrolplanMapper patrolplanMapper;
    /**
     * 查询app巡检计划记录
@@ -116,4 +130,75 @@
            return Results.error("打开失败!");
        }
    }
    @Override
    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]);
        JSONArray jsonArray = new JSONArray();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        for (int i = 1; i <= day; i++) {
            JSONObject jsonObject = new JSONObject();
            Boolean planBoolean = false;
            //循环每一天
            String ymd = year+"-"+month+"-"+i;
            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);
                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 = ymdDate.compareTo(onceBeginDate);
                int ed = ymdDate.compareTo(onceEndDate);
                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]);
                    int recordDay = Integer.parseInt(part[2]);
                    String recordDate = recordYear+"-"+recordMonth+"-"+recordDay;
                    //如果相等说明这天有打卡记录记录
                    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);
    }
}