443 lines
16 KiB
Plaintext
443 lines
16 KiB
Plaintext
|
|
package com.sercurityControl.proteam.service.impl;
|
||
|
|
|
||
|
|
import com.google.common.collect.Maps;
|
||
|
|
import com.securityControl.common.core.utils.aes.DateTimeHelper;
|
||
|
|
import com.securityControl.common.core.utils.aes.ListHelper;
|
||
|
|
import com.securityControl.common.core.utils.aes.StringHelper;
|
||
|
|
import com.sercurityControl.proteam.domain.PersonNum;
|
||
|
|
import com.sercurityControl.proteam.domain.dto.LoginDto;
|
||
|
|
import com.sercurityControl.proteam.domain.vo.MapsVo;
|
||
|
|
import com.sercurityControl.proteam.domain.vo.WeekPlanVo;
|
||
|
|
import com.sercurityControl.proteam.dutyTask.domain.ClassMettingCheckVo;
|
||
|
|
import com.sercurityControl.proteam.dutyTask.domain.NoticeVoiVo;
|
||
|
|
import com.sercurityControl.proteam.mapper.SupervisorMapper;
|
||
|
|
import com.sercurityControl.proteam.service.SupervisorService;
|
||
|
|
import com.sercurityControl.proteam.util.ListEntityUtil;
|
||
|
|
import lombok.extern.slf4j.Slf4j;
|
||
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
||
|
|
import org.springframework.stereotype.Service;
|
||
|
|
|
||
|
|
import java.util.ArrayList;
|
||
|
|
import java.util.IntSummaryStatistics;
|
||
|
|
import java.util.List;
|
||
|
|
import java.util.Map;
|
||
|
|
import java.util.stream.Collectors;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 值长 页面 业务处理层
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
@Service
|
||
|
|
@Slf4j
|
||
|
|
public class SupervisorServiceImpl implements SupervisorService {
|
||
|
|
|
||
|
|
@Autowired
|
||
|
|
private SupervisorMapper mapper;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public Map<String, Object> getProMaps(LoginDto loginDto) {
|
||
|
|
Map<String,Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
List<String> allProCode=mapper.getAllProNum(loginDto);//查询全部工程
|
||
|
|
List<String> distinctNumbers=allProCode.stream().distinct().collect(Collectors.toList());
|
||
|
|
map.put("allNum",allProCode.size());
|
||
|
|
//查询当日 有作业工程
|
||
|
|
List<String> sgProNum=mapper.getSgProNum(distinctNumbers);
|
||
|
|
map.put("sgNum",sgProNum.size());//有施工的工程数量
|
||
|
|
loginDto.setType("停工");
|
||
|
|
List<String> tgNum=mapper.getAllProNum(loginDto);//查询全部工程
|
||
|
|
int wsgNum=allProCode.size()-sgProNum.size()-tgNum.size();
|
||
|
|
map.put("wsgNum",wsgNum);//今日未施工的工程数量
|
||
|
|
map.put("TgNum",tgNum.size());//停工+投产数量
|
||
|
|
map.put("code","200");
|
||
|
|
map.put("msg","success");
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("allNum",0);
|
||
|
|
map.put("sgNum",0);
|
||
|
|
map.put("wsgNum",0);
|
||
|
|
map.put("TgNum",0);
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
log.error(e.toString(),e);
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public Map<String, Object> getWeekMaps(LoginDto loginDto) {
|
||
|
|
switch (loginDto.getType()){
|
||
|
|
case "1":
|
||
|
|
return weekPlan(loginDto);
|
||
|
|
case "2":
|
||
|
|
return planList(loginDto);
|
||
|
|
case "3":
|
||
|
|
return AllWeekPlan(loginDto);
|
||
|
|
default:
|
||
|
|
return weekPlan(loginDto);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 值班任务统计查询
|
||
|
|
* @param loginDto
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
@Override
|
||
|
|
public Map<String, Object> getDutyTaskMaps(LoginDto loginDto) {
|
||
|
|
Map<String,Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
//List<ClassMettingCheckVo> list=mapper.getDutyTaskMaps(loginDto);
|
||
|
|
int allNum=mapper.getAllTaskNum(loginDto);
|
||
|
|
loginDto.setType("1");
|
||
|
|
int xsNum=mapper.getAllTaskNum(loginDto);
|
||
|
|
int wxsNum=allNum-xsNum;
|
||
|
|
// IntSummaryStatistics allData= list.stream().collect(Collectors.summarizingInt(ClassMettingCheckVo::getNum));
|
||
|
|
// IntSummaryStatistics wxsData= list.stream().filter(vo ->"0".equals(vo.getState())).collect(Collectors.summarizingInt(ClassMettingCheckVo::getNum));
|
||
|
|
// IntSummaryStatistics xsData= list.stream().filter(vo ->"1".equals(vo.getState())).collect(Collectors.summarizingInt(ClassMettingCheckVo::getNum));
|
||
|
|
loginDto.setType(null);
|
||
|
|
Integer wzNum=mapper.getAllWzNum(loginDto);
|
||
|
|
loginDto.setType("严重违章");
|
||
|
|
Integer yzwz=mapper.getAllWzNum(loginDto);
|
||
|
|
loginDto.setType("一般违章");
|
||
|
|
Integer ybwz=mapper.getAllWzNum(loginDto);
|
||
|
|
// List<MapsVo> mapsVos=mapper.getWzList(loginDto);
|
||
|
|
// List<MapsVo> yzwz=mapsVos.stream().filter(vo ->"严重违章".equals(vo.getStatus())).collect(Collectors.toList());
|
||
|
|
// List<MapsVo> ybwz=mapsVos.stream().filter(vo ->"一般违章".equals(vo.getStatus())).collect(Collectors.toList());
|
||
|
|
int num=mapper.getZgNum(loginDto);
|
||
|
|
// int allNum=mapsVos.size();
|
||
|
|
map.put("YZWZ",yzwz);
|
||
|
|
map.put("YBWZ",ybwz);
|
||
|
|
map.put("XFWZ",wzNum);
|
||
|
|
map.put("YZG",num);
|
||
|
|
map.put("allNum",allNum);
|
||
|
|
map.put("noXs",wxsNum);
|
||
|
|
map.put("xs",xsNum);
|
||
|
|
map.put("code","200");
|
||
|
|
map.put("msg","success");
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("allNum",0);
|
||
|
|
map.put("noXs",0);
|
||
|
|
map.put("xs",0);
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
log.error(e.toString());
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 值班进度 统计查询
|
||
|
|
* @param loginDto
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
@Override
|
||
|
|
public Map<String, Object> getDutySchedule(LoginDto loginDto) {
|
||
|
|
Map<String,Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
List<String> userList=new ArrayList<>();
|
||
|
|
List<String> taskList=new ArrayList<>();
|
||
|
|
List<Integer> xsList=new ArrayList<>();
|
||
|
|
List<Integer> wzList=new ArrayList<>();
|
||
|
|
List<MapsVo> list=mapper.getUserList(loginDto);
|
||
|
|
list.forEach(mapsVo -> {
|
||
|
|
if(StringHelper.isNotEmpty(mapsVo.getName())){
|
||
|
|
userList.add(mapsVo.getName());
|
||
|
|
}else{
|
||
|
|
userList.add(mapsVo.getStatus());
|
||
|
|
}
|
||
|
|
|
||
|
|
int nums=mapper.getTaskNum(mapsVo.getUserId());
|
||
|
|
taskList.add(nums+"");
|
||
|
|
int num=mapper.getWzNumByUser(mapsVo.getUserId());
|
||
|
|
int xsNum=mapper.getXsNum(mapsVo.getUserId());
|
||
|
|
xsList.add(xsNum);
|
||
|
|
wzList.add(num);
|
||
|
|
});
|
||
|
|
map.put("code",200);
|
||
|
|
map.put("msg","success");
|
||
|
|
map.put("userList",userList);
|
||
|
|
map.put("taskList",taskList);
|
||
|
|
map.put("xsList",xsList);
|
||
|
|
map.put("wzList",wzList);
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
log.error(e.toString());
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
*
|
||
|
|
* @param loginDto
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
@Override
|
||
|
|
public Map<String, Object> getViolationAudit(LoginDto loginDto) {
|
||
|
|
Map<String,Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
List<NoticeVoiVo> list=mapper.getViolationAudit(loginDto);
|
||
|
|
map.put("code",200);
|
||
|
|
map.put("data",list);
|
||
|
|
map.put("msg","success");
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
log.error(e.toString());
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public Map<String, Object> getPeopleMaps(LoginDto dto) {
|
||
|
|
Map<String, Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
PersonNum person=new PersonNum();
|
||
|
|
person.setIsSup(dto.getIsSup());
|
||
|
|
person.setOrgId(dto.getOrgId());
|
||
|
|
List<PersonNum> list = mapper.getClassPeopleNum(person);
|
||
|
|
List<String> bzgg= ListEntityUtil.getPeopleTypeList(1);
|
||
|
|
List<String> tzzy= ListEntityUtil.getPeopleTypeList(2);
|
||
|
|
int allNUM=0;//全部人数;
|
||
|
|
int teamNum = 0;//班组骨干
|
||
|
|
int tzzyNum = 0;//特种作业
|
||
|
|
int ptsgNum = 0;//普通施工
|
||
|
|
for ( PersonNum personNum:list) {
|
||
|
|
if(personNum!=null){
|
||
|
|
String personType = personNum.getPersonType();
|
||
|
|
if(bzgg.contains(personType)){//班组骨干
|
||
|
|
teamNum += personNum.getPersonNum();
|
||
|
|
}else if(tzzy.contains(personType)){//特种作业
|
||
|
|
tzzyNum += personNum.getPersonNum();
|
||
|
|
}else{//其他
|
||
|
|
ptsgNum += personNum.getPersonNum();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
allNUM=teamNum+tzzyNum+ptsgNum;
|
||
|
|
map.put("bzgg",teamNum);
|
||
|
|
map.put("ttzy",tzzyNum);
|
||
|
|
map.put("ptzy",ptsgNum);
|
||
|
|
map.put("allNUM",allNUM);
|
||
|
|
map.put("code",200);
|
||
|
|
map.put("msg","success");
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("bzgg",0);
|
||
|
|
map.put("ttzy",0);
|
||
|
|
map.put("ptzy",0);
|
||
|
|
map.put("allNUM",0);
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
log.error(e.toString());
|
||
|
|
log.error(e.toString(),e);
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 日计划统计查询
|
||
|
|
* @param loginDto
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
@Override
|
||
|
|
public Map<String, Object> getDayPlanMaps(LoginDto loginDto) {
|
||
|
|
switch (loginDto.getType()){
|
||
|
|
case "1":
|
||
|
|
return getDayPlan(loginDto);
|
||
|
|
case "2":
|
||
|
|
return getDayPlanList(loginDto);
|
||
|
|
default:
|
||
|
|
return getDayPlan(loginDto);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 日计划统计查询
|
||
|
|
* @param loginDto
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
public Map<String, Object> getDayPlan(LoginDto loginDto) {
|
||
|
|
Map<String, Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
List<Integer> list=mapper.getTicketNum(loginDto);
|
||
|
|
map.put("allNum",list.get(0));//总数量
|
||
|
|
map.put("yzxNum",list.get(1));//已执行
|
||
|
|
map.put("wzxNum",list.get(2));//未执行
|
||
|
|
map.put("HsNum",list.get(3));//核实
|
||
|
|
map.put("WhsNum",list.get(4));//未核实
|
||
|
|
map.put("code",200);
|
||
|
|
map.put("msg","success");
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("allNum",0);//总数量
|
||
|
|
map.put("yzxNum",0);//已执行
|
||
|
|
map.put("wzxNum",0);//未执行
|
||
|
|
map.put("HsNum",0);//核实
|
||
|
|
map.put("WhsNum",0);//未核实
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
log.error(e.toString());
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 日计划统计查询
|
||
|
|
* @param loginDto
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
public Map<String, Object> getDayPlanList(LoginDto loginDto) {
|
||
|
|
Map<String, Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
List<MapsVo> list=mapper.getDayPlanList(loginDto);
|
||
|
|
List<String> cityList=new ArrayList<>();
|
||
|
|
List<String> planList=new ArrayList<>();
|
||
|
|
List<String> dayList=new ArrayList<>();
|
||
|
|
|
||
|
|
list.forEach(mapsVo -> {
|
||
|
|
cityList.add(mapsVo.getName());
|
||
|
|
planList.add(mapsVo.getTotalNum());
|
||
|
|
dayList.add(mapsVo.getExecutedNum());
|
||
|
|
});
|
||
|
|
map.put("cityList",cityList);
|
||
|
|
map.put("planList",planList);
|
||
|
|
map.put("dayList",dayList);
|
||
|
|
map.put("code",200);
|
||
|
|
map.put("msg","success");
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("cityList",new ArrayList<>());
|
||
|
|
map.put("planList",0);
|
||
|
|
map.put("dayList",0);
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 周计划统计
|
||
|
|
* @param loginDto
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
private Map<String, Object> weekPlan(LoginDto loginDto) {
|
||
|
|
Map<String,Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
String time= DateTimeHelper.getNowDay();
|
||
|
|
String startWeek= DateTimeHelper.getWeekStartOrEndTime(time,true);//本周开始时间
|
||
|
|
String endWeek= DateTimeHelper.getWeekStartOrEndTime(time,false);//本周结束时间
|
||
|
|
loginDto.setStartTime(startWeek);
|
||
|
|
loginDto.setEndTime(endWeek);
|
||
|
|
Map<String,Object> maps = mapper.getWeekRiskNumByWeekTime(loginDto);
|
||
|
|
List<String> list=new ArrayList<>();
|
||
|
|
list.add(maps.get("twoRisk").toString());
|
||
|
|
list.add(maps.get("threeRisk").toString());
|
||
|
|
list.add(maps.get("foureRisk").toString());
|
||
|
|
list.add(maps.get("fiveRisk").toString());
|
||
|
|
map.put("data",list);
|
||
|
|
map.put("code","200");
|
||
|
|
map.put("msg","success");
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("data",new Integer[]{0,0,0,0});
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
log.error(e.toString(),e);
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* 周计划趋势
|
||
|
|
* @param loginDto
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
private Map<String, Object> planList(LoginDto loginDto) {
|
||
|
|
Map<String,Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
List<String> times=new ArrayList<>();
|
||
|
|
List<String> twoList=new ArrayList<>();
|
||
|
|
List<String> threeList=new ArrayList<>();
|
||
|
|
List<String> timeList=DateTimeHelper.getWeekList();
|
||
|
|
timeList.forEach(time->{
|
||
|
|
String startWeek= DateTimeHelper.getWeekStartOrEndTime(time,true);//本周开始时间
|
||
|
|
String endWeek= DateTimeHelper.getWeekStartOrEndTime(time,false);//本周结束时间
|
||
|
|
loginDto.setStartTime(startWeek);
|
||
|
|
loginDto.setEndTime(endWeek);
|
||
|
|
List<WeekPlanVo> list=mapper.planList(loginDto);
|
||
|
|
Map<String, String> twoWeek=list.stream().filter(week->"二级".equals(week.getRiskLevel())).collect(Collectors.toMap(WeekPlanVo::getRiskLevel, WeekPlanVo::getNum));
|
||
|
|
Map<String, String> three=list.stream().filter(week->"三级".equals(week.getRiskLevel())).collect(Collectors.toMap(WeekPlanVo::getRiskLevel, WeekPlanVo::getNum));
|
||
|
|
times.add(DateTimeHelper.getWeekTimes(time));
|
||
|
|
if(StringHelper.isNotEmpty(twoWeek.get("二级"))){
|
||
|
|
twoList.add(twoWeek.get("二级"));
|
||
|
|
}else{
|
||
|
|
twoList.add("0");
|
||
|
|
}
|
||
|
|
if(StringHelper.isNotEmpty(three.get("三级"))){
|
||
|
|
threeList.add(three.get("三级"));
|
||
|
|
}else{
|
||
|
|
threeList.add("0");
|
||
|
|
}
|
||
|
|
});
|
||
|
|
map.put("times",times);
|
||
|
|
map.put("twoList",twoList);
|
||
|
|
map.put("threeList",threeList);
|
||
|
|
map.put("code","200");
|
||
|
|
map.put("msg","success");
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
log.error(e.toString(),e);
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 全省周计划
|
||
|
|
* @param loginDto
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
private Map<String, Object> AllWeekPlan(LoginDto loginDto) {
|
||
|
|
Map<String,Object> map= Maps.newHashMap();
|
||
|
|
try{
|
||
|
|
List<String> twoList=new ArrayList<>();
|
||
|
|
List<String> threeList=new ArrayList<>();
|
||
|
|
String time= DateTimeHelper.getNowDay();
|
||
|
|
String startWeek= DateTimeHelper.getWeekStartOrEndTime(time,true);//本周开始时间
|
||
|
|
String endWeek= DateTimeHelper.getWeekStartOrEndTime(time,false);//本周结束时间
|
||
|
|
loginDto.setStartTime(startWeek);
|
||
|
|
loginDto.setEndTime(endWeek);
|
||
|
|
List<WeekPlanVo> list=mapper.AllWeekPlan(loginDto);
|
||
|
|
List<String> cityList = list.stream().map(WeekPlanVo::getCityName).distinct().collect(Collectors.toList());
|
||
|
|
Map<String, String> twoWeek=list.stream().filter(week->"二级".equals(week.getRiskLevel())).collect(Collectors.toMap(WeekPlanVo::getCityName, WeekPlanVo::getNum));
|
||
|
|
Map<String, String> three=list.stream().filter(week->"三级".equals(week.getRiskLevel())).collect(Collectors.toMap(WeekPlanVo::getCityName, WeekPlanVo::getNum));
|
||
|
|
cityList.forEach(city ->{
|
||
|
|
if(StringHelper.isNotEmpty(twoWeek.get(city))){
|
||
|
|
twoList.add(twoWeek.get(city));
|
||
|
|
}else{
|
||
|
|
twoList.add("0");
|
||
|
|
}
|
||
|
|
if(StringHelper.isNotEmpty(three.get(city))){
|
||
|
|
threeList.add(three.get(city));
|
||
|
|
}else{
|
||
|
|
threeList.add("0");
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
map.put("city",cityList);
|
||
|
|
map.put("twoList",twoList);
|
||
|
|
map.put("threeList",threeList);
|
||
|
|
map.put("code","200");
|
||
|
|
map.put("msg","success");
|
||
|
|
}catch (Exception e){
|
||
|
|
map.put("msg",e.toString());
|
||
|
|
map.put("code","201");
|
||
|
|
log.error(e.toString(),e);
|
||
|
|
}
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|