lxw
2023-08-15 160e150009b51a39fa95d9462c3798ba28d51a09
src/main/java/com/whyc/service/FaultUploadService.java
@@ -1,13 +1,12 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.mapper.FaultUploadMapper;
import com.whyc.pojo.BaoJiGroup;
import com.whyc.pojo.FaultUpload;
import com.whyc.pojo.UserInf;
import com.whyc.util.ActionUtil;
import com.whyc.util.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,11 +25,15 @@
    @Autowired
    private BaoJiGroupService baoJiGroupService;
    @Autowired
    private UserService userService;
    public Response add(FaultUpload fault) {
        int userId = ActionUtil.getUser().getUId().intValue();
        Date now = new Date();
        fault.setUploadUserId(userId);
        fault.setCreateTime(now);
        fault.setStatus(0);
        mapper.insert(fault);
        return new Response().setII(1,"上传完成");
    }
@@ -44,49 +47,54 @@
        return new Response().setII(1,"确认完成");
    }
    public Response listPage(int pageNum, int pageSize, FaultUpload upload) {
    public Response listPage(int pageNum, int pageSize, FaultUpload upload,int userId) {
        PageHelper.startPage(pageNum,pageSize);
        int userId = ActionUtil.getUser().getUId().intValue();
        List<FaultUpload> faultUploads = mapper.getList(userId,upload);
        PageInfo<FaultUpload> pageInfo = new PageInfo<>(faultUploads);
        return new Response().set(1,pageInfo);
    }
    public Response listPage2(int pageNum, int pageSize, FaultUpload upload) {
        PageHelper.startPage(pageNum,pageSize);
        int userId = ActionUtil.getUser().getUId().intValue();
        List<FaultUpload> faultUploads = mapper.getList2(userId,upload);
        PageInfo<FaultUpload> pageInfo = new PageInfo<>(faultUploads);
        return new Response().set(1,pageInfo);
    }
    public Response getTypeNum() {
        int userId = ActionUtil.getUser().getUId().intValue();
        FaultUpload upload = new FaultUpload();
        List<FaultUpload> faultUploads = mapper.getList(userId,upload);
        Map<Integer, List<FaultUpload>> typeListMap = faultUploads.stream().collect(Collectors.groupingBy(FaultUpload::getType));
        Map<Integer,Integer> typeMap = new HashMap<>();
        Set<Integer> typeSet = typeListMap.keySet();
        for (Integer type : typeSet) {
            typeMap.put(type,typeListMap.get(type).size());
        //联查拆分,组装 用户名
        List<UserInf> users = userService.getAll();
        Map<Long, List<UserInf>> userIdListMap = users.stream().collect(Collectors.groupingBy(UserInf::getUId));
        for (FaultUpload faultUpload : faultUploads) {
            faultUpload.setUploadUserName(userIdListMap.get(Long.valueOf(faultUpload.getUploadUserId() +"")).get(0).getUName());
            if(faultUpload.getConfirmUserId()!=null) {
                faultUpload.setConfirmUserName(userIdListMap.get(Long.valueOf(faultUpload.getConfirmUserId() + "")).get(0).getUName());
            }
        }
        return new Response().set(1,typeMap);
        PageInfo<FaultUpload> pageInfo = new PageInfo<>(faultUploads);
        return new Response().set(1,pageInfo);
    }
    public Response groupNameCount(int timeType) {
        int userId = ActionUtil.getUser().getUId().intValue();
    public Response listPage2(int pageNum, int pageSize, FaultUpload upload, int userId) {
        PageHelper.startPage(pageNum,pageSize);
        List<FaultUpload> faultUploads = mapper.getList2(userId,upload);
        //联查拆分,组装 用户名
        List<UserInf> users = userService.getAll();
        Map<Long, List<UserInf>> userIdListMap = users.stream().collect(Collectors.groupingBy(UserInf::getUId));
        for (FaultUpload faultUpload : faultUploads) {
            faultUpload.setUploadUserName(userIdListMap.get(Long.valueOf(faultUpload.getUploadUserId() +"")).get(0).getUName());
            if(faultUpload.getConfirmUserId() !=null) {
                faultUpload.setConfirmUserName(userIdListMap.get(Long.valueOf(faultUpload.getConfirmUserId() + "")).get(0).getUName());
            }
        }
        PageInfo<FaultUpload> pageInfo = new PageInfo<>(faultUploads);
        return new Response().set(1,pageInfo);
    }
    public Response getTypeCount(Integer timeType, int userId) {
        FaultUpload upload = new FaultUpload();
        Date now = new Date();
        String uploadStartTime = null;
        String uploadEndTime = null;
        if(timeType == 1){
        if(timeType == null) {
            //不操作
        }else if(timeType == 1){
            //本月
            Calendar monthStart = Calendar.getInstance();
            monthStart.setTime(now);
            //设置为1号,当前日期既为本月第一天
            monthStart.set(Calendar.DAY_OF_MONTH,1);
            monthStart.set(Calendar.HOUR, 0);
            monthStart.set(Calendar.HOUR_OF_DAY, 0);
            monthStart.set(Calendar.MINUTE, 0);
            monthStart.set(Calendar.SECOND, 0);
@@ -94,7 +102,7 @@
            monthEnd.setTime(now);
            //设置为1号,当前日期既为本月第一天
            monthEnd.set(Calendar.DAY_OF_MONTH,monthEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
            monthEnd.set(Calendar.HOUR, 23);
            monthEnd.set(Calendar.HOUR_OF_DAY, 23);
            monthEnd.set(Calendar.MINUTE, 59);
            monthEnd.set(Calendar.SECOND, 59);
@@ -105,7 +113,7 @@
            Calendar monthStart = Calendar.getInstance();
            monthStart.setTime(now);
            monthStart.set(Calendar.DAY_OF_MONTH,1);
            monthStart.set(Calendar.HOUR, 0);
            monthStart.set(Calendar.HOUR_OF_DAY, 0);
            monthStart.set(Calendar.MINUTE, 0);
            monthStart.set(Calendar.SECOND, 0);
@@ -113,7 +121,7 @@
            monthEnd.setTime(now);
            //设置为1号,当前日期既为本月第一天
            monthEnd.set(Calendar.DAY_OF_MONTH,monthEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
            monthEnd.set(Calendar.HOUR, 23);
            monthEnd.set(Calendar.HOUR_OF_DAY, 23);
            monthEnd.set(Calendar.MINUTE, 59);
            monthEnd.set(Calendar.SECOND, 59);
@@ -136,13 +144,13 @@
            }
            uploadStartTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthStart.getTime());
            uploadEndTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthEnd.getTime());
        }else{
        }else if(timeType ==3){
            //年度
            Calendar monthStart = Calendar.getInstance();
            monthStart.setTime(now);
            monthStart.set(Calendar.MONTH,0);
            monthStart.set(Calendar.DAY_OF_MONTH,1);
            monthStart.set(Calendar.HOUR, 0);
            monthStart.set(Calendar.HOUR_OF_DAY, 0);
            monthStart.set(Calendar.MINUTE, 0);
            monthStart.set(Calendar.SECOND, 0);
@@ -151,7 +159,102 @@
            //设置为1号,当前日期既为本月第一天
            monthEnd.set(Calendar.MONTH,11);
            monthEnd.set(Calendar.DAY_OF_MONTH,monthEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
            monthEnd.set(Calendar.HOUR, 23);
            monthEnd.set(Calendar.HOUR_OF_DAY, 23);
            monthEnd.set(Calendar.MINUTE, 59);
            monthEnd.set(Calendar.SECOND, 59);
            uploadStartTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthStart.getTime());
            uploadEndTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthEnd.getTime());
        }
        upload.setUploadStartTime(uploadStartTime);
        upload.setUploadEndTime(uploadEndTime);
        List<FaultUpload> faultUploads = mapper.getList(userId,upload);
        Map<Integer, List<FaultUpload>> typeListMap = faultUploads.stream().collect(Collectors.groupingBy(FaultUpload::getType));
        Map<Integer,Integer> typeMap = new LinkedHashMap<>( );
        typeMap.put(0,0);
        int total = 0;
        Set<Integer> typeSet = typeListMap.keySet();
        for (Integer type : typeSet) {
            int size = typeListMap.get(type).size();
            total+=size;
            typeMap.put(type, size);
        }
        typeMap.put(0,total);
        return new Response().set(1,typeMap);
    }
    public Response groupNameCount(int timeType, int userId) {
        FaultUpload upload = new FaultUpload();
        String uploadStartTime = null;
        String uploadEndTime = null;
        if(timeType == 1){
            //本月
            Calendar monthStart = Calendar.getInstance();
            //设置为1号,当前日期既为本月第一天
            monthStart.set(Calendar.DAY_OF_MONTH,1);
            monthStart.set(Calendar.HOUR_OF_DAY, 0);
            monthStart.set(Calendar.MINUTE, 0);
            monthStart.set(Calendar.SECOND, 0);
            Calendar monthEnd = Calendar.getInstance();
            //设置为1号,当前日期既为本月第一天
            monthEnd.set(Calendar.DAY_OF_MONTH,monthEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
            monthEnd.set(Calendar.HOUR_OF_DAY, 23);
            monthEnd.set(Calendar.MINUTE, 59);
            monthEnd.set(Calendar.SECOND, 59);
            uploadStartTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthStart.getTime());
            uploadEndTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthEnd.getTime());
        }else if(timeType == 2){
            //本季度
            Calendar monthStart = Calendar.getInstance();
            monthStart.set(Calendar.DAY_OF_MONTH,1);
            monthStart.set(Calendar.HOUR_OF_DAY, 0);
            monthStart.set(Calendar.MINUTE, 0);
            monthStart.set(Calendar.SECOND, 0);
            Calendar monthEnd = Calendar.getInstance();
            //定位是第几季度
            int i = monthStart.get(Calendar.MONTH);
            if (i<=2){ // 0,1,2
                monthStart.set(Calendar.MONTH,0);
                monthEnd.set(Calendar.MONTH,2);
            }
            else if(i<=5){ // 3,4,5
                monthStart.set(Calendar.MONTH,3);
                monthEnd.set(Calendar.MONTH,5);
            }
            else if(i<=8){ // 6,7,8
                monthStart.set(Calendar.MONTH,6);
                monthEnd.set(Calendar.MONTH,8);
            }else{ //9,10,11
                monthStart.set(Calendar.MONTH,9);
                monthEnd.set(Calendar.MONTH,11);
            }
            //设置为1号,当前日期既为本月第一天
            monthEnd.set(Calendar.DAY_OF_MONTH,monthEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
            monthEnd.set(Calendar.HOUR_OF_DAY, 23);
            monthEnd.set(Calendar.MINUTE, 59);
            monthEnd.set(Calendar.SECOND, 59);
            uploadStartTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthStart.getTime());
            uploadEndTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthEnd.getTime());
        }else{
            //年度
            Calendar monthStart = Calendar.getInstance();
            monthStart.set(Calendar.MONTH,0);
            monthStart.set(Calendar.DAY_OF_MONTH,1);
            monthStart.set(Calendar.HOUR_OF_DAY, 0);
            monthStart.set(Calendar.MINUTE, 0);
            monthStart.set(Calendar.SECOND, 0);
            Calendar monthEnd = Calendar.getInstance();
            //设置为1号,当前日期既为本月第一天
            monthEnd.set(Calendar.MONTH,11);
            monthEnd.set(Calendar.DAY_OF_MONTH,monthEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
            monthEnd.set(Calendar.HOUR_OF_DAY, 23);
            monthEnd.set(Calendar.MINUTE, 59);
            monthEnd.set(Calendar.SECOND, 59);
@@ -162,20 +265,107 @@
        upload.setUploadEndTime(uploadEndTime);
        List<FaultUpload> list = mapper.getList2(userId, upload);
        Map<String, List<FaultUpload>> groupNameListMap = list.stream().collect(Collectors.groupingBy(FaultUpload::getGroupName));
        //初始化 班组列表
        Map<String,Integer> groupNameCountMap = new HashMap<>();
        List<BaoJiGroup> baoJiGroups = baoJiGroupService.getBaoJiGroupNameByFlag(1);
        Map<String,Integer> groupNameCountMap = new LinkedHashMap<>();
        groupNameCountMap.put("总数",0);
        int total = 0;
        List<BaoJiGroup> baoJiGroups = baoJiGroupService.getBaoJiGroupNameListByFlag(1);
        for (BaoJiGroup baoJiGroup : baoJiGroups) {
            groupNameCountMap.put(baoJiGroup.getBaoJiGroupName(),0);
        }
        Set<String> groupNameSet = groupNameListMap.keySet();
        for (String groupName : groupNameSet) {
            groupNameCountMap.put(groupName,groupNameListMap.get(groupName).size());
            int size = groupNameListMap.get(groupName).size();
            total+=size;
            groupNameCountMap.put(groupName, size);
        }
        groupNameCountMap.put("总数",total);
        return new Response().set(1,groupNameCountMap);
    }
    public Response getListOfLastPeriod(int type, int userId) {
        FaultUpload upload = new FaultUpload();
        Date now = new Date();
        Calendar instance = Calendar.getInstance();
        instance.setTime(now);
        if(type == 1){
            instance.add(Calendar.DATE,-7);
        }else{
            instance.add(Calendar.DATE,-30);
        }
        upload.setUploadStartTime(DateUtil.YYYY_MM_DD_HH_MM_SS.format(instance.getTime()));
        upload.setUploadEndTime(DateUtil.YYYY_MM_DD_HH_MM_SS.format(now));
        List<FaultUpload> faultUploads = mapper.getList(userId, upload);
        //联查拆分,组装 用户名
        List<UserInf> users = userService.getAll();
        Map<Long, List<UserInf>> userIdListMap = users.stream().collect(Collectors.groupingBy(UserInf::getUId));
        for (FaultUpload faultUpload : faultUploads) {
            faultUpload.setUploadUserName(userIdListMap.get(Long.valueOf(faultUpload.getUploadUserId() +"")).get(0).getUName());
        }
        return new Response().set(1,faultUploads);
    }
    public Response getMyUploadStatusCount(int userId) {
        Map<String,Integer> map = new HashMap<>();
        FaultUpload upload = new FaultUpload();
        //年度
        Calendar monthStart = Calendar.getInstance();
        monthStart.set(Calendar.MONTH,0);
        monthStart.set(Calendar.DAY_OF_MONTH,1);
        monthStart.set(Calendar.HOUR_OF_DAY, 0);
        monthStart.set(Calendar.MINUTE, 0);
        monthStart.set(Calendar.SECOND, 0);
        Calendar monthEnd = Calendar.getInstance();
        //设置为1号,当前日期既为本月第一天
        monthEnd.set(Calendar.MONTH,11);
        monthEnd.set(Calendar.DAY_OF_MONTH,monthEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
        monthEnd.set(Calendar.HOUR_OF_DAY, 23);
        monthEnd.set(Calendar.MINUTE, 59);
        monthEnd.set(Calendar.SECOND, 59);
        String uploadStartTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthStart.getTime());
        String uploadEndTime = DateUtil.YYYY_MM_DD_HH_MM_SS.format(monthEnd.getTime());
        upload.setUploadStartTime(uploadStartTime);
        upload.setUploadEndTime(uploadEndTime);
        List<FaultUpload> list = mapper.getList(userId, upload);
        List<FaultUpload> confirmedList = list.stream().filter(temp -> temp.getStatus() == 1).collect(Collectors.toList());
        List<FaultUpload> myList = list.stream().filter(temp -> temp.getUploadUserId() == userId).collect(Collectors.toList());
        List<FaultUpload> myConfirmedList = myList.stream().filter(temp -> temp.getStatus() == 1).collect(Collectors.toList());
        //班组 上报总数,已确认数量
        map.put("groupUploadNum",list.size());
        map.put("groupUploadConfirmedNum",confirmedList.size());
        //我的 上报总数,已确认数量
        map.put("myUploadNum",myList.size());
        map.put("myUploadConfirmedNum",myConfirmedList.size());
        return new Response().set(1,map);
    }
    public Map<String, FaultUpload> getUploadWithGroupName(int userId) {
        Map<String, FaultUpload> resMap = new HashMap<>();
        //int userId = ActionUtil.getUser().getUId().intValue();
        int year = Calendar.getInstance().get(Calendar.YEAR);
        List<FaultUpload> list = mapper.getListWithGroupName(userId, year);
        Map<String, List<FaultUpload>> userListMap = list.stream().collect(Collectors.groupingBy(FaultUpload::getUploadUserName));
        Set<String> userNameSet = userListMap.keySet();
        for (String userName : userNameSet) {
            List<FaultUpload> faultUploads = userListMap.get(userName);
            List<FaultUpload> confirmedList = faultUploads.stream().filter(temp -> temp.getStatus() == 1).collect(Collectors.toList());
            FaultUpload upload = new FaultUpload();
            upload.setTotalNum(faultUploads.size());
            upload.setConfirmedNum(confirmedList.size());
            upload.setGroupName(faultUploads.get(0).getGroupName());
            resMap.put(userName,upload);
        }
        return resMap;
    }
}