IntelligentRecognition/ah-jjsp-service/.svn/pristine/0f/0ffd37a1ab8f5b1359a65095169...

979 lines
38 KiB
Plaintext
Raw Normal View History

2024-05-24 16:09:40 +08:00
package com.sercurityControl.proteam.controller;
import com.github.pagehelper.PageHelper;
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.core.utils.poi.ExcelUtil;
import com.securityControl.common.core.web.controller.BaseController;
import com.securityControl.common.core.web.domain.AjaxResult;
import com.securityControl.common.core.web.page.TableDataInfo;
import com.securityControl.common.log.annotation.Log;
import com.securityControl.common.log.enums.BusinessType;
import com.securityControl.common.log.enums.OperationType;
import com.sercurityControl.proteam.domain.*;
import com.sercurityControl.proteam.domain.dto.WeathQo;
import com.sercurityControl.proteam.domain.vo.DeviceVo;
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 com.sercurityControl.proteam.util.WordUtils;
import com.sun.jna.platform.win32.WinDef;
import io.swagger.models.auth.In;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.crypto.Data;
import java.util.*;
/**
* 综合首页接口
*
* @author ljl
*/
@RestController
@RequestMapping("/pot/home")
public class HomeController extends BaseController {
private static final Logger log = LoggerFactory.getLogger(HomeController.class);
@Autowired
private HomeDataService homeDataService;
/**
* 日计划-根据用户权限、日期获取工程类型为:全部、变电、线路的日计划总数、已执行总数和各个地市的计划总数和已执行数量
*
* @return
*/
@PostMapping(value = "getDayPlan")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "日计划")
public AjaxResult getDayPlan(DayPlanNum dayPlanNum) {
DayPlanNum res = homeDataService.getDayPlan(dayPlanNum);
if (res != null) {
return success(res);
} else {
return success(null);
}
}
/**
* 周风险-根据用户信息和时间获取本周和下周的二级、三级风险数量
*
* @return
*/
@PostMapping(value = "getWeekRiskNum")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "周风险")
public AjaxResult getWeekRiskNum(WeekRiskData weekRiskData) {
Map<String, Object> map = homeDataService.getWeekRiskNum(weekRiskData);
if (map != null) {
return success(map);
} else {
return success(null);
}
}
/**
* 周风险-周计划列表-根据用户信息和筛选条件获取周计划列表
*
* @return
*/
@PostMapping(value = "getWeekPlanList")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "周计划列表")
public Map<String, Object> getWeekPlanList(WeekRiskData weekRiskData) {
PageHelper.startPage(Integer.parseInt(weekRiskData.getPage()), Integer.parseInt(weekRiskData.getLimit()));
Map<String, Object> map = new HashMap<String, Object>(16);
try {
PageInfo<WeekRiskData> pageInfo = homeDataService.getWeekPlanList(weekRiskData);
map.put("code", 200);
map.put("msg", "获取数据成功");
map.put("count", pageInfo.getTotal());
map.put("curr", Integer.parseInt(weekRiskData.getPage()));
map.put("limit", Integer.parseInt(weekRiskData.getLimit()));
map.put("data", pageInfo.getList());
} catch (Exception e) {
log.error(e.toString(),e);
map.put("code", 500);
map.put("msg", "获取数据失败");
map.put("count", 0);
map.put("curr", Integer.parseInt(weekRiskData.getPage()));
map.put("limit", Integer.parseInt(weekRiskData.getLimit()));
map.put("data", null);
}
return map;
}
/**
* 电子地图-风险分布图-根据用户信息获取当天的风险分布情况
*
* @return
*/
@PostMapping(value = "getRiskMap")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "电子地图-风险分布图")
public AjaxResult getRiskMap(RiskMapData riskMapData) {
List<RiskMapData> res = homeDataService.getRiskMap(riskMapData);
if (res != null && res.size() > 0) {
return success(res);
} else {
return success(null);
}
}
/**
* 电子地图-天气分布情况-根据用户信息获取当前的天气分布情况
*
* @return
*/
@PostMapping(value = "getWeatherMap")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "电子地图-天气分布情况")
public AjaxResult getWeatherMap() {
List<WeatherMapData> res = homeDataService.getWeatherMap();
if (res != null && res.size() > 0) {
return success(res);
} else {
return success(null);
}
}
/**
* 电子地图-天气预警-根据用户信息获取当天的天气预警情况(恶劣天气)
*
* @return
*/
@PostMapping(value = "getWeatherAlert")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "电子地图-天气预警")
public AjaxResult getWeatherAlert(String orgId, String currentDay) {
List<String> res = homeDataService.getWeatherAlert(currentDay, orgId);
if (res != null && res.size() > 0) {
return success(res);
} else {
return success(null);
}
}
/**
* 电子地图-天气预警-根据用户信息获取当天的天气预警情况(恶劣天气)列表
*
* @return
*/
@PostMapping(value = "getWeatherAlertPlus")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "电子地图-根据用户信息获取当天的天气预警情况")
public TableDataInfo getWeatherAlertPlus(@RequestBody WeathQo weathQo) {
startPage();
List<Map<String, String>> res = homeDataService.getWeatherAlertPlus(weathQo);
return getDataTable(res);
}
/**
* - *
*
* @return
*/
@PostMapping(value = "getTicketNumByType")
public AjaxResult getTicketNumByType(TicketTypeNum ticketTypeNum) {
Map<String, Object> res = homeDataService.getTicketNumByType(ticketTypeNum);
if (res != null) {
return success(res);
} else {
return success(null);
}
}
/**
* 作业票-作业票地市对比图-根据用户信息和日期获取各个地市的A票、B票的作业票数量
*
* @return
*/
@PostMapping(value = "getTicketNumByCicty")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "作业票-作业票地市对比图")
public AjaxResult getTicketNumByCicty(TicketCityNum ticketTypeNum) {
List<Map<String, Object>> listMap = new ArrayList<>();
Map<String, Object> res = Maps.newHashMap();
Map<String, Object> res2 = Maps.newHashMap();
try {
ticketTypeNum.setTicketType("B");
res = homeDataService.getTicketNumByCicty(ticketTypeNum);
ticketTypeNum.setTicketType("A");
res2 = homeDataService.getTicketNumByCicty(ticketTypeNum);
listMap.add(res);
listMap.add(res2);
return AjaxResult.success("获取成功", listMap);
} catch (Exception e) {
log.error(e.toString(), e);
return AjaxResult.error("服务异常请稍后重试");
}
}
/**
* 作业票-作业票信息列表-根据用户信息和筛选条件查询作业票列表
*
* @return
*/
@PostMapping(value = "getTicketList")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "作业票-作业票信息列表")
public Map<String, Object> getTicketList(TicketData ticketData) {
PageHelper.startPage(Integer.parseInt(ticketData.getPage()), Integer.parseInt(ticketData.getLimit()));
Map<String, Object> map = new HashMap<String, Object>(16);
try {
PageInfo<TicketData> pageInfo = homeDataService.getTicketList(ticketData);
map.put("code", 200);
map.put("msg", "获取数据成功");
map.put("count", pageInfo.getTotal());
map.put("curr", Integer.parseInt(ticketData.getPage()));
map.put("limit", Integer.parseInt(ticketData.getLimit()));
map.put("data", pageInfo.getList());
} catch (Exception e) {
log.error(e.toString(), e);
map.put("code", 200);
map.put("msg", "获取数据失败");
map.put("count", 0);
map.put("curr", Integer.parseInt(ticketData.getPage()));
map.put("limit", Integer.parseInt(ticketData.getLimit()));
map.put("data", null);
}
return map;
}
@Autowired
private HomeDataMapper mapper;
@GetMapping("exportTicket")
public void exportTicket(HttpServletResponse response, 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);
ExcelUtil<TicketData> util = new ExcelUtil<TicketData>(TicketData.class);
util.exportExcel(response, list, "作业票");
}
/**
* 人员统计-今日考勤统计-根据用户信息获取班组骨干、特种作业、普通施工人员类型的今日考勤数量
*
* @return
*/
@PostMapping(value = "getDayAttendanceNum")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "人员统计-今日考勤统计")
public AjaxResult getDayAttendanceNum() {
String currentDay = DateTimeHelper.getNowDate();
List<Map<String, Object>> list = new ArrayList<>();
try {
Map<String, Object> res = homeDataService.getDayAttendanceNum(currentDay);
Map<String, Object> res2 = homeDataService.getRealTimeNum(currentDay);
list.add(res);
list.add(res2);
} catch (Exception e) {
log.error(e.toString(), e);
}
if (ListHelper.isNotEmpty(list)) {
return success(list);
}
return success(null);
}
/**
* 人员统计-实时在场人员统计-根据用户信息获取今日实时在场的人员统计数量
*
* @return
*/
@PostMapping(value = "getRealTimeNum")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "人员统计-实时在场人员统计")
public AjaxResult getRealTimeNum() {
String currentDay = DateTimeHelper.getNowDate();
Map<String, Object> res = homeDataService.getRealTimeNum(currentDay);
if (res != null) {
return success(res);
} else {
return success(null);
}
}
/**
* 人员统计-站班会人员统计
*
* @return
*/
@PostMapping(value = "getClassPeopleNum")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "人员统计-站班会人员统计")
public AjaxResult getClassPeopleNum(PersonNum personNum) {
if(StringHelper.isEmpty(personNum.getCurrentDay())){
personNum.setCurrentDay(DateTimeHelper.getNowDate());
}
Map<String, Object> res = homeDataService.getClassPeopleNum(personNum);
if (res != null) {
return success(res);
} else {
return success(null);
}
}
/**
* 人员统计-人员列表-根据用户信息获取人员列表信息
*
* @return
*/
@PostMapping(value = "getPersonList")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "人员统计-人员列表")
public Map<String, Object> getPersonList(PersonData personData) {
PageHelper.startPage(Integer.parseInt(personData.getPage()), Integer.parseInt(personData.getLimit()));
Map<String, Object> map = new HashMap<String, Object>(16);
try {
PageInfo<PersonData> pageInfo = homeDataService.getPersonList(personData);
map.put("code", 200);
map.put("msg", "获取数据成功");
map.put("count", pageInfo.getTotal());
map.put("curr", Integer.parseInt(personData.getPage()));
map.put("limit", Integer.parseInt(personData.getLimit()));
map.put("data", pageInfo.getList());
} catch (Exception e) {
log.error(e.toString(), e);
map.put("code", 200);
map.put("msg", "获取数据失败");
map.put("count", 0);
map.put("curr", Integer.parseInt(personData.getPage()));
map.put("limit", Integer.parseInt(personData.getLimit()));
map.put("data", null);
}
return map;
}
/**
* 根据日期获取各地市风险等级数量
*
* @param orgId
* @param dateType
* @return
*/
@PostMapping(value = "getRiskByDate")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "根据日期获取各地市风险等级数量")
public AjaxResult getRiskByDate(String orgId, String dateType) {
Map<String, Object> list = homeDataService.getRiskByDate(orgId, dateType);
if (list != null && list.size() > 0) {
return success(list);
} else {
return success(null);
}
}
/**
* @return com.securityControl.common.core.web.domain.AjaxResult
* @author cw chen
* @description 日计划
* @Param proType
* @Param dayType
* @date 2023-01-10 14:06
*/
@PostMapping(value = "getDayPlanNum")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "获取日计划数量")
public AjaxResult getDayPlanNum(String proType, String dayType) {
try {
// Map<String, Object> map = homeDataService.getDayPlanNum(proType, dayType);
Map<String, Object> map = homeDataService.getNewDayPlanNum(proType, dayType);
return AjaxResult.success("success", map);
} catch (Exception e) {
log.error("日计划", e);
return AjaxResult.success("error", null);
}
}
/**
* @return com.securityControl.common.core.web.domain.AjaxResult
* @author cw chen
* @description 地市-人员统计
* @Param orgId
* @date 2023-01-10 14:06
*/
@PostMapping(value = "getAttendanceNum")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "人员统计")
public AjaxResult getAttendanceNum(String orgId) {
try {
Map<String, Object> map = homeDataService.getAttendanceNum(orgId);
return AjaxResult.success("success", map);
} catch (Exception e) {
log.error("地市-人员统计", e);
return AjaxResult.success("error", null);
}
}
/**
* @return com.securityControl.common.core.web.domain.AjaxResult
* @author cw chen
* @description 地市工程数量和占比
* @Param proData
* @date 2023-01-30 11:26
*/
@PostMapping(value = "getOrgNumAndRateByPro")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "地市工程数量和占比")
public AjaxResult getOrgNumAndRateByPro(ProData proData) {
try {
List<Map<String, Object>> list = homeDataService.getOrgNumAndRateByPro(proData);
return AjaxResult.success(list);
} catch (Exception e) {
e.printStackTrace();
logger.error("地市工程数量和占比", e);
return AjaxResult.success(null);
}
}
@PostMapping(value = "getOrgNumAndRateByProNew")
// @Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "地市工程数量和占比")
public AjaxResult getOrgNumAndRateByProNew(ProData proData) {
try {
List<Map<String, Object>> list = homeDataService.getOrgNumAndRateByProNew(proData);
return AjaxResult.success(list);
} catch (Exception e) {
e.printStackTrace();
logger.error("地市工程数量和占比", e);
return AjaxResult.success(null);
}
}
/**
* @return com.securityControl.common.core.web.domain.AjaxResult
* @author cw chen
* @description 地市周风险数量和占比
* @Param weekRiskData
* @date 2023-01-31 9:24
*/
@PostMapping(value = "getOrgNumAndRateByWeek")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "地市周风险数量和占比")
public AjaxResult getOrgNumAndRateByWeek(WeekRiskData weekRiskData) {
try {
Map<String, Object> map = homeDataService.getOrgNumAndRateByWeek(weekRiskData);
return AjaxResult.success(map);
} catch (Exception e) {
e.printStackTrace();
logger.error("地市周风险数量和占比", e);
return AjaxResult.success(null);
}
}
/**
* @return com.securityControl.common.core.web.domain.AjaxResult
* @author cw chen
* @description 地市周风险数量和占比-二级页面
* @Param weekRiskData
* @date 2023-01-31 15:11
*/
@PostMapping(value = "getOrgNumAndRateByWeekChild")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "地市周风险数量和占比二级页面")
public AjaxResult getOrgNumAndRateByWeekChild(WeekRiskData weekRiskData) {
try {
List<Map<String, Object>> list = homeDataService.getOrgNumAndRateByWeekChild(weekRiskData);
return AjaxResult.success(list);
} catch (Exception e) {
e.printStackTrace();
logger.error("地市周风险数量和占比-二级页面", e);
return AjaxResult.success(null);
}
}
/**
* @return com.securityControl.common.core.web.domain.AjaxResult
* @author cw chen
* @description 地市作业票数量和占比-二级页面
* @Param ticketData
* @date 2023-02-01 9:21
*/
@PostMapping(value = "getOrgNumAndRateByTicket")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "地市作业票数量和占比二级页面")
public AjaxResult getOrgNumAndRateByTicket(TicketData ticketData) {
try {
List<Map<String, Object>> list = homeDataService.getOrgNumAndRateByTicket(ticketData);
return AjaxResult.success(list);
} catch (Exception e) {
e.printStackTrace();
logger.error("地市作业票数量和占比-二级页面", e);
return AjaxResult.success(null);
}
}
/**
* @return com.securityControl.common.core.web.domain.AjaxResult
* @author cw chen
* @description 根据工程类型和地市编码获取在建工程、在施工程、停工工程数量
* @Param proType
* @Param orgId
* @date 2023-03-02 15:54
*/
@PostMapping(value = "getProNumByType")
public AjaxResult getProNumByType(String proType, String orgId) {
try {
Map<String, Object> map = homeDataService.getProNumByType(proType, orgId);
return AjaxResult.success("获取成功", map);
} catch (Exception e) {
e.printStackTrace();
logger.error("根据工程类型获取在建工程、在施工程、停工工程error", e);
return AjaxResult.error("服务异常,请稍后重试");
}
}
/**
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author cw chen
* @description 获取在建、在施、停工数据列表
* @Param proData
* @date 2023-03-02 16:58
*/
@PostMapping(value = "getProListByType")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "工程列表")
public Map<String, Object> getProListByType(ProData proData) {
Map<String, Object> map = new HashMap<String, Object>(16);
try {
PageHelper.startPage(Integer.parseInt(proData.getPage()), Integer.parseInt(proData.getLimit()));
PageInfo<ProData> pageInfo = homeDataService.getProListByType(proData);
map.put("code", 200);
map.put("msg", "获取数据成功");
map.put("count", pageInfo.getTotal());
map.put("curr", Integer.parseInt(proData.getPage()));
map.put("limit", Integer.parseInt(proData.getLimit()));
map.put("data", pageInfo.getList());
} catch (Exception e) {
map.put("code", 500);
map.put("msg", "服务异常请稍后重试");
map.put("count", 0);
map.put("curr", Integer.parseInt(proData.getPage()));
map.put("limit", Integer.parseInt(proData.getLimit()));
map.put("data", null);
}
return map;
}
/**
* 站班会数据统计
*
* @return
*/
@PostMapping(value = "getClassMettingData")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "站班会统计")
public AjaxResult getClassMettingData(ClassMettingStaVo vo) {
return success(homeDataService.getClassMettingData(vo));
}
/**
* 站班会数据统计
*
* @return
*/
@PostMapping(value = "getClassMettingList")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "站班会详情")
public Map<String, Object> getClassMettingList(ClassMettingStaVo vo) {
Map<String, Object> map = new HashMap<String, Object>(16);
try {
PageHelper.startPage(Integer.parseInt(vo.getPage()), Integer.parseInt(vo.getLimit()));
PageInfo<ProData> pageInfo = homeDataService.getClassMettingList(vo);
map.put("code", 200);
map.put("msg", "获取数据成功");
map.put("count", pageInfo.getTotal());
map.put("curr", Integer.parseInt(vo.getPage()));
map.put("limit", Integer.parseInt(vo.getLimit()));
map.put("data", pageInfo.getList());
} catch (Exception e) {
map.put("code", 500);
map.put("msg", "服务异常请稍后重试");
map.put("count", 0);
map.put("curr", Integer.parseInt(vo.getPage()));
map.put("limit", Integer.parseInt(vo.getLimit()));
map.put("data", null);
}
return map;
}
/**
* @return com.securityControl.common.core.web.domain.AjaxResult
* @author cw chen
* @description 地市站班会数量和占比-二级页面
* @Param vo
* @date 2023-03-07 10:58
*/
@PostMapping(value = "getOrgNumAndRateByClass")
public AjaxResult getOrgNumAndRateByClass(ClassMettingStaVo vo) {
try {
List<Map<String, Object>> list = homeDataService.getOrgNumAndRateByClass(vo);
return AjaxResult.success(list);
} catch (Exception e) {
e.printStackTrace();
logger.error("地市站班会数量和占比-二级页面", e);
return AjaxResult.success(null);
}
}
@PostMapping(value = "getOrgNumAndRateByDailPlan")
@Log(title = "综合展示", menu = "日计划详情", businessType = BusinessType.QUERY, details = "日计划组织机构占比-二级页面")
public AjaxResult getOrgNumAndRateByDailPlan(DailyPlanVo dailyPlanVo) {
try {
List<Map<String, Object>> list = homeDataService.getOrgNumAndRateByDailPlan(dailyPlanVo);
return AjaxResult.success(list);
} catch (Exception e) {
e.printStackTrace();
logger.error("日计划组织机构占比-二级页面", e);
return AjaxResult.success(null);
}
}
@PostMapping(value = "getDailPlanList")
@Log(title = "综合展示", menu = "综合展示", businessType = BusinessType.QUERY, details = "日计划-日计划详情")
public Map<String, Object> getDailPlanList(DailyPlanHome dailyPlanVo) {
PageHelper.startPage(dailyPlanVo.getPage(), dailyPlanVo.getLimit());
Map<String, Object> map = new HashMap<String, Object>(16);
try {
PageInfo<DailyPlanHome> pageInfo = homeDataService.getNewDailPlanList(dailyPlanVo);
// PageInfo<DailyPlanVo> pageInfo = homeDataService.getDailPlanList(dailyPlanVo);
map.put("code", 200);
map.put("msg", "获取数据成功");
map.put("count", pageInfo.getTotal());
map.put("curr",dailyPlanVo.getPage());
map.put("limit", dailyPlanVo.getLimit());
map.put("data", pageInfo.getList());
} catch (Exception e) {
log.error(e.toString(), e);
map.put("code", 200);
map.put("msg", "获取数据失败");
map.put("count", 0);
map.put("curr", dailyPlanVo.getPage());
map.put("limit", dailyPlanVo.getLimit());
map.put("data", null);
}
return map;
}
@PostMapping("getWeekTime")
public AjaxResult getWeekTime(String time){
Map<String, Object> map = new HashMap<String, Object>(16);
try{
if(StringHelper.isEmpty(time)){
time=DateTimeHelper.getNowDay();
}
int nowWeek= DateTimeHelper.getNowWeeks(time);//周开始
String startWeek=DateTimeHelper.getWeekStartOrEndTime(time,true);//本周开始时间
String endWeek= DateTimeHelper.getWeekStartOrEndTime(time,false);//本周结束时间
map.put("year",time.split("-")[0]);
map.put("week",nowWeek);
map.put("startWeek",Integer.parseInt(startWeek.split("-")[1])+"月"+Integer.parseInt(startWeek.split("-")[2])+"日");
map.put("endWeek",Integer.parseInt(endWeek.split("-")[1])+"月"+Integer.parseInt(endWeek.split("-")[2])+"日");
return AjaxResult.success(map);
}catch (Exception e){
log.error(e.toString(), e);
}
return AjaxResult.error("错误");
}
/**
* 获取地市违章信息
* @param orgId
* @return
*/
@PostMapping("getWzXx")
public AjaxResult getWzXx(String orgId){
try{
Integer num= homeDataService.getWzXx(orgId);
return AjaxResult.success(num);
}catch (Exception e){
log.error(e.toString(), e);
}
return AjaxResult.success(0);
}
/**
* 查询杆塔集合
* @param
* @return
*/
@PostMapping("getGtList")
public AjaxResult getGtList(TowerVo params ){
try{
List<TowerVo> list= homeDataService.getGtList(params);
return AjaxResult.success(list);
}catch (Exception e){
log.error(e.toString(), e);
}
return AjaxResult.success(0);
}
/**
* 获取地市违章信息
* @param orgId
* @return
*/
@PostMapping("getIsBg")
public AjaxResult getIsBg(String orgId){
try{
Integer num= homeDataService.getIsBg(orgId);
return AjaxResult.success(num);
}catch (Exception e){
log.error(e.toString(), e);
}
return AjaxResult.success(0);
}
/**
* 导出周风险
*/
@GetMapping("downWeekPlan")
public void downWeekPlan(HttpServletRequest request, HttpServletResponse response, String time) {
try{
if(StringHelper.isEmpty(time)){
time=DateTimeHelper.getNowDay();
}
Map<String, Object> maps = new HashMap<>(16);
int nowWeek= DateTimeHelper.getNowWeeks(time);//周开始
int lastWeek=nowWeek-1;//上周
maps.put("nowWeek",nowWeek);
maps.put("lastWeek",lastWeek);
String startWeek=DateTimeHelper.getWeekStartOrEndTime(time,true);//本周开始时间
String endWeek= DateTimeHelper.getWeekStartOrEndTime(time,false);//本周结束时间
maps.put("startWeek",startWeek);
maps.put("endWeek",endWeek);
String lastTime=DateTimeHelper.getDayADDorReduce(time,-7);//获取上周时间
String lastStartWeek=DateTimeHelper.getWeekStartOrEndTime(lastTime,true);//上周开始时间
String lastEndWeek=DateTimeHelper.getWeekStartOrEndTime(lastTime,false);//上周结束时间
Map<String,Object> map=homeDataService.getWeekRiskNumByWeekTime(startWeek,endWeek);//
Map<String,Object> map2=homeDataService.getWeekRiskNumByWeekTime(lastStartWeek,lastEndWeek);//
map.replaceAll((k, v) -> String.valueOf(v));
//本周
maps.put("plan",map.get("planNum"));
maps.put("twoPlan",map.get("twoRisk"));
maps.put("threePlan",map.get("threeRisk"));
maps.put("forePlan",map.get("foureRisk"));
//上周
maps.put("lPlan",map2.get("planNum"));
maps.put("ltwoPlan",map2.get("twoRisk"));
maps.put("lthreePlan",map2.get("threeRisk"));
maps.put("lforePlan",map2.get("foureRisk"));
//环比
map.get("planNum").toString();
maps.put("palnhb",getHBValue(map2.get("planNum").toString(),map.get("planNum").toString()));
maps.put("twoPlanhb",getHBValue(map2.get("twoRisk").toString(),map.get("twoRisk").toString()));
maps.put("threePlanhb",getHBValue(map2.get("threeRisk").toString(),map.get("threeRisk").toString()));
maps.put("forePlanhb",getHBValue(map2.get("foureRisk").toString(),map.get("foureRisk").toString()));
List<Map<String, Object>> list5=getRiskTableData(startWeek,endWeek,lastStartWeek,lastEndWeek,"三级");
maps.put("table1",list5);
List<Map<String, Object>> list6=getRiskTableData(startWeek,endWeek,lastStartWeek,lastEndWeek,"二级");
maps.put("table2",list6);
List<Map<String, Object>> list7=getNexWeekPro(startWeek,endWeek,"二级");//风险等级
maps.put("list1",list7);
WordUtils.exportMillCertificateWord(request, response, maps, "周计划", "weekWord.ftl");
}catch (Exception e){
log.error(e.toString(),e);
}
}
/**
* 日计划导出功能
* @param request
* @param response
* @param time
*/
@GetMapping("downDayPlan")
public void exportDayPlan(HttpServletRequest request, HttpServletResponse response, String time){
try{
Map<String, Object> maps = new HashMap<>(16);
List<Map<String, Object>> list=new ArrayList<>();
if(StringHelper.isEmpty(time)){
time=DateTimeHelper.getNowDay();
}
//本周开始时间
String startWeek=DateTimeHelper.getWeekStartOrEndTime(time,true);
for (int i = 0; i < 7; i++) {
//时间叠加
String lastTime=DateTimeHelper.getDayADDorReduce(startWeek,i);
//获取到户数
Map<String,Object> map=homeDataService.getAllRiskLevelNum(lastTime);
map.replaceAll((k, v) -> String.valueOf(v));
String[] times=lastTime.split("-");
String date=Integer.parseInt(times[1])+"."+Integer.parseInt(times[2])+"("+getWeekDate(i)+")";
Map<String,Object> riskMap=Maps.newHashMap();
riskMap.put("date",date);
riskMap.put("twoRisk",map.get("twoRisk").toString());
riskMap.put("threeRisk",map.get("threeRisk").toString());
riskMap.put("fourRisk",map.get("foureRisk").toString());
riskMap.put("allNum",map.get("planNum").toString());
list.add(riskMap);
}
maps.put("list",list);
WordUtils.exportMillCertificateWord(request, response, maps, "日计划", "dayPlan.ftl");
}catch (Exception e){
log.error(e.toString(),e);
}
}
public String getWeekDate(int i){
switch (i) {
case 0:
return "周一";
case 1:
return "周二";
case 2:
return "周三";
case 3:
return "周四";
case 4:
return "周五";
case 5:
return "周六";
case 6:
return "周日";
}
return i+1+"";
}
/**
* 依据风险和 日期获取下周风险工程
* @return
*/
public List<Map<String, Object>> getNexWeekPro(String startWeek,String endWeek,String riskLevel){
List<Map<String, Object>> list5 =new ArrayList<>();
try{
List<WeekPlanVo> list=homeDataService.getNexWeekPro(startWeek,endWeek,riskLevel);
if(ListHelper.isEmpty(list)){
WeekPlanVo vo=new WeekPlanVo();
vo.setCityName("下周暂无二级风险施工");
vo.setProName("下周暂无二级风险施工");
vo.setWorkContent("下周暂无二级风险施工");
vo.setWorkType("无");
}
int i=1;
for (WeekPlanVo weekPlanVo:list) {
Map<String,Object> twoRiskMap=Maps.newHashMap();
twoRiskMap.put("index",i);
twoRiskMap.put("cityName",weekPlanVo.getCityName());
twoRiskMap.put("proName",weekPlanVo.getProName());
twoRiskMap.put("workType",weekPlanVo.getWorkType());
twoRiskMap.put("workContent",weekPlanVo.getWorkContent());//环比
i++;
list5.add(twoRiskMap);
}
}catch (Exception e){
log.error(e.toString(),e);
}
return list5;
}
public List<Map<String, Object>> getRiskTableData(String startWeek, String endWeek,String lastStartWeek,String lastEndWeek, String riskLevel){
List<Map<String, Object>> list5 =new ArrayList<>();
try{
List<MapsValueVo> riskList=homeDataService.getWeekRiskByRiskLevel(startWeek,endWeek,riskLevel);//
//上周的二级统计
List<MapsValueVo> riskList2=homeDataService.getWeekRiskByRiskLevel(lastStartWeek,lastEndWeek,riskLevel);
if(ListHelper.isEmpty(riskList)){
MapsValueVo mapsValueVo=new MapsValueVo();
mapsValueVo.setName("合计");
mapsValueVo.setNum("0");
riskList.add(mapsValueVo);
}
int i=1;
for (MapsValueVo mapsValueVo: riskList) {
MapsValueVo vo=getLastMapValue(riskList2,mapsValueVo.getName());//获取上周数量
Map<String,Object> twoRiskMap=Maps.newHashMap();
twoRiskMap.put("index",i);
twoRiskMap.put("name",mapsValueVo.getName());
twoRiskMap.put("lastNum",vo.getNum());
twoRiskMap.put("num",mapsValueVo.getNum());
twoRiskMap.put("hb",getHBValue(vo.getNum(),mapsValueVo.getNum()));//环比
i++;
list5.add(twoRiskMap);
}
}catch (Exception e){
log.error(e.toString(),e);
}
return list5;
}
/**
* 获取上周数据
* @return
*/
public MapsValueVo getLastMapValue(List<MapsValueVo> list,String key){
MapsValueVo mapsValueVo=new MapsValueVo();
try{
for (MapsValueVo maps:list) {
if(key.equals(maps.getName())){
return maps;
}
}
mapsValueVo.setName(key);
mapsValueVo.setNum("0");
}catch (Exception e){
mapsValueVo.setName(key);
mapsValueVo.setNum("0");
log.error(e.toString(),e);
}
return mapsValueVo;
}
/**
* 导出日计划
*/
public String getHBValue(String value,String value1){
try{
Double num=Double.parseDouble(value);
Double num1=Double.parseDouble(value1);
if(num==0.0 && num1!=0.0){
return "100%";
}
Double values=(num1-num)*100/num;
Double result = Math.round (values * 10) / 10.0;
if(result==0.0){
return "0";
}
return result.toString()+"%";
}catch (Exception e){
log.error(e.toString(),e);
}
return "0";
}
}