IntelligentRecognition/ah-jjsp-service/.svn/pristine/f0/f0fb7f1e25af967f804af74f675...

954 lines
36 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.sercurityControl.proteam.service.impl;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Maps;
import com.securityControl.common.core.utils.StringUtils;
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.securityControl.common.redis.service.RedisService;
import com.sercurityControl.proteam.domain.*;
import com.sercurityControl.proteam.domain.dto.WeathQo;
import com.sercurityControl.proteam.domain.vo.StatEntity;
import com.sercurityControl.proteam.domain.vo.WeekPlanVo;
import com.sercurityControl.proteam.dutyTask.domain.TowerVo;
import com.sercurityControl.proteam.mapper.HomeDataMapper;
import com.sercurityControl.proteam.service.HomeDataService;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.eac.EACException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.cache.CacheProperties;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Slf4j
public class HomeDataServiceImpl implements HomeDataService {
@Autowired
private HomeDataMapper mapper;
@Resource
private RedisService redisService;
@Override
public ProDataNum getProNum(String orgId, String protType) {
//查询在建工程数量
int buildingNum = mapper.getProNum(orgId, protType, null);
//查询在施工工程数量
String workDate = DateTimeHelper.getNowDate();
int workingNum = mapper.getProNumByWork(workDate, orgId, protType);
//查询在停工程数量
int stopProNum = mapper.getProNum(orgId, protType, "1");
ProDataNum proDataNum = new ProDataNum();
proDataNum.setBuildingNum(buildingNum);
proDataNum.setStopProNum(stopProNum);
proDataNum.setWorkingNum(workingNum);
return proDataNum;
}
@Override
public PageInfo<ProData> getProList(ProData proData) {
if (StringUtils.isNotBlank(proData.getBuildCode())) {
String[] buildCodeArr = proData.getBuildCode().split(",");
List<String> buildCodeList = Arrays.asList(buildCodeArr);
proData.setBuildCodeList(buildCodeList);
}
List<ProData> list = mapper.getProList(proData);
PageInfo<ProData> pageInfo = new PageInfo<>(list);
return pageInfo;
}
@Override
public DayPlanNum getDayPlan(DayPlanNum dayPlanNum) {
return mapper.getDayPlan(dayPlanNum);
}
@Override
public Map<String, Object> getWeekRiskNum(WeekRiskData weekRiskData) {
Map<String, Object> map= Maps.newHashMap();
List<String> orgList=new ArrayList<>();
List<String> toList=new ArrayList<>();
List<String> thList=new ArrayList<>();
try{
if(StringHelper.isEmpty(weekRiskData.getCurryDay())){
weekRiskData.setCurryDay(DateTimeHelper.getNowDay());
}
List<StatEntity> list2 = mapper.getWeekPlanDayNum(weekRiskData);
for (StatEntity vo:list2) {
orgList.add(vo.getName());
toList.add(vo.getNum());
thList.add(vo.getNum2());
}
map.put("data",orgList);
map.put("data1",toList);
map.put("data2",thList);
map.put("msg","周风险统计成功data1是二级风险 data2是三级风险");
}catch (Exception e){
map=null;
log.error(e.toString(),e);
}
return map;
}
/**
* 初始化数据
*
* @param list
*/
private List<Integer> initListData(List<Integer> list) {
for (int i = 0; i < list.size(); i++) {
list.set(i, 0);
}
return list;
}
@Override
public PageInfo<WeekRiskData> getWeekPlanList(WeekRiskData weekRiskData) {
// 地市多选切割
if (StringUtils.isNotBlank(weekRiskData.getBuildUnitCode())) {
String[] buildUnitCodeArr = weekRiskData.getBuildUnitCode().split(",");
List<String> buildUnitCodeList = Arrays.asList(buildUnitCodeArr);
weekRiskData.setBuildUnitCodeList(buildUnitCodeList);
}
if(StringHelper.isEmpty(weekRiskData.getCurryDay())){
weekRiskData.setCurryDay(DateTimeHelper.getNowDay());
}
List<WeekRiskData> list = mapper.getWeekPlanListByTime(weekRiskData);
PageInfo<WeekRiskData> pageInfo = new PageInfo<>(list);
return pageInfo;
}
@Override
public List<RiskMapData> getRiskMap(RiskMapData riskMapData) {
List<RiskMapData> list = mapper.getRiskMap(riskMapData);
return list;
}
@Override
public List<WeatherMapData> getWeatherMap() {
String weatherDay = DateTimeHelper.getNowDay();
String currentHour = DateTimeHelper.getNowHours();
return mapper.getWeatherMap(weatherDay, currentHour + "时");
}
@Override
public List<String> getWeatherAlert(String currentDay, String orgId) {
return mapper.getWeatherAlert(currentDay, orgId);
}
@Override
public List<Map<String, String>> getWeatherAlertPlus(WeathQo weathQo) {
return mapper.getWeatherAlertPlus(weathQo);
}
@Override
public Map<String, Object> getTicketNumByType(TicketTypeNum ticketTypeNum) {
List<TicketTypeNum> list = mapper.getTicketNumByType(ticketTypeNum);
Map<String, Object> map = new HashMap<>(16);
int ticketNumA = 0;//A票数量
int ticketNumB = 0;//B票数量
map.put("two", 0);
map.put("three", 0);
map.put("four", 0);
map.put("five", 0);
for (int i = 0; i < list.size(); i++) {
TicketTypeNum num = list.get(i);
String ticketType = num.getTicketType();
if ("2".equals(ticketType) || "二级".equals(ticketType) || Objects.equals("2级",ticketType)) {
map.put("two", num.getRiskNum());
} else if ("3".equals(ticketType) || "三级".equals(ticketType) || Objects.equals("3级",ticketType)) {
map.put("three", num.getRiskNum());
} else if ("4".equals(ticketType) || "四级".equals(ticketType) || Objects.equals("4级",ticketType)) {
map.put("four", num.getRiskNum());
} else if ("5".equals(ticketType) || "五级".equals(ticketType) || Objects.equals("5级",ticketType)) {
map.put("five", num.getRiskNum());
}
if ("2".equals(ticketType) || "3".equals(ticketType) || "二级".equals(ticketType) || "三级".equals(ticketType) || Objects.equals("2级",ticketType) || Objects.equals("3级",ticketType)) {
ticketNumB += num.getRiskNum();
} else if ("4".equals(ticketType) || "5".equals(ticketType) || "四级".equals(ticketType) || "五级".equals(ticketType) || Objects.equals("4级",ticketType) || Objects.equals("5级",ticketType)) {
ticketNumA += num.getRiskNum();
}
}
map.put("ticketNumA", ticketNumA);
map.put("ticketNumB", ticketNumB);
return map;
}
@Override
public Map<String, Object> getTicketNumByCicty(TicketCityNum ticketCityNum) {
if (ticketCityNum == null) {
return null;
}
int dayType = ticketCityNum.getDateType();
String format = null;//查询的日期格式
String date = null;//查询的日期
if (dayType == 1) {//上月
String[] monthArr = getLastMonth().split(",");
format = monthArr[0];
date = monthArr[1];
} else if (dayType == 2) {//上周
String temp = DateTimeHelper.getPrevWeek();
String[] times = temp.split(",");
format = times[0];
date = times[1];
} else if (dayType == 3) {//当日
date = DateTimeHelper.getNowDate();
} else if (dayType == 4) {//本周
String temp = DateTimeHelper.getCurrentWeekTime();
String[] times = temp.split(",");
format = times[0];
date = times[1];
} else if (dayType == 5) {//本月
String[] monthArr = getNowMonth().split(",");
format = monthArr[0];
date = monthArr[1];
}
ticketCityNum.setTicketDate(date);
ticketCityNum.setFormat(format);
List<TicketCityNum> list = mapper.getTicketNumByCicty(ticketCityNum);
Map<String, Object> map = new HashMap<>(16);
List<String> cictyList = new ArrayList<>();
List<Integer> numList = new ArrayList<>();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
TicketCityNum num = list.get(i);
String cictyName = num.getCictyName();
int ticketNum = num.getTicketNum();
cictyList.add(cictyName);
numList.add(ticketNum);
}
}
map.put("cictyName", cictyList);
map.put("ticketNum", numList);
return map;
}
@Override
public PageInfo<TicketData> getTicketList(TicketData ticketData) {
// 地市多选切割
if (StringUtils.isNotBlank(ticketData.getBuildCode())) {
String[] buildCodeArr = ticketData.getBuildCode().split(",");
List<String> buildCodeArrList = Arrays.asList(buildCodeArr);
ticketData.setBuildCodeList(buildCodeArrList);
}
// 风险等级多选切割
if (StringUtils.isNotBlank(ticketData.getRiskType())) {
String[] riskTypeArr = ticketData.getRiskType().split(",");
List<String> riskTypeList = Arrays.asList(riskTypeArr);
ticketData.setRiskTypeList(riskTypeList);
}
List<TicketData> list = mapper.getTicketList(ticketData);
if(ListHelper.isNotEmpty(list)){
list.forEach(voo->{
WorkInfoVo workInfoVo=getWorkInfo(voo.getId());
voo.setWorkContent(workInfoVo.getWorkContent());
});
}
PageInfo<TicketData> pageInfo = new PageInfo<>(list);
return pageInfo;
}
public static String getNowMonth(){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String first = format.format(c.getTime());
//获取当前月最后一天
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
String last = format.format(ca.getTime());
return first + "," + last;
}
public static String getLastMonth(){
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
Calendar ca=Calendar.getInstance();
ca.add(Calendar.MONTH, -1);
ca.set(Calendar.DAY_OF_MONTH, 1);
Calendar calendar=Calendar.getInstance();
int month=calendar.get(Calendar.MONTH);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return sf.format(ca.getTime()) + "," + sf.format(calendar.getTime());
}
@Override
public Map<String, Object> getDayAttendanceNum(String currentDay) {
/**
* 获取人员数据
*/
List<PersonNum> list = mapper.getDayAttendanceNum(currentDay);
Map<String, Object> map = new HashMap<>(16);
int teamNum = 0;//班组骨干
int tzzyNum = 0;//特种作业
int ptsgNum = 0;//普通施工
//循环处理数据
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
PersonNum personNum = list.get(i);
int personTypeId = personNum.getPersonTypeId();
String personType = personNum.getPersonType();
if ("副班长".equals(personType) || "工作负责人".equals(personType) || "班长兼指挥".equals(personType) || "班组安全员".equals(personType)) {
teamNum += personNum.getPersonNum();
} else if ("牵张机械操作手".equals(personType) || "其他技术人员".equals(personType) || "班组技术兼质检员".equals(personType) || "特殊工种作业人员".equals(personType) || "班组技术员兼质检员".equals(personType)) {
tzzyNum += personNum.getPersonNum();
} else {
ptsgNum += personNum.getPersonNum();
}
}
}
map.put("teamNum", teamNum);
map.put("tzzyNum", tzzyNum);
map.put("ptsgNum", ptsgNum);
return map;
}
@Override
public Map<String, Object> getRealTimeNum(String currentDay) {
/**
* 获取人员数据
*/
List<PersonNum> list = mapper.getRealTimeNum(currentDay);
Map<String, Object> map = new HashMap<>(16);
int teamNum = 0;//班组骨干
int tzzyNum = 0;//特种作业
int ptsgNum = 0;//普通施工
//循环处理数据
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
PersonNum personNum = list.get(i);
String personType = personNum.getPersonType();
if ("副班长".equals(personType) || "工作负责人".equals(personType) || "班长兼指挥".equals(personType) || "班组安全员".equals(personType)) {
teamNum += personNum.getPersonNum();
} else if ("牵张机械操作手".equals(personType) || "其他技术人员".equals(personType) || "班组技术兼质检员".equals(personType) || "特殊工种作业人员".equals(personType) || "班组技术员兼质检员".equals(personType)) {
tzzyNum += personNum.getPersonNum();
} else {
ptsgNum += personNum.getPersonNum();
}
}
}
map.put("teamNum", teamNum);
map.put("tzzyNum", tzzyNum);
map.put("ptsgNum", ptsgNum);
return map;
}
@Override
public PageInfo<PersonData> getPersonList(PersonData personData) {
if (personData == null) {
personData = new PersonData();
personData.setQueryType(1);
personData.setCurrentDay(DateTimeHelper.getNowDay());
}
if(StringHelper.isEmpty(personData.getCurrentDay())){
personData.setCurrentDay(DateTimeHelper.getNowDay());
}
// int queryType = personData.getQueryType();
List<PersonData> list = null;
if(StringHelper.isNotEmpty(personData.getPersonType())){
List<String> tyList=getPeopleTypeList(Integer.parseInt(personData.getPersonType()));
personData.setTypeList(tyList);
}
if(DateTimeHelper.getNowDay().equals(personData.getCurrentDay())){
list = mapper.getPersonList(personData);
PageInfo<PersonData> pageInfo = new PageInfo<>(list);
return pageInfo;
}else{
list = mapper.getPersonList(personData);
PageInfo<PersonData> pageInfo = new PageInfo<>(list);
return pageInfo;
}
}
@Override
public Map<String, Object> getRiskByDate(String orgId, String dateType) {
String date;
if ("1".equals(dateType)) {//今日
date = DateTimeHelper.getNowDate();
} else {//昨日
date = DateTimeHelper.getFrontDay();
}
List<RiskDay> list = mapper.getRiskByDate(orgId, date);
Map<String, Object> map = new HashMap<>(16);
int twoNum = 0;
int threeNum = 0;
int fourNum = 0;
int fiveNum = 0;
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
RiskDay riskDay = list.get(i);
String riskType = riskDay.getRiskType();
if ("2".equals(riskType) || "二级".equals(riskType)) {
twoNum += riskDay.getRiskNum();
} else if ("3".equals(riskType) || "三级".equals(riskType)) {
threeNum += riskDay.getRiskNum();
} else if ("4".equals(riskType) || "四级".equals(riskType)) {
fourNum += riskDay.getRiskNum();
} else if ("5".equals(riskType) || "五级".equals(riskType)) {
fiveNum += riskDay.getRiskNum();
}
}
}
map.put("twoNum", twoNum);
map.put("threeNum", threeNum);
map.put("fourNum", fourNum);
map.put("fiveNum", fiveNum);
return map;
}
@Override
public Map<String, Object> getDayPlanNum(String proType, String dayType) {
Map<String, Object> map = new HashMap<>(16);
List<Integer> list = mapper.getDayPlanNum(proType, dayType);
List<Map<String, Object>> listMap = mapper.getDayPlanOrgNum(proType, dayType);
map.put("totalDayNum", list.get(0));
map.put("executedDayNum", list.get(1));
map.put("listMap", listMap);
return map;
}
/**
* 获取日计划及施工人员数据
* @param proType
* @param dayType
* @return
*/
@Override
public Map<String, Object> getNewDayPlanNum(String proType, String dayType) {
Map<String, Object> map = new HashMap<>(16);
try{
List<Integer> list = mapper.getNewDayPlanNum(proType, dayType);
List<Map<String, Object>> listMap = mapper.getNewDayPlanOrgNum(proType, dayType);
map.put("totalDayNum", list.get(0));
map.put("executedDayNum", list.get(1));
map.put("listMap", listMap);
}catch (Exception e){
log.error(e.toString(),e);
}
return map;
}
@Override
public Map<String, Object> getWeekRiskNumByWeekTime(String startWeek, String endWeek) {
Map<String, Object> map = new HashMap<>(16);
try{
map = mapper.getWeekRiskNumByWeekTime(startWeek, endWeek);
}catch (Exception e){
log.error(e.toString(),e);
}
return map;
}
/**
* 查询
* @param startWeek
* @param endWeek
* @param riskLevel
* @return
*/
@Override
public List<MapsValueVo> getWeekRiskByRiskLevel(String startWeek, String endWeek, String riskLevel) {
return mapper.getWeekRiskByRiskLevel(startWeek,endWeek,riskLevel);
}
@Override
public List<WeekPlanVo> getNexWeekPro(String startWeek, String endWeek, String riskLevel) {
return mapper.getNexWeekPro(startWeek,endWeek,riskLevel);
}
@Override
public Map<String, Object> getAllRiskLevelNum(String time) {
return mapper.getAllRiskLevelNum(time);
}
@Override
public Integer getWzXx(String orgId) {
return mapper.getWzXx(orgId);
}
/**
* h用户是否报岗
* @param orgId
* @return
*/
@Override
public Integer getIsBg(String orgId) {
try{
return mapper.getIsBg(orgId,DateTimeHelper.getNowDay());
}catch (Exception e){
log.error(e.toString(),e);
}
return 0;
}
/**
*
* @param params
* @return
*/
@Override
public List<TowerVo> getGtList(TowerVo params) {
try{
List<TowerVo> list=mapper.getGtList(params);
return list;
}catch (Exception e){
log.error(e.toString(),e);
}
return new ArrayList<>();
}
@Override
public Map<String, Object> getAttendanceNum(String orgId) {
HashMap<String, Object> map = new HashMap<>(16);
List<Integer> list = mapper.getAttendanceNum(orgId);
if (CollectionUtils.isNotEmpty(list)) {
map.put("attendanceNum", list.get(0));
map.put("attendanceNum2", list.get(1));
} else {
map.put("attendanceNum", 0);
map.put("attendanceNum2", 0);
}
return map;
}
@Override
public List<Map<String, Object>> getOrgNumAndRateByPro(ProData proData) {
List<Map<String, Object>> list = mapper.getOrgNumAndRateByPro(proData);
int totalNum = 0;
for (Map<String, Object> map : list) {
totalNum += Integer.parseInt(String.valueOf(map.get("num")));
}
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
for (Map<String, Object> map : list) {
if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) {
map.put("rate", "0.00%");
} else {
map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0));
}
}
return list;
}
@Override
public List<Map<String, Object>> getOrgNumAndRateByProNew(ProData proData) {
List<Map<String, Object>> list = mapper.getOrgNumAndRateByProNew(proData);
int totalNum = 0;
for (Map<String, Object> map : list) {
totalNum += Integer.parseInt(String.valueOf(map.get("num")));
}
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
for (Map<String, Object> map : list) {
if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) {
map.put("rate", "0.00%");
} else {
map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0));
}
}
return list;
}
@Override
public Map<String, Object> getOrgNumAndRateByWeek(WeekRiskData weekRiskData) {
if(StringHelper.isEmpty(weekRiskData.getCurryDay())){
weekRiskData.setCurryDay(DateTimeHelper.getNowDay());
}
Map<String, Object> map= Maps.newHashMap();
weekRiskData.setWeekType(2);
List<Map<String, Object>> list2 = mapper.getOrgNumAndRateByWeek(weekRiskData);
weekRiskData.setWeekType(3);
List<Map<String, Object>> list3 = mapper.getOrgNumAndRateByWeek(weekRiskData);
map.put("data1",list2);
map.put("data2",list3);
map.put("msg","周风险统计成功data1是二级风险 data2是三级风险");
return map;
}
@Override
public List<Map<String, Object>> getOrgNumAndRateByWeekChild(WeekRiskData weekRiskData) {
if(StringHelper.isEmpty(weekRiskData.getCurryDay())){
weekRiskData.setCurryDay(DateTimeHelper.getNowDay());
}
List<Map<String, Object>> list = mapper.getOrgNumAndRateByWeekChild(weekRiskData);
int totalNum = 0;
for (Map<String, Object> map : list) {
totalNum += Integer.parseInt(String.valueOf(map.get("num")));
}
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
for (Map<String, Object> map : list) {
if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) {
map.put("rate", "0.00%");
} else {
map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0));
}
}
return list;
}
@Override
public List<Map<String, Object>> getOrgNumAndRateByTicket(TicketData ticketData) {
// 风险等级多选切割
if (StringUtils.isNotBlank(ticketData.getRiskType())) {
String[] riskTypeArr = ticketData.getRiskType().split(",");
List<String> riskTypeList = Arrays.asList(riskTypeArr);
ticketData.setRiskTypeList(riskTypeList);
}
List<Map<String, Object>> list = mapper.getOrgNumAndRateByTicket(ticketData);
int totalNum = 0;
for (Map<String, Object> map : list) {
totalNum += Integer.parseInt(String.valueOf(map.get("num")));
}
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
for (Map<String, Object> map : list) {
if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) {
map.put("rate", "0.00%");
} else {
map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0));
}
}
return list;
}
@Override
public Map<String, Object> getProNumByType(String proType, String orgId) {
Map<String, Object> map = new HashMap<>(16);
// List<Integer> list = mapper.getProNumByType(proType,orgId);
String year=DateTimeHelper.getNowYear();
List<Integer> list = mapper.getNewProNumByType(proType,orgId,year);
map.put("allZjNum",list.get(0));
map.put("zjNum",list.get(1));
map.put("sgNum",list.get(2));
map.put("tgNum",list.get(3));
map.put("dkgNum",list.get(4));
return map;
}
@Override
public PageInfo<ProData> getProListByType(ProData proData) {
if (StringUtils.isNotBlank(proData.getBuildCode())) {
String[] buildCodeArr = proData.getBuildCode().split(",");
List<String> buildCodeList = Arrays.asList(buildCodeArr);
proData.setBuildCodeList(buildCodeList);
}
// List<ProData> list = mapper.getProListByType(proData);
List<ProData> list = mapper.getNewProListByType(proData);
PageInfo<ProData> pageInfo = new PageInfo<>(list);
return pageInfo;
}
/**
* 站班会统计
* @param vo
* @return
*/
@Override
public Map<String, Object> getClassMettingData(ClassMettingStaVo vo) {
Map<String, Object> map=Maps.newHashMap();
List<String> nameList=new ArrayList<>();
List<String> values=new ArrayList<>();
try{
if (StringHelper.isEmpty(vo.getCurryDay())){
vo.setCurryDay(DateTimeHelper.getNowDay());
}
List<ClassMettingStaVo> list = mapper.getClassMettingData(vo);
for (ClassMettingStaVo ent: list) {
nameList.add(ent.getName());
values.add(ent.getNum());
}
map.put("data",nameList);
map.put("value",values);
map.put("msg","获取站班会数据成功");
}catch (Exception e){
log.error(e.toString(),e);
}
return map;
}
/**
* 分页查询站班会数据
* @param vo
* @return
*/
@Override
public PageInfo<ProData> getClassMettingList(ClassMettingStaVo vo) {
if (StringUtils.isNotBlank(vo.getBuildCode())) {
String[] buildCodeArr = vo.getBuildCode().split(",");
List<String> buildCodeList = Arrays.asList(buildCodeArr);
vo.setOrgList(buildCodeList);
}
if(StringHelper.isNotEmpty(vo.getRiskLevel())){
List<String> riskList=Arrays.asList(vo.getRiskLevel().split(","));
vo.setRiskList(riskList);
}
if(StringHelper.isEmpty(vo.getCurryDay())){
vo.setCurryDay(DateTimeHelper.getNowDay());
}
List<ProData> list = mapper.getClassMettingList(vo);
PageInfo<ProData> pageInfo = new PageInfo<>(list);
return pageInfo;
}
@Override
public List<Map<String, Object>> getOrgNumAndRateByClass(ClassMettingStaVo vo) {
// 风险等级多选切割
if(StringHelper.isNotEmpty(vo.getRiskLevel())){
List<String> riskList=Arrays.asList(vo.getRiskLevel().split(""));
vo.setRiskList(riskList);
}
List<Map<String, Object>> list = mapper.getOrgNumAndRateByClass(vo);
int totalNum = 0;
for (Map<String, Object> map : list) {
totalNum += Integer.parseInt(String.valueOf(map.get("num")));
}
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
for (Map<String, Object> map : list) {
if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) {
map.put("rate", "0.00%");
} else {
map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0));
}
}
return list;
}
public List<String> getPeopleTypeList(int type){
List<String> list=new ArrayList<>();
if(type==1){
list.add("班组负责人");
list.add("班组安全员");
list.add("班组技术员");
list.add("副班长");
}else if(type ==2){
list.add("特种作业人员");
}else if(type ==3){
list.add("一般作业人员");
list.add("其他技术人员");
}else{
list.add("班组负责人");
list.add("班组安全员");
list.add("班组技术员");
list.add("特种作业人员");
list.add("副班长");
list.add("一般作业人员");
list.add("其他技术人员");
}
return list;
}
/**
* 人员数量统计展示
* @param
* @return
*/
@Override
public Map<String, Object> getClassPeopleNum(PersonNum person) {
Map<String, Object> map=Maps.newHashMap();
Map<String, Object> maps=Maps.newHashMap();
Map<String, Object> maps1=Maps.newHashMap();
Map<String, Object> maps2=Maps.newHashMap();
List<Map<String, Object>> data=new ArrayList<>();
try{
List<String> bzgg=getPeopleTypeList(1);
List<String> tzzy=getPeopleTypeList(2);
List<PersonNum> list = mapper.getClassPeopleNum(person);
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;
maps.put("bzgg",teamNum);
maps1.put("ttzy",tzzyNum);
maps2.put("ptzy",ptsgNum);
data.add(maps);
data.add(maps1);
data.add(maps2);
redisService.set("allPeopleNum",allNUM+"");
String allPeopleNum=(String)redisService.get("allPeopleNum");
System.err.println(allPeopleNum);
map.put("data",data);
map.put("all",allNUM);
}catch (Exception e){
maps.put("bzgg",0);
maps1.put("ttzy",0);
maps2.put("ptzy",0);
data.add(maps);
data.add(maps1);
data.add(maps2);
map.put("data",data);
map.put("all",0);
log.error(e.toString(),e);
}
return map;
}
@Override
public PageInfo<DailyPlanHome> getNewDailPlanList(DailyPlanHome dailyPlanVo) {
if (StringUtils.isNotBlank(dailyPlanVo.getOrgId())) {
String[] buildCodeArr = dailyPlanVo.getOrgId().split(",");
List<String> buildCodeList = Arrays.asList(buildCodeArr);
dailyPlanVo.setOrgList(buildCodeList);
}
if("01".equals(dailyPlanVo.getPlanType())){//01 站班会
List<DailyPlanHome> list = mapper.getNewDailPlanList2(dailyPlanVo);
PageInfo<DailyPlanHome> pageInfo = new PageInfo<>(list);
return pageInfo;
}else{//02 日计划
List<DailyPlanHome> list = mapper.getNewDailPlanList1(dailyPlanVo);
if(ListHelper.isNotEmpty(list)){
//依据周计划查询施工信息
list.forEach(vo->{
WorkInfoVo workInfoVo=getWorkInfo(vo.getTicketId());
vo.setJobGx(workInfoVo.getWorkGx());
vo.setJobLx(workInfoVo.getWorkType());
vo.setWorkContent(workInfoVo.getWorkContent());
vo.setJobSite(workInfoVo.getWorkSite());
});
}
PageInfo<DailyPlanHome> pageInfo = new PageInfo<>(list);
return pageInfo;
}
}
/**
* 作业票施工内容信息查询
* 作业票统一查询 关联信息接口
* @param ticketId
* @return
*/
public WorkInfoVo getWorkInfo(String ticketId) {
WorkInfoVo vo=new WorkInfoVo();
try{
if (StringHelper.isEmpty(ticketId)) {
return vo;
}
List<WorkInfoVo> list=mapper.getWorkInfo(ticketId);
if(ListHelper.isEmpty(list)){
return vo;
}
StringBuffer workType=new StringBuffer();
StringBuffer workContent=new StringBuffer();
StringBuffer workGx=new StringBuffer();
StringBuffer workSite=new StringBuffer();
list.forEach(voi->{
getStringBuffer(workType,voi.getWorkType());
getStringBuffer(workContent,voi.getWorkContent());
getStringBuffer(workGx,voi.getWorkGx());
getStringBuffer(workSite,voi.getWorkSite());
});
vo.setWorkContent(workContent.toString());
vo.setWorkType(workType.toString());
vo.setWorkGx(workGx.toString());
vo.setWorkSite(workSite.toString());
}catch (Exception e){
log.error(e.toString(),e);
}
return vo;
}
private void getStringBuffer(StringBuffer str,String data){
if(StringHelper.isNotEmpty(data)){
if(StringHelper.isNotEmpty(str.toString())){
str.append(";");
}
str.append(data);
}
}
@Override
public PageInfo<DailyPlanVo> getDailPlanList(DailyPlanVo dailyPlanVo) {
if (StringUtils.isNotBlank(dailyPlanVo.getOrgId())) {
String[] buildCodeArr = dailyPlanVo.getOrgId().split(",");
List<String> buildCodeList = Arrays.asList(buildCodeArr);
dailyPlanVo.setOrgList(buildCodeList);
}
String workDay=DateTimeHelper.getNowDay();
if(StringHelper.isNotEmpty(dailyPlanVo.getDayTypeParam())){
if("2".equals(dailyPlanVo.getDayTypeParam())){
workDay=DateTimeHelper.getYesTodayt();//昨天
}else if("1".equals(dailyPlanVo.getDayTypeParam())){
workDay=DateTimeHelper.getQtDay();//前天
}
}
dailyPlanVo.setWorkTime(workDay);
List<DailyPlanVo> list = mapper.getDailPlanList(dailyPlanVo);
PageInfo<DailyPlanVo> pageInfo = new PageInfo<>(list);
return pageInfo;
}
/**
*
* @param dailyPlanVo
* @return
*/
public List<Map<String, Object>> getOrgNumAndRateByDailPlan(DailyPlanVo dailyPlanVo) {
String workDay=DateTimeHelper.getNowDay();
if(StringHelper.isNotEmpty(dailyPlanVo.getDayTypeParam())){
if("2".equals(dailyPlanVo.getDayTypeParam())){
workDay=DateTimeHelper.getYesTodayt();//昨天
}else if("1".equals(dailyPlanVo.getDayTypeParam())){
workDay=DateTimeHelper.getQtDay();//前天
}
}
dailyPlanVo.setWorkTime(workDay);
List<Map<String, Object>> list = mapper.getOrgNumAndRateByDailPlan(dailyPlanVo);
int totalNum = 0;
for (Map<String, Object> map : list) {
totalNum += Integer.parseInt(String.valueOf(map.get("num")));
}
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
for (Map<String, Object> map : list) {
if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) {
map.put("rate", "0.00%");
} else {
map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0));
}
}
return list;
}
}