fire_point/src/main/java/com/xkrs/controller/FirePointController.java
2022-02-22 16:11:35 +08:00

372 lines
15 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
import com.xkrs.model.entity.FirePointEntity;
import com.xkrs.model.entity.SysUserEntity;
import com.xkrs.model.qo.FirePointQo;
import com.xkrs.model.vo.AppTaskBodyVo;
import com.xkrs.service.FirePointService;
import com.xkrs.websocket.service.WebSocketServer;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import static com.xkrs.common.encapsulation.OutputEncapsulation.outputEncapsulationObject;
/**
* @author XinYi Song
*/
@RestController
public class FirePointController {
@Resource
private FirePointService firePointService;
@Resource
private SysUserDao sysUserDao;
@Resource
private FirePointDao firePointDao;
/**
* 添加火点数据
* @param firePointQo
* @return
*/
@PostMapping("/insertFirePoint")
public String insertFirePoint(@RequestBody FirePointQo firePointQo){
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
FirePointEntity firePointEntity = firePointService.insertFirePoint(firePointQo);
if(firePointEntity == null){
return outputEncapsulationObject(PromptMessageEnum.PROCESS_FAIL,"添加数据失败",locale);
}else {
return outputEncapsulationObject(PromptMessageEnum.SUCCESS,"添加成功",locale);
}
}
/**
* 测试
* @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);
}
/**
* 查询今天的火点信息
* @param token
* @return
*/
@GetMapping("/selectTodayFirePoint")
@PreAuthorize("hasAnyAuthority('auth_general_user')")
public String selectTodayFirePoint(@RequestParam("countyCode") String countyCode,@RequestHeader(value="Authorization") String token){
// 获取区域信息
Locale locale = LocaleContextHolder.getLocale();
List<FirePointEntity> firePointEntities = firePointService.selectTodayFirePoint(countyCode);
if(firePointEntities == null || firePointEntities.size() == 0){
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时还没有火点数据",locale);
}
return outputEncapsulationObject(PromptMessageEnum.SUCCESS,firePointEntities,locale);
}
/**
* 动态多条件查询火点信息
* @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(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);
}
/**
* 提交核查任务
* @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);
}
if("".equals(appTaskBodyVo.getTaskInformation()) || appTaskBodyVo.getTaskInformation() == null){
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"任务描述不能为空",locale);
}
if(files == null || files.length == 0 ){
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"图片不能为空",locale);
}
return firePointService.insertAppTask(files,appTaskBodyVo);
}
/**
* 查询核查的任务信息
* @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);
}
/**
* 查询该省所有的市
* @return
*/
@GetMapping("/selectCityName")
public String selectCityName(@RequestParam("code") String code){
// 获取区域信息
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);
}
}
/**
* 根据火点编码查询火点信息
* @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);
}
}