fire_point/src/main/java/com/xkrs/controller/FirePointController.java

395 lines
16 KiB
Java
Raw Normal View History

2021-07-13 10:18:08 +08:00
package com.xkrs.controller;
import com.xkrs.common.encapsulation.PromptMessageEnum;
import com.xkrs.common.tool.TokenUtil;
import com.xkrs.dao.FirePointDao;
import com.xkrs.dao.SysUserDao;
import com.xkrs.model.entity.FirePoint;
2021-07-13 10:18:08 +08:00
import com.xkrs.model.entity.FirePointEntity;
import com.xkrs.model.entity.SysUserEntity;
2021-07-13 10:18:08 +08:00
import com.xkrs.model.qo.FirePointQo;
2021-07-16 10:47:24 +08:00
import com.xkrs.model.vo.AppTaskBodyVo;
2021-07-13 10:18:08 +08:00
import com.xkrs.service.FirePointService;
import com.xkrs.websocket.service.WebSocketServer;
2021-07-13 10:18:08 +08:00
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
2021-07-16 10:47:24 +08:00
import org.springframework.web.multipart.MultipartFile;
2021-07-13 10:18:08 +08:00
import javax.annotation.Resource;
import javax.transaction.Transactional;
2021-07-16 10:47:24 +08:00
import java.io.IOException;
2021-07-15 15:22:23 +08:00
import java.util.List;
2021-07-13 10:18:08 +08:00
import java.util.Locale;
import java.util.Map;
2021-07-13 10:18:08 +08:00
import static com.xkrs.common.encapsulation.OutputEncapsulation.outputEncapsulationObject;
/**
* @author XinYi Song
*/
@RestController
public class FirePointController {
2021-07-13 10:18:08 +08:00
@Resource
private FirePointService firePointService;
@Resource
private SysUserDao sysUserDao;
@Resource
private FirePointDao firePointDao;
2021-07-13 10:18:08 +08:00
/**
* 添加火点数据
*
2021-07-13 10:18:08 +08:00
* @param firePointQo
* @return
*/
@PostMapping("/insertFirePoint")
public String insertFirePoint(@RequestBody FirePointQo firePointQo) {
2021-07-13 10:18:08 +08:00
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
FirePointEntity firePointEntity = firePointService.insertFirePoint(firePointQo);
if (firePointEntity == null) {
return outputEncapsulationObject(PromptMessageEnum.PROCESS_FAIL, "添加数据失败", locale);
} else {
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "添加成功", locale);
2021-07-13 10:18:08 +08:00
}
}
/**
* 测试
*
* @param token
* @return
*/
@GetMapping("/selectUserName")
@PreAuthorize("hasAnyAuthority('auth_general_user')")
public String selectUserName(@RequestHeader(value = "Authorization") String token) {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
// 验证token
String tokenUserName = TokenUtil.getTokenUserName(token);
SysUserEntity sysUserEntity = sysUserDao.selectByUserName(tokenUserName);
if (sysUserEntity == null) {
return outputEncapsulationObject(PromptMessageEnum.USER_LOGIN_ERROR, "您还没有注册登录,请先注册登录", locale);
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, sysUserEntity.getUserName(), locale);
}
2021-07-15 15:22:23 +08:00
/**
* 查询今天的火点信息
*
2021-07-15 15:22:23 +08:00
* @param token
* @return
*/
@GetMapping("/selectTodayFirePoint")
@PreAuthorize("hasAnyAuthority('auth_general_user')")
public String selectTodayFirePoint(@RequestParam("countyCode") String countyCode, @RequestHeader(value = "Authorization") String token) {
2021-07-15 15:22:23 +08:00
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
List<FirePointEntity> firePointEntities = firePointService.selectTodayFirePoint(countyCode);
if (firePointEntities == null || firePointEntities.size() == 0) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时还没有火点数据", locale);
2021-07-15 15:22:23 +08:00
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, firePointEntities, locale);
2021-07-15 15:22:23 +08:00
}
/**
* 动态多条件查询火点信息
*
* @param map
* @param token
* @return
*/
@PostMapping("/selectFirePoint")
@PreAuthorize("hasAnyAuthority('auth_general_user')")
public String selectFirePoint(@RequestBody Map map, @RequestHeader(value = "Authorization") String token) {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
// 区县编码
String cityCode = (String) map.get("cityCode");
// 卫星类型
String satelliteType = (String) map.get("satelliteType");
// 植被类型
String landType = (String) map.get("landType");
// 开始时间
String startTime = (String) map.get("startTime");
// 结束时间
String endTime = (String) map.get("endTime");
// 验证token
String tokenUserName = TokenUtil.getTokenUserName(token);
SysUserEntity sysUserEntity = sysUserDao.selectByUserName(tokenUserName);
if (9 == sysUserEntity.getCountyCode().length()) {// 查询县
List<FirePointEntity> firePointEntities = firePointService.selectFirePointByStreet(sysUserEntity.getCountyCode(), satelliteType, landType, startTime, endTime);
if (firePointEntities == null || firePointEntities.size() == 0) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时还没有火点数据", locale);
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, firePointEntities, locale);
} else if (sysUserEntity.getCountyCode().substring(2).equals("0000")) {
// 查询省
List<FirePointEntity> firePointEntities = firePointService.selectFirePoint(sysUserEntity.getCountyCode(), cityCode, satelliteType, landType, startTime, endTime);
if (firePointEntities == null || firePointEntities.size() == 0) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时还没有火点数据", locale);
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, firePointEntities, locale);
} else if (sysUserEntity.getCountyCode().substring(4).equals("00") && !sysUserEntity.getCountyCode().substring(2).equals("0000")) {
// 查询市
List<FirePointEntity> firePointEntities = firePointService.selectFirePointByCity(sysUserEntity.getCountyCode(), cityCode, satelliteType, landType, startTime, endTime);
if (firePointEntities == null || firePointEntities.size() == 0) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时还没有火点数据", locale);
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, firePointEntities, locale);
} else {
// 查询县
List<FirePointEntity> firePointEntities = firePointService.selectFirePointByCounty(sysUserEntity.getCountyCode(), satelliteType, landType, startTime, endTime);
if (firePointEntities == null || firePointEntities.size() == 0) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时还没有火点数据", locale);
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, firePointEntities, locale);
}
}
/**
* 根据火点编码修改火点状态
*
* @param map
* @param token
* @return
*/
@PostMapping("/updateTypeByFireCode")
public String updateTypeByFireCode(@RequestBody Map map, @RequestHeader(value = "Authorization") String token) {
String fireCode = (String) map.get("fireCode");
String fireType = (String) map.get("fireType");
return firePointService.updateTypeByFireCode(fireCode, fireType, token);
}
2021-07-16 10:47:24 +08:00
/**
* 提交核查任务
*
2021-07-16 10:47:24 +08:00
* @param files
* @param appTaskBodyVo
* @return
*/
@PostMapping("/insertAppTask")
public String insertAppTask(@RequestParam("files") MultipartFile[] files, AppTaskBodyVo appTaskBodyVo) throws IOException {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
if ("".equals(appTaskBodyVo.getFireCode()) || appTaskBodyVo.getFireCode() == null) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "火点编码不能为空", locale);
2021-07-16 10:47:24 +08:00
}
if ("".equals(appTaskBodyVo.getTaskInformation()) || appTaskBodyVo.getTaskInformation() == null) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "任务描述不能为空", locale);
2021-07-16 10:47:24 +08:00
}
if (files == null || files.length == 0) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "图片不能为空", locale);
2021-07-16 10:47:24 +08:00
}
return firePointService.insertAppTask(files, appTaskBodyVo);
2021-07-16 10:47:24 +08:00
}
/**
* 查询核查的任务信息
*
* @param fireCode
* @return
*/
@GetMapping("/selectAppTask")
public String selectAppTask(@RequestParam("fireCode") String fireCode) throws Exception {
return firePointService.selectAppTask(fireCode);
}
/**
* 查询近一周的火点信息
*
* @return
*/
@GetMapping("/selectFirePointBetweenSeven")
public String selectFirePointBetweenSeven() {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
List<FirePointEntity> firePointEntities = firePointService.selectFirePointBetweenSeven();
if (firePointEntities == null || firePointEntities.size() == 0) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时没有火点数据", locale);
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, firePointEntities, locale);
}
/**
* 查询近一个月的火点信息
*
* @return
*/
@GetMapping("/selectFirePointByMonth")
@PreAuthorize("hasAnyAuthority('auth_general_user')")
public String selectFirePointByMonth(@RequestHeader(value = "Authorization") String token) {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
// 验证token
String tokenUserName = TokenUtil.getTokenUserName(token);
SysUserEntity sysUserEntity = sysUserDao.selectByUserName(tokenUserName);
List<FirePointEntity> firePointEntities = firePointService.selectFirePointByMonth(sysUserEntity.getCountyCode());
if (firePointEntities == null || firePointEntities.size() == 0) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时没有火点数据", locale);
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, firePointEntities, locale);
}
/**
* 查询火点数量
*
* @return
*/
@GetMapping("/selectFirePointNum")
public String selectFirePointNum(@RequestParam("keepType") String keepType) {
// keepType为1时查询近一天的火点数量
if ("1".equals(keepType)) {
return firePointService.selectFirePointNumDay();
// keepType为2时,查询近一周的火点数量
} else if ("2".equals(keepType)) {
return firePointService.selectFirePointNumWeek();
} else {
return firePointService.selectFirePointNumMonth();
}
}
@GetMapping("/websocketTest")
public void websocketTest(@RequestParam("message") String message) {
WebSocketServer.broadInfo(message);
}
2021-07-22 11:54:01 +08:00
/**
* 查询该省所有的市
*
2021-07-22 11:54:01 +08:00
* @return
*/
@GetMapping("/selectCityName")
public String selectCityName(@RequestParam("code") String code) {
2021-07-22 11:54:01 +08:00
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
if (code.substring(2).equals("0000")) {
List<Map<String, Object>> maps = firePointService.selectCityName(code);
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, maps, locale);
} else {
List<Map<String, Object>> maps = firePointService.selectCountyName(code);
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, maps, locale);
}
2021-07-22 11:54:01 +08:00
}
/**
* 根据火点编码查询火点信息
*
* @param fireCode
* @return
*/
@GetMapping("/selectFirePointByCode")
public String selectFirePoint(@RequestParam("fireCode") String fireCode) {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
FirePointEntity byFireCode = firePointDao.findByFireCode(fireCode);
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, byFireCode, locale);
}
/**
* 测试添加火点信息
*
* @param firePointQo
* @return
*/
@PostMapping("/insertFireTest")
public String insertFireTest(@RequestBody FirePointQo firePointQo) {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
FirePoint firePoint = firePointService.insertFireTest(firePointQo);
if (firePoint == null) {
return outputEncapsulationObject(PromptMessageEnum.PROCESS_FAIL, "添加数据失败", locale);
} else {
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "添加成功", locale);
}
}
/**
* 导入全国省市区
*
* @param file
* @return
* @throws Exception
*/
@PostMapping("/importCityExcel")
public String importCityExcel(MultipartFile file) throws Exception {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
firePointService.importCityExcel(file);
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "导入成功", locale);
}
/**
* 查询今天的火点信息(测试)
*
* @param token
* @return
*/
@GetMapping("/selectTodayFire")
@PreAuthorize("hasAnyAuthority('auth_general_user')")
public String selectTodayFire(@RequestParam("countyCode") String countyCode, @RequestHeader(value = "Authorization") String token) {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
List<FirePoint> firePointEntities = firePointService.selectTodayFire(countyCode);
if (firePointEntities == null || firePointEntities.size() == 0) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时还没有火点数据", locale);
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, firePointEntities, locale);
}
/**
* 删除水体类型的火点信息
*
* @return
*/
@Transactional(rollbackOn = Exception.class)
@PostMapping("/deleteShuiTi")
public String deleteShuiTi() {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
List<Integer> integers = firePointDao.selectId();
firePointDao.deleteByIdIn(integers);
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "删除成功", locale);
}
@GetMapping("/selectBeijing")
public String selectBeijing() {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
List<FirePointEntity> firePointEntities = firePointDao.selectBeijing();
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, firePointEntities, locale);
}
/**
* 根据火点编码添加火点前后的图片
*
* @param map
* @return
*/
@Transactional(rollbackOn = Exception.class)
@PostMapping("/updateBeforeFireAndAfterFireImage")
public String updateBeforeFireAndAfterFireImage(@RequestBody Map map) {
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
String fireCode = (String) map.get("fireCode");
String beforeFireImage = (String) map.get("beforeFireImage");
String afterFireImage = (String) map.get("afterFireImage");
if (fireCode == null || "".equals(fireCode)) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "火点编码不能为空!", locale);
}
FirePointEntity byFireCode = firePointDao.findByFireCode(fireCode);
if (byFireCode == null) {
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "火点编码错误!", locale);
}
firePointDao.updateBeforeFireAndAfterFireImage(fireCode, beforeFireImage, afterFireImage);
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "添加图片成功!", locale);
}
2021-07-13 10:18:08 +08:00
}