Browse Source

我上报的

master
yinzuomei 4 years ago
parent
commit
445a0ea0b7
  1. 5
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/IcEventReplyDTO.java
  2. 35
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MyReportIcEvFormDTO.java
  3. 36
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiReplyIcEventFormDTO.java
  4. 88
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyReportIcEvResDTO.java
  5. 64
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java
  6. 6
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventAttachmentDao.java
  7. 16
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java
  8. 3
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventReplyDao.java
  9. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventReplyService.java
  10. 28
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventService.java
  11. 12
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventReplyServiceImpl.java
  12. 60
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
  13. 11
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventAttachmentDao.xml
  14. 54
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml
  15. 15
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventReplyDao.xml

5
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/IcEventReplyDTO.java

@ -1,8 +1,10 @@
package com.epmet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
@ -64,6 +66,7 @@ public class IcEventReplyDTO implements Serializable {
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createdTime;
/**

35
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MyReportIcEvFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 居民端小程序我上报的事件 列表入参
*/
@Data
public class MyReportIcEvFormDTO extends PageFormDTO implements Serializable {
//以下参数前端传入
@NotBlank(message = "处理中:processing;已办结:closed_case", groups = PageFormDTO.AddUserInternalGroup.class)
private String status;
/**
* 暂时两端不打通先不要求传身份证了
*/
// private String idCard;
//以下参数从token中获取
@NotBlank(message = "customerId不能为空", groups = PageFormDTO.AddUserInternalGroup.class)
private String customerId;
@NotBlank(message = "userId不能为空", groups = PageFormDTO.AddUserInternalGroup.class)
private String userId;
private String icEventId;
public interface ReplyListGroup {
}
public interface RemoveRedGroup {
}
@NotBlank(message = "事件id不能为空", groups = {ReplyListGroup.class,RemoveRedGroup.class})
private String icEventId;
}

36
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiReplyIcEventFormDTO.java

@ -0,0 +1,36 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 居民端我上报的事件回复
* ic_event
*/
@Data
public class ResiReplyIcEventFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
@NotBlank(message = "事件id不能为空", groups = {AddUserInternalGroup.class})
private String icEventId;
@NotBlank(message = "内容不能为空", groups = AddUserShowGroup.class)
@Length(max = 200, message = "内容最多输入200字", groups = AddUserShowGroup.class)
private String content;
//以下参数从token中获取
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
@NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class)
private String userId;
}

88
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyReportIcEvResDTO.java

@ -0,0 +1,88 @@
package com.epmet.dto.result;
import com.epmet.dto.IcEventAttachmentDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 居民端我上报的事件列表+详情
*/
@Data
public class MyReportIcEvResDTO implements Serializable {
/**
* 事件Id
*/
private String icEventId;
/**
* 事件内容
*/
private String eventContent;
/**
* 发生时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date happenTime;
/**
* 图片[url集合]
*/
private List<String> imageList;
/**
* 音频[url集合]
*/
private List<String> voiceList;
/**
* 地址
*/
private String address;
/**
* 报事人的红点:展示1不展示0人大代表回复工作人员回复/立项/转需求/办结更新为1;
*/
private Boolean redDot;
/**
* true:可以回复
* false不可以回复
* todo
*/
private Boolean replyFlag;
/**
* 状态处理中processing已办结closed_case
*/
private String status;
/**
* 状态处理中processing已办结closed_case
*/
private String statusName;
/**
* 0:已回复 1:已转项目 1:已转需求
*/
private String operationType;
/**
* 项目需求ID
*/
private String operationId;
/**
* 最近一次操作时间回复立项转需求办结更新此列
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date latestOperatedTime;
/**
* 事件附件
*/
@JsonIgnore
private List<IcEventAttachmentDTO> attachmentList;
}

64
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java

@ -2,6 +2,7 @@ package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
@ -13,8 +14,10 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcEventDTO;
import com.epmet.dto.IcEventReplyDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.service.IcEventReplyService;
import com.epmet.service.IcEventService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -35,6 +38,8 @@ public class IcEventController {
@Autowired
private IcEventService icEventService;
@Autowired
private IcEventReplyService icEventReplyService;
@RequestMapping("list")
public Result<PageData<IcEventListResultDTO>> list(@LoginUser TokenDto tokenDto, @RequestBody IcEventListFormDTO formDTO) {
@ -307,4 +312,63 @@ public class IcEventController {
return new Result();
}
/**
* 居民端小程序我上报的事件-列表+详情
* yapi: http://yapi.elinkservice.cn/project/102/interface/api/7781
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("myreport")
public Result<PageData<MyReportIcEvResDTO>> myReport(@LoginUser TokenDto tokenDto, @RequestBody MyReportIcEvFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class);
return new Result<PageData<MyReportIcEvResDTO>>().ok(icEventService.myReport(formDTO));
}
/**
* 居民端小程序我上报的事件详情页面-回复列表
* http://yapi.elinkservice.cn/project/102/interface/api/7783
* @param formDTO
* @return
*/
@PostMapping("reply-list")
public Result<List<IcEventReplyDTO>> replyList(@LoginUser TokenDto tokenDto,@RequestBody MyReportIcEvFormDTO formDTO) {
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, MyReportIcEvFormDTO.ReplyListGroup.class);
return new Result<List<IcEventReplyDTO>>().ok(icEventReplyService.replyList(formDTO.getIcEventId(),formDTO.getUserId()));
}
/**
* 居民端小程序我上报的事件-处理中
* 点击事件进入详情页时调用此接口消除红点
* yapihttp://yapi.elinkservice.cn/project/102/interface/api/7790
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("remove-red")
public Result removeRed(@LoginUser TokenDto tokenDto, @RequestBody MyReportIcEvFormDTO formDTO) {
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, MyReportIcEvFormDTO.RemoveRedGroup.class);
icEventService.removeRed(formDTO.getUserId(), formDTO.getIcEventId());
return new Result();
}
/**
* 居民端我上报的事件-回复
* http://yapi.elinkservice.cn/project/102/interface/api/7789
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("resi-reply")
public Result resiReply(@LoginUser TokenDto tokenDto, @RequestBody ResiReplyIcEventFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, ResiReplyIcEventFormDTO.AddUserShowGroup.class,ResiReplyIcEventFormDTO.AddUserInternalGroup.class);
icEventService.resiReply(formDTO);
return new Result();
}
}

6
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventAttachmentDao.java

@ -1,8 +1,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcEventAttachmentDTO;
import com.epmet.entity.IcEventAttachmentEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 事件附件表
@ -12,5 +16,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface IcEventAttachmentDao extends BaseDao<IcEventAttachmentEntity> {
List<IcEventAttachmentDTO> selectByIcEventId(@Param("icEventId") String icEventId);
}

16
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java

@ -3,10 +3,8 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.IcEventCategoryAnalysisFormDTO;
import com.epmet.dto.form.IcEventListFormDTO;
import com.epmet.dto.result.IcEventCategoryAnalysisResDTO;
import com.epmet.dto.result.IcEventListResultDTO;
import com.epmet.dto.result.IcEventMonthlyCountResultDTO;
import com.epmet.dto.result.IcEventResultDTO;
import com.epmet.dto.form.MyReportIcEvFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcEventEntity;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
@ -123,4 +121,14 @@ public interface IcEventDao extends BaseDao<IcEventEntity> {
* @return
*/
Integer selectOrgTotal(@Param("orgId") String orgId, @Param("orgType") String orgType);
/**
* 居民端小程序我上报的事件-列表+详情
*
* @param formDTO
* @return
*/
List<MyReportIcEvResDTO> selectMyReport(MyReportIcEvFormDTO formDTO);
int updateRedDot(@Param("userId") String userId, @Param("icEventId")String icEventId);
}

3
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventReplyDao.java

@ -1,12 +1,14 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcEventReplyDTO;
import com.epmet.dto.result.IcEventProcessListResultDTO;
import com.epmet.entity.IcEventReplyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.LinkedList;
import java.util.List;
/**
* 事件回复表
@ -19,4 +21,5 @@ public interface IcEventReplyDao extends BaseDao<IcEventReplyEntity> {
LinkedList<IcEventProcessListResultDTO> selectByEventId(@Param("icEventId") String icEventId);
List<IcEventReplyDTO> selectReplyList(@Param("icEventId") String icEventId, @Param("userId")String userId);
}

8
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventReplyService.java

@ -79,4 +79,12 @@ public interface IcEventReplyService extends BaseService<IcEventReplyEntity> {
void delete(String[] ids);
LinkedList<IcEventProcessListResultDTO> getByEventId(String icEventId);
/**
* 居民端小程序我上报的事件详情页面-回复列表
*
* @param icEventId
* @return
*/
List<IcEventReplyDTO> replyList(String icEventId,String userId);
}

28
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventService.java

@ -3,9 +3,6 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcEventDTO;
import com.epmet.dto.form.IcEventAddEditFormDTO;
import com.epmet.dto.form.IcEventListFormDTO;
import com.epmet.dto.result.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.IcEventEntity;
@ -186,4 +183,29 @@ public interface IcEventService extends BaseService<IcEventEntity> {
*/
void addEventFromResi(AddEventFromResiFormDTO formDTO);
/**
* 居民端小程序我上报的事件-列表+详情
* yapi: http://yapi.elinkservice.cn/project/102/interface/api/7781
*
* @param formDTO
* @param formDTO
* @return
*/
PageData<MyReportIcEvResDTO> myReport(MyReportIcEvFormDTO formDTO);
/**
* 居民端小程序我上报的事件-处理中
* 点击事件进入详情页时调用此接口消除红点
*
* @param userId
* @param icEventId
* @return
*/
void removeRed(String userId, String icEventId);
/**
* 居民端我上报的事件-回复
* @param formDTO
*/
void resiReply(ResiReplyIcEventFormDTO formDTO);
}

12
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventReplyServiceImpl.java

@ -87,4 +87,16 @@ public class IcEventReplyServiceImpl extends BaseServiceImpl<IcEventReplyDao, Ic
return baseDao.selectByEventId(icEventId);
}
/**
* 居民端小程序我上报的事件详情页面-回复列表
*
* @param icEventId
* @return
*/
@Override
public List<IcEventReplyDTO> replyList(String icEventId, String userId) {
List<IcEventReplyDTO> list = baseDao.selectReplyList(icEventId, userId);
return list;
}
}

60
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java

@ -1124,4 +1124,64 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
}
}
/**
* 居民端小程序我上报的事件-列表+详情
* yapi: http://yapi.elinkservice.cn/project/102/interface/api/7781
*
* @param formDTO
* @return
*/
@Override
public PageData<MyReportIcEvResDTO> myReport(MyReportIcEvFormDTO formDTO) {
// 1.分页查询
PageInfo<MyReportIcEvResDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(),
formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectMyReport(formDTO));
List<MyReportIcEvResDTO> list = pageInfo.getList();
if (!CollectionUtils.isEmpty(list)) {
//封装数据
for (MyReportIcEvResDTO dto : list) {
//每个事件对应的图片数据
if (!CollectionUtils.isEmpty(dto.getAttachmentList())) {
List<String> imageList = new ArrayList<>();
List<String> voiceList = new ArrayList<>();
for (IcEventAttachmentDTO file : dto.getAttachmentList()) {
if ("image".equals(file.getAttachmentType())) {
imageList.add(file.getAttachmentUrl());
} else if ("voice".equals(file.getAttachmentType())) {
voiceList.add(file.getAttachmentUrl());
}
}
dto.setImageList(imageList);
dto.setVoiceList(voiceList);
}
}
}
return new PageData<>(list, pageInfo.getTotal());
}
/**
* 居民端小程序我上报的事件-处理中
* 点击事件进入详情页时调用此接口消除红点
*
* @param userId
* @param icEventId
* @return
*/
@Override
public void removeRed(String userId, String icEventId) {
baseDao.updateRedDot(userId,icEventId);
}
/**
* 居民端我上报的事件-回复
*
* @param formDTO
*/
@Override
public void resiReply(ResiReplyIcEventFormDTO formDTO) {
// todo
}
}

11
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventAttachmentDao.xml

@ -3,6 +3,15 @@
<mapper namespace="com.epmet.dao.IcEventAttachmentDao">
<select id="selectByIcEventId" parameterType="map" resultType="com.epmet.dto.IcEventAttachmentDTO">
SELECT
rea.attachment_url
rea.attachment_type
rea.duration
from ic_event_attachment rea
where rea.del_flag = '0'
and rea.ic_event_id = #{icEventId}
order by attachment_type asc, rea.sort asc
</select>
</mapper>

54
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

@ -280,4 +280,58 @@
and ie.GRID_ID=#{orgId}
</if>
</select>
<resultMap id="MyReportIcEvResDTOMap" type="com.epmet.dto.result.MyReportIcEvResDTO">
<id property="icEventId" column="icEventId"/>
<result property="happenTime" column="happen_time"/>
<result property="eventContent" column="event_content"/>
<result property="address" column="address"/>
<result property="status" column="status"/>
<result property="statusName" column="statusName" />
<result property="operationType" column="operation_type"/>
<result property="operationId" column="operation_id"/>
<result property="redDot" column="red_dot"/>
<result property="latestOperatedTime" column="latest_operated_time"></result>
<collection property="attachmentList" ofType="com.epmet.dto.IcEventAttachmentDTO"
column="icEventId" select="com.epmet.dao.IcEventAttachmentDao.selectByIcEventId"/>
</resultMap>
<select id="selectMyReport" parameterType="com.epmet.dto.form.MyReportIcEvFormDTO" resultMap="MyReportIcEvResDTOMap">
SELECT
ie.id as icEventId,
ie.happen_time,
ie.event_content,
ie.address,
ie.`status`,
IF(ie.status = 'processing','处理中',IF (ie.status = 'closed_case','已办结','')) statusName,
ie.operation_type,
ie.operation_id,
ie.red_dot,
ie.latest_operated_time
FROM
ic_event ie
WHERE
ie.del_flag = '0'
and ie.customer_id = #{customerId}
<if test="status != null and status != '' ">
AND ie.`status` = #{status}
</if>
<if test="userId != null and userId != '' ">
AND ie.REPORT_USER_ID = #{userId}
</if>
<if test="icEventId != null and icEventId != '' ">
AND ie.id = #{icEventId}
</if>
order by ie.latest_operated_time desc
</select>
<update id="updateRedDot" parameterType="map">
UPDATE ic_event
SET UPDATED_BY = #{userId},
UPDATED_TIME = NOW(),
RED_DOT = '0'
WHERE
id = #{icEventId}
AND DEL_FLAG = '0'
</update>
</mapper>

15
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventReplyDao.xml

@ -19,4 +19,19 @@
ORDER BY created_time DESC
</select>
<select id="selectReplyList" parameterType="map" resultType="com.epmet.dto.IcEventReplyDTO">
SELECT
r.ID replyId,
r.CONTENT,
r.CREATED_TIME,
( CASE WHEN r.CREATED_BY = #{userId} THEN '我' ELSE r.USER_SHOW_NAME END ) AS userShowName,
r.CREATED_BY
FROM
ic_event_reply r
WHERE
r.DEL_FLAG = '0'
AND r.IC_EVENT_ID = #{icEventId}
ORDER BY
r.CREATED_TIME DESC
</select>
</mapper>
Loading…
Cancel
Save