Browse Source

Merge branch 'develop' of http://git.elinkit.com.cn:7070/r/epmet-cloud into release_temp

dev_shibei_match
jianjun 4 years ago
parent
commit
59236c084d
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  2. 26
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java
  3. 19
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/TotalAndIncrResultDTO.java
  4. 41
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java
  5. 62
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
  6. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  7. 50
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  8. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java
  9. 42
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
  10. 3
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventListFormDTO.java
  11. 23
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventShiftProjectDTO.java
  12. 96
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventToProjectFormDTO.java
  13. 17
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EventToProjectResultDTO.java
  14. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/NewEventsResultDTO.java
  15. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
  16. 18
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
  17. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
  18. 11
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java
  19. 352
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
  20. 38
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java
  21. 5
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -100,6 +100,7 @@ public enum EpmetErrorCode {
CAN_NOT_REPLY_RESI_EVENT_GOV(8605,"办结、立项处理后不可回复"),
CAN_NOT_REPLY_RESI_EVENT_SELF(8606,"当前事件待处理,不可回复"),
RESI_EVENT_CAN_NOT_CLOSE_CASE(8607,"事件尚未处理,请处理完成后进行办结"),
RESI_EVENT_SHIFT_PROJECT(8608,"事件已立项,请勿重复操作"),
// 爱心互助 居民端
NOT_IN_THE_SIGN_IN_RANGE(8510, "您还未进入指定的签到范围~"),

26
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java

@ -0,0 +1,26 @@
package com.epmet.dataaggre.dto.datastats.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 基础数据-组织各种数据汇总-接口返参
* @Auth sun
*/
@Data
public class BaseStatsDataResultDTO implements Serializable {
private static final long serialVersionUID = -771436069527114021L;
private Integer topicTotal;
private Integer topicIncr;
private Integer issueTotal;
private Integer issueIncr;
private Integer projectTotal;
private Integer projectIncr;
private Integer closedProjectTotal;
private Integer closedProjectIncr;
}

19
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/TotalAndIncrResultDTO.java

@ -0,0 +1,19 @@
package com.epmet.dataaggre.dto.datastats.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 基础数据-组织各种数据汇总-接口返参
* @Auth sun
*/
@Data
public class TotalAndIncrResultDTO implements Serializable {
private static final long serialVersionUID = -6624315950853255235L;
private Integer total;
private Integer incr;
private Integer total2;
private Integer incr2;
}

41
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java

@ -0,0 +1,41 @@
package com.epmet.dataaggre.controller.pub;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.app.form.AppFootBarFormDTO;
import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.BaseStatsDataResultDTO;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 小程序相关配置可以放在这目前只放了footbar
*
* @author yinzuomei@elink-cn.com
* @date 2021/7/27 18:36
*/
@RestController
@RequestMapping("pub")
public class PubController {
@Autowired
private DataStatsService dataStatsService;
/**
* 查询 话题 议题 项目数
*
* @param formDTO
* @return com.epmet.dataaggre.dto.app.result.AppFootBarResultDTO
* @author yinzuomei
* @date 2021/7/27 18:59
*/
@PostMapping("baseDataAgg")
public Result<BaseStatsDataResultDTO> getBaseStatsData(@RequestBody AgenctBasicDataFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,AppFootBarFormDTO.AddUserInternalGroup.class);
BaseStatsDataResultDTO resultDTO=dataStatsService.getBaseStatsData(formDTO);
return new Result<BaseStatsDataResultDTO>().ok(resultDTO);
}
}

62
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java

@ -33,7 +33,7 @@ import java.util.List;
/**
* @Author sun
* @Description 数据统计服务
* @Description 数据统计服务
*/
@Mapper
public interface DataStatsDao {
@ -178,50 +178,54 @@ public interface DataStatsDao {
/**
* 查询组织党员先锋详情
* @author zhaoqifeng
* @date 2021/5/18 14:40
*
* @param agencyId
* @return com.epmet.dataaggre.dto.datastats.result.PartyMemberVanguardDetailResultDTO
* @author zhaoqifeng
* @date 2021/5/18 14:40
*/
PartyMemberVanguardDetailResultDTO selectAgencyVanguardDetail(@Param("agencyId") String agencyId);
/**
* 查询网格党员先锋详情
* @author zhaoqifeng
* @date 2021/5/18 14:40
*
* @param grid
* @return com.epmet.dataaggre.dto.datastats.result.PartyMemberVanguardDetailResultDTO
* @author zhaoqifeng
* @date 2021/5/18 14:40
*/
PartyMemberVanguardDetailResultDTO selectGridVanguardDetail(@Param("grid") String grid);
/**
* 查询组织党员先锋排行
* @author zhaoqifeng
* @date 2021/5/18 15:02
*
* @param agencyId
* @return java.util.List<com.epmet.dataaggre.dto.datastats.result.PartyMemberVanguardDetailResultDTO>
* @author zhaoqifeng
* @date 2021/5/18 15:02
*/
List<PartyMemberVanguardDetailResultDTO> selectAgencyVanguardRank(@Param("agencyId") String agencyId);
/**
* 查询网格党员先锋排行
* @author zhaoqifeng
* @date 2021/5/18 15:03
*
* @param agencyId
* @return java.util.List<com.epmet.dataaggre.dto.datastats.result.PartyMemberVanguardDetailResultDTO>
* @author zhaoqifeng
* @date 2021/5/18 15:03
*/
List<PartyMemberVanguardDetailResultDTO> selectGridVanguardRank(@Param("agencyId") String agencyId);
List<FactGroupActDailyDTO> branchConAnalysis(@Param("customerId")String customerId,
@Param("orgId")String orgId,
@Param("orgType")String orgType,
@Param("dateId")String dateId,
@Param("parentCode")String parentCode);
List<FactGroupActDailyDTO> branchConAnalysis(@Param("customerId") String customerId,
@Param("orgId") String orgId,
@Param("orgType") String orgType,
@Param("dateId") String dateId,
@Param("parentCode") String parentCode);
List<FactGroupActDailyDTO> querySubAnalysisByCode(@Param("customerId")String customerId,
@Param("pid")String pid,
@Param("dateId")String dateId,
@Param("categoryCode")String categoryCode);
List<FactGroupActDailyDTO> querySubAnalysisByCode(@Param("customerId") String customerId,
@Param("pid") String pid,
@Param("dateId") String dateId,
@Param("categoryCode") String categoryCode);
List<GroupActRankDetailDTO> selectGroupActRankDetail(@Param("customerId") String customerId,
@Param("dateId") String dateId,
@ -246,11 +250,27 @@ public interface DataStatsDao {
/**
* 根据组织Id查询事件治理指数
* @author zhaoqifeng
* @date 2021/6/25 15:08
*
* @param agencyIds
* @param dateId
* @return com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity
* @author zhaoqifeng
* @date 2021/6/25 15:08
*/
List<FactAgencyGovernDailyEntity> getAgencyGovernDaily(@Param("agencyIds") List<String> agencyIds, @Param("dateId") String dateId);
}
/**
* desc: 根据组织Id和时间获取 话题总数及增量
*
* @param agencyList
* @param dateId
* @return com.epmet.dataaggre.dto.datastats.result.TotalAndIncrResultDTO
* @author LiuJanJun
* @date 2021/8/5 3:59 下午
*/
TotalAndIncrResultDTO getAgencySumTopic(@Param("agencyList") List<String> agencyList, @Param("dateId") String dateId);
TotalAndIncrResultDTO getAgencySumIssue(@Param("agencyList") List<String> agencyList, @Param("dateId") String dateId);
TotalAndIncrResultDTO getAgencySumProject(@Param("agencyList") List<String> agencyList, @Param("dateId") String dateId);
}

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java

@ -7,7 +7,6 @@ import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
import java.security.PrivateKey;
import java.util.List;
/**
@ -182,4 +181,7 @@ public interface DataStatsService {
* @date 2021.07.05 16:05
*/
GridMemberDataAnalysisResultDTO getGridMemberIssueProjectStats(String staffId);
BaseStatsDataResultDTO getBaseStatsData(AgenctBasicDataFormDTO formDTO);
}

50
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -1,6 +1,5 @@
package com.epmet.dataaggre.service.datastats.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.DateUtils;
@ -11,20 +10,18 @@ import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao;
import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.datastats.form.*;
import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO;
import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
import com.epmet.dataaggre.entity.datastats.DimAgencyEntity;
import com.epmet.dataaggre.entity.datastats.DimGridEntity;
import com.epmet.dataaggre.entity.datastats.FactGridMemberStatisticsDailyEntity;
import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService;
import com.github.pagehelper.PageHelper;
import com.epmet.dataaggre.service.opercrm.CustomerRelation;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@ -1428,6 +1425,49 @@ public class DataStatsServiceImpl implements DataStatsService {
public GridMemberDataAnalysisResultDTO getGridMemberIssueProjectStats(String staffId) {
return factGridMemberStatisticsDailyDao.getGridMemberIssueProjectStats( staffId);
}
@Override
public BaseStatsDataResultDTO getBaseStatsData(AgenctBasicDataFormDTO formDTO) {
//入参有日期的则按具体时间执行,没有的则按当前时间前一天执行
if (StringUtils.isBlank(formDTO.getDateId())) {
Date yesterday = DateUtils.addDateDays(new Date(), -1);
SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD);
formDTO.setDateId(format.format(yesterday));
}
BaseStatsDataResultDTO result = new BaseStatsDataResultDTO();
result.setTopicTotal(0);
result.setTopicIncr(0);
result.setIssueTotal(0);
result.setIssueIncr(0);
result.setProjectTotal(0);
result.setProjectIncr(0);
result.setClosedProjectTotal(0);
result.setClosedProjectIncr(0);
//0.根据组织Id查询是否存在子客户,存在的按areaCode查询当前客户之外的客户组织列表
List<String> agencyList = indexService.getAgencyIdsByAgencyId(formDTO.getAgencyId());
agencyList.add(formDTO.getAgencyId());
TotalAndIncrResultDTO sum = dataStatsDao.getAgencySumTopic(agencyList, formDTO.getDateId());
if (sum == null){
return result;
}
result.setTopicIncr(sum.getIncr());
result.setTopicTotal(sum.getTotal());
sum = dataStatsDao.getAgencySumIssue(agencyList,formDTO.getDateId());
result.setIssueIncr(sum.getIncr());
result.setIssueTotal(sum.getTotal());
sum = dataStatsDao.getAgencySumProject(agencyList,formDTO.getDateId());
result.setProjectIncr(sum.getIncr());
result.setProjectTotal(sum.getTotal());
result.setClosedProjectIncr(sum.getIncr2());
result.setClosedProjectTotal(sum.getTotal2());
return result;
}
private String getPercentage(Integer countInt, Integer totalInt) {
if (NumConstant.ZERO == totalInt) {
return "0%";

8
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java

@ -1,9 +1,7 @@
package com.epmet.dataaggre.service.evaluationindex.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.datastats.DataStatsDao;
import com.epmet.dataaggre.dao.evaluationindex.EvaluationIndexDao;
import com.epmet.dataaggre.dto.datastats.form.GovrnRatioFormDTO;
import com.epmet.dataaggre.dto.datastats.result.GovrnRatioResultDTO;
@ -14,13 +12,10 @@ import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService;
import com.epmet.dataaggre.service.opercrm.CustomerRelation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -114,6 +109,9 @@ public class EvaluationIndexServiceImpl implements EvaluationIndexService {
public List<String> getAgencyIdsByAgencyId(String agencyId) {
//1.查询agencyId对应组织信息
ScreenCustomerAgencyDTO dto = evaluationIndexDao.getByAgencyId(agencyId);
if (dto == null){
return new ArrayList<>();
}
//2.判断客户是否存在子客户
List<String> list = customerRelation.haveSubCustomer(dto.getCustomerId());
if (!CollectionUtils.isNotEmpty(list)) {

42
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

@ -685,5 +685,47 @@
AGENCY_ID = #{agencyId}
</foreach>
</select>
<select id="getAgencySumTopic" resultType="com.epmet.dataaggre.dto.datastats.result.TotalAndIncrResultDTO">
SELECT
sum(topic_count) AS total,
sum(TOPIC_INCREMENT) AS incr
FROM
fact_topic_status_agency_daily
WHERE
del_flag = '0'
AND topic_status_id in('discussing','closed','hidden')<!-- 讨论中(热议中!=讨论中)、已处理、已屏蔽 -->
AND date_id = #{dateId}
<foreach item="agencyId" collection="agencyList" open="AND (" separator="or" close=")" index="">
agency_id = #{agencyId}
</foreach>
</select>
<select id="getAgencySumIssue" resultType="com.epmet.dataaggre.dto.datastats.result.TotalAndIncrResultDTO">
SELECT
sum(ISSUE_TOTAL) AS total,
sum(ISSUE_INCR) AS incr
FROM
fact_issue_agency_daily
WHERE
del_flag = '0'
AND date_id = #{dateId}
<foreach item="agencyId" collection="agencyList" open="AND (" separator="or" close=")" index="">
agency_id = #{agencyId}
</foreach>
</select>
<select id="getAgencySumProject" resultType="com.epmet.dataaggre.dto.datastats.result.TotalAndIncrResultDTO">
SELECT
IFNULL(project_total, 0) AS total,
IFNULL(PROJECT_INCR, 0) AS incr,
IFNULL(CLOSED_TOTAL, 0) AS total2,
IFNULL(CLOSED_INCR, 0) AS incr2
FROM
fact_agency_project_daily
WHERE
del_flag = '0'
AND date_id = #{dateId}
<foreach item="agencyId" collection="agencyList" open="AND (" separator="or" close=")" index="">
agency_id = #{agencyId}
</foreach>
</select>
</mapper>

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

@ -26,4 +26,7 @@ public class EventListFormDTO implements Serializable {
@NotBlank(message = "",groups = EventListForm.class)
private String orgId;
private Integer pageNo;
private Integer pageSize;
}

23
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventShiftProjectDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 事件立项入参
*
* @author yinzuomei@elink-cn.com
* @date 2021/8/5 16:15
*/
@Data
public class EventShiftProjectDTO implements Serializable {
private static final long serialVersionUID = 5519721673862754305L;
//转项目的人
private String userId;
private String eventId;
private String projectId;
private Date shiftProjectTime;
private String userAgencyId;
}

96
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventToProjectFormDTO.java

@ -0,0 +1,96 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* 事件-里项目
*
* @author yinzuomei@elink-cn.com
* @date 2021/8/5 15:19
*/
@Data
public class EventToProjectFormDTO implements Serializable {
private static final long serialVersionUID = 3392008990676159012L;
public interface AddUserInternalGroup {
}
public interface ApprovalCategory extends CustomerClientShowGroup {
}
/**
* 事件id
*/
@NotBlank(message = "事件id不能为空", groups = AddUserInternalGroup.class)
private String eventId;
/**
* 项目方案 1000
*/
@Length(min = 1, max = 1000, message = "项目方案1000字", groups = {ApprovalCategory.class})
private String publicReply;
/**
* 内部备注 1000
*/
@Length(min = 1, max = 1000, message = "内部备注1000字", groups = {ApprovalCategory.class})
private String internalRemark;
/**
* 吹哨勾选的工作人员信息集合,不可为空
*/
@Valid
private List<TickStaffFormDTO> staffList;
/**
* 项目所选分类集合不可为空
*/
@Valid
private List<CategoryOrTagFormDTO> categoryList;
/**
* 项目所选标签集合
*/
private List<CategoryOrTagFormDTO> tagList;
@Length(min = 1, max = 20, message = "项目标题不能超过20位", groups = {ApprovalCategory.class})
private String title;
/**
* 公开答复对应文件集合
*/
private List<FileDTO> publicFile;
/**
* 内部备注对应文件集合
*/
private List<FileDTO> internalFile;
//定位地址[立项项目指的项目发生位置,议题转的项目指的话题发生位置]
private String locateAddress;
//定位经度
private String locateLongitude;
//定位纬度
private String locateDimension;
//以下参数从token中获取
/**
* 当前用户id
*/
@NotBlank(message = "userId不能为空",groups = AddUserInternalGroup.class)
private String userId;
/**
* 当前客户id
*/
@NotBlank(message = "customerId不能为空",groups = AddUserInternalGroup.class)
private String customerId;
private String app;
private String client;
}

17
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EventToProjectResultDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* 描述一下
*
* @author yinzuomei@elink-cn.com
* @date 2021/8/5 15:36
*/
@Data
public class EventToProjectResultDTO implements Serializable {
private static final long serialVersionUID = -7544325891712303124L;
private String projectId;
}

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

@ -29,4 +29,6 @@ public class NewEventsResultDTO implements Serializable {
* 事件图片
*/
private List<String> eventImgs;
private String eventId;
}

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java

@ -14,6 +14,8 @@ public interface ProjectConstant {
* 项目来源-组织(项目立项)
*/
String AGENCY = "agency";
String RESI_EVENT="resi_event";
/**
* 状态-待处理
*/

18
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java

@ -362,5 +362,23 @@ public class ProjectTraceController {
return new Result();
}
/**
* 事件-立项
*
* @param tokenDto
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.EventToProjectResultDTO>
* @author yinzuomei
* @date 2021/8/5 15:37
*/
@PostMapping("eventToProject")
public Result<EventToProjectResultDTO> eventToProject(@LoginUser TokenDto tokenDto,@RequestBody EventToProjectFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
formDTO.setApp(tokenDto.getApp());
formDTO.setClient(tokenDto.getClient());
ValidatorUtils.validateEntity(formDTO,EventToProjectFormDTO.ApprovalCategory.class,EventToProjectFormDTO.AddUserInternalGroup.class);
return new Result<EventToProjectResultDTO>().ok(projectTraceService.eventToProject(formDTO));
}
}

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java

@ -173,4 +173,14 @@ public interface ProjectTraceService {
* @Description 项目立项
**/
void projectApproval(ProjectApprovalFormDTO formDTO);
/**
* 事件立项
*
* @param formDTO
* @return com.epmet.dto.result.EventToProjectResultDTO
* @author yinzuomei
* @date 2021/8/5 15:38
*/
EventToProjectResultDTO eventToProject(EventToProjectFormDTO formDTO);
}

11
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java

@ -108,4 +108,15 @@ public interface ResiEventService extends BaseService<ResiEventEntity> {
*/
void closeResiEvent(CloseResiEventFormDTO formDTO);
/**
* 事件立项更新立项标志增加操作日志更新报事人被艾特的人红点
*
* @param eventShiftProjectDTO
* @return void
* @author yinzuomei
* @date 2021/8/5 16:17
*/
void shiftProject(EventShiftProjectDTO eventShiftProjectDTO);
ResiEventEntity getById(String eventId);
}

352
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

@ -22,7 +22,6 @@ import com.epmet.constant.UserMessageConstant;
import com.epmet.dao.ProjectOrgRelationDao;
import com.epmet.dao.ProjectProcessAttachmentDao;
import com.epmet.dao.ProjectProcessDao;
import com.epmet.dto.CustomerStaffDTO;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.IssueProjectTagDictDTO;
import com.epmet.dto.ProjectStaffDTO;
@ -93,6 +92,8 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private LoginUserUtil loginUserUtil;
@Autowired
private ResiEventService resiEventService;
@Override
public List<PendProjectListResultDTO> getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) {
@ -615,5 +616,354 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
return epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);
}
/**
* 事件立项
*
* @param formDTO
* @return com.epmet.dto.result.EventToProjectResultDTO
* @author yinzuomei
* @date 2021/8/5 15:38
*/
@Override
public EventToProjectResultDTO eventToProject(EventToProjectFormDTO formDTO) {
//事件已经立项,不能重复操作
ResiEventEntity resiEventEntity=resiEventService.getById(formDTO.getEventId());
if(null==resiEventEntity||resiEventEntity.getShiftProject()){
throw new RenException(EpmetErrorCode.RESI_EVENT_SHIFT_PROJECT.getCode(),EpmetErrorCode.RESI_EVENT_SHIFT_PROJECT.getMsg());
}
List<TickStaffFormDTO> staffList = formDTO.getStaffList();
//1.文字内容安全校验
List<String> list = new ArrayList<>();
list.add(formDTO.getTitle());list.add(formDTO.getPublicReply());list.add(formDTO.getPublicReply());list.add(formDTO.getInternalRemark());
safetyCheck(list);
//2.数据准备
//2-1获取当前工作人员基本信息
LoginUserDetailsResultDTO loginUser=queryLoginUserInfo(formDTO);
//2-2.调用gov-org服务,获取所有勾选人员以及议题数据对应的组织信息、部门信息、网格信息用于对处理部门和ORG_ID_PATH字段的赋值使用
AgencyDeptGridResultDTO agencyDeptGrid = getAgencyDeptGridRes(formDTO.getStaffList(),loginUser.getAgencyId());
//2-3.调用issue服务,查询分类、标签数据信息
CategoryTagResultDTO categoryTagResultDTO=queryCategoryTagRes(formDTO);
List<IssueProjectCategoryDictDTO> categoryList = categoryTagResultDTO.getCategoryList();
List<IssueProjectTagDictDTO> tagList = categoryTagResultDTO.getTagList();
//2-4.批量查询被勾选工作人员基础信息
List<StaffListResultDTO> staffInfoList=queryStaffListRes(formDTO.getStaffList(),formDTO.getUserId());
//3.封装保存业务数据
//3-1.项目主表新增数据
ProjectEntity projectEntity = new ProjectEntity();
projectEntity.setCustomerId(formDTO.getCustomerId());
// 立项人的所属组织id
projectEntity.setAgencyId(loginUser.getAgencyId());
// 项目来源新增:resi_event
projectEntity.setOrigin(ProjectConstant.RESI_EVENT);
projectEntity.setOriginId(formDTO.getEventId());
projectEntity.setTitle(formDTO.getTitle());
projectEntity.setBackGround(formDTO.getPublicReply());
projectEntity.setStatus(ProjectConstant.PENDING);
projectEntity.setOrgIdPath(loginUser.getOrgIdPath());
projectEntity.setLocateAddress(null == formDTO.getLocateAddress() ? "" : formDTO.getLocateAddress());
projectEntity.setLocateLongitude(null == formDTO.getLocateLongitude() ? "" : formDTO.getLocateLongitude());
projectEntity.setLocateDimension(null == formDTO.getLocateDimension() ? "" : formDTO.getLocateDimension());
projectService.insert(projectEntity);
//3-2.项目进展表新增第一个节点数据
ProjectProcessEntity processEntity = new ProjectProcessEntity();
processEntity.setProjectId(projectEntity.getId());
processEntity.setCustomerId(formDTO.getCustomerId());
processEntity.setStaffId(formDTO.getUserId());
processEntity.setOperation(ProjectConstant.OPERATION_CREATED);
processEntity.setOperationName(ProjectConstant.OPERATION_PROJECT_APPROVAL);
processEntity.setPublicReply(formDTO.getPublicReply());
processEntity.setInternalRemark(formDTO.getInternalRemark());
agencyDeptGrid.getAgencyList().forEach(agency -> {
if (loginUser.getAgencyId().equals(agency.getId())) {
processEntity.setDepartmentName(agency.getOrganizationName());
processEntity.setAgencyId(agency.getId());
if(org.apache.commons.lang3.StringUtils.isBlank(agency.getPids()) || org.apache.commons.lang3.StringUtils.equals(NumConstant.ZERO_STR,agency.getPids().trim()) || "".equals(agency.getPids().trim())){
processEntity.setOrgIdPath(agency.getId());
}else{
processEntity.setOrgIdPath(agency.getPids().concat(":").concat(agency.getId()));
}
}
});
projectProcessService.insert(processEntity);
//3-3.项目人员表批量新增数据
List<ProjectStaffEntity> entityList = new ArrayList<>();
staffList.forEach(ts -> {
ProjectStaffEntity entity = ConvertUtils.sourceToTarget(ts, ProjectStaffEntity.class);
entity.setOrgId(ts.getAgencyId());
entity.setProjectId(projectEntity.getId());
entity.setProcessId(processEntity.getId());
entity.setIsHandle(ProjectConstant.UNHANDLED);
agencyDeptGrid.getAgencyList().forEach(agency -> {
if (ts.getAgencyId().equals(agency.getId())) {
entity.setCustomerId(agency.getCustomerId());
entity.setOrgIdPath(("".equals(agency.getPids()) ? "" : agency.getPids() + ":") + agency.getId());
entity.setDepartmentName(agency.getOrganizationName());
}
});
if (org.apache.commons.lang3.StringUtils.isNotBlank(ts.getDepartmentId())) {
agencyDeptGrid.getDeptList().forEach(dept -> {
if (ts.getDepartmentId().equals(dept.getId())) {
entity.setDepartmentName(entity.getDepartmentName() + "-" + dept.getDepartmentName());
}
});
}
if (org.apache.commons.lang3.StringUtils.isNotBlank(ts.getGridId())) {
agencyDeptGrid.getGridList().forEach(grid -> {
if (ts.getGridId().equals(grid.getId())) {
entity.setDepartmentName(entity.getDepartmentName() + "-" + grid.getGridName());
}
});
}
entityList.add(entity);
});
projectStaffService.insertBatch(entityList);
//3-4.项目附件表新增数据
if ((null != formDTO.getPublicFile() && formDTO.getPublicFile().size() > NumConstant.ZERO)
|| (null != formDTO.getInternalFile() && formDTO.getInternalFile().size() > NumConstant.ZERO)) {
projectService.saveFile(formDTO.getPublicFile(), formDTO.getInternalFile(), formDTO.getCustomerId(), projectEntity.getId(), processEntity.getId());
}
//3-5.项目分类表新增数据
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(formDTO.getCategoryList())) {
List<ProjectCategoryEntity> categoryEntityList = new ArrayList<>();
formDTO.getCategoryList().forEach(item -> {
categoryList.forEach(ca->{
if(item.getId().equals(ca.getId())){
ProjectCategoryEntity entity = new ProjectCategoryEntity();
entity.setCustomerId(formDTO.getCustomerId());
entity.setProjectId(projectEntity.getId());
entity.setCategoryId(item.getId());
entity.setCategoryPids(ca.getPids());
entity.setCategoryCode(ca.getCategoryCode());
categoryEntityList.add(entity);
}
});
});
projectCategoryService.insertBatch(categoryEntityList);
}
//3-6.项目标签表新增数据
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(formDTO.getTagList())) {
List<ProjectTagsEntity> tagEntityList = new ArrayList<>();
formDTO.getTagList().forEach(item -> {
tagList.forEach(ta->{
if(item.getId().equals(ta.getId())){
ProjectTagsEntity entity = new ProjectTagsEntity();
entity.setCustomerId(formDTO.getCustomerId());
entity.setProjectId(projectEntity.getId());
entity.setTagId(item.getId());
entity.setTagName(ta.getTagName());
tagEntityList.add(entity);
}
});
});
projectTagsService.insertBatch(tagEntityList);
}
//3-7:初始化机关-项目时间关联数据
Date current = new Date();
List<String> projectStaffIds = entityList.stream().map(ProjectStaffEntity::getId).distinct().collect(Collectors.toList());
if(!org.apache.commons.collections4.CollectionUtils.isEmpty(projectStaffIds)){
List<ProjectOrgRelationEntity> container = new LinkedList<>();
projectStaffIds.forEach(o -> {
ProjectOrgRelationEntity period = new ProjectOrgRelationEntity();
period.setProjectStaffId(o);
period.setInformedDate(current);
period.setSourceOperation(ProjectConstant.OPERATION_CREATED);
period.setCreatedBy(formDTO.getUserId());
container.add(period);
});
relationDao.insertBatch(container);
}
//4.推送站内信、微信、短信消息
//4-1.调用epmet-message服务,给工作端勾选的工作人员发送消息
if (!shiftProjectMessage(formDTO.getStaffList(),formDTO.getCustomerId(),formDTO.getTitle()).success()) {
throw new RenException("事件转为项目,推送站内信失败");
}
//4-2.以及政府端调用epmet-message服务,给工作端工作人员推送微信订阅消息
if (!wxmpShiftProjectMessage(formDTO.getStaffList(),formDTO.getCustomerId(),formDTO.getTitle()).success()) {
logger.error("事件转为项目,推送微信订阅消息失败!");
}
//4-3.吹哨短信消息
List<ProjectSendMsgFormDTO> smsList = new ArrayList<>();
staffList.forEach(staff -> {
staffInfoList.forEach(st->{
if(staff.getStaffId().equals(st.getStaffId())){
ProjectSendMsgFormDTO sms = new ProjectSendMsgFormDTO();
sms.setCustomerId(st.getCustomerId());
sms.setMobile(st.getMobile());
sms.setAliyunTemplateCode(SmsTemplateConstant.PROJECT_TRANSFER);
sms.setParameterKey("send_msg");
smsList.add(sms);
}
});
});
Result result = epmetMessageOpenFeignClient.projectSendMsg(smsList);
if (!result.success()) {
logger.error("项目吹哨,发送手机短信失败" + JSON.toJSONString(result));
}
//项目实时统计消息
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String mqMsgBrief = String.format("创建了\"%s\"的项目", formDTO.getTitle());
ProjectChangedMQMsg mqMsg = new ProjectChangedMQMsg(projectEntity.getCustomerId(), ProjectConstant.OPERATION_CREATED,
projectEntity.getId(),
formDTO.getUserId(),
new Date(),
mqMsgBrief,
IpUtils.getIpAddr(request),
loginUserUtil.getLoginUserApp(),
loginUserUtil.getLoginUserClient());
boolean msgResult = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendProjectChangedMqMsg(mqMsg);
if (!msgResult) {
log.error("项目实时统计消息发送失败");
}
// 报事人、被艾特的人显示红点
EventShiftProjectDTO eventShiftProjectDTO=new EventShiftProjectDTO();
eventShiftProjectDTO.setEventId(formDTO.getEventId());
eventShiftProjectDTO.setProjectId(projectEntity.getId());
eventShiftProjectDTO.setShiftProjectTime(projectEntity.getCreatedTime());
eventShiftProjectDTO.setUserId(formDTO.getUserId());
eventShiftProjectDTO.setUserAgencyId(projectEntity.getAgencyId());
resiEventService.shiftProject(eventShiftProjectDTO);
EventToProjectResultDTO resultDTO=new EventToProjectResultDTO();
resultDTO.setProjectId(projectEntity.getId());
return resultDTO;
}
private List<StaffListResultDTO> queryStaffListRes(List<TickStaffFormDTO> staffList,String currentUserId) {
List<String> staffIdList = staffList.stream().map(TickStaffFormDTO::getStaffId).collect(Collectors.toList());
staffIdList.add(currentUserId);
staffIdList = new ArrayList<String>(new LinkedHashSet<>(staffIdList));
Result<CustomerStaffListResultDTO> resultStaff = epmetUserOpenFeignClient.getCustomerStaffList(staffIdList);
if (!resultStaff.success() || null == resultStaff.getData()) {
throw new RenException("项目立项,调用user服务获取被勾选工作人员基本信息失败");
}
return resultStaff.getData().getStaffList();
}
private CategoryTagResultDTO queryCategoryTagRes(EventToProjectFormDTO formDTO) {
CategoryTagListFormDTO categoryTag = new CategoryTagListFormDTO();
List<String> categoryIdList = formDTO.getCategoryList().stream().map(CategoryOrTagFormDTO::getId).collect(Collectors.toList());
List<String> tagIdList = formDTO.getTagList().stream().map(CategoryOrTagFormDTO::getId).collect(Collectors.toList());
categoryTag.setCustomerId(formDTO.getCustomerId());
categoryTag.setCategoryIdList(categoryIdList);
categoryTag.setTagIdList(tagIdList);
Result<CategoryTagResultDTO> resultDTOResult = govIssueOpenFeignClient.getCategoryTagList(categoryTag);
if (!resultDTOResult.success()) {
throw new RenException("项目立项,调用issue服务查询分类、标签基础信息失败");
}
return resultDTOResult.getData();
}
private AgencyDeptGridResultDTO getAgencyDeptGridRes(List<TickStaffFormDTO> staffList, String userAgencyId) {
List<String> agencyIdList = staffList.stream().map(TickStaffFormDTO::getAgencyId).collect(Collectors.toList());
agencyIdList.add(userAgencyId);
agencyIdList = new ArrayList<String>(new LinkedHashSet<>(agencyIdList));
agencyIdList.removeAll(Collections.singleton(""));
List<String> deptIdList = staffList.stream().map(TickStaffFormDTO::getDepartmentId).collect(Collectors.toList());
deptIdList = new ArrayList<String>(new LinkedHashSet<>(deptIdList));
deptIdList.removeAll(Collections.singleton(""));
List<String> gridIdList = staffList.stream().map(TickStaffFormDTO::getGridId).collect(Collectors.toList());
gridIdList = new ArrayList<String>(new LinkedHashSet<>(gridIdList));
gridIdList.removeAll(Collections.singleton(""));
AgencyDeptGridFormDTO agencyDeptGridFormDTO = new AgencyDeptGridFormDTO();
agencyDeptGridFormDTO.setAgencyIdList(agencyIdList);
agencyDeptGridFormDTO.setDeptIdList(deptIdList);
agencyDeptGridFormDTO.setGridIdList(gridIdList);
Result<AgencyDeptGridResultDTO> resultDTO = govOrgFeignClient.getAgencyDeptGridList(agencyDeptGridFormDTO);
if (!resultDTO.success() || null == resultDTO.getData()) {
throw new RenException(ProjectConstant.SELECT_GOV_ORG_EXCEPTION);
}
return resultDTO.getData();
}
/**
* 获取当前工作人员的基本信息
*
* @param formDTO
* @return com.epmet.dto.result.LoginUserDetailsResultDTO
* @author yinzuomei
* @date 2021/8/5 15:42
*/
private LoginUserDetailsResultDTO queryLoginUserInfo(EventToProjectFormDTO formDTO) {
//2.数据准备,查询需要用到的数据
//2-1.获取token用户所属组织信息
LoginUserDetailsFormDTO dto = new LoginUserDetailsFormDTO();
dto.setApp(formDTO.getApp());
dto.setClient(formDTO.getClient());
dto.setUserId(formDTO.getUserId());
Result<LoginUserDetailsResultDTO> resultDto = epmetUserOpenFeignClient.getLoginUserDetails(dto);
if (!resultDto.success() || StringUtils.isEmpty(resultDto.getData().getAgencyId())) {
throw new RenException(String.format("事件立项调用user服务查询用户数据失败,userId->", formDTO.getUserId()));
}
return resultDto.getData();
}
/**
* @Description 项目立项给勾选的工作人员推送站内信消息
* @author yinzuomei
*/
private Result shiftProjectMessage(List<TickStaffFormDTO> staffList,String customerId,String title) {
List<UserMessageFormDTO> msgList = new ArrayList<>();
//1.创建项目工作人员消息对象
String projectStaffMessage = String.format(UserMessageConstant.PROJECT_RESOLVED_MSG, title);
//所选人员如果即在部门下又在网格下则只发一条消息
Map<String,String> map = new HashMap<>();
staffList.forEach(staff->{
if(!map.containsKey(staff.getStaffId())){
UserMessageFormDTO msg = new UserMessageFormDTO();
msg.setCustomerId(customerId);
msg.setGridId("*");
msg.setApp(AppClientConstant.APP_GOV);
msg.setTitle(UserMessageConstant.PROJECT_TITLE);
msg.setMessageContent(projectStaffMessage);
msg.setReadFlag(ReadFlagConstant.UN_READ);
msg.setUserId(staff.getStaffId());
msgList.add(msg);
map.put(staff.getStaffId(),staff.getStaffId());
}
});
return epmetMessageOpenFeignClient.saveUserMessageList(msgList);
}
/**
* @Description 项目立项给勾选的工作人员推送微信订阅消息
* @author yinzuomei
*/
private Result wxmpShiftProjectMessage(List<TickStaffFormDTO> staffList,String customerId,String title) {
List<WxSubscribeMessageFormDTO> msgList = new ArrayList<>();
//1.创建项目工作人员消息对象
String projectStaffMessage = String.format(UserMessageConstant.PROJECT_RESOLVED_MSG, title);
//所选人员如果即在部门下又在网格下则只发一条消息
Map<String,String> map = new HashMap<>();
staffList.forEach(staff->{
if(!map.containsKey(staff.getStaffId())){
WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO();
msg.setCustomerId(customerId);
msg.setClientType(AppClientConstant.APP_GOV);
msg.setUserId(staff.getStaffId());
msg.setBehaviorType("项目消息");
msg.setMessageContent(projectStaffMessage);
msg.setMessageTime(new Date());
msg.setGridId("*");
msgList.add(msg);
map.put(staff.getStaffId(),staff.getStaffId());
}
});
logger.info("事件立项,推送微信订阅消息");
return epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);
}
}

38
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java

@ -101,6 +101,7 @@ public class ResiEventServiceImpl extends BaseServiceImpl<ResiEventDao, ResiEven
*/
@Override
public List<EventListResultDTO> eventList(EventListFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(),formDTO.getPageSize());
List<EventListResultDTO> result = baseDao.eventUnDisposedList(formDTO.getOrgId(), formDTO.getEventType());
if (!CollectionUtils.isEmpty(result)){
return result;
@ -581,5 +582,42 @@ public class ResiEventServiceImpl extends BaseServiceImpl<ResiEventDao, ResiEven
// 3.3、目前Db设计支持报给多个层级(组织或网格),按理说应该更新非当前组织外,其他的组织,显示红点,先不做了吧 todo
}
/**
* 事件立项更新立项标志增加操作日志更新报事人被艾特的人红点
*
* @param formDTO
* @return void
* @author yinzuomei
* @date 2021/8/5 16:17
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void shiftProject(EventShiftProjectDTO formDTO) {
// 1、更新立项标志
ResiEventEntity resiEventEntity=getById(formDTO.getEventId());
resiEventEntity.setLatestOperatedTime(formDTO.getShiftProjectTime());
resiEventEntity.setShiftProject(true);
resiEventEntity.setRedDot(true);
baseDao.updateById(resiEventEntity);
// 2、记录操作日志
ResiEventOperationLogEntity reCallLog=new ResiEventOperationLogEntity();
reCallLog.setCustomerId(resiEventEntity.getCustomerId());
reCallLog.setResiEventId(resiEventEntity.getId());
reCallLog.setUserId(formDTO.getUserId());
reCallLog.setUserIdentity(EventConstant.STAFF);
reCallLog.setActionCode(ResiEventAction.SHIFIT_PROJECT.getCode());
reCallLog.setActionDesc(ResiEventAction.SHIFIT_PROJECT.getDesc());
reCallLog.setOperateTime(resiEventEntity.getCloseCaseTime());
resiEventOperationLogDao.insert(reCallLog);
//3、所有被艾特的人应该都通知
resiEventMentionDao.updateRedDotShow(formDTO.getEventId(),null);
// 4、目前只能报给一个组织,如果后续可以报给多个组织,要去把其他组织的红点改为显示 todo
}
@Override
public ResiEventEntity getById(String eventId) {
return baseDao.selectById(eventId);
}
}

5
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml

@ -25,6 +25,7 @@
FROM resi_event_report_org ro
INNER JOIN resi_event re ON (ro.RESI_EVENT_ID = re.ID AND re.DEL_FLAG = '0')
AND ro.DEL_FLAG = '0'
and ro.ORG_ID = #{orgId}
<if test='eventType == "undisposed" '>
AND ro.ORG_READ = 'un_read'
ORDER BY re.CREATED_TIME
@ -159,6 +160,7 @@
<resultMap id="newEventsMap" type="com.epmet.dto.result.NewEventsResultDTO">
<result property="eventContent" column="eventContent"/>
<result property="eventTime" column="eventTime"/>
<result property="eventId" column="eventId"/>
<collection property="eventImgs" ofType="java.lang.String">
<result column="img"/>
</collection>
@ -167,7 +169,8 @@
SELECT
IFNULL(re.EVENT_CONTENT,'') AS eventContent,
DATE_FORMAT(re.CREATED_TIME,'%Y-%m-%d %H:%i') AS eventTime,
IFNULL(ea.ATTACHMENT_URL,'') AS img
IFNULL(ea.ATTACHMENT_URL,'') AS img,
re.id as eventId
FROM resi_event_report_org ro
LEFT JOIN resi_event re ON (re.ID = ro.RESI_EVENT_ID AND re.DEL_FLAG = '0')
LEFT JOIN resi_event_attachment ea ON (ea.RESI_EVENT_ID = ro.RESI_EVENT_ID AND ea.DEL_FLAG = '0' AND

Loading…
Cancel
Save