Browse Source

拆分sql

dev_shibei_match
zxc 4 years ago
parent
commit
d33c784105
  1. 4
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzLeftPieChartResultDTO.java
  2. 2
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java
  3. 17
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  4. 18
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml

4
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzLeftPieChartResultDTO.java

@ -40,10 +40,14 @@ public class ResiBuzzLeftPieChartResultDTO implements Serializable {
@JsonIgnore @JsonIgnore
private String issueId; private String issueId;
@JsonIgnore
private Boolean status;
public ResiBuzzLeftPieChartResultDTO() { public ResiBuzzLeftPieChartResultDTO() {
this.count = NumConstant.ZERO; this.count = NumConstant.ZERO;
this.categoryCode = ""; this.categoryCode = "";
this.categoryName = ""; this.categoryName = "";
this.color = ""; this.color = "";
this.status = false;
} }
} }

2
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java

@ -290,4 +290,6 @@ public interface IssueDao extends BaseDao<IssueEntity> {
*/ */
List<ResiBuzzIssueCategoryDTO> selectCategoryNameByIssueIds(@Param("issueIds")List<String> issueIds); List<ResiBuzzIssueCategoryDTO> selectCategoryNameByIssueIds(@Param("issueIds")List<String> issueIds);
List<ResiBuzzIssueCategoryDTO> selectCategoryNameByIssueList(List<ResiBuzzLeftPieChartResultDTO> issueIds,@Param("customerId")String customerId);
} }

17
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -1605,7 +1605,22 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
} }
List<ResiBuzzDTO> list = allList.stream().skip(formDTO.getPageSize() * (formDTO.getPageNo() - NumConstant.ONE)) List<ResiBuzzDTO> list = allList.stream().skip(formDTO.getPageSize() * (formDTO.getPageNo() - NumConstant.ONE))
.limit(formDTO.getPageSize()).collect(Collectors.toList()); .limit(formDTO.getPageSize()).collect(Collectors.toList());
List<ResiBuzzIssueCategoryDTO> names = baseDao.selectCategoryNameByIssueIds(allList.stream().map(m -> m.getIssueId()).collect(Collectors.toList())); List<ResiBuzzLeftPieChartResultDTO> categories = baseDao.resiBuzzIssueCategoryByIssueIds(length, list.stream().map(m -> m.getIssueId()).collect(Collectors.toList()));
List<ResiBuzzLeftPieChartResultDTO> pieChat = getPieChat(list.stream().map(m -> m.getIssueId()).collect(Collectors.toList()));
Iterator<ResiBuzzLeftPieChartResultDTO> listIterator = pieChat.iterator();
while (listIterator.hasNext()){
ResiBuzzLeftPieChartResultDTO next = listIterator.next();
for (int i = 0; i < categories.size(); i++) {
if (next.getIssueId().equals(categories.get(i).getIssueId()) && !next.getStatus()){
next.setStatus(true);
listIterator.remove();
continue;
}
}
}
categories.addAll(pieChat);
// List<ResiBuzzIssueCategoryDTO> names = baseDao.selectCategoryNameByIssueIds(allList.stream().map(m -> m.getIssueId()).collect(Collectors.toList()));
List<ResiBuzzIssueCategoryDTO> names = baseDao.selectCategoryNameByIssueList(categories,tokenDto.getCustomerId());
if (CollectionUtils.isNotEmpty(names)){ if (CollectionUtils.isNotEmpty(names)){
list.forEach(l -> names.stream().filter(n -> l.getIssueId().equals(n.getIssueId())).forEach(n -> l.setCategoryName(n.getCn()))); list.forEach(l -> names.stream().filter(n -> l.getIssueId().equals(n.getIssueId())).forEach(n -> l.setCategoryName(n.getCn())));
} }

18
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml

@ -711,7 +711,7 @@
resultType="com.epmet.dto.result.ResiBuzzLeftPieChartResultDTO"> resultType="com.epmet.dto.result.ResiBuzzLeftPieChartResultDTO">
SELECT SELECT
ISSUE_ID , ISSUE_ID ,
IFNULL(LEFT(CATEGORY_CODE,2),'') AS categoryCode IFNULL(LEFT(CATEGORY_CODE,#{length}),'') AS categoryCode
FROM issue_category FROM issue_category
WHERE DEL_FLAG = '0' WHERE DEL_FLAG = '0'
AND ISSUE_ID IN( AND ISSUE_ID IN(
@ -734,4 +734,20 @@
LEFT JOIN issue_project_category_dict cd ON (cd.CATEGORY_CODE = t1.categoryCode AND cd.CUSTOMER_ID = #{customerId} AND cd.DEL_FLAG = '0' ) LEFT JOIN issue_project_category_dict cd ON (cd.CATEGORY_CODE = t1.categoryCode AND cd.CUSTOMER_ID = #{customerId} AND cd.DEL_FLAG = '0' )
</foreach>)t2 </foreach>)t2
</select> </select>
<resultMap id="selectCategoryNameByIssueListMap" type="com.epmet.dto.result.ResiBuzzIssueCategoryDTO">
<result property="issueId" column="issueId"/>
<collection property="cn" ofType="java.lang.String">
<result column="categoryName"/>
</collection>
</resultMap>
<select id="selectCategoryNameByIssueList" resultMap="selectCategoryNameByIssueListMap">
<foreach collection="issueIds" item="c" separator="UNION ALL">
SELECT
t1.issueId AS issueId,
IFNULL(cd.CATEGORY_NAME,'其他') as categoryName
FROM ( select #{c.issueId} as issueId,#{c.categoryCode} as categoryCode) t1
LEFT JOIN issue_project_category_dict cd ON (cd.CATEGORY_CODE = t1.categoryCode AND cd.DEL_FLAG = '0' AND cd.CUSTOMER_ID = #{customerId})
</foreach>
</select>
</mapper> </mapper>
Loading…
Cancel
Save