修改了动态多条件查询的参数
This commit is contained in:
parent
c0b1108e14
commit
cd1888041a
@ -0,0 +1,60 @@
|
|||||||
|
package com.xkrs.controller;
|
||||||
|
|
||||||
|
import com.xkrs.service.FireAndRangerService;
|
||||||
|
import com.xkrs.utils.Result;
|
||||||
|
import org.springframework.security.access.annotation.Secured;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
public class FireAndRangerController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FireAndRangerService fireAndRangerService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将火点分配给某个人
|
||||||
|
* @param map
|
||||||
|
* @param token
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PreAuthorize("hasAnyRole('ROLE_city','ROLE_county')")
|
||||||
|
@PostMapping("/addFireAndRanger")
|
||||||
|
public Result addFireAndRanger(@RequestBody Map map, @RequestHeader(value="Authorization") String token) throws UnsupportedEncodingException {
|
||||||
|
String rangerName = (String) map.get("rangerName");
|
||||||
|
String fireCode = (String) map.get("fireCode");
|
||||||
|
String handler = (String) map.get("handler");
|
||||||
|
String verifier = (String) map.get("verifier");
|
||||||
|
return fireAndRangerService.addFireAndRanger(rangerName,fireCode,handler,verifier,token);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 护林员查看自己的火点任务
|
||||||
|
* @param token
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Secured("ROLE_ranger")
|
||||||
|
@GetMapping("/selectFireInformation")
|
||||||
|
public Result selectFireInformation(@RequestHeader(value="Authorization") String token){
|
||||||
|
return fireAndRangerService.selectFireInformation(token);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据火点编码查询核查信息
|
||||||
|
* @param map
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PreAuthorize("hasAnyRole('ROLE_city','ROLE_county')")
|
||||||
|
@PostMapping("/findFireAndRanger")
|
||||||
|
public Result findFireAndRangerByFireCode(@RequestBody Map map, @RequestHeader(value="Authorization") String token) throws Exception {
|
||||||
|
String fireCode = (String) map.get("fireCode");
|
||||||
|
return fireAndRangerService.findFireAndRangerByFireCode(fireCode,token);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
package com.xkrs.controller;
|
||||||
|
|
||||||
|
import com.xkrs.service.XkRsForestRangerService;
|
||||||
|
import com.xkrs.utils.Result;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
public class XkRsForestRangerController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private XkRsForestRangerService xkRsForestRangerService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据区县编码查询相关护林员的信息
|
||||||
|
* @param rangerCountyCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/findByRangerCountyCode")
|
||||||
|
public Result findByRangerCountyCode(@RequestParam("rangerCountyCode") String rangerCountyCode){
|
||||||
|
return xkRsForestRangerService.findByRangerCountyCode(rangerCountyCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据区县编码查询该区县所有护林员的信息
|
||||||
|
* @param countyCode
|
||||||
|
* @param token
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PreAuthorize("hasAnyRole('ROLE_city','ROLE_county')")
|
||||||
|
@GetMapping("/findAllByRangerCountyCode")
|
||||||
|
public Result findAllByRangerCountyCode(@RequestParam("countyCode") String countyCode, @RequestHeader(value="Authorization") String token){
|
||||||
|
return xkRsForestRangerService.findAllByRangerCountyCode(countyCode,token);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据手机号修改护林员的位置
|
||||||
|
* @param map
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/updateLatAndLonByPhone")
|
||||||
|
public Result updateLatAndLonByPhone(@RequestBody Map map){
|
||||||
|
String rangerLatitude = (String) map.get("rangerLatitude");
|
||||||
|
String rangerLongitude = (String) map.get("rangerLongitude");
|
||||||
|
String rangerPhone = (String) map.get("rangerPhone");
|
||||||
|
return xkRsForestRangerService.updateLatAndLonByPhone(rangerLatitude,rangerLongitude,rangerPhone);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
24
src/main/java/com/xkrs/dao/CityDao.java
Normal file
24
src/main/java/com/xkrs/dao/CityDao.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package com.xkrs.dao;
|
||||||
|
|
||||||
|
import com.xkrs.entity.City;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public interface CityDao extends JpaRepository<City,Long>, JpaSpecificationExecutor<City> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据省编码查询城市有关信息
|
||||||
|
* @param proCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Query(value = "select city_name,city_code,city_latitude,city_longitude from city where pro_code = ?",nativeQuery = true)
|
||||||
|
List<Object[]> selectCityNameAndLatAndLog(String proCode);
|
||||||
|
}
|
54
src/main/java/com/xkrs/dao/FireAndRangerDao.java
Normal file
54
src/main/java/com/xkrs/dao/FireAndRangerDao.java
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package com.xkrs.dao;
|
||||||
|
|
||||||
|
import com.xkrs.entity.FireAndRanger;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public interface FireAndRangerDao extends JpaRepository<FireAndRanger,Long>, JpaSpecificationExecutor<FireAndRanger> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据火点编码查询信息
|
||||||
|
* @param fireCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
FireAndRanger findByFireCode(String fireCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据护林员手机号查询
|
||||||
|
* @param rangerName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
FireAndRanger findByRangerNameAndProgressType(String rangerName, String progressType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据火点编码删除火点信息
|
||||||
|
* @param fireCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
FireAndRanger deleteByFireCode(String fireCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据火点编码修改结束时间
|
||||||
|
* @param fireCode
|
||||||
|
* @param endTime
|
||||||
|
*/
|
||||||
|
@Modifying(clearAutomatically=true)
|
||||||
|
@Query(value = "update fire_and_ranger set end_time = ?2 where fire_code = ?1",nativeQuery = true)
|
||||||
|
void updateEndTimeByFireCode(String fireCode, String endTime);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据火点编码修改进程状态
|
||||||
|
* @param fireCode
|
||||||
|
* @param endTime
|
||||||
|
*/
|
||||||
|
@Modifying(clearAutomatically=true)
|
||||||
|
@Query(value = "update fire_and_ranger set progress_type = ?2 where fire_code = ?1",nativeQuery = true)
|
||||||
|
void updateProgressTypeByFireCode(String fireCode, String endTime);
|
||||||
|
}
|
18
src/main/java/com/xkrs/dao/FireTaskDao.java
Normal file
18
src/main/java/com/xkrs/dao/FireTaskDao.java
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package com.xkrs.dao;
|
||||||
|
|
||||||
|
import com.xkrs.entity.FireTask;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
public interface FireTaskDao extends JpaRepository<FireTask,Long>, JpaSpecificationExecutor<FireTask> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据火点编码查询该条任务
|
||||||
|
* @param fireCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
FireTask findByTaskFireCode(String fireCode);
|
||||||
|
}
|
29
src/main/java/com/xkrs/dao/FireTaskPhotoDao.java
Normal file
29
src/main/java/com/xkrs/dao/FireTaskPhotoDao.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.xkrs.dao;
|
||||||
|
|
||||||
|
import com.xkrs.entity.FireTaskPhoto;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
public interface FireTaskPhotoDao extends JpaRepository<FireTaskPhoto,Long>, JpaSpecificationExecutor<FireTaskPhoto> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据火点编码查询图片
|
||||||
|
* @param fireCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Query(value = "select task_photo from fire_task_photo where photo_fire_code = :fireCode",nativeQuery = true)
|
||||||
|
List<Object[]> findPhotoPath(String fireCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过火点编码查询图片的信息
|
||||||
|
* @param fireCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<FireTaskPhoto> findAllByPhotoFireCode(String fireCode);
|
||||||
|
}
|
63
src/main/java/com/xkrs/dao/ForestRangerDao.java
Normal file
63
src/main/java/com/xkrs/dao/ForestRangerDao.java
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
package com.xkrs.dao;
|
||||||
|
|
||||||
|
import com.xkrs.model.entity.ForestRanger;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
public interface XkRsForestRangerDao extends JpaRepository<ForestRanger,Long>, JpaSpecificationExecutor<ForestRanger> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据市区县编码查询护林员的信息
|
||||||
|
* @param rangerCountyCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ForestRanger findByRangerCountyCode(String rangerCountyCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据手机号对护林员的位置进行修改
|
||||||
|
* @param rangerLatitude
|
||||||
|
* @param rangerLongitude
|
||||||
|
* @param rangerPhone
|
||||||
|
*/
|
||||||
|
@Modifying(clearAutomatically=true)
|
||||||
|
@Query(value = "update xk_forest_ranger set ranger_latitude = ?1,ranger_longitude = ?2 where ranger_phone = ?3",nativeQuery = true)
|
||||||
|
void updateLatAndLonByPhone(String rangerLatitude,String rangerLongitude,String rangerPhone);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据手机号修改护林员的状态值
|
||||||
|
* @param rangerPhone
|
||||||
|
* @param rangerType
|
||||||
|
*/
|
||||||
|
@Modifying(clearAutomatically=true)
|
||||||
|
@Query(value = "update xk_forest_ranger set ranger_type = ?2 where ranger_phone = ?1",nativeQuery = true)
|
||||||
|
void updateRangerTypeByPhone(String rangerPhone,String rangerType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据手机号查询护林员的信息
|
||||||
|
* @param rangerPhone
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ForestRanger findByRangerPhone(String rangerPhone);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据区县编码查询该区县护林员的信息
|
||||||
|
* @param rangerCountyCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<ForestRanger> findAllByRangerCountyCode(String rangerCountyCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据区县编码模糊查询护林员的信息
|
||||||
|
* @param rangerCountyCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Query(value = "select * from xk_forest_ranger where ranger_county_code like CONCAT('%',:rangerCountyCode,'%')",nativeQuery = true)
|
||||||
|
List<ForestRanger> findAllsByRangerCountyCode(String rangerCountyCode);
|
||||||
|
}
|
33
src/main/java/com/xkrs/model/vo/AppPhotoVo.java
Normal file
33
src/main/java/com/xkrs/model/vo/AppPhotoVo.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package com.xkrs.vo;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
public class AppPhotoVo implements Serializable {
|
||||||
|
|
||||||
|
private String taskPhoto;
|
||||||
|
|
||||||
|
public AppPhotoVo() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppPhotoVo(String taskPhoto) {
|
||||||
|
this.taskPhoto = taskPhoto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTaskPhoto() {
|
||||||
|
return taskPhoto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTaskPhoto(String taskPhoto) {
|
||||||
|
this.taskPhoto = taskPhoto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "AppPhotoVo{" +
|
||||||
|
"taskPhoto='" + taskPhoto + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
70
src/main/java/com/xkrs/model/vo/AppTaskBodyVo.java
Normal file
70
src/main/java/com/xkrs/model/vo/AppTaskBodyVo.java
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
package com.xkrs.vo;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
public class AppTaskBodyVo implements Serializable {
|
||||||
|
|
||||||
|
private String fireCode;
|
||||||
|
|
||||||
|
private String taskInformation;
|
||||||
|
|
||||||
|
private String taskTime;
|
||||||
|
|
||||||
|
private List taskFirePhoto;
|
||||||
|
|
||||||
|
public AppTaskBodyVo() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public AppTaskBodyVo(String fireCode, String taskInformation, String taskTime, List taskFirePhoto) {
|
||||||
|
this.fireCode = fireCode;
|
||||||
|
this.taskInformation = taskInformation;
|
||||||
|
this.taskTime = taskTime;
|
||||||
|
this.taskFirePhoto = taskFirePhoto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFireCode() {
|
||||||
|
return fireCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFireCode(String fireCode) {
|
||||||
|
this.fireCode = fireCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTaskInformation() {
|
||||||
|
return taskInformation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTaskInformation(String taskInformation) {
|
||||||
|
this.taskInformation = taskInformation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTaskTime() {
|
||||||
|
return taskTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTaskTime(String taskTime) {
|
||||||
|
this.taskTime = taskTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List getTaskFirePhoto() {
|
||||||
|
return taskFirePhoto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTaskFirePhoto(List taskFirePhoto) {
|
||||||
|
this.taskFirePhoto = taskFirePhoto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "AppTaskBodyVo{" +
|
||||||
|
"fireCode='" + fireCode + '\'' +
|
||||||
|
", taskInformation='" + taskInformation + '\'' +
|
||||||
|
", taskTime='" + taskTime + '\'' +
|
||||||
|
", taskFirePhoto=" + taskFirePhoto +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
36
src/main/java/com/xkrs/service/FireAndRangerService.java
Normal file
36
src/main/java/com/xkrs/service/FireAndRangerService.java
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package com.xkrs.service;
|
||||||
|
|
||||||
|
import com.xkrs.utils.Result;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
public interface FireAndRangerService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将火点分配给护林员
|
||||||
|
* @param token
|
||||||
|
* @param rangerName
|
||||||
|
* @param fireCode
|
||||||
|
* @param handler
|
||||||
|
* @param verifier
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Result addFireAndRanger(String rangerName, String fireCode, String handler, String verifier, String token) throws UnsupportedEncodingException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 护林员查看自己的火点任务
|
||||||
|
* @param token
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Result selectFireInformation(String token);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据火点编码查询处理的信息
|
||||||
|
* @param fireCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Result findFireAndRangerByFireCode(String fireCode, String token) throws Exception;
|
||||||
|
}
|
31
src/main/java/com/xkrs/service/ForestRangerService.java
Normal file
31
src/main/java/com/xkrs/service/ForestRangerService.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.xkrs.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
public interface XkRsForestRangerService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据区县编码查询护林员的信息
|
||||||
|
* @param rangerCountyCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String findByRangerCountyCode(String rangerCountyCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据区县编码查询该区县所有护林员的信息
|
||||||
|
* @param countyCode
|
||||||
|
* @param token
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String findAllByRangerCountyCode(String countyCode, String token);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据手机号修改用户位置
|
||||||
|
* @param rangerLatitude
|
||||||
|
* @param rangerLongitude
|
||||||
|
* @param rangerPhone
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String updateLatAndLonByPhone(String rangerLatitude,String rangerLongitude,String rangerPhone);
|
||||||
|
}
|
@ -0,0 +1,171 @@
|
|||||||
|
package com.xkrs.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.xkrs.dao.*;
|
||||||
|
import com.xkrs.entity.*;
|
||||||
|
import com.xkrs.service.FireAndRangerService;
|
||||||
|
import com.xkrs.utils.*;
|
||||||
|
import com.xkrs.vo.AppPhotoVo;
|
||||||
|
import com.xkrs.vo.AppTaskBodyVo;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.cglib.beans.BeanCopier;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class FireAndRangerServiceImpl implements FireAndRangerService {
|
||||||
|
|
||||||
|
public static Logger log = LoggerFactory.getLogger(FireAndRangerServiceImpl.class);
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FireAndRangerDao fireAndRangerDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ForestUserDao forestUserDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FirePointDao firePointDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private XkRsForestRangerDao forestRangerDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RestTemplateUtil restTemplateUtil;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FireTaskDao fireTaskDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FireTaskPhotoDao fireTaskPhotoDao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将火点分配给护林员
|
||||||
|
* @param rangerName
|
||||||
|
* @param fireCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Transactional(rollbackOn = Exception.class)
|
||||||
|
@Override
|
||||||
|
public Result addFireAndRanger(String rangerName, String fireCode, String handler, String verifier, String token) throws UnsupportedEncodingException {
|
||||||
|
String tokenUserName = TokenUtil.getTokenUserName(token);
|
||||||
|
if(tokenUserName == null || "".equals(tokenUserName)){
|
||||||
|
return Result.error("您还未注册和登录,请先注册和登录!");
|
||||||
|
}
|
||||||
|
FireAndRanger byFireCode = fireAndRangerDao.findByFireCode(fireCode);
|
||||||
|
if(byFireCode != null){
|
||||||
|
return Result.error("该火点已经分配,请勿重复操作");
|
||||||
|
}
|
||||||
|
XkRsFirePoint byFireCode1 = firePointDao.findByFireCode(fireCode);
|
||||||
|
// 给app端推送的消息内容
|
||||||
|
|
||||||
|
Map<String,Object> map = new HashMap(3);
|
||||||
|
map.put("latitude",byFireCode1.getLatitude());
|
||||||
|
map.put("longitude",byFireCode1.getLongitude());
|
||||||
|
map.put("detailedAddress",byFireCode1.getDetailedAddress());
|
||||||
|
String content = JSON.toJSONString(map);
|
||||||
|
String ss = URLEncoder.encode(content,"utf-8");
|
||||||
|
|
||||||
|
//String url = "https://api.xmpush.xiaomi.com/v3/message/alias?title=收到消息&description=请"+rangerName+ "去核查该火点信息&payload="+content+"&restricted_package_name=com.xkrs.fieldverification¬ify_id=1&extra.notify_effect=2&extra.intent_uri=fieldverify://xkrs.com&alias="+rangerName;
|
||||||
|
|
||||||
|
String url = "https://api.xmpush.xiaomi.com/v3/message/alias?title=收到消息&description=请"+verifier+"去核查该火点信息&payload="+ss+"&restricted_package_name=com.xkrs.fieldverification¬ify_id=2&extra.notify_effect=2&extra.intent_uri=fieldverify://xkrs.com&alias="+rangerName+"&extra.notify_foreground=0&extra.channel_id=mipush";
|
||||||
|
|
||||||
|
String time = LocalDateTimeUtil.localDateTime2String(LocalDateTime.now());
|
||||||
|
FireAndRanger fireAndRanger = new FireAndRanger();
|
||||||
|
fireAndRanger.setRangerName(rangerName);
|
||||||
|
fireAndRanger.setFireCode(fireCode);
|
||||||
|
fireAndRanger.setHandlerTime(time);
|
||||||
|
fireAndRanger.setHandler(handler);
|
||||||
|
fireAndRanger.setVerifier(verifier);
|
||||||
|
fireAndRanger.setProgressType("1");
|
||||||
|
|
||||||
|
// 将火点分配给该护林员后,将护林员状态修改为1 表示正在执行火点任务
|
||||||
|
forestRangerDao.updateRangerTypeByPhone(rangerName,"1");
|
||||||
|
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
HttpHeaders httpHeaders = new HttpHeaders();
|
||||||
|
httpHeaders.add("Authorization","key=QW+6vVbWptJHscqD7zuM5w==");
|
||||||
|
log.info("-----------已向app发送消息");
|
||||||
|
restTemplateUtil.doPostMessageToApp(url, httpHeaders, jsonObject);
|
||||||
|
|
||||||
|
FireAndRanger save = fireAndRangerDao.save(fireAndRanger);
|
||||||
|
if(save == null){
|
||||||
|
return Result.error("操作失败");
|
||||||
|
}
|
||||||
|
return Result.ok("操作成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 护林员查看自己的火点任务
|
||||||
|
* @param token
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Result selectFireInformation(String token) {
|
||||||
|
String tokenUserName = TokenUtil.getTokenUserName(token);
|
||||||
|
if(tokenUserName == null || "".equals(tokenUserName)){
|
||||||
|
return Result.error("您还未注册和登录,请先注册和登录!");
|
||||||
|
}
|
||||||
|
XkRsUser xkRsUser = forestUserDao.selectUserName(tokenUserName);
|
||||||
|
XkRsForestRanger byRangerPhone = forestRangerDao.findByRangerPhone(xkRsUser.getNickName());
|
||||||
|
if(byRangerPhone.getRangerType().equals("1")){
|
||||||
|
FireAndRanger byRangerName = fireAndRangerDao.findByRangerNameAndProgressType(xkRsUser.getNickName(),"1");
|
||||||
|
if(byRangerName == null){
|
||||||
|
return Result.error("暂时还没有任何任务");
|
||||||
|
}
|
||||||
|
XkRsFirePoint byFireCode = firePointDao.findByFireCode(byRangerName.getFireCode());
|
||||||
|
return Result.ok(byFireCode);
|
||||||
|
}else {
|
||||||
|
return Result.error("暂时还没有任务");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据火点编码查询核查的信息
|
||||||
|
* @param fireCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Result findFireAndRangerByFireCode(String fireCode, String token) throws Exception {
|
||||||
|
String tokenUserName = TokenUtil.getTokenUserName(token);
|
||||||
|
if(tokenUserName == null || "".equals(tokenUserName)){
|
||||||
|
return Result.error("您还未注册和登录,请先注册和登录!");
|
||||||
|
}
|
||||||
|
FireAndRanger byFireCode = fireAndRangerDao.findByFireCode(fireCode);
|
||||||
|
if(byFireCode == null){
|
||||||
|
return Result.error("暂时还没有该火点核查的信息");
|
||||||
|
}
|
||||||
|
Map map = new HashMap(3);
|
||||||
|
map.put("fire",byFireCode);
|
||||||
|
FireTask byTaskFireCode = fireTaskDao.findByTaskFireCode(fireCode);
|
||||||
|
if(byTaskFireCode == null){
|
||||||
|
map.put("task",null);
|
||||||
|
return Result.ok().data(map);
|
||||||
|
}else {
|
||||||
|
AppTaskBodyVo appTaskBodyVo = new AppTaskBodyVo();
|
||||||
|
// 做映射,返回vo类对象
|
||||||
|
BeanCopier beanCopier = BeanCopier.create(FireTask.class, AppTaskBodyVo.class, false);
|
||||||
|
beanCopier.copy(byTaskFireCode,appTaskBodyVo,null);
|
||||||
|
|
||||||
|
List<Object[]> photoPath = fireTaskPhotoDao.findPhotoPath(fireCode);
|
||||||
|
List<AppPhotoVo> appPhotoVos = ObjectToBeanUtils.objectToBean(photoPath, AppPhotoVo.class);
|
||||||
|
appTaskBodyVo.setTaskFirePhoto(appPhotoVos);
|
||||||
|
map.put("task",appTaskBodyVo);
|
||||||
|
return Result.ok().data(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,83 @@
|
|||||||
|
package com.xkrs.service.impl;
|
||||||
|
|
||||||
|
import com.xkrs.common.encapsulation.PromptMessageEnum;
|
||||||
|
import com.xkrs.common.tool.TokenUtil;
|
||||||
|
import com.xkrs.dao.XkRsForestRangerDao;
|
||||||
|
import com.xkrs.model.entity.ForestRanger;
|
||||||
|
import com.xkrs.service.XkRsForestRangerService;
|
||||||
|
import org.springframework.context.i18n.LocaleContextHolder;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import static com.xkrs.common.encapsulation.OutputEncapsulation.outputEncapsulationObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class XkRsForestRangerServiceImpl implements XkRsForestRangerService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private XkRsForestRangerDao xkRsForestRangerDao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据曲线编码查询护林员的信息
|
||||||
|
* @param rangerCountyCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String findByRangerCountyCode(String rangerCountyCode) {
|
||||||
|
// 获取区域信息
|
||||||
|
Locale locale = LocaleContextHolder.getLocale();
|
||||||
|
ForestRanger byRangerCountyCode = xkRsForestRangerDao.findByRangerCountyCode(rangerCountyCode);
|
||||||
|
if(byRangerCountyCode == null){
|
||||||
|
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"该区县暂时还没有相关护林员的信息",locale);
|
||||||
|
}
|
||||||
|
return outputEncapsulationObject(PromptMessageEnum.SUCCESS,byRangerCountyCode,locale);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据区县编码查询该区县所有护林员的信息
|
||||||
|
* @param countyCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String findAllByRangerCountyCode(String countyCode, String token) {
|
||||||
|
// 获取区域信息
|
||||||
|
Locale locale = LocaleContextHolder.getLocale();
|
||||||
|
String tokenUserName = TokenUtil.getTokenUserName(token);
|
||||||
|
if("370000".equals(countyCode)){
|
||||||
|
List<ForestRanger> all = xkRsForestRangerDao.findAll();
|
||||||
|
if(all == null || all.size() == 0){
|
||||||
|
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时还没该省护林员的信息",locale);
|
||||||
|
}
|
||||||
|
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,all,locale);
|
||||||
|
}else {
|
||||||
|
List<ForestRanger> allByRangerCountyCode = xkRsForestRangerDao.findAllsByRangerCountyCode(countyCode);
|
||||||
|
if(allByRangerCountyCode == null || allByRangerCountyCode.size() == 0){
|
||||||
|
return outputEncapsulationObject(PromptMessageEnum.DATA_NONE,"暂时还没该市护林员的信息",locale);
|
||||||
|
}
|
||||||
|
return outputEncapsulationObject(PromptMessageEnum.SUCCESS,allByRangerCountyCode,locale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据手机号修改护林员的位置信息
|
||||||
|
* @param rangerLatitude
|
||||||
|
* @param rangerLongitude
|
||||||
|
* @param rangerPhone
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Transactional(rollbackOn = Exception.class)
|
||||||
|
@Override
|
||||||
|
public String updateLatAndLonByPhone(String rangerLatitude, String rangerLongitude, String rangerPhone) {
|
||||||
|
// 获取区域信息
|
||||||
|
Locale locale = LocaleContextHolder.getLocale();
|
||||||
|
xkRsForestRangerDao.updateLatAndLonByPhone(rangerLatitude,rangerLongitude,rangerPhone);
|
||||||
|
return outputEncapsulationObject(PromptMessageEnum.SUCCESS,"操作成功",locale);
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,7 @@
|
|||||||
package com.xkrs.utils;
|
package com.xkrs.utils;
|
||||||
|
|
||||||
|
import com.xkrs.dao.FirePointDao;
|
||||||
|
import com.xkrs.model.entity.FirePointEntity;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@ -18,31 +20,41 @@ import java.util.List;
|
|||||||
@Component
|
@Component
|
||||||
public class Query {
|
public class Query {
|
||||||
|
|
||||||
/*@Resource
|
@Resource
|
||||||
private ProjectOverviewDao projectOverviewDao;*/
|
private FirePointDao firePointDao;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 动态多条件查询项目信息
|
* 动态多条件查询项目信息
|
||||||
* @param
|
* @param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
/*public List<ProjectOverview> selectProjectByDynamic(String projectNumber, String projectName) {
|
public List<FirePointEntity> selectFirePoint(String cityCode,String satelliteType,String landType,String startTime,String endTime) {
|
||||||
Specification<ProjectOverview> specification = new Specification<ProjectOverview>() {
|
Specification<FirePointEntity> specification = new Specification<FirePointEntity>() {
|
||||||
@Override
|
@Override
|
||||||
public Predicate toPredicate(Root<ProjectOverview> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
|
public Predicate toPredicate(Root<FirePointEntity> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
|
||||||
List<Predicate> list = new ArrayList<>();
|
List<Predicate> list = new ArrayList<>();
|
||||||
if (projectNumber != null && !"".equals(projectNumber)) {
|
if (cityCode != null && !"".equals(cityCode)) {
|
||||||
list.add(criteriaBuilder.equal(root.get("projectNumber").as(String.class), projectNumber));
|
String substring = cityCode.substring(0, 4);
|
||||||
|
list.add(criteriaBuilder.like(root.get("countyCode").as(String.class), "%" + substring + "%"));
|
||||||
}
|
}
|
||||||
if (projectName != null && !"".equals(projectName)) {
|
if (satelliteType != null && !"".equals(satelliteType)) {
|
||||||
list.add(criteriaBuilder.like(root.get("projectName").as(String.class), "%" + projectName + "%"));
|
list.add(criteriaBuilder.equal(root.get("satelliteType").as(String.class), satelliteType));
|
||||||
|
}
|
||||||
|
if (landType != null && !"".equals(landType)) {
|
||||||
|
list.add(criteriaBuilder.equal(root.get("landType").as(String.class), landType));
|
||||||
|
}
|
||||||
|
if(startTime != null && !"".equals(startTime)){
|
||||||
|
list.add(criteriaBuilder.greaterThanOrEqualTo(root.get("addTime").as(String.class), startTime));
|
||||||
|
}
|
||||||
|
if(endTime != null && !"".equals(endTime)){
|
||||||
|
list.add(criteriaBuilder.lessThanOrEqualTo(root.get("addTime").as(String.class), endTime));
|
||||||
}
|
}
|
||||||
Predicate[] predicates = new Predicate[list.size()];
|
Predicate[] predicates = new Predicate[list.size()];
|
||||||
return criteriaBuilder.and(list.toArray(predicates));
|
return criteriaBuilder.and(list.toArray(predicates));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return projectOverviewDao.findAll(specification);
|
return firePointDao.findAll(specification);
|
||||||
}*/
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
94
src/main/java/com/xkrs/utils/RestTemplateUtil.java
Normal file
94
src/main/java/com/xkrs/utils/RestTemplateUtil.java
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
package com.xkrs.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xkrs
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class RestTemplateUtil {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RestTemplate restTemplate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 以get方式请求第三方http接口 getForEntity
|
||||||
|
* @param url
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public JSONObject doGetForEntity(String url) {
|
||||||
|
ResponseEntity<JSONObject> responseEntity = restTemplate.getForEntity(url, JSONObject.class);
|
||||||
|
return responseEntity.getBody();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 以get方式请求第三方http接口 getForObject
|
||||||
|
* 返回值返回的是响应体
|
||||||
|
* @param url
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public JSONObject doGetForObject(String url) {
|
||||||
|
JSONObject result = restTemplate.getForObject(url, JSONObject.class);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 以post方式请求第三方http接口 postForEntity
|
||||||
|
* @param url
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public JSONObject doPostForEntity(String url) {
|
||||||
|
//可设置请求参数
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("userName","admin");
|
||||||
|
param.put("ipAddress","");
|
||||||
|
param.put("clientType","WINPC");
|
||||||
|
ResponseEntity<JSONObject> responseEntity = restTemplate.postForEntity(url, param, JSONObject.class);
|
||||||
|
return responseEntity.getBody();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 以post方式请求第三方http接口 postForObject
|
||||||
|
* @param url
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public JSONObject doPostForObject(String url,JSONObject param) {
|
||||||
|
JSONObject result = restTemplate.postForObject(url, param, JSONObject.class);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* exchange方法请求第三方http接口
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public JSONObject doExchange(String url, HttpHeaders httpHeaders, JSONObject param) {
|
||||||
|
//创建请求对象
|
||||||
|
HttpEntity<JSONObject> request = new HttpEntity<>(param,httpHeaders);
|
||||||
|
//执行请求(请求路径,请求方式,请求体,响应体)
|
||||||
|
ResponseEntity<JSONObject> responseEntity = restTemplate.exchange(url, HttpMethod.POST, request, JSONObject.class);
|
||||||
|
return responseEntity.getBody();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送第三方小米推送请求,向app端推送消息
|
||||||
|
* @param url
|
||||||
|
* @param httpHeaders
|
||||||
|
* @param param
|
||||||
|
*/
|
||||||
|
public void doPostMessageToApp(String url,HttpHeaders httpHeaders,JSONObject param) {
|
||||||
|
//创建请求对象
|
||||||
|
HttpEntity<JSONObject> request = new HttpEntity<>(param,httpHeaders);
|
||||||
|
//执行请求(请求路径,请求方式,请求体,响应体)
|
||||||
|
restTemplate.exchange(url, HttpMethod.POST, request, JSONObject.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user