Commit 486062e5 authored by chenhao's avatar chenhao

Merge branch 'developer' of http://172.16.10.76/moa/amos-boot-biz into developer

parents 3f3c0547 409d9958
......@@ -64,7 +64,7 @@ public class ControllerAop {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
// 不需要添加请求头的接口
String[] url = new String[]{"/api/user/selectInfo", "/api/user/save/curCompany", "/jcs/command/lookHtmlText", "/jcs/common/duty-person/findByDutyAreaId", "/tzs/wechatBack", "/tzs/wechat-relation/save"};
String[] url = new String[]{"/api/user/selectInfo", "/api/user/save/curCompany", "/jcs/command/lookHtmlText", "/jcs/common/duty-person/findByDutyAreaId", "/tzs/wechatBack", "/tzs/wechat-relation/save","/tzs/alert-called/saveMobile"};
// 获取请求路径
for(String uri : url) {
if(request.getRequestURI().indexOf(uri) != -1) {
......
......@@ -32,9 +32,14 @@ public class DangerDto {
private String dangerLevel;
/**
* 隐患等级名称
*/
private String dangerLevelName;
/**
* 状态
*/
private String state;
private String dangerState;
/**
* 是否删除
......@@ -59,6 +64,12 @@ public class DangerDto {
/**
* 问题描述
*/
private String remark;
/**
* 检查类型:1-自行检查 ;2计划检查
*/
private String checkMode;
......@@ -93,5 +104,41 @@ public class DangerDto {
/**
* 状态
*/
private String stateName;
private String dangerStateName;
/**
* 建筑id
*/
private Long structureId;
/**
* 建筑名称
*/
private String structureName;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
/**
* 隐患地址
*/
private String dangerPosition;
/**
* 治理方式
*/
private String reformType;
/**
* 治理方式名称
*/
private String reformTypeName;
}
......@@ -124,6 +124,7 @@ public class AlertCalledDto extends BaseDto {
@ApiModelProperty(value = "电梯使用状态")
private Integer useStatus;
// 废弃
@ApiModelProperty(value = "警情地址")
private String alertAddress;
......
package com.yeejoin.amos.boot.module.tzs.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
......@@ -93,7 +94,22 @@ public class DispatchPaperDto extends BaseDto {
@ApiModelProperty(value = "到达时间")
private Date arriveTime;
@ApiModelProperty(value = "救援完成时间")
private Date saveTime;
@ApiModelProperty(value = "处置时间")
private Date dealTime;
@ApiModelProperty(value = "救援机构名称")
private String saveOrgName;
@ApiModelProperty(value = "维修单位名称")
private String repairOrgName;
@ApiModelProperty(value = "维修人")
private String repairUser;
@ApiModelProperty(value = "处置单位")
private String dealOrgName;
@ApiModelProperty(value = "处置人")
private String dealUser;
}
......@@ -19,4 +19,10 @@ public class WechatAccessDto {
@ApiModelProperty(value = "手机号")
private String tel;
@ApiModelProperty(value = "用户昵称")
private String nickname;
@ApiModelProperty(value = "用户性别")
private String sex;
}
package com.yeejoin.amos.boot.module.tzs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 微信公众号返回我的任务dto类
* kongfm
*/
@Data
@ApiModel(value="WechatMyTaskDto", description="微信公众号返回我的任务dto类")
public class WechatMyTaskDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
protected Long sequenceNbr;
@ApiModelProperty(value = "警情id")
private Long alertId;
@ApiModelProperty(value = "派遣单id")
private Long paperId;
@ApiModelProperty(value = "任务状态")
private String taskStatus;
@ApiModelProperty(value = "任务类别")
private String taskType;
@ApiModelProperty(value = "任务类别code")
private String taskTypeCode;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "电梯识别码")
private String rescueCode;
@ApiModelProperty(value = "被困楼层")
private String trappedFloorNum;
@ApiModelProperty(value = "被困人数")
private String trappedNum;
@ApiModelProperty(value = "派遣时间")
private Date dispatchTime;
@ApiModelProperty(value = "有无人员伤亡")
private String hasDeadHurt;
@ApiModelProperty(value = "使用单位")
private String useUnit;
@ApiModelProperty(value = "使用单位id")
private Long useUnitId;
@ApiModelProperty(value = "使用单位主管机构")
private String useUnitAuthority;
@ApiModelProperty(value = "求援人电话")
private String emergencyCall;
@ApiModelProperty(value = "求援时间/ 报修时间/ 投诉时间")
private Date recDate;
@ApiModelProperty(value = "到达时间")
private Date arriveTime;
@ApiModelProperty(value = "救援完成时间")
private Date saveTime;
@ApiModelProperty(value = "救援单位")
private String saveOrg;
@ApiModelProperty(value = "任务接收人")
private String taskResponseUser;
@ApiModelProperty(value = "维修完成时间")
private Date fixFinishTime;
@ApiModelProperty(value = "维修单位")
private String responseOrg;
@ApiModelProperty(value = "维修人")
private String responseUser;
@ApiModelProperty(value = "故障原因")
private String errorResult;
@ApiModelProperty(value = "维修结果")
private String fixResult;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "现场照片")
private List<String> fixImgs;
@ApiModelProperty(value = "故障描述")
private String errorContent;
@ApiModelProperty(value = "故障照片")
private List<String> errorImgs;
@ApiModelProperty(value = "反馈时间")
private Date responseTime;
@ApiModelProperty(value = "反馈人")
private String feedbackUname;
@ApiModelProperty(value = "结果评价")
private String feedbackResult;
@ApiModelProperty(value = "反馈备注")
private String feedbackRemark;
@ApiModelProperty(value = "反馈现场照片")
private List<String> feedBackImgs;
@ApiModelProperty(value = "处置时间")
private Date dealTime;
@ApiModelProperty(value = "处置单位")
private String dealOrg;
@ApiModelProperty(value = "处置人")
private String dealUser;
@ApiModelProperty(value = "处置结果")
private String actionResult;
}
package com.yeejoin.amos.boot.module.tzs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 微信公众号任务列表dto类
* kongfm
*/
@Data
@ApiModel(value="WechatMyTaskListDto", description="微信公众号任务列表dto类")
public class WechatMyTaskListDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
protected Long sequenceNbr;
@ApiModelProperty(value = "任务类型")
private String taskType;
@ApiModelProperty(value = "是否结案")
private Boolean taskStatus;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "派遣时间")
private Date dispatchTime;
}
......@@ -168,9 +168,41 @@ public class DispatchPaper extends BaseEntity {
private Date arriveTime;
/**
* 救援完成时间
* 处置时间
*/
@TableField("save_time")
private Date saveTime;
@TableField("deal_time")
private Date dealTime;
/**
* 救援机构名称
*/
@TableField("save_org_name")
private String saveOrgName;
/**
* 维修单位名称
*/
@TableField("repair_org_name")
private String repairOrgName;
/**
* 维修人
*/
@TableField("repair_user")
private String repairUser;
/**
* 处置单位
*/
@TableField("deal_org_name")
private String dealOrgName;
/**
* 处置人
*/
@TableField("deal_user")
private String dealUser;
}
......@@ -20,6 +20,8 @@ public enum AlertStageEnums {
// 来源类型JQLYLX
DHBJ("963","233","电话报警"),
// 来源类型JQLYLX
GZHSB("972","APPJJ","移动端上报"),
// 警情阶段 JQJD
JJ("964","JJ","接警"),
......
......@@ -34,6 +34,7 @@ public class TzsCommonParam {
public static final String CZJG = "CZJG";
public static final String FKJG = "FKJG";
public static final String WXFK_TS = "WXFK_TS";
public static final String APPJJ = "APPJJ";
public static final String DD = "DD";
public static final String JC = "JC";
}
package com.yeejoin.amos.boot.module.tzs.api.mapper;
import com.yeejoin.amos.boot.module.tzs.api.entity.DispatchTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskListDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.DispatchTask;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 派遣任务 Mapper 接口
*
......@@ -14,4 +19,7 @@ public interface DispatchTaskMapper extends BaseMapper<DispatchTask> {
String returnDistanceByTaskId(@Param("taskId") Long taskId, @Param("lon")String lon, @Param("lat")String lat);
WechatMyTaskDto getTaskInfoByTaskId(@Param("taskId") Long taskId);
List<WechatMyTaskListDto> getTaskListByPhonePager(@Param("phone") String phone,@Param("typeCode") String typeCode, @Param("current") Long current);
}
......@@ -2,7 +2,12 @@ package com.yeejoin.amos.boot.module.tzs.api.service;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchTaskDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskListDto;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 派遣任务接口类
......@@ -18,4 +23,12 @@ public interface IDispatchTaskService {
DispatchTaskDto getTaskInfo(String orgTypeCode, Long alertId);
String returnDistanceByTaskId(Long taskId, String longitude, String latitude);
WechatMyTaskDto getTaskInfoByTaskId(Long taskId);
Boolean taskArrive(Long taskId);
Boolean saveFinish(Long taskId);
List<WechatMyTaskListDto> getTaskListByPhonePager(String phone,String typeCode,Long current);
}
package com.yeejoin.amos.boot.module.tzs.api.service;
import com.alibaba.fastjson.JSONObject;
/**
* 微信公众号服务类
*/
......@@ -17,4 +19,11 @@ public interface IWechatService {
* @return
*/
String getOpenId(String code);
/**
* 获取微信昵称
* @param openId
* @return
*/
JSONObject getUserInfo(String openId);
}
......@@ -5,31 +5,86 @@
<select id="returnDistanceByTaskId" resultType="java.lang.String">
select
(
ACOS(
SIN(
(#{lat} * PI()) / 180
) * SIN(
(
el.latitude * PI()
) / 180
) + COS(
(#{lat} * PI()) / 180
) * COS(
(
el.latitude * PI()
) / 180
) * COS(
(#{lon} * PI()) / 180 - (
el.longitude * PI()
) / 180
)
) * 6371000
) AS distance
from tz_dispatch_task ta
left JOIN tz_alert_called al on al.sequence_nbr = ta.alert_id
left JOIN tcb_elevator el on el.sequence_nbr = al.equipment_id
where ta.sequence_nbr = #{taskId}
(
ACOS(
SIN(
(#{lat} * PI()) / 180
) * SIN(
(
el.latitude * PI()
) / 180
) + COS(
(#{lat} * PI()) / 180
) * COS(
(
el.latitude * PI()
) / 180
) * COS(
(#{lon} * PI()) / 180 - (
el.longitude * PI()
) / 180
)
) * 6371000
) AS distance
from tz_dispatch_task ta
left JOIN tz_alert_called al on al.sequence_nbr = ta.alert_id
left JOIN tcb_elevator el on el.sequence_nbr = al.equipment_id
where ta.sequence_nbr = #{taskId}
</select>
<select id="getTaskInfoByTaskId" resultType="com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskDto">
select
t.sequence_nbr
t.alert_id as alertId,
p.sequence_nbr as paperId,
a.alert_stage as taskStatus,
a.alarm_type as taskType,
a.alarm_type_code as taskTypeCode,
e.address,
e.rescue_code as rescueCode,
p.dispatch_time as dispatchTime,
e.use_unit as useUnit,
e.use_unit_id as useUnitId,
e.use_unit_authority as useUnitAuthority,
a.emergency_call as emergencyCall,
a.rec_date as recDate,
p.arrive_time as arriveTime,
p.save_org_name as saveOrg,
t.response_user_name as taskResponseUser,
p.feedback_finish_time as fixFinishTime,
p.repair_org_name as responseOrg,
p.repair_user as responseUser,
p.remark as feedbackRemark,
p.feedback_time as responseTime,
p.feedback_uname as feedbackUname,
p.feedback_finish_time as dealTime,
p.deal_org_name as dealOrg,
p.deal_user as dealUser
from tz_dispatch_task t
LEFT JOIN tz_alert_called a on a.sequence_nbr = t.alert_id
LEFT JOIN tcb_elevator e on e.sequence_nbr = a.equipment_id
LEFT JOIN tz_dispatch_paper p on p.sequence_nbr = t.paper_id
where t.sequence_nbr = #{taskId}
</select>
<select id="getTaskListByPhonePager" resultType="com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskListDto">
select
t.sequence_nbr,
a.alarm_type as taskType,
a.alert_status as taskStatus,
e.address,
p.dispatch_time as dispatch_time
from tz_dispatch_task t
LEFT JOIN tz_alert_called a on a.sequence_nbr = t.alert_id
LEFT JOIN tcb_elevator e on e.sequence_nbr = a.equipment_id
LEFT JOIN tz_dispatch_paper p on p.sequence_nbr = t.paper_id
where t.response_user_tel =#{phone}
and a.alarm_type_code = #{typeCode}
ORDER BY t.rec_date desc
limit #{current},5
</select>
</mapper>
......@@ -40,22 +40,22 @@ public interface DangerFeignClient {
*
* @param page 分页信息
* @param ids 隐患ids
* @param level 隐患级别
* @param status 隐患状态
* @param dangerLevel 隐患级别
* @param dangerState 隐患状态
* @return FeignClientResult
*/
@GetMapping(value = "/page-list")
FeignClientResult<IPage<DangerDto>> pageList(Page page, @RequestParam String ids, @RequestParam(required = false) String level, @RequestParam(required = false) String status);
FeignClientResult<IPage<DangerDto>> pageList(Page page, @RequestParam String ids, @RequestParam(required = false) String dangerLevel, @RequestParam(required = false) String dangerState);
/**
* 查询所有的隐患
*
* @param ids 隐患ids
* @param level 隐患级别
* @param status 隐患状态
* @param dangerLevel 隐患级别
* @param dangerState 隐患状态
* @return FeignClientResult
*/
@GetMapping(value = "/list-all")
FeignClientResult<List<DangerDto>> listAll(@RequestParam String ids, @RequestParam(required = false) String level, @RequestParam(required = false) String status);
FeignClientResult<List<DangerDto>> listAll(@RequestParam String ids, @RequestParam(required = false) String dangerLevel, @RequestParam(required = false) String dangerState);
}
package com.yeejoin.amos.boot.module.tzs.biz.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -19,11 +20,14 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.ESAlertCalledDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.ESAlertCalledRequestDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.AlertCalled;
import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
import com.yeejoin.amos.boot.module.tzs.api.entity.WechatRelation;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.AlertCalledServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.AlertFormValueServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.DispatchPaperServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.ESAlertCalledService;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.ElevatorServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.service.impl.WechatRelationServiceImpl;
import com.yeejoin.amos.boot.module.tzs.biz.utils.AlertBeanDtoVoUtils;
import com.yeejoin.amos.boot.module.tzs.biz.utils.BeanDtoVoUtils;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
......@@ -84,6 +88,9 @@ public class AlertCalledController extends BaseController {
@Autowired
MaintenanceCompanyServiceImpl maintenanceCompanyService;
@Autowired
WechatRelationServiceImpl wechatRelationService;
/**
* 新增警情接警填报记录
*
......@@ -107,22 +114,38 @@ public class AlertCalledController extends BaseController {
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/saveMobile")
@ApiOperation(httpMethod = "POST", value = "新增警情接警填报记录", notes = "新增警情接警填报记录")
public ResponseModel<AlertCalledDto> saveMobile(@RequestBody AlertCalledDto alertCalledDto, @RequestParam String openid) {
public ResponseModel<AlertCalledDto> saveMobile(@RequestBody AlertCalledDto alertCalledDto, @RequestParam String phone) {
if (ValidationUtil.isEmpty(alertCalledDto)){
throw new BadRequest("参数校验失败.");
}
// 校验openid 是否存在
// 校验电梯识别码是否正确
// 校验手机号 是否存在
LambdaQueryWrapper<WechatRelation> queryWrapper = new LambdaQueryWrapper();
queryWrapper.eq(WechatRelation::getPhone,phone);
WechatRelation wechatRelation = wechatRelationService.getOne(queryWrapper);
if(null == wechatRelation) {
throw new BadRequest("手机号未注册");
}
// alertCalledObjsDto =iAlertCalledService.createAlertCalled(alertCalledObjsDto,reginParams.getUserModel());
return ResponseHelper.buildResponse(alertCalledDto);
// 校验电梯id是否正确
LambdaQueryWrapper<Elevator> queryWrapper1 = new LambdaQueryWrapper();
queryWrapper1.eq(Elevator::getSequenceNbr,Long.valueOf(alertCalledDto.getEquipmentId()));
Elevator elevator = elevatorServiceImpl.getOne(queryWrapper1);
if(null == elevator) {
throw new BadRequest("电梯不存在");
}
// 将电梯地址设置到警情地址
alertCalledDto.setAddress(elevator.getAddress());
alertCalledDto.setRegistrationCode(elevator.getRegisterCode());
alertCalledDto.setDeviceId(String.valueOf(elevator.getRescueCode()));
alertCalledDto.setUseStatus(elevator.getUseStatus());
alertCalledDto.setUseSiteCategory(elevator.getUseSiteCategory());
AlertCalledDto alertCalledDtoReturn = iAlertCalledService.createAlertCalled(alertCalledDto);
return ResponseHelper.buildResponse(alertCalledDtoReturn);
}
/**
......
......@@ -20,6 +20,7 @@ import com.yeejoin.amos.boot.module.tzs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
import com.yeejoin.amos.boot.module.tzs.api.enums.AlertStageEnums;
import com.yeejoin.amos.boot.module.tzs.api.enums.DispatchPaperEnums;
import com.yeejoin.amos.boot.module.tzs.api.enums.TzsCommonParam;
import com.yeejoin.amos.boot.module.tzs.api.mapper.AlertCalledMapper;
import com.yeejoin.amos.boot.module.tzs.api.service.IAlertCalledService;
import com.yeejoin.amos.boot.module.tzs.biz.utils.BeanDtoVoUtils;
......@@ -35,6 +36,7 @@ import org.typroject.tyboot.core.rdbms.annotation.Operator;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -298,6 +300,69 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
}
}
/**
*
* <pre>
* 保存警情信息 公众号
* </pre>
*
* @param alertCalledDto
* @return
*/
@Transactional(rollbackFor = RuntimeException.class)
public AlertCalledDto createAlertCalled(AlertCalledDto alertCalledDto) {
try {
// 警情基本信息
AlertCalled alertCalled = BeanDtoVoUtils.convert(alertCalledDto,AlertCalled.class);
alertCalled.setCallTime(new Date());
// 警情报送
alertCalled.setAlertStatus(false);
alertCalled.setAlertSource(AlertStageEnums.GZHSB.getValue());
alertCalled.setAlertSourceCode(AlertStageEnums.GZHSB.getCode());
alertCalled.setIsDelete(false);
alertCalled.setAlertStage(AlertStageEnums.JJ.getValue());
alertCalled.setAlertStageCode(AlertStageEnums.JJ.getId());
alertCalled.setType(AlertStageEnums.JQCB.getValue());
alertCalled.setTypeCode(AlertStageEnums.JQCB.getId());
this.save(alertCalled);
// 动态表单
AlertFormValue alertFormValue = new AlertFormValue();
// 填充警情主键
alertFormValue.setAlertCalledId(alertCalled.getSequenceNbr());
alertFormValue.setAlertTypeCode(alertCalled.getAlarmTypeCode());
if(AlertStageEnums.GZWX.getCode().equals(alertCalled.getAlarmTypeCode())) {
alertFormValue.setFieldName("故障报修描述");
alertFormValue.setFieldValue(alertCalledDto.getDescribe());
alertFormValue.setAlertFormId(8L);
alertFormValue.setFieldCode("fault_report");
} else {
alertFormValue.setFieldName("投诉咨询描述");
alertFormValue.setFieldValue(alertCalledDto.getDescribe());
alertFormValue.setFieldCode("complaint_consulttation");
alertFormValue.setAlertFormId(9L);
}
// 保存动态表单数据
iAlertFormValueService.save(alertFormValue);
//保存处置记录-接警 保存接警日志
repairConsultServiceImpl.saveRepairConsultByAlertIdType(alertCalled.getSequenceNbr(), TzsCommonParam.APPJJ,null, null);
/**
* 同步保存ES
*/
eSAlertCalledService.saveAlertCalledToES(alertCalled);
return alertCalledDto;
} catch (Exception e) {
logger.error("报送失败",e);
throw new RuntimeException("报送失败,系统异常!");
}
}
public Map<String, Object> getAlertInfoList(String beginDate, String endDate,String orgCode, String recUserId) {
Map<String, Object> result = Maps.newHashMap();
......
......@@ -9,12 +9,15 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchPaperFormDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.DispatchTaskDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.RescueProcessDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.WechatMyTaskListDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.AlertCalled;
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.RescueProcess;
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;
......@@ -173,6 +176,73 @@ public class DispatchTaskServiceImpl extends BaseService<DispatchTaskDto,Dispatc
return baseMapper.returnDistanceByTaskId(taskId, longitude, latitude);
}
@Override
public WechatMyTaskDto getTaskInfoByTaskId(Long taskId) {
return baseMapper.getTaskInfoByTaskId(taskId);
}
@Transactional
@Override
public Boolean taskArrive(Long taskId) {
Boolean flag = false;
Date now = new Date();
// 首先更新任务到达时间
DispatchTask task = this.getById(taskId);
this.update(new LambdaUpdateWrapper<DispatchTask>().set(DispatchTask::getDispatchTime,now).eq(DispatchTask::getSequenceNbr,taskId));
// 其次更新派遣单中相关信息
dispatchPaperServiceImpl.update(new LambdaUpdateWrapper<DispatchPaper>().
set(DispatchPaper::getArriveTime,now).
set(DispatchPaper::getSaveOrgName,task.getResponseOrgName()).
eq(DispatchPaper::getSequenceNbr,task.getPaperId()));
// 如果存在救援过程表更新救援过程表中信息
if(task.getIsSaveTask()) {
rescueProcessServiceImpl.update(new LambdaUpdateWrapper<RescueProcess>().
set(RescueProcess::getArriveTime,now).
set(RescueProcess::getArriveStatus,true).
set(RescueProcess::getArriveFeedbackType,"主动反馈").
set(RescueProcess::getArriveFeedbackCode,"856").
eq(RescueProcess::getAlertId,task.getAlertId()));
}
// 更新到达日志
repairConsultServiceImpl.saveRepairConsultByAlertIdType( task.getAlertId(),"DD",taskId,null);
flag = true;
return flag;
}
@Transactional
@Override
public Boolean saveFinish(Long taskId) {
Boolean flag = false;
Date now = new Date();
DispatchTask task = this.getById(taskId);
// 更新派遣单中相关信息 -- 动态字段
iAlertFormValueService.update(new LambdaUpdateWrapper<AlertFormValue>().
set(AlertFormValue::getFieldValue,DateUtils.date2LongStr(now)).
eq(AlertFormValue::getFieldCode,"save_time").
eq(AlertFormValue::getAlertCalledId,task.getPaperId()));
// 如果存在救援过程表更新救援过程表中信息
if(task.getIsSaveTask()) {
rescueProcessServiceImpl.update(new LambdaUpdateWrapper<RescueProcess>().
set(RescueProcess::getRescueTime,now).
set(RescueProcess::getRescueStatus,true).
set(RescueProcess::getRescueFeedbackType,"主动反馈").
set(RescueProcess::getRescueFeedbackCode,"856").
eq(RescueProcess::getAlertId,task.getAlertId()));
}
// 更新到达日志
repairConsultServiceImpl.saveRepairConsultByAlertIdType( task.getAlertId(),"JC",taskId,null);
flag = true;
return flag;
}
@Override
public List<WechatMyTaskListDto> getTaskListByPhonePager(String phone, String typeCode, Long current) {
return baseMapper.getTaskListByPhonePager(phone, typeCode, current*5);
}
@Transactional
@Override
public Boolean createDispatchTask(DispatchTaskDto dispatchTaskDto, AgencyUserModel sendUser) {
......
package com.yeejoin.amos.boot.module.tzs.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.tzs.api.dto.AlertCalledDto;
......@@ -87,6 +86,7 @@ public class RepairConsultServiceImpl extends BaseService<RepairConsultDto,Repai
String content = template.getContent();
String createTime = DateUtils.getDateNowString();
DispatchPaperEnums CZHJ = null;
// 公众号生成接警记录
if(AlertStageEnums.JJ.getCode().equals(type)) {
// 接警的处置环节为已接警
CZHJ = DispatchPaperEnums.receivedAlert;
......@@ -104,6 +104,21 @@ public class RepairConsultServiceImpl extends BaseService<RepairConsultDto,Repai
throw new BadRequest("警情类型缺失");
content = content.replace("$createTime",createTime).replace("$createUser",createUser).replace("$call",emergency_call);
content = content.replace("$area",area).replace("$alertType",alertType);
} else if(TzsCommonParam.APPJJ.equals(type)) {
// 接警的处置环节为已接警 公众号上报
CZHJ = DispatchPaperEnums.receivedAlert;
String emergency_call = alertCalledVo.getEmergencyCall();
String area = alertCalledVo.getAddress();
String alertType = alertCalledVo.getAlarmType();
if(emergency_call == null)
throw new BadRequest("求援人电话缺失");
if(area == null)
throw new BadRequest("区域缺失");
if(alertType == null)
throw new BadRequest("警情类型缺失");
content = content.replace("$createTime",createTime).replace("$call",emergency_call);
content = content.replace("$area",area).replace("$alertType",alertType);
} else if(TzsCommonParam.PQ.equals(type)) {
// 派遣的处置环节为已派遣
CZHJ = DispatchPaperEnums.dispatched;
......
......@@ -77,6 +77,8 @@ public class WechatServiceImpl implements IWechatService {
if(response.get("openid") != null) { // 获取token 成功
try {
String openid = response.getString("openid");
String token = response.getString("access_token");
redisUtils.set("accessToken_" + openid, token,time); // 设置用户accessToken
return openid;
} catch (Exception e) {
throw new BadRequest("获取openId 出错:" + e.getMessage());
......@@ -86,4 +88,29 @@ public class WechatServiceImpl implements IWechatService {
}
}
@Override
public JSONObject getUserInfo(String openId) {
String access_token = redisUtils.get("accessToken_" + openId) == null ? null : redisUtils.get("accessToken_" + openId).toString();
if(access_token == null) {
throw new BadRequest("用户access_token过期");
}
String nickNameUrl = wechatUrl+ "/sns/userinfo?access_token="+access_token+"&openid="+openId+"&lang=zh_CN";
String responseStr = HttpUtils.doGet(nickNameUrl);
JSONObject response = null;
try {
response = JSONObject.parseObject(responseStr);
} catch (Exception e) {
throw new BadRequest("获取nickName 出错:" + e.getMessage());
}
if(response.get("nickname") != null) { // 获取token 成功
try {
return response;
} catch (Exception e) {
throw new BadRequest("获取nickname 出错:" + e.getMessage());
}
} else {
throw new BadRequest("获取nickname 出错" + response);
}
}
}
\ No newline at end of file
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