Browse Source

新增、列表接口

master
sunyuchao 4 years ago
parent
commit
98d111953c
  1. 9
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ReportDemandFormDTO.java
  2. 2
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandRecEntity.java
  3. 20
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcDemandFormDTO.java
  4. 3
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventAddEditFormDTO.java
  5. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventListResultDTO.java
  6. 1
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java
  7. 60
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
  8. 58
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

9
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ReportDemandFormDTO.java

@ -109,4 +109,13 @@ public class ReportDemandFormDTO implements Serializable {
*/
private String latitude;
/**
* 来源[需求录入:demand 事件管理:ic_event]
*/
private String origin;
/**
* 来源Id[目前只有来源事件管理的有值]
*/
private String originId;
}

2
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandRecEntity.java

@ -149,7 +149,7 @@ public class IcUserDemandRecEntity extends BaseEpmetEntity {
private Integer awardPoint;
/**
* 服务地点工作端指派默认居民居住房屋地址居民端地图选择
* 服务地点工作端指派默认居民居住房屋地址居民端地图选择
*/
private String serviceLocation;

20
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcDemandFormDTO.java

@ -125,6 +125,26 @@ public class IcDemandFormDTO implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date wantServiceTime;
/**
* 服务地点工作端指派默认居民居住房屋地址居民端地图选择
*/
private String serviceLocation;
/**
* 门牌号详细地址
*/
private String locationDetail;
/**
* 经度,需求人是ic的居民时取所住楼栋的中心点位
*/
private String longitude;
/**
* 纬度,需求人是ic的居民时取所住楼栋的中心点位
*/
private String latitude;
/**
* 来源[需求录入:demand 事件管理:ic_event]
*/

3
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventAddEditFormDTO.java

@ -8,6 +8,7 @@ import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
@ -54,7 +55,7 @@ public class IcEventAddEditFormDTO implements Serializable {
*/
@NotNull(message = "发生时间不能为空", groups = {AddGroup.class})
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String happenTime;
private Date happenTime;
/**
* 事件内容
*/

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventListResultDTO.java

@ -122,7 +122,7 @@ public class IcEventListResultDTO implements Serializable {
* 事件附件
*/
@JsonIgnore
private List<EventDetailResultDTO.Attachment> attachmentList;
private List<Attachment> attachmentList;
@Data
public static class Attachment {
/**

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

@ -49,7 +49,6 @@ public class IcEventController {
return new Result<IcEventDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("add")
public Result save(@LoginUser TokenDto tokenDto, @RequestBody IcEventAddEditFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, AddGroup.class, DefaultGroup.class);

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

@ -121,17 +121,20 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
dto.setSourceTypeName(statusMap.get(dto.getSourceType()));
}
//每个事件对应的图片数据
List<String> imageList = new ArrayList<>();
List<String> voiceList = new ArrayList<>();
dto.getAttachmentList().forEach(file -> {
if ("image".equals(file.getType())) {
imageList.add(file.getUrl());
} else if ("voice".equals(file.getType())) {
voiceList.add(file.getUrl());
if(!CollectionUtils.isEmpty(dto.getAttachmentList())){
List<String> imageList = new ArrayList<>();
List<String> voiceList = new ArrayList<>();
for(IcEventListResultDTO.Attachment file: dto.getAttachmentList()){
if ("image".equals(file.getType())) {
imageList.add(file.getUrl());
} else if ("voice".equals(file.getType())) {
voiceList.add(file.getUrl());
}
}
});
dto.setImageList(imageList);
dto.setVoiceList(voiceList);
dto.setImageList(imageList);
dto.setVoiceList(voiceList);
}
}
}
return new PageData<>(list, pageInfo.getTotal());
@ -211,10 +214,17 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
}
}
String icEventId = UUID.randomUUID().toString().replace("-", "");
//2.判断是否立项或转需求
//2-1.项目立项
if (StringUtils.isNotBlank(formDTO.getOperationType()) && "1".equals(formDTO.getOperationType())) {
EventToProjectResultDTO project = projectTraceService.icEventToProject(formDTO.getProject());
IcEventToProjectFormDTO toProject = formDTO.getProject();
toProject.setCustomerId(formDTO.getCustomerId());
toProject.setUserId(formDTO.getUserId());
toProject.setApp(formDTO.getApp());
toProject.setClient(formDTO.getClient());
toProject.setIcEventId(icEventId);
EventToProjectResultDTO project = projectTraceService.icEventToProject(toProject);
formDTO.setOperationId(project.getProjectId());
}
//2-2.转需求
@ -223,6 +233,8 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
//需求人默认是当前用户id
dto.setDemandUserId(formDTO.getUserId());
dto.setCustomerId(formDTO.getCustomerId());
dto.setOrigin("ic_event");
dto.setOriginId(icEventId);
Result<DemandRecId> recIdResult = epmetHeartOpenFeignClient.icEventToDemand(dto);
if (!recIdResult.success() || recIdResult.getData() == null) {
throw new RenException(recIdResult.getCode(), recIdResult.getMsg());
@ -233,10 +245,14 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
//3.新增事件数据、附件数据、分类数据、回复数据、操作记录数据
//3-1.事件数据保存
IcEventEntity entity = ConvertUtils.sourceToTarget(formDTO, IcEventEntity.class);
entity.setId(icEventId);
entity.setAgencyId(gridInfo.getPid());
entity.setGridPids(gridInfo.getPids());
entity.setLatestOperatedTime(new Date());
entity.setAuditStatus(TopicConstant.AUTO_PASSED);
if("closed_case".equals(formDTO.getStatus())){
entity.setCloseCaseTime(new Date());
}
insert(entity);
//3-2.附件数据保存
List<IcEventAttachmentEntity> imageEntityList = new ArrayList<>();
@ -260,19 +276,19 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
//3-3.分类数据保存
if (!CollectionUtils.isEmpty(formDTO.getCategoryList())) {
CategoryTagResultDTO category = queryCategory(formDTO.getCustomerId(), formDTO.getCategoryList());
AtomicReference<IcEventCategoryEntity> categoryEntity = null;
category.getCategoryList().forEach(ca -> {
IcEventCategoryEntity categoryEntity = null;
for (IssueProjectCategoryDictDTO ca : category.getCategoryList()){
if (ca.getId().equals(formDTO.getCategoryList().get(0))) {
categoryEntity.set(new IcEventCategoryEntity());
categoryEntity.get().setCustomerId(formDTO.getCustomerId());
categoryEntity.get().setIcEventId(entity.getId());
categoryEntity.get().setCategoryId(ca.getId());
categoryEntity.get().setCategoryPids(ca.getPids());
categoryEntity.get().setCategoryCode(ca.getCategoryCode());
categoryEntity = new IcEventCategoryEntity();
categoryEntity.setCustomerId(formDTO.getCustomerId());
categoryEntity.setIcEventId(entity.getId());
categoryEntity.setCategoryId(ca.getId());
categoryEntity.setCategoryPids(ca.getPids());
categoryEntity.setCategoryCode(ca.getCategoryCode());
}
});
if (categoryEntity.get() != null) {
icEventCategoryService.insert(categoryEntity.get());
}
if (categoryEntity != null) {
icEventCategoryService.insert(categoryEntity);
}
}

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

@ -93,41 +93,49 @@
<result property="name" column="name" />
<result property="mobile" column="mobile" />
<result property="satisfaction" column="satisfaction" />
<result property="satisfactionName" column="satisfaction" />
<result property="satisfactionName" column="satisfactionName" />
<result property="createdTime" column="created_time" />
<result property="status" column="status" />
<result property="happenTime" column="happen_time" />
<result property="createdUserId" column="created_by" />
<result property="categoryId" column="CATEGORY_ID" />
<collection property="attachmentList" ofType="com.epmet.dto.result.IcEventListResultDTO$Attachment">
<result column="icEventAttachmentId"/><!-- 附件表ID,如果附件url和type一样会被去重 加上id就可以了 -->
<result property="categoryId" column="category_id" />
<collection property="attachmentList" ofType="com.epmet.dto.result.IcEventListResultDTO$Attachment"
column="icEventId" select="matterListByPartyServiceCenterId"/>
<!--<collection property="attachmentList" ofType="com.epmet.dto.result.IcEventListResultDTO$Attachment" select="">
<result column="icEventAttachmentId"/>&lt;!&ndash; 附件表ID,如果附件url和type一样会被去重 加上id就可以了 &ndash;&gt;
<result column="url" property="url"/>
<result column="type" property="type"/>
<result column="duration" property="duration"/>
</collection>
</collection>-->
</resultMap>
<select id="icEventList" parameterType="map" resultMap="icEventMap">
SELECT
ie.id icEventId,
ie.grid_id gridId,
ie.event_content eventContent,
ie.source_type sourceType,
ie.address address,
ie.`name` name,
ie.mobile mobile,
ie.satisfaction satisfaction,
IF(ie.satisfaction = 'bad','不满意',IF (ie.satisfaction = 'good','基本满意',IF (ie.satisfaction = 'perfect','非常满意',''))) satisfactionName,
ie.created_time createdTime,
ie.`status` status,
ie.created_by createdUserId,
rea.attachment_url as img_url,
rea.id AS iceventattachmentid,
<select id="matterListByPartyServiceCenterId" resultType="com.epmet.dto.result.IcEventListResultDTO$Attachment">
SELECT
rea.attachment_url AS url,
rea.attachment_type AS type,
rea.duration AS duration,
iec.category_id AS categoryId
rea.duration AS 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>
<select id="icEventList" parameterType="map" resultMap="icEventMap">
SELECT
ie.id,
ie.grid_id,
ie.event_content,
ie.source_type,
ie.address,
ie.`name`,
ie.mobile,
ie.satisfaction,
IF(ie.satisfaction = 'bad','不满意',IF (ie.satisfaction = 'good','基本满意',IF (ie.satisfaction = 'perfect','非常满意','')))satisfactionName,
ie.created_time,
ie.`status`,
ie.happen_time,
ie.created_by,
iec.category_id
FROM
ic_event ie
LEFT JOIN ic_event_attachment rea ON(ie.id = rea.ic_event_id AND rea.del_flag = '0')
LEFT JOIN ic_event_category iec ON(ie.id = iec.ic_event_id AND iec.del_flag = '0')
WHERE
ie.del_flag = '0'
@ -158,7 +166,7 @@
<if test="status != null and status != '' ">
AND ie.`status` = #{status}
</if>
order by ie.latest_operated_time desc, rea.sort asc
order by ie.latest_operated_time desc
</select>
<select id="listEventsByPCategoryInOrg" resultType="com.epmet.dto.result.IcEventResultDTO">

Loading…
Cancel
Save