Browse Source

修改党员志愿者服务接口逻辑

dev_shibei_match
wangchao 5 years ago
parent
commit
ac1b8df349
  1. 27
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/PartyMemberLeadServiceImpl.java
  2. 8
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyBranchDataDao.xml

27
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/PartyMemberLeadServiceImpl.java

@ -19,6 +19,7 @@ import com.epmet.screen.dto.form.VolunteerServiceFormDTO;
import com.epmet.screen.dto.result.*;
import com.epmet.screen.constant.*;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -126,6 +127,13 @@ public class PartyMemberLeadServiceImpl implements PartyMemberLeadService {
List<Integer> joinData = new ArrayList<>();
List<Integer> averageJoinUserData = new ArrayList<>();
result.setXAxis(this.getXPro());
//创建缺省值对象
VolunteerServiceResult defaultObj = new VolunteerServiceResult();
defaultObj.setAverageJoinUserData(NumConstant.ZERO);
defaultObj.setJoinData(NumConstant.ZERO);
defaultObj.setOrganizeData(NumConstant.ZERO);
//倒叙取十二个月的数据,从本月开始,有可能取不到十二条,要对X轴空白的缺口进行填补
List<VolunteerServiceResult> volunteerServiceResults = screenPartyBranchDataDao.selectVolunteerServiceResult(volunteerServiceFormDTO.getAgencyId());
if (volunteerServiceResults.size() == NumConstant.ZERO){
for (int i = NumConstant.ZERO; i <= NumConstant.TWELVE; i++) {
@ -138,16 +146,33 @@ public class PartyMemberLeadServiceImpl implements PartyMemberLeadService {
result.setAverageJoinUserData(averageJoinUserData);
return result;
}
Set<String> yyyyMMList = dateUtils.getXpro().keySet();
yyyyMMList.forEach(mm -> {
Optional<VolunteerServiceResult> opt = volunteerServiceResults.stream()
.filter(obj -> StringUtils.equals(mm,obj.getMonthId())).findAny();
VolunteerServiceResult find = opt.isPresent() ? opt.get() : defaultObj;
//VolunteerServiceResult find = Optional.ofNullable(opt.isPresent() ? opt.get() : null).orElse(defaultObj);
organizeData.add(find.getOrganizeData());
joinData.add(find.getJoinData());
averageJoinUserData.add(find.getAverageJoinUserData());
});
/*
List<VolunteerServiceResult> collect = volunteerServiceResults.stream().sorted(Comparator.comparing(VolunteerServiceResult::getMonthId)).collect(Collectors.toList());
collect.forEach(volunteer -> {
organizeData.add(volunteer.getOrganizeData());
joinData.add(volunteer.getJoinData());
averageJoinUserData.add(volunteer.getAverageJoinUserData());
});
*/
result.setOrganizeData(organizeData);
result.setJoinData(joinData);
result.setAverageJoinUserData(averageJoinUserData);
String bottomMonthId = collect.get(NumConstant.ZERO).getMonthId();
String bottomMonthId = yyyyMMList.iterator().next();
//总组织次数
Integer totalOrganizationCount = screenPartyBranchDataDao.selectTotalOrganizationCount(ModuleConstant.KEY_BRANCH_CATEGORY_VOLUNTARY_SERVICE,ModuleConstant.PARAM_BRANCH_DATA_TYPE_ORGAN,volunteerServiceFormDTO.getAgencyId(),bottomMonthId);
//总参与人数

8
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyBranchDataDao.xml

@ -72,14 +72,16 @@
<select id="selectVolunteerServiceResult" resultType="com.epmet.screen.dto.result.VolunteerServiceResult">
SELECT
month_id AS monthId,
organize_count AS organizeData,
join_user_count AS joinData,
average_join_user_count AS averageJoinUserData
SUM(organize_count) AS organizeData,
SUM(join_user_count) AS joinData,
SUM(average_join_user_count) AS averageJoinUserData
FROM
screen_party_branch_data
WHERE
del_flag = '0'
AND org_id = #{agencyId}
AND type = 'voluntaryservice'
GROUP BY MONTH_ID
ORDER BY MONTH_ID DESC
LIMIT 12
</select>

Loading…
Cancel
Save