123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- 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.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;
- 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;
- /**
- * <p>
- * 战果统计表 服务实现类
- * </p>
- *
- * @author wxg
- * @since 2022-05-19
- */
- @Service
- public class WarFruitServiceImpl implements WarFruitService {
- @Autowired
- private JPersonsService jPersonsService;
- @Resource
- private WarFruitMapper warFruitMapper;
- @Resource
- private CompanysMapper companysMapper;
- @Resource
- private CompanyService companyService;
- @Resource
- private DataShowMapper dataShowMapper;
- @Override
- public WarFruitTopVO polliceOfficeTop10(WarFruitSearch warFruitSearch) {
- JPersonVO jPersonVO = this.rootTrue();
- if(jPersonVO.getType() == 2)throw new ServiceException("没有权限");
- 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> arrestList = new ArrayList<>();//抓捕人数
- for (DataShowTopVO dataShowTopVO : dataShowList) {
- siteList.add(companyMap.get(dataShowTopVO.getCompanyId()) == null?"" : companyMap.get(dataShowTopVO.getCompanyId()).getCompanyName());
- Integer totalNumber = dataShowTopVO.getTotalNumber() == null ? 0 : dataShowTopVO.getTotalNumber();
- Integer todayNumber = dataShowTopVO.getTodayNumber() == null ? 0 : dataShowTopVO.getTodayNumber();
- Integer totalDoubtNumber = dataShowTopVO.getTotalDoubtNumber() == null ? 0 : dataShowTopVO.getTotalDoubtNumber();
- Integer todayDoubtNumber = dataShowTopVO.getTodayDoubtNumber() == null ? 0 : dataShowTopVO.getTodayDoubtNumber();
- Integer totalArrestNumber = dataShowTopVO.getTotalArrestNumber() == null ? 0 : dataShowTopVO.getTotalArrestNumber();
- Integer todayArrestNumber = dataShowTopVO.getTodayArrestNumber() == null ? 0 : dataShowTopVO.getTodayArrestNumber();
- numberList.add(totalNumber + todayNumber);//之前盘查 + 今日
- doubtList.add(totalDoubtNumber + todayDoubtNumber);//之前存疑 + 今日
- arrestList.add(totalArrestNumber + todayArrestNumber);//之前抓捕 + 今日
- }
- WarFruitTopVO warFruitTopVO = new WarFruitTopVO();
- warFruitTopVO.setSiteList(siteList);
- warFruitTopVO.setNumberList(numberList);
- warFruitTopVO.setDoubtList(doubtList);
- warFruitTopVO.setArrestList(arrestList);
- return warFruitTopVO;
- }
- @Override
- 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> arrestList = new ArrayList<>();//抓捕人数
- for (WarFruitVO warFruitVO : list) {
- siteList.add(warFruitVO.getXm() != null ?warFruitVO.getXm() :"");
- numberList.add(warFruitVO.getNumber());//盘查
- doubtList.add(warFruitVO.getDoubtNumber());//存疑
- arrestList.add(warFruitVO.getArrestNumber());//抓捕
- }
- WarFruitTopVO warFruitTopVO = new WarFruitTopVO();
- warFruitTopVO.setSiteList(siteList);
- warFruitTopVO.setNumberList(numberList);
- warFruitTopVO.setDoubtList(doubtList);
- warFruitTopVO.setArrestList(arrestList);
- return warFruitTopVO;
- }
- @Override
- public IPage<WarFruitVO> policePageList(PoliceSearch policeSearch) {
- 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());
- 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(type);//需要照片
- Page<WarFruitVO> page = new Page<>(policeSearch.getPageNum(),policeSearch.getPageSize());
- 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();
- }
- }
- private JPersonVO rootTrue(){
- JPersonVO jPersonVO = jPersonsService.getUserInfo();
- Integer adminType = jPersonVO.getType();
- if (adminType != 1 && adminType != 2) {
- throw new ServiceException("没有权限");
- }
- return jPersonVO;
- }
- }
|