Browse Source

群众不满列表v2

dev_shibei_match
yinzuomei 4 years ago
parent
commit
770fc86699
  1. 52
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/project/MassesDiscontentFormV2DTO.java
  2. 69
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/MassesDiscontentResultV2DTO.java
  3. 7
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/constant/ProjectConstant.java
  4. 15
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java
  5. 18
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java
  6. 10
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java
  7. 56
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java
  8. 41
      epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml

52
epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/project/MassesDiscontentFormV2DTO.java

@ -0,0 +1,52 @@
package com.epmet.dto.form.project;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 群众不满列表查询入参DTO从指标库取值
*
* @author yinzuomei@elink-cn.com
* @date 2021/6/24 10:55
*/
@Data
public class MassesDiscontentFormV2DTO implements Serializable {
public interface MassesDiscontentFormV2 {
}
/**
* 时间区间,三个月threeMonth半年sixMonth一年twelveMonth
* 一个月按照30天三个月90天半年180天一年365天
*/
@NotBlank(message = "timeSection不能为空,取值:三个月:threeMonth;半年:sixMonth;一年:twelveMonth", groups = MassesDiscontentFormV2.class)
private String timeSection;
/**
* asc:分数由低到高
* desc:分数由高到低
*/
@NotBlank(message = "sortType不能为空,取值:asc:分数由低到高;desc:分数由高到低", groups = MassesDiscontentFormV2.class)
private String sortType;
/**
* 组织ID
*/
@NotBlank(message = "agencyId不能为空", groups = MassesDiscontentFormV2.class)
private String agencyId;
@NotNull(message = "pageNo不能为空", groups = MassesDiscontentFormV2.class)
private Integer pageNo;
@NotNull(message = "pageSize不能为空", groups = MassesDiscontentFormV2.class)
private Integer pageSize;
private String areaCode;
//以下属性无需前端传入
private String startDate;
private String endDate;
}

69
epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/MassesDiscontentResultV2DTO.java

@ -0,0 +1,69 @@
package com.epmet.dto.result.project;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* 群众不满列表查询返参DTO从指标库取值
*
* @author yinzuomei@elink-cn.com
* @date 2021/6/24 11:02
*/
@Data
public class MassesDiscontentResultV2DTO implements Serializable {
private static final long serialVersionUID = 403953150174574960L;
/**
* 项目ID
*/
private String projectId;
/**
* 议题ID
*/
private String issueId;
/**
* 话题所在网格
*/
private String gridName;
/**
* 话题图片
*/
private List<String> photos;
/**
* 话题内容
*/
private String topicContent;
/**
* 项目分类标签
*/
private String projectCategory;
/**
* 项目评价分数
* 直接取整数位展示
*/
private BigDecimal score;
@JsonIgnore
private String customerId;
@JsonIgnore
private String parentAgencyId;
@JsonIgnore
private String areaCode;
public MassesDiscontentResultV2DTO() {
this.gridName = "";
this.photos = new ArrayList<>();
this.topicContent = "";
this.projectCategory = "";
}
}

7
epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/constant/ProjectConstant.java

@ -22,4 +22,11 @@ public interface ProjectConstant {
String PROCESS_FAILURE = "查询项目进展失败......";
/**
* 三个月六个月12个月
*/
String THREE_MONTH = "threeMonth";
String SIX_MONTH = "sixMonth";
String TWELVE_MONTH = "twelveMonth";
String YESTERDAY = "yesterday";
}

15
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/project/ProjectController.java

@ -11,6 +11,8 @@ import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectQuantity
import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectQuantityOrgMonthlyService;
import com.epmet.datareport.service.project.ProjectService;
import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.project.MassesDiscontentFormV2DTO;
import com.epmet.dto.result.project.MassesDiscontentResultV2DTO;
import com.epmet.project.constant.ProjectConstant;
import com.epmet.project.dto.form.DifficultyRankFormDTO;
import com.epmet.project.dto.form.ProjectIncrTrendFormDTO;
@ -169,4 +171,17 @@ public class ProjectController {
public Result<List<ProjectCategoryDictResultDTO>> categoryDict(@RequestHeader("CustomerId") String customerId) {
return new Result<List<ProjectCategoryDictResultDTO>>().ok(projectService.getCategoryDict(customerId));
}
/**
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.result.MassesDiscontentResultDTO>>
* @param formDTO
* @author yinzuomei
* @description 群众不满列表改为从指标库的screen_project_data取值
* @Date 2021/6/24 11:13
**/
@PostMapping("massesdiscontent-multic")
public Result<List<MassesDiscontentResultV2DTO>> queryMassesDiscontentMultic(@RequestBody MassesDiscontentFormV2DTO formDTO){
ValidatorUtils.validateEntity(formDTO, MassesDiscontentFormV2DTO.MassesDiscontentFormV2.class);
return new Result<List<MassesDiscontentResultV2DTO>>().ok(projectService.queryMassesDiscontentMultic(formDTO));
}
}

18
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/project/ProjectDao.java

@ -1,5 +1,6 @@
package com.epmet.datareport.dao.project;
import com.epmet.dto.result.project.MassesDiscontentResultV2DTO;
import com.epmet.project.dto.FactAgencyProjectDailyDTO;
import com.epmet.project.dto.form.DifficultyRankFormDTO;
import com.epmet.project.dto.result.*;
@ -82,4 +83,21 @@ public interface ProjectDao {
* @date 2020.10.20 10:13
**/
List<String> getDifficultyImgList(String eventId);
/**
* @return java.util.List<com.epmet.dto.result.project.MassesDiscontentResultV2DTO>
* @param agencyId
* @param areaCode
* @param startDate
* @param endDate
* @param sortType
* @author yinzuomei
* @description 群众不满列表改为从指标库的screen_project_data取值
* @Date 2021/6/24 13:16
**/
List<MassesDiscontentResultV2DTO> selectMassesDiscontentMultic(@Param("agencyId") String agencyId,
@Param("areaCode") String areaCode,
@Param("startDate") String startDate,
@Param("endDate") String endDate,
@Param("sortType") String sortType);
}

10
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/ProjectService.java

@ -1,6 +1,8 @@
package com.epmet.datareport.service.project;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.project.MassesDiscontentFormV2DTO;
import com.epmet.dto.result.project.MassesDiscontentResultV2DTO;
import com.epmet.project.dto.form.DifficultyRankFormDTO;
import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.project.dto.form.ProjectIncrTrendFormDTO;
@ -99,4 +101,12 @@ public interface ProjectService {
* @return com.epmet.project.dto.result.ProjectNextAgencyResultDTO
*/
List<ProjectNextAgencyResultDTO> myNextAgencyMultic(String staffId,String currentCustomerId);
/**
* 群众不满列表改为从指标库的screen_project_data取值
*
* @param formDTO
* @return com.epmet.dto.result.project.MassesDiscontentResultV2DTO
*/
List<MassesDiscontentResultV2DTO> queryMassesDiscontentMultic(MassesDiscontentFormV2DTO formDTO);
}

56
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/project/impl/ProjectServiceImpl.java

@ -11,6 +11,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.DataSourceConstant;
import com.epmet.datareport.dao.evaluationindex.screen.ScreenProjectDataDao;
import com.epmet.datareport.dao.project.ProjectDao;
import com.epmet.datareport.service.evaluationindex.screen.AgencyService;
import com.epmet.datareport.service.project.ProjectService;
@ -19,7 +20,9 @@ import com.epmet.dto.ScreenCustomerGridDTO;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.SubAgencyFormDTO;
import com.epmet.dto.form.project.MassesDiscontentFormV2DTO;
import com.epmet.dto.result.*;
import com.epmet.dto.result.project.MassesDiscontentResultV2DTO;
import com.epmet.evaluationindex.screen.dto.result.DepartmentNameListResultDTO;
import com.epmet.feign.*;
import com.epmet.project.constant.ProjectConstant;
@ -72,6 +75,8 @@ public class ProjectServiceImpl implements ProjectService {
private OperCrmOpenFeignClient operCrmOpenFeignClient;
@Autowired
private AgencyService screenAgencyService;
@Autowired
private ScreenProjectDataDao screenProjectDataDao;
/**
* @Author sun
@ -501,4 +506,55 @@ public class ProjectServiceImpl implements ProjectService {
}
return resultList;
}
/**
* 群众不满列表改为从指标库的screen_project_data取值
*
* @param formDTO
* @return com.epmet.dto.result.project.MassesDiscontentResultV2DTO
*/
@DataSource(value = DataSourceConstant.EVALUATION_INDEX,datasourceNameFromArg = true)
@Override
public List<MassesDiscontentResultV2DTO> queryMassesDiscontentMultic(MassesDiscontentFormV2DTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
formDTO.setEndDate(getDateId(ProjectConstant.YESTERDAY));
formDTO.setStartDate(getDateId(formDTO.getTimeSection()));
log.info(JSON.toJSONString(formDTO,true));
//已结案、并且来源于议题、在当前时间范围内的、
List<MassesDiscontentResultV2DTO> list = projectDao.selectMassesDiscontentMultic(formDTO.getAgencyId(),
formDTO.getAreaCode(),
formDTO.getStartDate(),
formDTO.getEndDate(),
formDTO.getSortType());
list.forEach(project -> {
project.setPhotos(screenProjectDataDao.selectProjectImgs(project.getProjectId(), project.getCustomerId()));
});
return list;
}
/**
* @Description 处理时间
* @Param dateType
* @author zxc
* @date 2021/5/18 2:28 下午
*/
public String getDateId(String dateType){
String result = DateUtils.getBeforeNDay(NumConstant.ONE);
switch (dateType) {
case ProjectConstant.THREE_MONTH:
result = DateUtils.getBeforeNDay(NumConstant.NINETY);
break;
case ProjectConstant.SIX_MONTH:
result = DateUtils.getBeforeNDay(NumConstant.ONE_HUNDRED_AND_EIGHTY);
break;
case ProjectConstant.TWELVE_MONTH:
result = DateUtils.getBeforeNDay(NumConstant.THREE_HUNDRED_AND_SIXTY_FIVE);
break;
case ProjectConstant.YESTERDAY:
result = DateUtils.getBeforeNDay(NumConstant.ONE);
break;
default:
}
return result;
}
}

41
epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml

@ -326,4 +326,45 @@
WHERE EVENT_ID = #{eventId}
ORDER BY SORT
</select>
<!-- 新版群众不满列表 -->
<select id="selectMassesDiscontentMultic" parameterType="map" resultType="com.epmet.dto.result.project.MassesDiscontentResultV2DTO">
SELECT
spd.PROJECT_ID as projectId,
'' AS issueId,
IFNULL( spd.ORG_NAME, '' ) AS gridName,
IFNULL( spd.PROJECT_CONTENT, '' ) AS topicContent,
IFNULL( spd.ALL_CATEGORY_NAME, '' ) AS projectCategory,
floor( spd.SATISFACTION_SCORE) AS score,
spd.CUSTOMER_ID as customerId,
spd.PARENT_ID as parentAgencyId,
sca.AREA_CODE as areaCode
FROM
SCREEN_PROJECT_DATA spd
left join screen_customer_agency sca
on(spd.PARENT_ID =sca.AGENCY_ID )
WHERE
spd.DEL_FLAG = '0'
and sca.DEL_FLAG='0'
AND spd.CLOSE_CASE_TIME IS NOT NULL
and spd.SATISFACTION_SCORE is not null
AND DATE_FORMAT( spd.CLOSE_CASE_TIME, '%Y%m%d' ) &gt;= #{startDate}
AND DATE_FORMAT( spd.CLOSE_CASE_TIME, '%Y%m%d' ) &lt;= #{endDate}
AND spd.SATISFACTION_SCORE &lt; 75
<choose >
<when test="areaCode != null and areaCode.trim() != ''">
and sca.area_code is not null
and sca.area_code like concat(#{areaCode},'%')
</when>
<otherwise>
and spd.ALL_PARENT_IDS LIKE CONCAT('%',#{agencyId},'%')
</otherwise>
</choose>
<if test="sortType == 'desc' ">
ORDER BY spd.SATISFACTION_SCORE DESC,spd.CLOSE_CASE_TIME desc
</if>
<if test="sortType == 'asc' ">
ORDER BY spd.SATISFACTION_SCORE ASC,spd.CLOSE_CASE_TIME desc
</if>
</select>
</mapper>

Loading…
Cancel
Save