Browse Source

数据改版-先进支部排行

dev_shibei_match
sunyuchao 5 years ago
parent
commit
611c3eb160
  1. 31
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AdvancedBranchRankFormDTO.java
  2. 53
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexAdvanceBranchRankResultDTO.java
  3. 11
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java
  4. 7
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataMonthlyDao.java
  5. 7
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/IndexService.java
  6. 26
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java
  7. 19
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml

31
epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AdvancedBranchRankFormDTO.java

@ -0,0 +1,31 @@
package com.epmet.evaluationindex.screen.dto.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 先进排行-先进支部排行--接口入参
* @Author sun
*/
@Data
public class AdvancedBranchRankFormDTO implements Serializable {
private static final long serialVersionUID = -8674763412362557239L;
/**
* 机关Id
* */
@NotBlank(message = "机关Id不能为空" , groups = AdvancedBranchRankFormDTO.AddUserInternalGroup.class)
private String agencyId;
/**
* 显示多少条
* */
@Min(value = 1, message = "查询条数必须大于0", groups = {AdvancedBranchRankFormDTO.AddUserInternalGroup.class })
private Integer topNum;
/**
* 月份Id
* */
private String monthId;
public interface AddUserInternalGroup {}
}

53
epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexAdvanceBranchRankResultDTO.java

@ -0,0 +1,53 @@
package com.epmet.evaluationindex.screen.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 先进排行-先进支部排行--接口返参
*
* @Author sun
*/
@Data
public class IndexAdvanceBranchRankResultDTO implements Serializable {
private static final long serialVersionUID = 330099297596334388L;
/**
* 名称 XXXX社区党委
*/
private String name;
/**
* 指标得分
*/
@JsonIgnore
private String totalScore;
private BigDecimal scroe;
/**
* 党员数
*/
private Integer partyMemberNum;
/**
* 议题数
*/
private Integer issueNum;
/**
* 项目数
*/
private Integer projectNum;
/**
* 满意度 90.64% 返回字符串前端直接显示
*/
private String satisfactionRatio;
/**
* 结案率 94.3% 返回字符串前端直接显示
*/
private String closedProjectRatio;
}

11
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java

@ -113,5 +113,16 @@ public class IndexController {
return new Result<IndexScoreResultDTO>().ok(indexService.indexScore(formDTO));
}
/**
* @param formDTO
* @Description 先进排行-先进支部排行
* @author sun
*/
@PostMapping("advancedbranchrank")
Result<List<IndexAdvanceBranchRankResultDTO>> advancedBranchRank(@RequestBody AdvancedBranchRankFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, AdvancedBranchRankFormDTO.AddUserInternalGroup.class);
return new Result<List<IndexAdvanceBranchRankResultDTO>>().ok(indexService.advancedBranchRank(formDTO));
}
}

7
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenIndexDataMonthlyDao.java

@ -88,4 +88,11 @@ public interface ScreenIndexDataMonthlyDao{
* @author sun
*/
IndexScoreResultDTO selectMonthData(IndexScoreFormDTO formDTO);
/**
* @param formDTO
* @Description 先进排行-先进支部排行
* @author sun
*/
List<IndexAdvanceBranchRankResultDTO> selectRankList(AdvancedBranchRankFormDTO formDTO);
}

7
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/IndexService.java

@ -69,4 +69,11 @@ public interface IndexService {
* @author sun
*/
IndexScoreResultDTO indexScore(IndexScoreFormDTO formDTO);
/**
* @param formDTO
* @Description 先进排行-先进支部排行
* @author sun
*/
List<IndexAdvanceBranchRankResultDTO> advancedBranchRank(AdvancedBranchRankFormDTO formDTO);
}

26
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/IndexServiceImpl.java

@ -11,9 +11,11 @@ import com.epmet.evaluationindex.screen.constant.ScreenConstant;
import com.epmet.evaluationindex.screen.dto.form.*;
import com.epmet.evaluationindex.screen.dto.result.*;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.helper.DataUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.unit.DataUnit;
import java.math.BigDecimal;
import java.text.NumberFormat;
@ -298,4 +300,28 @@ public class IndexServiceImpl implements IndexService {
return resultDTO;
}
/**
* @param formDTO
* @Description 先进排行-先进支部排行
* @author sun
*/
@Override
public List<IndexAdvanceBranchRankResultDTO> advancedBranchRank(AdvancedBranchRankFormDTO formDTO) {
//根据当前所选组织,查询screen_index_data_monthly中类型为网格的按照总指数倒序,关联screen_org_rank_data表取其他数据
//1.级联查询组织下所有网格的先进支部排行数据,按总指数降序
formDTO.setMonthId(DateUtils.getBeforeNMonth(1));
List<IndexAdvanceBranchRankResultDTO> list = screenIndexDataMonthlyDao.selectRankList(formDTO);
//2.遍历数据,小数保留一位小数,百分数添加百分号
NumberFormat nf = NumberFormat.getPercentInstance();
nf.setMaximumFractionDigits(1);
list.forEach(l->{
BigDecimal num = new BigDecimal(l.getTotalScore()).setScale(1, BigDecimal.ROUND_HALF_UP).stripTrailingZeros();
l.setScroe(num);
l.setSatisfactionRatio(nf.format(Double.parseDouble(l.getSatisfactionRatio())));
l.setClosedProjectRatio(nf.format(Double.parseDouble(l.getClosedProjectRatio())));
});
return list;
}
}

19
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml

@ -193,4 +193,23 @@
AND month_id = #{monthId}
</select>
<select id="selectRankList" resultType="com.epmet.evaluationindex.screen.dto.result.IndexAdvanceBranchRankResultDTO">
SELECT
dm.org_name AS "name",
dm.index_total AS "totalScore",
rd.party_total AS "partyMemberNum",
rd.issue_total AS "issueNum",
rd.project_total AS "projectNum",
rd.close_project_ratio AS "closedProjectRatio",
rd.satisfaction_ratio AS "satisfactionRatio"
FROM
screen_index_data_monthly dm
INNER JOIN screen_org_rank_data rd ON dm.org_id = rd.org_id
WHERE
dm.del_flag = '0'
AND rd.del_flag = '0'
AND dm.org_type = 'grid'
AND dm.all_parent_ids LIKE concat('%', #{agencyId}, '%')
</select>
</mapper>

Loading…
Cancel
Save