智慧保安后台管理项目备份
tangzy
2021-07-20 5cdadbb29f95f35b5eabdc733ce60b16d0338037
src/main/java/org/springblade/modules/information/controller/InformationController.java
@@ -16,28 +16,37 @@
 */
package org.springblade.modules.information.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.*;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.desk.entity.Notice;
import org.springblade.modules.desk.vo.NoticeVO;
import org.springblade.modules.desk.wrapper.NoticeWrapper;
import org.springblade.modules.jurisdiction.service.JurisdictionService;
import org.springblade.modules.jurisdiction.vo.JurisdictionVO;
import org.springblade.modules.member.service.IMemberService;
import org.springblade.modules.shareholder.service.IShareholderService;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.service.IUserDeptService;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.information.entity.Information;
import org.springblade.modules.information.vo.InformationVO;
import org.springblade.modules.information.service.IInformationService;
import org.springblade.core.boot.ctrl.BladeController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.*;
/**
 *  控制器
 * 控制器
 *
 * @author BladeX
 * @since 2021-07-07
@@ -49,6 +58,8 @@
public class InformationController extends BladeController {
   private final IInformationService informationService;
   private final IDeptService iDeptService;
   private final JurisdictionService jurisdictionService;
   /**
@@ -68,8 +79,8 @@
   @GetMapping("/list")
   @ApiOperationSupport(order = 2)
   @ApiOperation(value = "分页", notes = "传入information")
   public R<IPage<Information>> list(Information information, Query query) {
      IPage<Information> pages = informationService.page(Condition.getPage(query), Condition.getQueryWrapper(information));
   public R<IPage<Information>> list(@ApiIgnore @RequestParam Map<String, Object> information, Query query) {
      IPage<Information> pages = informationService.page(Condition.getPage(query), Condition.getQueryWrapper(information, Information.class));
      return R.data(pages);
   }
@@ -79,8 +90,8 @@
   @GetMapping("/page")
   @ApiOperationSupport(order = 3)
   @ApiOperation(value = "分页", notes = "传入information")
   public R<IPage<InformationVO>> page(InformationVO information, Query query) {
      IPage<InformationVO> pages = informationService.selectInformationPage(Condition.getPage(query), information);
   public R<IPage<Information>> page(Information information, Query query) {
      IPage<Information> pages = informationService.selectInformationPage(Condition.getPage(query), information);
      return R.data(pages);
   }
@@ -128,5 +139,373 @@
      return R.success("删除成功");
   }
   /**
    * 首页保安公司统计接口
    *
    * @return
    */
   @PostMapping("/SelectCount")
   public R SelectCount() {
      List<Map<Object, String>> list = iDeptService.selectCount();
      List<Map<String, Object>> lists = new ArrayList<>();
      for (int i = 0; i < list.size(); i++) {
         String title = list.get(i).get("title");//部门名称
         String departmentid = String.valueOf(list.get(i).get("jurisdiction"));//部门id
         Map<String, Object> map = new HashMap<String, Object>();
         Map maps = informationService.selectCount(departmentid);
         map.put("name", title);
         map.put("server", maps);
         lists.add(map);
      }
      return R.data(lists);
   }
   /**
    * 首页保安持证统计接口
    *
    * @return
    */
   @PostMapping("/SelectCounthold")
   public R SelectCounthold() {
      List<Map<Object, String>> list = iDeptService.selectCount();
      List<Map<String, Object>> lists = new ArrayList<>();
      for (int i = 0; i < list.size(); i++) {
         int cznumber = 0;//总的持证数量
         int wcznumber = 0;//总的未持证数量
         String title = list.get(i).get("title");//部门名称
         Map<String, Object> map = new HashMap<String, Object>();
         Map<Object, Integer> objectStringMap = iDeptService.selectHold(String.valueOf(list.get(i).get("jurisdiction")));
         if (objectStringMap==null) {
            map.put("name", title);
            map.put("cz", cznumber);
            map.put("wcz", wcznumber);
            lists.add(map);
         }
         else {
            cznumber = objectStringMap.get("cz");
            wcznumber = objectStringMap.get("wcz");
            map.put("name", title);
            map.put("cz", cznumber);
            map.put("wcz", wcznumber);
            lists.add(map);
         }
      }
      return R.data(lists);
   }
   /**
    * 统计保安公司未持证的保安的公司数量
    */
   @PostMapping("/selectInCount")
   public R selectInCount(String jurisdiction,String deptid) {
      List<Map<Object, String>> maps = informationService.selectInCount(jurisdiction,deptid);
      Map<String, Object> map = new HashMap<String, Object>();
      map.put("Count",maps.size());
      map.put("List",maps);
      List<Map<String, Object>> lists = new ArrayList<>();
      lists.add(map);
      return R.data(lists);
   }
   /**
    * 通过辖区查询机构id,然后通过机构id查询当前机构交社保的人数(numj单位已交社保数量;numz单位人员总数)
    */
   @PostMapping("/selectCs")
   public R selectCs(String jurisdiction,String deptid) {
      List<Map<String, Object>> maps = informationService.selectCs(jurisdiction,deptid);
      List<Map<String, Object>> lists = new ArrayList<>();
      List<Map<String, Object>> lists1 = new ArrayList<>();
      Map<String, Object> map1 = new HashMap<String, Object>();
      Integer count=0;
      for (int i=0;i<maps.size();i++){
         Map<String, Object> map = new HashMap<String, Object>();
         //交社保数
         String numjs = maps.get(i).get("numj").toString();
         Integer numj = Integer.parseInt(numjs);
         //单位总人数
         String numzs = maps.get(i).get("numz").toString();
         Integer numz = Integer.parseInt(numzs);
         String deptname = maps.get(i).get("deptname").toString();
         //统计未交社保人数
         int i1 = numz - numj;
         count+=i1;
         map.put("count",i1);
         map.put("name",deptname);
         lists1.add(map);
      }
      map1.put("Count",count);
      map1.put("List",lists1);
      lists.add(map1);
      return R.data(lists);
   }
   /**
    * 管辖区域下拉
    */
   @PostMapping("/selecttree")
   public R selecttree() {
      List<Map<Object, String>> maps = iDeptService.selectCount();
      return R.data(maps);
   }
   /**
    * 管辖区域下拉
    */
   @PostMapping("/lazyTreeJu")
   public R lazyTreeJu() {
      List<JurisdictionVO> jurisdictionVOS = jurisdictionService.lazyTreeJu();
      return R.data(jurisdictionVOS);
   }
   /**
    * 统计这个月和上个月交社保的人数,以及金额
    * @return
    */
   @PostMapping("/selectTo")
   public R selectTo(String jurisdiction,String deptid) {
      //上个月人数数量
      Integer lnum=0;
      //这个月人数数量
      Integer tnum=0;
      //上个月金额
      Double lmount=0.0;
      //这个月金额
      Double tmount=0.0;
      Map<String, Object> map = new HashMap<String, Object>();
      List<Map<String, Object>> lists = new ArrayList<>();
      List<Map<String, Object>> list = informationService.selectTo(jurisdiction,deptid);
      for (int i=0;i<list.size();i++){
         String lastmonths = list.get(i).get("lastmonth").toString();
         Integer lastmonth=Integer.parseInt(lastmonths);
         lnum+=lastmonth;
         String thismouths = list.get(i).get("thismouth").toString();
         Integer thismouth=Integer.parseInt(thismouths);
         tnum+=thismouth;
         String lastamounts = list.get(i).get("lastamount").toString();
         Double lastamount =Double.parseDouble(lastamounts);
         lmount+=lastamount;
         String thisamounts = list.get(i).get("thisamount").toString();
         Double thisamount =Double.parseDouble(thisamounts);
         tmount+=thisamount;
      }
      map.put("lastmonth",lnum);
      map.put("thismouth",tnum);
      map.put("lastamount",lmount);
      map.put("thisamount",tmount);
      lists.add(map);
      return R.data(lists);
   }
   /**
    * 查询本年所有月份交社保人数
    * @return
    */
   @GetMapping("/queryYearSoil")
   public R queryYearSoil(String jurisdiction,String deptid) {
      Calendar cal = Calendar.getInstance();
      String year = String.valueOf(cal.get(Calendar.YEAR));
      Map<String, String> map = informationService.queryYearSoil(year,jurisdiction,deptid);
      map = (HashMap<String, String>) sortMapBykeyAsc(map) ;//key升序
      return R.data(map);
   }
   /**
    * 查询本年所有月份社保金额
    * @return
    */
   @GetMapping("/queryYearAn")
   public R queryYearAn(String jurisdiction,String deptid) {
      Calendar cal = Calendar.getInstance();
      String year = String.valueOf(cal.get(Calendar.YEAR));
      Map<String, String> map = informationService.queryYearAn(year,jurisdiction,deptid);
      map = (HashMap<String, String>) sortMapBykeyAsc(map) ;//key升序
      return R.data(map);
   }
   /**
    * 公司运营智能统计
    * @return
    */
   @GetMapping("/queryCounts")
   public R queryCounts(String jurisdiction,String deptid) {
      List<Map<String, Object>> lists = new ArrayList<>();
      Integer a=0;
      Integer b=0;
      Integer zca=0;
      Integer zcb=0;
      Integer cza=0;
      Integer czb=0;
      Integer sba=0;
      Integer sbb=0;
      Integer kha=0;
      Integer khb=0;
      Integer pqa=0;
      Integer pqb=0;
      //保安员数量
      Map<String, Object> map = new HashMap<String, Object>();
      Map<String, Object> mapzc = new HashMap<String, Object>();
      Map<String, Object> mapcz = new HashMap<String, Object>();
      Map<String, Object> mapsb = new HashMap<String, Object>();
      Map<String, Object> mapkh = new HashMap<String, Object>();
      Map<String, Object> mappq = new HashMap<String, Object>();
      Map<String, Object> mapC = new HashMap<String, Object>();
      List<Map<Object, Integer>> maps = informationService.queryCountB(jurisdiction, deptid);
      for (int i=0;i<maps.size();i++){
         //这个月数量
         a+=maps.get(i).get("thisnum");
         //上个月数量
         b+=  maps.get(i).get("lastnum");
      }
      map.put("thisnum",a);
      map.put("lastnum",b);
      mapC.put("baoan",map);
      //正常保安员数量
      List<Map<Object, Integer>> maps1 = informationService.queryCountZc(jurisdiction, deptid);
      for (int i=0;i<maps1.size();i++){
         //这个月数量
         zca+= maps1.get(i).get("thisnum");
         //上个月数量
         zcb+= maps1.get(i).get("lastnum");
      }
      mapzc.put("thisnum",zca);
      mapzc.put("lastnum",zcb);
      mapC.put("zcbaoan",mapzc);
      //持证保安数量
      List<Map<Object, Integer>> maps2 = informationService.queryCountCz(jurisdiction, deptid);
      for (int i=0;i<maps2.size();i++){
         //这个月数量
         cza+=maps2.get(i).get("thisnum");
         //上个月数量
         czb+=  maps2.get(i).get("lastnum");
      }
      mapcz.put("thisnum",cza);
      mapcz.put("lastnum",czb);
      mapC.put("czbaoan",mapcz);
      //缴纳社保数量
      List<Map<Object, Integer>> maps3 = informationService.queryCountSb(jurisdiction, deptid);
      for (int i=0;i<maps3.size();i++){
         //这个月数量
         sba+=maps3.get(i).get("thisnum");
         //上个月数量
         sbb+=maps3.get(i).get("lastnum");
      }
      mapsb.put("thisnum",sba);
      mapsb.put("lastnum",sbb);
      mapC.put("sbbaoan",mapsb);
      //服务客户数量
      List<Map<Object, Integer>> maps4 = informationService.queryCountKh(jurisdiction, deptid);
      for (int i=0;i<maps4.size();i++){
         //这个月数量
         kha+=maps4.get(i).get("thisnum");
         //上个月数量
         khb+=maps4.get(i).get("lastnum");
      }
      mapkh.put("thisnum",kha);
      mapkh.put("lastnum",khb);
      mapC.put("kh",mapkh);
      //保安派遣数量
      List<Map<Object, Integer>> maps5 = informationService.queryCountPq(jurisdiction, deptid);
      for (int i=0;i<maps5.size();i++){
         //这个月数量
         pqa+=maps5.get(i).get("thisnum");
         //上个月数量
         pqb+=maps5.get(i).get("lastnum");
      }
      mappq.put("thisnum",pqa);
      mappq.put("lastnum",pqb);
      mapC.put("paiq",mappq);
      lists.add(mapC);
      return R.data(lists);
   }
   /**
    * 查询本年公司运营智能统计
    * @return
    */
   @GetMapping("/queryYearG")
   public R queryYearG(String jurisdiction,String deptid) {
      Calendar cal = Calendar.getInstance();
      String year = String.valueOf(cal.get(Calendar.YEAR));
      Map<String, Object> mapz = new HashMap<String, Object>();
      Map<String, Object> mapzc1= new HashMap<String, Object>();
      Map<String, Object> mapcz1= new HashMap<String, Object>();
      Map<String, Object> mapsb1= new HashMap<String, Object>();
      List<Map<String, Object>> lists = new ArrayList<>();
      Map<String, String> map = informationService.queryYearZ(year,jurisdiction,deptid);
      map = (HashMap<String, String>) sortMapBykeyAsc(map) ;//key升序
      mapz.put("baoan",map);
      lists.add(mapz);
      //正常保安数量
      Map<String, String> mapzc = informationService.queryYearZc(year,jurisdiction,deptid);
      mapzc = (HashMap<String, String>) sortMapBykeyAsc(mapzc) ;//key升序
      mapzc1.put("zc",mapzc);
      lists.add(mapzc1);
      //保安持证数量
      Map<String, String> mapcz = informationService.queryYearZc(year,jurisdiction,deptid);
      mapcz = (HashMap<String, String>) sortMapBykeyAsc(mapcz) ;//key升序
      mapcz1.put("cz",mapcz);
      lists.add(mapcz1);
      //缴纳社保数
      Map<String, String> mapsb = informationService.queryYearSoil(year,jurisdiction,deptid);
      mapsb = (HashMap<String, String>) sortMapBykeyAsc(mapsb) ;//key升序
      mapsb1.put("sb",mapsb);
      lists.add(mapsb1);
      return R.data(lists);
   }
   /**
    * 查询本年所有月份的客户数量
    * @return
    */
   @GetMapping("/queryYearKh")
   public R queryYearKh(String jurisdiction,String deptid) {
      Calendar cal = Calendar.getInstance();
      String year = String.valueOf(cal.get(Calendar.YEAR));
      Map<String, String> map = informationService.queryYearKh(year,jurisdiction,deptid);
      map = (HashMap<String, String>) sortMapBykeyAsc(map) ;//key升序
      return R.data(map);
   }
   //升序
   public  static Map<String, String> sortMapBykeyAsc(Map<String, String> oriMap) {
      Map<String, String> sortedMap = new LinkedHashMap<String, String>();
      try {
         if (oriMap != null && !oriMap.isEmpty()) {
            List<Map.Entry<String, String>> entryList = new ArrayList<Map.Entry<String, String>>(oriMap.entrySet());
            Collections.sort(entryList,
               new Comparator<Map.Entry<String, String>>() {
                  public int compare(Map.Entry<String, String> entry2,
                                 Map.Entry<String, String> entry1) {
                     int value2 = 0, value1 = 0;
                     try {
                        value2 = Integer.parseInt(entry1.getKey());
                        value1 = Integer.parseInt(entry2.getKey());
                     } catch (NumberFormatException e) {
                        value2 = 0;
                        value1 = 0;
                     }
                     return value1 - value2;
                  }
               });
            Iterator<Map.Entry<String, String>> iter = entryList.iterator();
            Map.Entry<String, String> tmpEntry = null;
            while (iter.hasNext()) {
               tmpEntry = iter.next();
               sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());
            }
         }
      } catch (Exception e) {
      }
      return sortedMap;
   }
}