|
@@ -1,11 +1,18 @@
|
|
|
package com.metro.service.impl;
|
|
|
|
|
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.metro.entity.excel.PoliceStationWarFruitExcel;
|
|
|
+import com.metro.entity.excel.PoliceWarFruitExcel;
|
|
|
import com.metro.entity.po.Company;
|
|
|
import com.metro.entity.search.PoliceSearch;
|
|
|
-import com.metro.entity.vo.*;
|
|
|
+import com.metro.entity.search.WarFruitSearch;
|
|
|
+import com.metro.entity.vo.DataShowTopVO;
|
|
|
+import com.metro.entity.vo.JPersonVO;
|
|
|
+import com.metro.entity.vo.WarFruitTopVO;
|
|
|
+import com.metro.entity.vo.WarFruitVO;
|
|
|
import com.metro.mapper.CompanysMapper;
|
|
|
import com.metro.mapper.DataShowMapper;
|
|
|
import com.metro.mapper.WarFruitMapper;
|
|
@@ -13,10 +20,15 @@ import com.metro.restful.ServiceException;
|
|
|
import com.metro.service.CompanyService;
|
|
|
import com.metro.service.JPersonsService;
|
|
|
import com.metro.service.WarFruitService;
|
|
|
+import com.metro.utils.StringUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.net.URLEncoder;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -42,14 +54,15 @@ public class WarFruitServiceImpl implements WarFruitService {
|
|
|
@Resource
|
|
|
private DataShowMapper dataShowMapper;
|
|
|
@Override
|
|
|
- public WarFruitTopVO polliceOfficeTop10() {
|
|
|
+ public WarFruitTopVO polliceOfficeTop10(WarFruitSearch warFruitSearch) {
|
|
|
JPersonVO jPersonVO = this.rootTrue();
|
|
|
if(jPersonVO.getType() == 2)throw new ServiceException("没有权限");
|
|
|
- List<DataShowTopVO> dataShowList = dataShowMapper.polliceOfficeTop10();
|
|
|
+ warFruitSearch.setLimitNumber(10);
|
|
|
+ List<DataShowTopVO> dataShowList = dataShowMapper.polliceOfficeTop10(warFruitSearch);
|
|
|
Map<String, Company> companyMap = companyService.getCompanyMapByList(dataShowList, DataShowTopVO::getCompanyId);
|
|
|
List<String> siteList = new ArrayList<>();//横坐标
|
|
|
List<Integer> numberList = new ArrayList<>();//盘查人数
|
|
|
- List<Integer> doubtList = new ArrayList<>();//异常人数
|
|
|
+ List<Integer> doubtList = new ArrayList<>();//存疑人数
|
|
|
List<Integer> arrestList = new ArrayList<>();//抓捕人数
|
|
|
for (DataShowTopVO dataShowTopVO : dataShowList) {
|
|
|
siteList.add(companyMap.get(dataShowTopVO.getCompanyId()) == null?"" : companyMap.get(dataShowTopVO.getCompanyId()).getCompanyName());
|
|
@@ -60,7 +73,7 @@ public class WarFruitServiceImpl implements WarFruitService {
|
|
|
Integer totalArrestNumber = dataShowTopVO.getTotalArrestNumber() == null ? 0 : dataShowTopVO.getTotalArrestNumber();
|
|
|
Integer todayArrestNumber = dataShowTopVO.getTodayArrestNumber() == null ? 0 : dataShowTopVO.getTodayArrestNumber();
|
|
|
numberList.add(totalNumber + todayNumber);//之前盘查 + 今日
|
|
|
- doubtList.add(totalDoubtNumber + todayDoubtNumber);//之前异常 + 今日
|
|
|
+ doubtList.add(totalDoubtNumber + todayDoubtNumber);//之前存疑 + 今日
|
|
|
arrestList.add(totalArrestNumber + todayArrestNumber);//之前抓捕 + 今日
|
|
|
}
|
|
|
WarFruitTopVO warFruitTopVO = new WarFruitTopVO();
|
|
@@ -73,31 +86,33 @@ public class WarFruitServiceImpl implements WarFruitService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public WarFruitTopVO policeTop10() {
|
|
|
+ public WarFruitTopVO policeTop10(WarFruitSearch warFruitSearch) {
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
JPersonVO jPersonVO = this.rootTrue();
|
|
|
PoliceSearch policeSearch = new PoliceSearch();
|
|
|
policeSearch.setPageNum(0);
|
|
|
policeSearch.setPageSize(10);
|
|
|
+ policeSearch.setStartTime(warFruitSearch.getStartTime() == null?null:sdf.format(warFruitSearch.getStartTime()));
|
|
|
+ policeSearch.setEndTime(warFruitSearch.getEndTime() == null?null:sdf.format(warFruitSearch.getStartTime()));
|
|
|
policeSearch.setCompanyId(jPersonVO.getCompanyId() !=null ? jPersonVO.getCompanyId() : null);
|
|
|
policeSearch.setBranchId(jPersonVO.getBranchId() !=null ? jPersonVO.getBranchId() : null);
|
|
|
+ /*如果是一级账号的话 可以传入派出所*/
|
|
|
+ if(jPersonVO.getType() == 1 && StringUtils.isNotEmpty(warFruitSearch.getCompanyId())){
|
|
|
+ policeSearch.setCompanyId(warFruitSearch.getCompanyId());
|
|
|
+ }
|
|
|
+
|
|
|
Page<WarFruitVO> page = new Page<>(policeSearch.getPageNum(),policeSearch.getPageSize());
|
|
|
IPage<WarFruitVO> pageList =warFruitMapper.policePageList(page,policeSearch);
|
|
|
List<WarFruitVO> list = pageList.getRecords();
|
|
|
List<String> siteList = new ArrayList<>();//横坐标
|
|
|
List<Integer> numberList = new ArrayList<>();//盘查人数
|
|
|
- List<Integer> doubtList = new ArrayList<>();//异常人数
|
|
|
+ List<Integer> doubtList = new ArrayList<>();//存起人数
|
|
|
List<Integer> arrestList = new ArrayList<>();//抓捕人数
|
|
|
for (WarFruitVO warFruitVO : list) {
|
|
|
siteList.add(warFruitVO.getXm() != null ?warFruitVO.getXm() :"");
|
|
|
- Integer totalNumber = warFruitVO.getTotalNumber() == null ? 0 : warFruitVO.getTotalNumber();
|
|
|
- Integer todayNumber = warFruitVO.getTodayNumber() == null ? 0 : warFruitVO.getTodayNumber();
|
|
|
- Integer totalDoubtNumber = warFruitVO.getTotalDoubtNumber() == null ? 0 : warFruitVO.getTotalDoubtNumber();
|
|
|
- Integer todayDoubtNumber = warFruitVO.getTodayDoubtNumber() == null ? 0 : warFruitVO.getTodayDoubtNumber();
|
|
|
- Integer totalArrestNumber = warFruitVO.getTotalArrestNumber() == null ? 0 : warFruitVO.getTotalArrestNumber();
|
|
|
- Integer todayArrestNumber = warFruitVO.getTodayArrestNumber() == null ? 0 : warFruitVO.getTodayArrestNumber();
|
|
|
- numberList.add(totalNumber + todayNumber);//之前盘查 + 今日
|
|
|
- doubtList.add(totalDoubtNumber + todayDoubtNumber);//之前异常 + 今日
|
|
|
- arrestList.add(totalArrestNumber + todayArrestNumber);//之前抓捕 + 今日
|
|
|
+ numberList.add(warFruitVO.getNumber());//盘查
|
|
|
+ doubtList.add(warFruitVO.getDoubtNumber());//存疑
|
|
|
+ arrestList.add(warFruitVO.getArrestNumber());//抓捕
|
|
|
}
|
|
|
WarFruitTopVO warFruitTopVO = new WarFruitTopVO();
|
|
|
warFruitTopVO.setSiteList(siteList);
|
|
@@ -109,27 +124,94 @@ public class WarFruitServiceImpl implements WarFruitService {
|
|
|
|
|
|
@Override
|
|
|
public IPage<WarFruitVO> policePageList(PoliceSearch policeSearch) {
|
|
|
- JPersonVO jPersonVO = jPersonsService.getUserInfo();
|
|
|
+ return this.policePageListType(policeSearch,1);
|
|
|
+ }
|
|
|
+ private IPage<WarFruitVO> policePageListType(PoliceSearch policeSearch ,Integer type){
|
|
|
+ JPersonVO jPersonVO = jPersonsService.getUserInfo();
|
|
|
if(jPersonVO.getType() == 3)policeSearch.setCardId(jPersonVO.getCardId());
|
|
|
- policeSearch.setCompanyId(jPersonVO.getCompanyId() !=null ? jPersonVO.getCompanyId() : null);
|
|
|
+ if(jPersonVO.getType() == 1 && StringUtils.isNotEmpty(policeSearch.getCompanyId())){
|
|
|
+
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ policeSearch.setCompanyId(jPersonVO.getCompanyId() !=null ? jPersonVO.getCompanyId() : null);
|
|
|
+ }
|
|
|
policeSearch.setBranchId(jPersonVO.getBranchId() !=null ? jPersonVO.getBranchId() : null);
|
|
|
- policeSearch.setType(1);
|
|
|
+ policeSearch.setType(type);//需要照片
|
|
|
+
|
|
|
Page<WarFruitVO> page = new Page<>(policeSearch.getPageNum(),policeSearch.getPageSize());
|
|
|
- IPage<WarFruitVO> pageList =warFruitMapper.policePageList(page,policeSearch);
|
|
|
- List<WarFruitVO> list = pageList.getRecords();
|
|
|
- for (WarFruitVO warFruitVO : list) {
|
|
|
- Integer totalNumber = warFruitVO.getTotalNumber() == null ? 0 : warFruitVO.getTotalNumber();
|
|
|
- Integer todayNumber = warFruitVO.getTodayNumber() == null ? 0 : warFruitVO.getTodayNumber();
|
|
|
- Integer totalDoubtNumber = warFruitVO.getTotalDoubtNumber() == null ? 0 : warFruitVO.getTotalDoubtNumber();
|
|
|
- Integer todayDoubtNumber = warFruitVO.getTodayDoubtNumber() == null ? 0 : warFruitVO.getTodayDoubtNumber();
|
|
|
- Integer totalArrestNumber = warFruitVO.getTotalArrestNumber() == null ? 0 : warFruitVO.getTotalArrestNumber();
|
|
|
- Integer todayArrestNumber = warFruitVO.getTodayArrestNumber() == null ? 0 : warFruitVO.getTodayArrestNumber();
|
|
|
- warFruitVO.setTotalNumber(totalNumber + todayNumber);//之前盘查 + 今日
|
|
|
- warFruitVO.setTotalDoubtNumber(totalDoubtNumber + todayDoubtNumber);//之前异常 + 今日
|
|
|
- warFruitVO.setTotalArrestNumber(totalArrestNumber + todayArrestNumber);//之前抓捕 + 今日
|
|
|
+ IPage<WarFruitVO> warFruitVOIPage = warFruitMapper.policePageList(page, policeSearch);
|
|
|
+ return warFruitVOIPage;
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public void excelWarningPageList(PoliceSearch policeSearch, HttpServletResponse response) {
|
|
|
+ policeSearch.setPageSize(100000);
|
|
|
+ IPage<WarFruitVO> warFruitVOIPage = this.policePageListType(policeSearch, 0);
|
|
|
+ List<WarFruitVO> records = warFruitVOIPage.getRecords();
|
|
|
+ List<PoliceWarFruitExcel> list = new ArrayList<>(records.size());
|
|
|
+ Map<String, Company> companyMap = companyService.getCompanyMapByList(records, WarFruitVO::getCompanyId);
|
|
|
+ for (WarFruitVO record : records) {
|
|
|
+ PoliceWarFruitExcel policeWarFruitExcel = new PoliceWarFruitExcel();
|
|
|
+ BeanUtils.copyProperties(record,policeWarFruitExcel);
|
|
|
+ policeWarFruitExcel.setCompanyName(companyMap.get(record.getCompanyId()) == null?"" : companyMap.get(record.getCompanyId()).getCompanyName());
|
|
|
+ list.add(policeWarFruitExcel);
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ String fileName = "民警战果统计-" + System.currentTimeMillis() + ".xlsx";
|
|
|
+ response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
|
|
|
+ response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
|
|
|
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
|
|
|
+ EasyExcel.write(response.getOutputStream(), PoliceWarFruitExcel.class)
|
|
|
+ // 导出文件名
|
|
|
+ .autoCloseStream(Boolean.TRUE).sheet("民警战果统计")
|
|
|
+ .doWrite(list);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void excelPoliceStationPageList(WarFruitSearch warFruitSearch, HttpServletResponse response) {
|
|
|
+ JPersonVO jPersonVO = this.rootTrue();
|
|
|
+ warFruitSearch.setLimitNumber(1000000);
|
|
|
+ if(jPersonVO.getType() == 2){warFruitSearch.setCompanyId(jPersonVO.getCompanyId());}
|
|
|
+ List<DataShowTopVO> dataShowList = dataShowMapper.polliceOfficeTop10(warFruitSearch);
|
|
|
+ Map<String, Company> companyMap = companyService.getCompanyMapByList(dataShowList, DataShowTopVO::getCompanyId);
|
|
|
+ List<PoliceStationWarFruitExcel> list = new ArrayList<>();
|
|
|
+ for (DataShowTopVO record : dataShowList) {
|
|
|
+ PoliceStationWarFruitExcel policeWarFruitExcel = new PoliceStationWarFruitExcel();
|
|
|
+ policeWarFruitExcel.setCompanyName(companyMap.get(record.getCompanyId()) == null?"" : companyMap.get(record.getCompanyId()).getCompanyName());
|
|
|
+ Integer totalNumber = record.getTotalNumber();
|
|
|
+ Integer todayNumber = record.getTodayNumber();
|
|
|
+ Integer totalDoubtNumber = record.getTotalDoubtNumber();
|
|
|
+ Integer todayDoubtNumber = record.getTodayDoubtNumber();
|
|
|
+ Integer totalArrestNumber = record.getTotalArrestNumber();
|
|
|
+ Integer todayArrestNumber = record.getTodayArrestNumber();
|
|
|
+ Integer totalExceptionNumber = record.getTotalWarningNumber();
|
|
|
+ Integer todayExceptionNumber = record.getTotalWarningNumber();
|
|
|
+ policeWarFruitExcel.setNumber(totalNumber + todayNumber);
|
|
|
+ policeWarFruitExcel.setDoubtNumber(totalDoubtNumber + todayDoubtNumber);
|
|
|
+ policeWarFruitExcel.setArrestNumber(totalArrestNumber + todayArrestNumber);
|
|
|
+ policeWarFruitExcel.setExceptionNumber(totalExceptionNumber + todayExceptionNumber);
|
|
|
+ policeWarFruitExcel.setPassNumber(totalNumber + todayNumber
|
|
|
+ - totalDoubtNumber - todayArrestNumber
|
|
|
+ - totalArrestNumber - todayArrestNumber
|
|
|
+ - totalExceptionNumber - todayExceptionNumber);
|
|
|
+ list.add(policeWarFruitExcel);
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ String fileName = "派出所统计-" + System.currentTimeMillis() + ".xlsx";
|
|
|
+ response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
|
|
|
+ response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
|
|
|
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
|
|
|
+ EasyExcel.write(response.getOutputStream(), PoliceStationWarFruitExcel.class)
|
|
|
+ // 导出文件名
|
|
|
+ .autoCloseStream(Boolean.TRUE).sheet("派出所统计")
|
|
|
+ .doWrite(list);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
- return pageList;
|
|
|
}
|
|
|
+
|
|
|
private JPersonVO rootTrue(){
|
|
|
JPersonVO jPersonVO = jPersonsService.getUserInfo();
|
|
|
Integer adminType = jPersonVO.getType();
|