Commit 1db29ada authored by changhong's avatar changhong

派遣单主页面数据获取接口及 派遣任务单模板生成代码

parent e8480d6c
package com.yeejoin.amos.boot.module.tzs.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 派遣单更新DTO
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="DispatchPaperUpdateDto", description="派遣单更新DTO")
public class DispatchPaperUpdateDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "派遣单Id")
private Long pageId;
@ApiModelProperty(value = "派遣任务单Id")
private Long taskId;
@ApiModelProperty(value = "派遣单位Id")
private Long orgId;
@ApiModelProperty(value = "派遣单位类型code")
private String orgTypeCode;
@ApiModelProperty(value = "派遣单位社会信用代码")
private String orgCreditCode;
@ApiModelProperty(value = "派遣时间")
private Date dispatchTime;
public DispatchPaperUpdateDto() {
}
}
......@@ -194,4 +194,10 @@ public class ElevatorDto extends BaseDto {
@ApiModelProperty(value = "原始表id(来自历史数据库)")
private String originalId;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
}
......@@ -66,4 +66,13 @@ public class RescueStationDto extends BaseDto {
@ApiModelProperty(value = "经纬度")
private String longitudeLatitude;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
@ApiModelProperty(value = "距离")
private String distance;
}
......@@ -195,4 +195,9 @@ public class Elevator extends BaseEntity {
@ApiModelProperty(value = "原始表id(来自历史数据库)")
private String originalId;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
}
......@@ -73,4 +73,10 @@ public class RescueStation extends BaseEntity {
@ApiModelProperty(value = "经纬度")
private String longitudeLatitude;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
}
package com.yeejoin.amos.boot.module.tzs.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.tzs.api.dto.RescueStationDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.RescueStation;
import java.util.List;
/**
* Mapper 接口
*
......@@ -10,5 +13,12 @@ import com.yeejoin.amos.boot.module.tzs.api.entity.RescueStation;
* @date 2021-06-01
*/
public interface RescueStationMapper extends BaseMapper<RescueStation> {
/**
* 根据经纬度和距离反馈救援机构列表
* @param lat
* @param lon
* @param distance 单位为千米
* @return
*/
List<RescueStationDto> getListByLatLonDistance(String lat, String lon, Integer distance);
}
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.tzs.api.service;
import com.yeejoin.amos.boot.module.tzs.api.entity.DispatchPaper;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
/**
* 派遣单接口类
......@@ -16,10 +17,11 @@ public interface IDispatchPaperService {
Object selectDispatchPaperDtoByAlertId(Long alertId);
/**
* 根据警情id 及 警情类别 创建 派遣单
* 根据警情id 及 警情类别 派遣人 创建 派遣单
* @param alertId
* @param alertCode
* @param sendUser
* @return
*/
DispatchPaper createDispatchPaper(Long alertId, String alertCode);
DispatchPaper createDispatchPaper(Long alertId, String alertCode, AgencyUserModel sendUser);
}
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.tzs.api.service;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchTaskDto;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
/**
* 派遣任务接口类
......@@ -12,7 +13,7 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchTaskDto;
public interface IDispatchTaskService {
Boolean createDispatchTask(DispatchTaskDto dispatchTaskDto);
Boolean createDispatchTask(DispatchTaskDto dispatchTaskDto, AgencyUserModel sendUser);
DispatchTaskDto getTaskInfo(String orgTypeCode, Long alertId);
}
......@@ -10,5 +10,10 @@ import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
* @date 2021-06-01
*/
public interface IElevatorService extends IService<Elevator> {
/**
* 根据警情返回电梯信息
* @param alertId
* @return
*/
Elevator selectByAlertId(Long alertId);
}
package com.yeejoin.amos.boot.module.tzs.api.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.module.tzs.api.dto.RescueStationDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.RescueStation;
import java.util.List;
/**
* 服务类
*
......@@ -11,4 +14,13 @@ import com.yeejoin.amos.boot.module.tzs.api.entity.RescueStation;
*/
public interface IRescueStationService extends IService<RescueStation> {
/**
* 根据经纬度和距离反馈救援机构列表
* @param lat
* @param lon
* @param distance 单位为千米
* @return
*/
List<RescueStationDto> getListByLatLonDistance(String lat, String lon, Integer distance);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.tzs.api.mapper.RescueStationMapper">
<select id="getListByLatLonDistance" resultType="com.yeejoin.amos.boot.module.tzs.api.dto.RescueStationDto">
select * from (
select tcb_rescue_station.sequence_nbr,
tcb_rescue_station.name,
tcb_rescue_station.address,
tcb_rescue_station.rescue_leader_id,
tcb_rescue_station.rescue_leader,
tcb_rescue_station.rescue_leader_phone,
(
ACOS(
SIN(
(#{lat} * 3.1415) / 180
) * SIN(
(
tcb_rescue_station.latitude * PI()
) / 180
) + COS(
(#{lat} * 3.1415) / 180
) * COS(
(
tcb_rescue_station.latitude * PI()
) / 180
) * COS(
(#{lon} * 3.1415) / 180 - (
tcb_rescue_station.longitude * PI()
) / 180
)
) * 6371
) AS distance
from tcb_rescue_station
) t
where t.distance
<![CDATA[ <= ]]>
#{distance}
</select>
</mapper>
......@@ -44,7 +44,7 @@ public class AircraftServiceImpl extends BaseService<AircraftDto, Aircraft, Airc
@Autowired
AircraftMapper aircraftMapper;
AircraftMapper aircraftMapper;
/**
* <pre>
* 保存
......
package com.yeejoin.amos.boot.module.tzs.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.tzs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.tzs.api.entity.DispatchTask;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
......@@ -17,6 +23,8 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchTaskDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import static org.typroject.tyboot.core.foundation.context.RequestContext.getToken;
/**
* 派遣任务
*
......@@ -31,18 +39,8 @@ public class DispatchTaskController extends BaseController {
@Autowired
DispatchTaskServiceImpl dispatchTaskServiceImpl;
/**
* 新增派遣任务
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增派遣任务", notes = "新增派遣任务")
public ResponseModel<Boolean> save(@RequestBody DispatchTaskDto model) {
Boolean flag = dispatchTaskServiceImpl.createDispatchTask(model);
return ResponseHelper.buildResponse(flag);
}
@Autowired
RedisUtils redisUtils;
/**
* 根据派遣单位类型和警情id 获取任务模板
......@@ -51,13 +49,30 @@ public class DispatchTaskController extends BaseController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{orgTypeCode}/{alertId}")
@GetMapping(value = "/{orgTypeCode}/alert/{alertId}")
@ApiOperation(httpMethod = "GET",value = "根据派遣单位类型和警情id 获取任务信息", notes = "根据派遣单位类型和警情id 获取任务信息")
public ResponseModel<DispatchTaskDto> selectOne(@PathVariable String orgTypeCode, @PathVariable Long alertId) {
return ResponseHelper.buildResponse(dispatchTaskServiceImpl.getTaskInfo(orgTypeCode,alertId));
}
/**
* 新增派遣任务
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增派遣任务", notes = "新增派遣任务")
public ResponseModel<Boolean> save(@RequestBody DispatchTaskDto model) {
ReginParams reginParams =
JSONObject.parseObject(null != redisUtils.get(buildKey(getToken())) ?
redisUtils.get(buildKey(getToken())).toString() : null, ReginParams.class);
Boolean flag = dispatchTaskServiceImpl.createDispatchTask(model,reginParams.getUserModel());
return ResponseHelper.buildResponse(flag);
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
......@@ -71,32 +86,17 @@ public class DispatchTaskController extends BaseController {
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "派遣任务分页查询", notes = "派遣任务分页查询")
public ResponseModel<Page<DispatchTaskDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<DispatchTaskDto> page = new Page<DispatchTaskDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(dispatchTaskServiceImpl.queryForDispatchTaskPage(page));
}
/**
* 列表全部数据查询
* 根据警情id 查找力量调派信息
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "派遣任务列表全部数据查询", notes = "派遣任务列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<DispatchTaskDto>> selectForList() {
return ResponseHelper.buildResponse(dispatchTaskServiceImpl.queryForDispatchTaskList());
@ApiOperation(httpMethod = "GET",value = "根据警情id 查找力量调派信息", notes = "根据警情id 查找力量调派信息")
@GetMapping(value = "/list/alert/{alertId}")
public ResponseModel<List<DispatchTask>> selectForListByAlertId(@PathVariable Long alertId) {
QueryWrapper<DispatchTask> queryWrapper = new QueryWrapper<DispatchTask>();
queryWrapper.eq("alert_id", alertId);
List<DispatchTask> list = dispatchTaskServiceImpl.list(queryWrapper);
return ResponseHelper.buildResponse(list);
}
}
......@@ -5,10 +5,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
import com.yeejoin.amos.boot.module.tzs.api.entity.MaintenanceUnit;
import com.yeejoin.amos.boot.module.tzs.api.entity.UseUnit;
import com.yeejoin.amos.boot.module.tzs.api.service.IMaintenanceUnitService;
import com.yeejoin.amos.boot.module.tzs.api.vo.MaintenanceUnitNameVo;
import com.yeejoin.amos.boot.module.tzs.api.vo.MaintenanceUnitVo;
import com.yeejoin.amos.boot.module.tzs.api.vo.UseUnitVo;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.AlertCalledServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.ElevatorServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.utils.BeanDtoVoUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -18,7 +24,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -40,6 +48,9 @@ public class MaintenanceUnitController extends BaseController {
@Autowired
IMaintenanceUnitService iMaintenanceUnitService;
@Autowired
ElevatorServiceImpl elevatorServiceImpl;
/**
* 新增维保单位
*
......@@ -221,5 +232,27 @@ public class MaintenanceUnitController extends BaseController {
MaintenanceUnitNameVo.class);
return ResponseHelper.buildResponse(maintenanceUnitVoIPage);
}
/**
* 根据警情id 查找设备维保单位信息
* @param alertId
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/alert/{alertId}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据警情id 查找设备维保单位信息", notes = "根据警情id 查找设备维保单位信息")
public ResponseModel<MaintenanceUnitVo> selectByAlertId(@PathVariable Long alertId) {
// 获取根据警情获取电梯信息
Elevator elevator = elevatorServiceImpl.selectByAlertId(alertId);
if (ValidationUtil.isEmpty(elevator))
throw new BadRequest("设备未找到");
// 根据设备使用单位id 获取使用单位信息
MaintenanceUnit maintenanceUnit = iMaintenanceUnitService.getById(elevator.getMaintainUnitId());
if (ValidationUtil.isEmpty(maintenanceUnit))
throw new BadRequest("维保单位未找到");
MaintenanceUnitVo maintenanceUnitVo = BeanDtoVoUtils.convert(maintenanceUnit, MaintenanceUnitVo.class);
return ResponseHelper.buildResponse(maintenanceUnitVo);
}
}
package com.yeejoin.amos.boot.module.tzs.biz.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.List;
import com.yeejoin.amos.boot.module.tzs.api.dto.RepairConsultDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.RepairConsult;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.RepairConsultServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.tzs.api.dto.RepairConsultDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import java.util.List;
/**
* 警情填报业务数据项
......@@ -103,14 +112,17 @@ public class RepairConsultController extends BaseController {
}
/**
* 列表全部数据查询
*
* 根据警情id 查找处置过程日志
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "警情填报业务数据项列表全部数据查询", notes = "警情填报业务数据项列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<RepairConsultDto>> selectForList() {
return ResponseHelper.buildResponse(repairConsultServiceImpl.queryForRepairConsultList());
@ApiOperation(httpMethod = "GET",value = "根据警情id 查找处置过程日志", notes = "根据警情id 查找处置过程日志")
@GetMapping(value = "/list/alert/{alertId}")
public ResponseModel<List<RepairConsult>> selectForListByAlertId(@PathVariable Long alertId) {
QueryWrapper<RepairConsult> queryWrapper = new QueryWrapper<RepairConsult>();
queryWrapper.eq("parent_id", alertId).orderByDesc("rec_date");
List<RepairConsult> list = repairConsultServiceImpl.list(queryWrapper);
return ResponseHelper.buildResponse(list);
}
}
......@@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.module.tzs.api.dto.RescueStationDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
import com.yeejoin.amos.boot.module.tzs.api.entity.RescueStation;
import com.yeejoin.amos.boot.module.tzs.api.service.IRescueStationService;
import com.yeejoin.amos.boot.module.tzs.api.vo.RescueStationVo;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.ElevatorServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.utils.BeanDtoVoUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -43,6 +45,9 @@ public class RescueStationController extends BaseController {
@Autowired
IRescueStationService iRescueStationService;
@Autowired
ElevatorServiceImpl elevatorServiceImpl;
/**
* 新增救援站
*
......@@ -213,5 +218,25 @@ public class RescueStationController extends BaseController {
IPage<RescueStationVo> rescueStationVoIPage = BeanDtoVoUtils.iPageVoStream(page, RescueStationVo.class);
return ResponseHelper.buildResponse(rescueStationVoIPage);
}
/**
* 根据警情id和距离返回救援机构信息
* @param alertId
* @param distance
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/alert/{alertId}/distance/{distance}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据警情id和距离返回救援机构信息", notes = "根据警情id和距离返回救援机构信息")
public ResponseModel<Object> selectByAlertIdDistance(@PathVariable Long alertId, @PathVariable Integer distance) {
// 获取根据警情获取电梯信息
Elevator elevator = elevatorServiceImpl.selectByAlertId(alertId);
String longitude = elevator.getLongitude();
String latitude = elevator.getLatitude();
// 根据经纬度和距离返回救援机构信息
return ResponseHelper.buildResponse(iRescueStationService.getListByLatLonDistance(latitude,longitude,distance));
}
}
......@@ -6,10 +6,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.feign.AmosFeignService;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
import com.yeejoin.amos.boot.module.tzs.api.entity.UseUnit;
import com.yeejoin.amos.boot.module.tzs.api.service.EquipFeignService;
import com.yeejoin.amos.boot.module.tzs.api.service.IUseUnitService;
import com.yeejoin.amos.boot.module.tzs.api.vo.UseUnitVo;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.AlertCalledServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.ElevatorServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.utils.BeanDtoVoUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -19,7 +23,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -47,6 +53,9 @@ public class UseUnitController extends BaseController {
@Autowired
AmosFeignService amosFeignService;
@Autowired
ElevatorServiceImpl elevatorServiceImpl;
/**
* 新增使用单位
*
......@@ -185,5 +194,26 @@ public class UseUnitController extends BaseController {
page = iUseUnitService.page(pageBean, useUnitQueryWrapper);
return ResponseHelper.buildResponse(page);
}
/**
* 根据警情id 查找设备使用单位信息
* @param alertId
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/alert/{alertId}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据警情id 查找设备使用单位信息", notes = "根据警情id 查找设备使用单位信息")
public ResponseModel<UseUnitVo> selectByAlertId(@PathVariable Long alertId) {
// 获取根据警情获取电梯信息
Elevator elevator = elevatorServiceImpl.selectByAlertId(alertId);
// 根据设备使用单位id 获取使用单位信息
UseUnit useUnit = iUseUnitService.getById(elevator.getUseUnitId());
if (ValidationUtil.isEmpty(useUnit))
throw new BadRequest("使用单位未找到");
UseUnitVo useUnitVo = BeanDtoVoUtils.convert(useUnit, UseUnitVo.class);
return ResponseHelper.buildResponse(useUnitVo);
}
}
package com.yeejoin.amos.boot.module.tzs.biz.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.List;
import com.yeejoin.amos.boot.module.tzs.api.dto.VoiceRecordFileDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.VoiceRecordFile;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.VoiceRecordFileServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.tzs.api.dto.VoiceRecordFileDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import java.util.List;
/**
* 通话记录附件
......@@ -103,14 +112,17 @@ public class VoiceRecordFileController extends BaseController {
}
/**
* 列表全部数据查询
*
* 根据警情id 查找通话记录信息
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "通话记录附件列表全部数据查询", notes = "通话记录附件列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<VoiceRecordFileDto>> selectForList() {
return ResponseHelper.buildResponse(voiceRecordFileServiceImpl.queryForVoiceRecordFileList());
@ApiOperation(httpMethod = "GET",value = "根据警情id 查找通话记录信息", notes = "根据警情id 查找通话记录信息")
@GetMapping(value = "/list/alert/{alertId}")
public ResponseModel<List<VoiceRecordFile>> selectForListByAlertId(@PathVariable Long alertId) {
QueryWrapper<VoiceRecordFile> queryWrapper = new QueryWrapper<VoiceRecordFile>();
queryWrapper.eq("alert_id", alertId).orderByDesc("rec_date");
List<VoiceRecordFile> list = voiceRecordFileServiceImpl.list(queryWrapper);
return ResponseHelper.buildResponse(list);
}
}
package com.yeejoin.amos.boot.module.tzs.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertFormInitDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchPaperDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchPaperFormDto;
......@@ -10,6 +13,7 @@ import com.yeejoin.amos.boot.module.tzs.api.entity.DispatchPaper;
import com.yeejoin.amos.boot.module.tzs.api.enums.DispatchPaperEnums;
import com.yeejoin.amos.boot.module.tzs.api.mapper.DispatchPaperMapper;
import com.yeejoin.amos.boot.module.tzs.api.service.IDispatchPaperService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -19,6 +23,8 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static org.typroject.tyboot.core.foundation.context.RequestContext.getToken;
/**
* 派遣单服务实现类
*
......@@ -104,7 +110,7 @@ public class DispatchPaperServiceImpl extends BaseService<DispatchPaperDto,Dispa
}
@Override
public DispatchPaper createDispatchPaper(Long alertId, String alertCode) {
public DispatchPaper createDispatchPaper(Long alertId, String alertCode, AgencyUserModel sendUser) {
// 创建基本信息
DispatchPaper dispatchPaper = new DispatchPaper();
......@@ -113,6 +119,17 @@ public class DispatchPaperServiceImpl extends BaseService<DispatchPaperDto,Dispa
dispatchPaper.setDispatchTime(new Date());
dispatchPaper.setIsDelete(false);
// 完成状态 派遣状态 派遣人
DispatchPaperEnums finishStatus = DispatchPaperEnums.getEnum("notFinish");
dispatchPaper.setPaperStatus(finishStatus.getValue());
dispatchPaper.setPaperStatusCode(finishStatus.getCode());
DispatchPaperEnums dispatchStatus = DispatchPaperEnums.getEnum("receivedAlert");
dispatchPaper.setProcessStatus(dispatchStatus.getValue());
dispatchPaper.setProcessStatusCode(dispatchStatus.getCode());
dispatchPaper.setSendUserId(sendUser.getUserId());
dispatchPaper.setSendUserName(sendUser.getUserName());
this.save(dispatchPaper);
......
......@@ -3,18 +3,33 @@ package com.yeejoin.amos.boot.module.tzs.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchPaperUpdateDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchTaskDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.tzs.api.entity.DispatchPaper;
import com.yeejoin.amos.boot.module.tzs.api.entity.DispatchTask;
import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
import com.yeejoin.amos.boot.module.tzs.api.entity.MaintenanceUnit;
import com.yeejoin.amos.boot.module.tzs.api.entity.RescueStation;
import com.yeejoin.amos.boot.module.tzs.api.entity.Template;
import com.yeejoin.amos.boot.module.tzs.api.entity.UseUnit;
import com.yeejoin.amos.boot.module.tzs.api.enums.DispatchPaperEnums;
import com.yeejoin.amos.boot.module.tzs.api.mapper.DispatchTaskMapper;
import com.yeejoin.amos.boot.module.tzs.api.service.IDispatchTaskService;
import com.yeejoin.amos.boot.module.tzs.api.service.IMaintenanceUnitService;
import com.yeejoin.amos.boot.module.tzs.api.service.IRescueStationService;
import com.yeejoin.amos.boot.module.tzs.api.service.IUseUnitService;
import com.yeejoin.amos.boot.module.tzs.biz.utils.BeanDtoVoUtils;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 派遣任务服务实现类
......@@ -35,6 +50,21 @@ public class DispatchTaskServiceImpl extends BaseService<DispatchTaskDto,Dispatc
@Autowired
ElevatorServiceImpl elevatorServiceImpl;
@Autowired
TemplateServiceImpl templateServiceImpl;
@Autowired
AlertFormValueServiceImpl iAlertFormValueService;
@Autowired
IUseUnitService iUseUnitService;
@Autowired
IMaintenanceUnitService iMaintenanceUnitService;
@Autowired
IRescueStationService iRescueStationService;
/**
* 分页查询
*/
......@@ -50,59 +80,105 @@ public class DispatchTaskServiceImpl extends BaseService<DispatchTaskDto,Dispatc
}
@Override
public Boolean createDispatchTask(DispatchTaskDto dispatchTaskDto) {
public Boolean createDispatchTask(DispatchTaskDto dispatchTaskDto, AgencyUserModel sendUser) {
boolean flag = false;
// 判断派遣单是否存在 如果不存在先创建派遣单
DispatchPaper dispatchPaper = dispatchPaperServiceImpl.selectDispatchPaperByAlertId(dispatchTaskDto.getAlertId());
if(dispatchPaper == null) {
dispatchPaper = dispatchPaperServiceImpl.createDispatchPaper(dispatchTaskDto.getAlertId(), dispatchTaskDto.getAlertCode());
dispatchPaper = dispatchPaperServiceImpl.createDispatchPaper(dispatchTaskDto.getAlertId(), dispatchTaskDto.getAlertCode(), sendUser);
}
// 创建派遣单
dispatchTaskDto.setDispatchTime(new Date());
DispatchTask dispatchTask = BeanDtoVoUtils.convert(dispatchTaskDto, DispatchTask.class);
dispatchTask.setPaperId(dispatchPaper.getSequenceNbr());
flag = this.save(dispatchTask);
if(flag) { // 创建好派遣任务单以后根据任务单类型修改派遣单信息
DispatchPaperUpdateDto paperUpdateDto = new DispatchPaperUpdateDto();
paperUpdateDto.setPageId(dispatchPaper.getSequenceNbr());
paperUpdateDto.setTaskId(dispatchTask.getSequenceNbr());
paperUpdateDto.setOrgTypeCode(dispatchTask.getOrgTypeCode());
paperUpdateDto.setDispatchTime(dispatchTask.getDispatchTime());
paperUpdateDto.setOrgId(dispatchTask.getResponseOrgId());
// 社会信用代码 根据类型查找放入
switch (dispatchTask.getOrgTypeCode()) {
case "useUnit": // 使用单位
UseUnit useUnit = iUseUnitService.getById(dispatchTask.getResponseOrgId());
paperUpdateDto.setOrgCreditCode(useUnit.getSocialCreditCode());
break;
case "repairUnit":
case "levelOneUnit":
MaintenanceUnit maintenanceUnit = iMaintenanceUnitService.getById(dispatchTask.getResponseOrgId());
paperUpdateDto.setOrgCreditCode(maintenanceUnit.getSocialCreditCode());
break;
case "levelTwoUnit":
RescueStation rescueStation = iRescueStationService.getById(dispatchTask.getResponseOrgId());
break;
}
}
return flag;
}
@Override
public DispatchTaskDto getTaskInfo(String orgTypeCode, Long alertId) {
DispatchTaskDto dispatchTaskDto = new DispatchTaskDto();
// 根据类型和警情带出负责人信息
// 获取警情信息 填充模板返回
AlertCalledDto alertCalledDto = alertCalledServiceImpl.queryBySeq(alertId);
// 设备类型 和 编码 确定设备的使用单位或者维保单位
String getEquipmentClassificationCode = alertCalledDto.getEquipmentClassificationCode();
String deviceId = alertCalledDto.getDeviceId();
// 目前只有电梯类型
QueryWrapper<Elevator> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("rescue_code", deviceId);
// 警情动态表单数据
Elevator elevator = elevatorServiceImpl.getOne(queryWrapper);
dispatchTaskDto.setOrgTypeCode(orgTypeCode);
dispatchTaskDto.setAlertId(alertId);
switch (orgTypeCode) {
case "useUnit": // 使用单位
case "levelOneUnit": // 一级响应
dispatchTaskDto.setResponseOrgId(elevator.getUseUnitId());
dispatchTaskDto.setResponseOrgName(elevator.getUseUnit());
// 获取模板 拼接json
QueryWrapper<Template> templateQueryWrapper = new QueryWrapper<>();
String alertTypeCode = alertCalledDto.getAlarmTypeCode();
templateQueryWrapper.eq("type_code","TASK-" + alertTypeCode);
Template template = templateServiceImpl.getOne(templateQueryWrapper);
String content = template.getContent();
// 替换模板内容
// 通用替换字段 报修时间 地址 电梯识别码 使用单位分类
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
String createTime = sdf.format(alertCalledDto.getCallTime());
String rescueCode = alertCalledDto.getDeviceId();
String emergencyCall = alertCalledDto.getEmergencyCall();
String contactPhone = alertCalledDto.getContactPhone();
// 电梯数据
Elevator elevator = elevatorServiceImpl.selectByAlertId(alertId);
String address = elevator.getAddress();
String useSiteCategory = elevator.getUseSiteCategory();
String useUnit = elevator.getUseUnit();
content.replace("$call_time",createTime).replace("$address",address).replace("$rescue_code",rescueCode).replace("$use_site_category",useSiteCategory);
// 警情信息动态数据
QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("alert_called_id", alertId).eq("alert_type_code",alertTypeCode);
// 派遣单动态表单数据
List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper);
// map 存取数据
Map<String,String> dynamicParms = new HashMap<String,String> ();
list.stream().forEach(paperFormValue -> {
dynamicParms.put("field_code","field_value");
});
String desc = "";
switch(alertTypeCode) {
case "KRJY" : // 困人救援
String trappedNum = dynamicParms.get("trapped_num");
String trappedFloorNum = dynamicParms.get("trapped_floor_num");
String isLight = dynamicParms.get("is_light");
String trappedTime = dynamicParms.get("trapped_time");
content.replace("$trapped_num",trappedNum).replace("$trapped_floor_num",trappedFloorNum);
content.replace("$emergency_call",emergencyCall).replace("$contact_phone",contactPhone);
content.replace("$is_light",isLight).replace("$trapped_time",trappedTime);
break;
case "repairUnit": // 维保单位
case "levelTwoUnit": // 二级响应
dispatchTaskDto.setResponseOrgId(elevator.getMaintainUnitId());
dispatchTaskDto.setResponseOrgName(elevator.getMaintainUnit());
dispatchTaskDto.setResponseUserId(elevator.getMaintainLeaderId());
dispatchTaskDto.setResponseUserName(elevator.getMaintainLeader());
dispatchTaskDto.setResponseUserTel(elevator.getMaintainLeaderPhone());
case "GZWX" : // 故障维修
desc = dynamicParms.get("desc");
content.replace("$use_unit",useUnit).replace("$desc",desc);
break;
case "levelThreeUnit": // 三级响应
case "TSZX" : // 投诉咨询
desc = dynamicParms.get("desc");
content.replace("$emergency_call",emergencyCall).replace("$contact_phone",contactPhone);
content.replace("$use_unit",useUnit).replace("$desc",desc);
break;
}
// 获取模板 拼接json
return null;
dispatchTaskDto.setDispatchContext(content);
return dispatchTaskDto;
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.tzs.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
import com.yeejoin.amos.boot.module.tzs.api.mapper.ElevatorMapper;
import com.yeejoin.amos.boot.module.tzs.api.service.IElevatorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
/**
* 服务实现类
......@@ -15,4 +20,26 @@ import org.springframework.stereotype.Service;
@Service
public class ElevatorServiceImpl extends ServiceImpl<ElevatorMapper, Elevator> implements IElevatorService {
@Autowired
AlertCalledServiceImpl alertCalledServiceImpl;
@Override
public Elevator selectByAlertId(Long alertId) {
AlertCalledDto alertCalledDto = alertCalledServiceImpl.queryBySeq(alertId);
if (ValidationUtil.isEmpty(alertCalledDto)
|| ValidationUtil.isEmpty(alertCalledDto.getDeviceId()))
throw new BadRequest("警情不存在或者设备编码不存在");
// 设备类型 和 编码 确定设备的使用单位或者维保单位
String equipmentClassificationCode = alertCalledDto.getEquipmentClassificationCode();
String deviceId = alertCalledDto.getDeviceId();
// 目前只有电梯类型
QueryWrapper<Elevator> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("rescue_code", deviceId);
Elevator elevator = this.getOne(queryWrapper);
if (ValidationUtil.isEmpty(elevator))
throw new BadRequest("设备未找到");
return elevator;
}
}
package com.yeejoin.amos.boot.module.tzs.biz.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.tzs.api.dto.RescueStationDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.RescueStation;
import com.yeejoin.amos.boot.module.tzs.api.mapper.RescueStationMapper;
import com.yeejoin.amos.boot.module.tzs.api.service.IRescueStationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 服务实现类
*
......@@ -15,4 +19,11 @@ import org.springframework.stereotype.Service;
@Service
public class RescueStationServiceImpl extends ServiceImpl<RescueStationMapper, RescueStation> implements IRescueStationService {
@Autowired
RescueStationMapper rescueStationMapper;
@Override
public List<RescueStationDto> getListByLatLonDistance(String lat, String lon, Integer distance) {
return rescueStationMapper.getListByLatLonDistance(lat,lon,distance);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment