/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.jfpt.catalog.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.jfpt.alarm.service.IAlarmService; import org.springblade.jfpt.catalog.entitly.catalog; import org.springblade.jfpt.catalog.service.catalogService; import org.springblade.jfpt.catalog.vo.catalogVO; import org.springblade.jfpt.equipment.service.IEquipmentService; import org.springblade.jfpt.parcel.service.ParcelService; import org.springblade.jfpt.parcel.vo.ConditionVo; import org.springblade.jfpt.suser.service.ISuserService; import org.springblade.system.vo.DeptVO; import org.springframework.web.bind.annotation.*; import org.springblade.jfpt.catalog.wrapper.catalogWrapper; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.text.SimpleDateFormat; import java.util.*; /** * 控制器 * * @author BladeX * @since 2020-07-06 */ @RestController @AllArgsConstructor @RequestMapping("catalogs/catalogs") @Api(value = "", tags = "接口") public class catalogController extends BladeController { private final org.springblade.jfpt.catalog.service.catalogService catalogService; private final IAlarmService iAlarmService; private final ParcelService parcelService; private final IEquipmentService iEquipmentService; private final ISuserService iSuserService; /** * 详情 */ @GetMapping("/detail") @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入deploy") public R detail(catalog catalog, HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); catalog detail = catalogService.getOne(Condition.getQueryWrapper(catalog)); return R.data(catalogWrapper.build().entityVO(detail)); } /** * 分页 */ @GetMapping("/list") @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入deploy") public R> list(catalog catalog, Query query) { IPage pages = catalogService.page(Condition.getPage(query), Condition.getQueryWrapper(catalog)); return R.data(catalogWrapper.build().pageVO(pages)); } /** * 新增 */ @PostMapping("/save") @ApiOperationSupport(order = 4) @ApiOperation(value = "新增", notes = "传入deploy") public R save(@Valid @RequestBody catalog catalog) { return R.status(catalogService.save(catalog)); } /** * 修改 */ @PostMapping("/update") @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入deploy") public R update(@Valid @RequestBody catalog catalog) { return R.status(catalogService.updateById(catalog)); } /** * 新增或修改 */ @PostMapping("/submit") @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入deploy") public R submit(@Valid @RequestBody catalog catalog) { return R.status(catalogService.saveOrUpdate(catalog)); } /** * 删除 */ @PostMapping("/remove") @ApiOperationSupport(order = 8) @ApiOperation(value = "删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { return R.status(catalogService.removeByIds(Func.toLongList(ids))); } /** * 目录树列表 * @param response * @return */ @PostMapping("/catalogList") public R catalogList(HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); List> list = catalogService.selectCatalogList(); for (int i=0;i> lists = new ArrayList<>(); List> list1 = catalogService.selectCount(); Map mapa = new HashMap(); Map mape = new HashMap(); Map maps = new HashMap(); Map mapse = new HashMap(); mapa.put("value",list1.get(0).get("counta")); mapa.put("backgroundColor","#F56C6C"); mapa.put("prefixText","警情总数"); mapa.put("suffixText","条"); mape.put("value",list1.get(1).get("counta")); mape.put("backgroundColor","#67C23A"); mape.put("prefixText","设备总数"); mape.put("suffixText","个"); maps.put("value",list1.get(2).get("counta")); maps.put("backgroundColor","#409EFF"); maps.put("prefixText","用户总数"); maps.put("suffixText","个"); mapse.put("value",list1.get(3).get("counta")); mapse.put("backgroundColor","#E6A23C"); mapse.put("prefixText","处警队伍总数"); mapse.put("suffixText","人"); lists.add(mapa); lists.add(mape); lists.add(maps); lists.add(mapse); return R.data(lists); } /** * 系统首页展示条各个总数 * @time 2021-03-12 arsn新增 * @param response * @param conditionVo 条件 status 0:本日 1:本周 2:本月 * @return */ @GetMapping("/selectIndexCount") public R selectIndexCount(HttpServletResponse response, ConditionVo conditionVo) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); //数据返回 return R.data(getIndexCountData(conditionVo)); } /** * 按时间条件查询统计数据 * @param conditionVo 条件 status 0:本日 1:本周 2:本月 startTime endTime时间条件查询 * @return */ private List> getIndexCountData(ConditionVo conditionVo) { List> lists = new ArrayList<>(); Map mapa = new HashMap(); Map mape = new HashMap(); Map maps = new HashMap(); Map mapse = new HashMap(); Map mapsu = new HashMap(); Integer alarmCount = null; List parcelCount = new ArrayList<>(); Integer equipmentCount = null; Integer suserCount = null; //查询今日警情 //1.查询警情总数 alarmCount = iAlarmService.selectAlarmCount(conditionVo); //2.查询包裹总数,违禁品总数 parcelCount = parcelService.selectParcelCount(conditionVo); //3.查询在线设备总数 equipmentCount = iEquipmentService.selectEquipmentCount(conditionVo); //4.查询业主总数 suserCount = iSuserService.selectSuserCount(conditionVo); //1.警情总数 mapa.put("value",alarmCount); mapa.put("backgroundColor","#F56C6C"); mapa.put("prefixText","今日警情"); mapa.put("suffixText","条"); //2.包裹总数 mape.put("value",parcelCount.get(0)); mape.put("backgroundColor","#67C23A"); mape.put("prefixText","今日违禁包裹"); mape.put("suffixText","个"); //3.违禁品总数 maps.put("value",parcelCount.get(1)); maps.put("backgroundColor","#E6A23C"); maps.put("prefixText","今日违禁物品"); maps.put("suffixText","个"); //4.在线设备总数 mapse.put("value",equipmentCount); mapse.put("backgroundColor","#409EFF"); mapse.put("prefixText","在线设备"); mapse.put("suffixText","个"); //5.业主总数 mapsu.put("value",suserCount); mapsu.put("backgroundColor","#00BFFF"); mapsu.put("prefixText","客户数量"); mapsu.put("suffixText","个"); //数据存入集合 lists.add(mapa); lists.add(mape); lists.add(maps); lists.add(mapse); lists.add(mapsu); return lists; } /** * 按行政区统计用户数量 * @param response * @return */ @GetMapping("/selectAddvcd") public R selectAddvcd(HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); List> list = catalogService.selectAddvcd(); return R.data(list); } /** * 按行政区统计设备数量 * @param response * @return */ @GetMapping("/selectEq") public R selectEq(HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); List> list = catalogService.selectEq(); return R.data(list); } /** * 按警情类型查询数量 * @param response * @return */ @GetMapping("/selectWar") public R selectWar(HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials","true"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式 List> listc = new ArrayList<>(); String[] str={"内部","周边","挟持","救护","旁路","火警","紧急","出入","防拆"}; Map map = new HashMap(); String endTime = df.format(new Date());// new Date()为获取当前系统时间 String beginTime = getPastDate(7); List> list = catalogService.selectWar(beginTime,endTime); map.put("lists",list); map.put("type",str); listc.add(map); return R.data(listc); } public static String getPastDate(int past) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past); Date today = calendar.getTime(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String result = format.format(today); return result; } /** * 懒加载获取部门树形结构 */ @GetMapping("/lazy-tree") public R> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) { List tree = catalogService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId); return R.data(tree); } /** * 获取部门树形结构 * @return */ @GetMapping("/tree") @ApiOperationSupport(order = 4) @ApiOperation(value = "树形结构", notes = "树形结构") public R> tree() { List tree = catalogService.tree(); return R.data(tree); } /** * 获取行政区--》客户--》部门机构 --》安保人员 树形数据 * @return */ @GetMapping("/getBigTree") public R> getBigTree() { List tree = catalogService.getBigTree(); return R.data(tree); } }