package com.whyc.service;
|
|
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;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class FaultUploadService {
|
|
@Resource
|
private FaultUploadMapper mapper;
|
|
@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,"上传完成");
|
}
|
|
public Response updateConfirm(FaultUpload fault) {
|
int userId = ActionUtil.getUser().getUId().intValue();
|
Date now = new Date();
|
fault.setConfirmUserId(userId);
|
fault.setConfirmTime(now);
|
mapper.updateById(fault);
|
return new Response().setII(1,"确认完成");
|
}
|
|
public Response listPage(int pageNum, int pageSize, FaultUpload upload,int userId) {
|
PageHelper.startPage(pageNum,pageSize);
|
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());
|
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 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 == null) {
|
//不操作
|
}else if(timeType == 1){
|
//本月
|
Calendar monthStart = Calendar.getInstance();
|
monthStart.setTime(now);
|
//设置为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();
|
monthEnd.setTime(now);
|
//设置为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.setTime(now);
|
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();
|
monthEnd.setTime(now);
|
//设置为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);
|
|
//定位是第几季度
|
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);
|
}
|
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 ==3){
|
//年度
|
Calendar monthStart = Calendar.getInstance();
|
monthStart.setTime(now);
|
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();
|
monthEnd.setTime(now);
|
//设置为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);
|
|
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);
|
|
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> list = mapper.getList2(userId, upload);
|
|
Map<String, List<FaultUpload>> groupNameListMap = list.stream().collect(Collectors.groupingBy(FaultUpload::getGroupName));
|
//初始化 班组列表
|
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) {
|
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;
|
}
|
}
|