| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386 |
- package cn.com.goldenwater.dcproj.controller.system;
- import cn.com.goldenwater.core.web.BaseController;
- import cn.com.goldenwater.core.web.BaseResponse;
- import cn.com.goldenwater.dcproj.dto.BisInspAllRlationPersDto;
- import cn.com.goldenwater.dcproj.dto.OlBisInspOrgDto;
- import cn.com.goldenwater.dcproj.model.BisInspAll;
- import cn.com.goldenwater.dcproj.model.PersPosition;
- import cn.com.goldenwater.dcproj.param.PersPositionBaseParam;
- import cn.com.goldenwater.dcproj.param.PersPositionParam;
- import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
- import cn.com.goldenwater.dcproj.service.PersPositionService;
- import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
- import cn.com.goldenwater.dcproj.utils.GeoUtil;
- import cn.com.goldenwater.id.util.UuidUtil;
- import com.github.pagehelper.PageInfo;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.util.Assert;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- /**
- * @author zhaohg
- * @date 2019-2-21
- */
- @Api(value = "督查人员位置管理", tags = "06督查人员位置管理")
- @RestController
- @RequestMapping("/pers/position")
- public class PersPositionController extends BaseController {
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Autowired
- private PersPositionService persPositionService;
- @Value("${pers-persition.minute-delay}")
- public int minuteDelay;
- @Value("${pers-persition.hour-delay}")
- public int hourDelay;
- @Value("${pers-persition.day-delay}")
- public int dyaDelay;
- @ApiOperation(value = "添加人员位置信息", notes = "参数字段说明:{\n\r" +
- " \"id\":\"主键id\",\n\r" +
- " \"persId\":\"人员id\",\n\r" +
- " \"orgId\":\"机构id\",\n\r" +
- " \"groupId\":\"督查组id\",\n\r" +
- " \"operateTime\":\"定位时间(格式:yyyy-MM-dd HH:mm:ss,如:2018-07-08 13:14:14)\",\n\r" +
- " \"persName\":\"人员姓名\",\n\r" +
- " \"mobile\":\"手机号\",\n\r" +
- " \"lon\":\"经度\",\n\r" +
- " \"lat\":\"纬度\",\n\r" +
- " \"longitude\":\"经度(PC端用)\",\n\r" +
- " \"latitude\":\"纬度(PC端用)\",\n\r" +
- " \"adCode\":\"行政区划编码\",\n\r" +
- " };\n\r" +
- "返回结构说明:{\n\r" +
- " \"success\":\"是否成功(true为成功,false为失败)\",\n\r" +
- " \"code\":\"错误代码\",\n\r" +
- " \"message\":\"描述信息\",\n\r" +
- " \"throwable\":\"异常信息\",\n\r" +
- " \"data(数据信息)\":null\n\r" +
- " }")
- @RequestMapping(value = "", method = RequestMethod.POST)
- public BaseResponse<String> insert(@ApiParam(name = "persPosition", value = "PersPosition", required = true) @RequestBody PersPosition persPosition) {
- String uuid = UuidUtil.uuid(); // 生成uuid
- persPosition.setId(uuid);
- persPosition.setOperateTime(new Date());
- Map<String, Double> map = GeoUtil.gcj02towgs84(persPosition.getLon(), persPosition.getLat());
- persPosition.setLatitude(map.get("lat"));
- persPosition.setLongitude(map.get("lon"));
- persPosition.setOrgId(getCurrentOrgId());
- int ret = persPositionService.insert(persPosition);
- return buildSuccessResponse(uuid);
- }
- @ApiOperation(value = "添加多个的接口")
- @RequestMapping(value = "insertList", method = RequestMethod.POST)
- public BaseResponse insertList(@ApiParam(name = "persPosition", value = "PersPosition", required = true) @RequestBody List<PersPosition> persPositions) {
- try {
- persPositionService.insertList(persPositions);
- return buildSuccessResponse();
- } catch (Exception e) {
- e.printStackTrace();
- return buildFailResponse(e);
- }
- }
- @ApiOperation(value = "根据ID删除xxx")
- @RequestMapping(value = "/{id}", method = RequestMethod.POST)
- public BaseResponse delete(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
- int ret = persPositionService.delete(id);
- return buildSuccessResponse();
- }
- @ApiOperation(value = "更新xxx信息")
- @RequestMapping(value = "/update", method = RequestMethod.POST)
- public BaseResponse update(@ApiParam(name = "persPosition", value = "PersPosition", required = true) @RequestBody PersPosition persPosition) {
- Assert.notNull(persPosition.getId(), "主键id为必填参数");
- int ret = persPositionService.update(persPosition);
- return buildSuccessResponse();
- }
- @ApiOperation(value = "根据ID获取xxx(单表)")
- @RequestMapping(value = "/{id}", method = RequestMethod.GET)
- public BaseResponse<PersPosition> get(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
- PersPosition persPosition = persPositionService.get(id);
- return buildSuccessResponse(persPosition);
- }
- @ApiOperation(value = "条件查询人员的最新位置列表", notes = "参数字段说明:{\n\r" +
- " \"id\":\"主键id\",\n\r" +
- " \"persId\":\"人员id\",\n\r" +
- " \"orgId\":\"机构id\",\n\r" +
- " \"groupId\":\"督查组id\",\n\r" +
- " \"operateTime\":\"定位时间(格式:yyyy-MM-dd HH:mm:ss,如:2018-07-08 13:14:14)\",\n\r" +
- " \"persName\":\"人员姓名\",\n\r" +
- " \"mobile\":\"手机号\",\n\r" +
- " \"lon\":\"经度\",\n\r" +
- " \"lat\":\"纬度\",\n\r" +
- " \"adCode\":\"行政区划编码\",\n\r" +
- " };\n\r" +
- "返回结构说明:{\n\r" +
- " \"success\":\"是否成功(true为成功,false为失败)\",\n\r" +
- " \"code\":\"错误代码\",\n\r" +
- " \"message\":\"描述信息\",\n\r" +
- " \"throwable\":\"异常信息\",\n\r" +
- " \"data(数据信息)\":[\n\r" +
- " {\n\r" +
- " \"id\":\"主键id\",\n\r" +
- " \"persId\":\"人员id\",\n\r" +
- " \"orgId\":\"机构id\",\n\r" +
- " \"groupId\":\"督查组id\",\n\r" +
- " \"operateTime\":\"定位时间(格式:yyyy-MM-dd HH:mm:ss,如:2018-07-08 13:14:14)\",\n\r" +
- " \"persName\":\"人员姓名\",\n\r" +
- " \"mobile\":\"手机号\",\n\r" +
- " \"lon\":\"经度\",\n\r" +
- " \"lat\":\"纬度\",\n\r" +
- " \"adCode\":\"行政区划编码\",\n\r" +
- " \"longitude\":\"经度(PC端用)\",\n\r" +
- " \"latitude\":\"纬度(PC端用)\",\n\r" +
- " }\n\r" +
- " ]\n\r" +
- " }")
- @RequestMapping(value = "/findList", method = RequestMethod.GET)
- public BaseResponse<List<PersPosition>> findList(@ApiParam(name = "persPositionParam", value = "persPositionParam", required = true) PersPositionParam persPositionParam) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date date = calendar.getTime();
- persPositionParam.setOperateTime(date);
- persPositionParam.setOrgId(getCurrentOrgId());
- List<PersPosition> list = persPositionService.findList(persPositionParam);
- return buildSuccessResponse(list);
- }
- @ApiOperation(value = "查询人员的轨迹列表", notes = "参数字段说明:{\n\r" +
- " \"persId\":\"人员id\",\n\r" +
- " \"orgId\":\"机构id\",\n\r" +
- " \"groupId\":\"督查组id\",\n\r" +
- " \"operateTimeFrom\":\"定位时间从(格式:yyyy-MM-dd HH:mm:ss,如:2018-07-08 13:14:14)\",\n\r" +
- " \"operateTimeTo\":\"定位时间到(格式:yyyy-MM-dd HH:mm:ss,如:2018-07-08 13:14:14)\",\n\r" +
- " \"persName\":\"人员姓名\",\n\r" +
- " \"mobile\":\"手机号\",\n\r" +
- " \"lon\":\"经度\",\n\r" +
- " \"lat\":\"纬度\",\n\r" +
- " \"adCode\":\"行政区划编码\",\n\r" +
- " };\n\r" +
- "返回结构说明:{\n\r" +
- " \"success\":\"是否成功(true为成功,false为失败)\",\n\r" +
- " \"code\":\"错误代码\",\n\r" +
- " \"message\":\"描述信息\",\n\r" +
- " \"throwable\":\"异常信息\",\n\r" +
- " \"data(数据信息)\":[\n\r" +
- " {\n\r" +
- " \"id\":\"主键id\",\n\r" +
- " \"persId\":\"人员id\",\n\r" +
- " \"orgId\":\"机构id\",\n\r" +
- " \"groupId\":\"督查组id\",\n\r" +
- " \"operateTime\":\"定位时间(格式:yyyy-MM-dd HH:mm:ss,如:2018-07-08 13:14:14)\",\n\r" +
- " \"persName\":\"人员姓名\",\n\r" +
- " \"mobile\":\"手机号\",\n\r" +
- " \"lon\":\"经度\",\n\r" +
- " \"lat\":\"纬度\",\n\r" +
- " \"adCode\":\"行政区划编码\",\n\r" +
- " \"longitude\":\"经度(PC端用)\",\n\r" +
- " \"latitude\":\"纬度(PC端用)\",\n\r" +
- " }\n\r" +
- " ]\n\r" +
- " }")
- @RequestMapping(value = "/findListByPersId", method = RequestMethod.GET)
- public BaseResponse<List<PersPosition>> findListByPersId(@ApiParam(name = "persPositionParam", value = "persPositionParam", required = true) PersPositionParam persPositionParam) {
- persPositionParam.setOrgId(getCurrentOrgId());
- List<PersPosition> list = persPositionService.findListByPersId(persPositionParam);
- return buildSuccessResponse(list);
- }
- @Autowired
- private OlBisInspOrgService olBisInspOrgService;
- @ApiOperation("查询用户当前督查类型")
- @RequestMapping(value = "/findClassify", method = RequestMethod.GET)
- public BaseResponse<List<BisInspAll>> findClassify(String type, String persid) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date date = calendar.getTime();
- List<BisInspAll> list = persPositionService.findClassify(date, persid, olBisInspOrgService.getProvince(getCurrentOrgId()));
- return buildSuccessResponse(list);
- }
- @ApiOperation("根据督查类型获取督查用户列表")
- @RequestMapping(value = "/findPersListByClassify", method = RequestMethod.GET)
- public BaseResponse<PageInfo<BisInspAllRlationPersDto>> findPersListByClassify(PersPositionParam persPositionParam) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date date = calendar.getTime();
- if (StringUtils.isNotBlank(persPositionParam.getOrderBy()) && persPositionParam.getOrderBy().contains("undefined")) {
- persPositionParam.setOrderBy("");
- }
- persPositionParam.setOperateTime(date);
- persPositionParam.setProvince(olBisInspOrgService.getProvince(getCurrentOrgId()));
- PageInfo<BisInspAllRlationPersDto> page = persPositionService.findPersListByClassify(persPositionParam);
- return buildSuccessResponse(page);
- }
- @ApiOperation("获取当前用户所在位置")
- @RequestMapping(value = "/getPersPosition", method = RequestMethod.GET)
- public BaseResponse<PersPosition> getPersPosition(String persId) {
- PersPosition persPosition = persPositionService.getPersPosition(persId);
- return buildSuccessResponse(persPosition);
- }
- @ApiOperation("获取当前在线机构列表")
- @RequestMapping(value = "/findOrgList", method = RequestMethod.GET)
- public BaseResponse<List<OlBisInspOrgDto>> findOrgList() {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date operateTime = calendar.getTime();
- List<OlBisInspOrgDto> list = persPositionService.findOrgList(operateTime);
- return buildSuccessResponse(list);
- }
- @ApiOperation("根据机构获取在线人员信息")
- @RequestMapping(value = "/findPersPageByOrgId", method = RequestMethod.GET)
- public BaseResponse<PageInfo<BisInspAllRlationPersDto>> findPersPageByOrgId(PersPositionParam persPositionParam, HttpServletRequest request, HttpServletResponse response) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date date = calendar.getTime();
- persPositionParam.setOperateTime(date);
- if (StringUtils.isBlank(persPositionParam.getPersId())) {
- persPositionParam.setPersId(request.getHeader("persId"));
- }
- PageInfo<BisInspAllRlationPersDto> page = persPositionService.findPersPageByOrgId(persPositionParam, response);
- return buildSuccessResponse(page);
- }
- @ApiOperation("根据机构获取机构下当前操作人员列表")
- @RequestMapping(value = "/findPersListByOrgId", method = RequestMethod.GET)
- public BaseResponse<List<BisInspAllRlationPersDto>> findPersListByOrgId(PersPositionParam persPositionParam, HttpServletRequest request) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date date = calendar.getTime();
- persPositionParam.setOperateTime(date);
- persPositionParam.setOrgId(getCurrentOrgId());
- if (StringUtils.isBlank(persPositionParam.getPersId())) {
- persPositionParam.setPersId(getCurrentPersId());
- }
- if (StringUtils.isBlank(persPositionParam.getAdCode())) {
- persPositionParam.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(getCurrentOrgId())));
- } else {
- persPositionParam.setAdCode(AdLevelUtil.getAddvcd(persPositionParam.getAdCode()));
- }
- if ("041".equals(getCurrentOrgId())) {
- persPositionParam.setOrgId(null);
- }
- List<BisInspAllRlationPersDto> list = persPositionService.findPersListByOrgId(persPositionParam);
- return buildSuccessResponse(list);
- }
- @ApiOperation(value = "稽察人员一张图接口")
- @RequestMapping(value = "/findPersListById", method = RequestMethod.GET)
- public BaseResponse<List<BisInspAllRlationPersDto>> findPersListById(PersPositionParam persPositionParam, HttpServletRequest request) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date date = calendar.getTime();
- persPositionParam.setOperateTime(date);
- persPositionParam.setOrgId(getCurrentOrgId());
- if (StringUtils.isBlank(persPositionParam.getPersId())) {
- persPositionParam.setPersId(request.getHeader("persId"));
- }
- List<BisInspAllRlationPersDto> list = persPositionService.findPersListById(persPositionParam);
- return buildSuccessResponse(list);
- }
- @ApiOperation(value = "稽察人员一张图分页接口")
- @RequestMapping(value = "/findPersPageById", method = RequestMethod.GET)
- public BaseResponse<PageInfo<BisInspAllRlationPersDto>> findPersPageById(PersPositionParam persPositionParam, HttpServletRequest request) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date date = calendar.getTime();
- persPositionParam.setOperateTime(date);
- if (StringUtils.isBlank(persPositionParam.getPersId())) {
- persPositionParam.setPersId(request.getHeader("persId"));
- }
- PageInfo<BisInspAllRlationPersDto> pageInfo = persPositionService.findPersPageById(persPositionParam);
- return buildSuccessResponse(pageInfo);
- }
- @ApiOperation("当前在线人员统计")
- @RequestMapping(value = "/findPersCount", method = RequestMethod.GET)
- public BaseResponse<OlBisInspOrgDto> findPersCount() {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date operateTime = calendar.getTime();
- OlBisInspOrgDto counts = persPositionService.findPersCount(operateTime, getCurrentOrgId());
- return buildSuccessResponse(counts);
- }
- @ApiOperation("当前人员所属督查节点查询")
- @RequestMapping(value = "/findNodeByPersId", method = RequestMethod.GET)
- public BaseResponse<List<BisInspAll>> findNodeByPersId(String persId) {
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, minuteDelay);
- calendar.add(Calendar.HOUR_OF_DAY, hourDelay);
- calendar.add(Calendar.DAY_OF_MONTH, dyaDelay);
- Date date = calendar.getTime();
- List<BisInspAll> list = persPositionService.findNodeByPersId(date, persId, getCurrentOrgId());
- return buildSuccessResponse(list);
- }
- @ApiOperation(value = "根据人员id获取轨迹路线", notes = "根据人员id获取轨迹路线")
- @RequestMapping(value = "/fingPositionByPersid", method = RequestMethod.GET)
- public BaseResponse<PersPosition> fingPositionByPersid(@ApiParam(name = "persid", value = "人员id", required = true) @RequestParam String persid,
- @ApiParam(name = "sttm", value = "开始时间", required = false) @RequestParam(required = false) String sttm,
- @ApiParam(name = "entm", value = "结束时间", required = false) @RequestParam(required = false) String entm) {
- PersPosition persPosition = persPositionService.fingPositionByPersid(persid, sttm, entm,getCurrentLoginUser(),getCurrentOrgId());
- return buildSuccessResponse(persPosition);
- }
- @ApiOperation(value = "获取轨迹列表", notes = "获取轨迹列表")
- @RequestMapping(value = "/fingPositionList", method = RequestMethod.POST)
- public BaseResponse<PageInfo<PersPosition>> fingPositionList(@RequestBody PersPositionBaseParam persPositionBaseParam) {
- PageInfo<PersPosition> list = persPositionService.fingPositionList(persPositionBaseParam);
- return buildSuccessResponse(list);
- }
- }
|