diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/screen/ColorProjectTotalFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/screen/ColorProjectTotalFormDTO.java new file mode 100644 index 0000000000..651808e10e --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/screen/ColorProjectTotalFormDTO.java @@ -0,0 +1,30 @@ +package com.epmet.dto.form.screen; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/6/1 3:11 下午 + * @DESC + */ +@Data +public class ColorProjectTotalFormDTO implements Serializable { + + private static final long serialVersionUID = -6991770717583778665L; + + public interface ColorProjectTotalForm{} + + /** + * 组织id + */ + @NotBlank(message = "组织ID不能为空",groups = ColorProjectTotalForm.class) + private String agencyId; + + /** + * 行政区域码【平阴必填】 + */ + private String areaCode; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/screen/StreetDetailPYFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/screen/StreetDetailPYFormDTO.java new file mode 100644 index 0000000000..328510615b --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/screen/StreetDetailPYFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form.screen; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/6/2 9:42 上午 + * @DESC + */ +@Data +public class StreetDetailPYFormDTO implements Serializable { + + private static final long serialVersionUID = -4821168326488796711L; + + public interface StreetDetailPYForm{} + + @NotBlank(message = "组织ID不能为空",groups = StreetDetailPYForm.class) + private String agencyId; + + /** + * 行政区域编码 平阴必填 + */ + private String areaCode; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/screen/ColorProjectTotalResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/screen/ColorProjectTotalResultDTO.java new file mode 100644 index 0000000000..ed477cc951 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/screen/ColorProjectTotalResultDTO.java @@ -0,0 +1,48 @@ +package com.epmet.dto.result.screen; + +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/6/1 3:15 下午 + * @DESC + */ +@Data +public class ColorProjectTotalResultDTO implements Serializable { + + private static final long serialVersionUID = -8211214262766797296L; + + /** + * 事件总数 + */ + private Integer projectTotal; + + /** + * 红灯事件总数 + */ + private Integer redTotal; + + /** + * 黄灯事件总数 + */ + private Integer yellowTotal; + + /** + * 绿灯事件总数 + */ + private Integer greenTotal; + + @JsonIgnore + private Integer projectLevel; + + public ColorProjectTotalResultDTO() { + this.projectTotal = NumConstant.ZERO; + this.redTotal = NumConstant.ZERO; + this.yellowTotal = NumConstant.ZERO; + this.greenTotal = NumConstant.ZERO; + } +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/screen/StreetDetailPYResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/screen/StreetDetailPYResultDTO.java new file mode 100644 index 0000000000..e81aabc23e --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/screen/StreetDetailPYResultDTO.java @@ -0,0 +1,50 @@ +package com.epmet.dto.result.screen; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/6/2 9:43 上午 + * @DESC + */ +@Data +public class StreetDetailPYResultDTO implements Serializable { + + private static final long serialVersionUID = 663001974527694466L; + + /** + * 组织id + */ + private String agencyId; + + /** + * 组织名称 + */ + private String agencyName; + + /** + * 注册党员数 + */ + private Integer partyMemberTotal; + + /** + * 网格总数 + */ + private Integer gridTotal; + + /** + * 网格员数 + */ + private Integer gridMemberTotal; + + public StreetDetailPYResultDTO() { + this.partyMemberTotal = NumConstant.ZERO; + this.gridTotal = NumConstant.ZERO; + this.gridMemberTotal = NumConstant.ZERO; + this.agencyId = ""; + this.agencyName = ""; + } +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/PyController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/PyController.java new file mode 100644 index 0000000000..6835571eb2 --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/PyController.java @@ -0,0 +1,38 @@ +package com.epmet.datareport.controller.screen; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.datareport.service.evaluationindex.screen.PyService; +import com.epmet.dto.form.screen.StreetDetailPYFormDTO; +import com.epmet.dto.result.screen.StreetDetailPYResultDTO; +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; + +/** + * @Author zxc + * @DateTime 2021/6/2 9:40 上午 + * @DESC + */ +@RestController +@RequestMapping("pyscreen") +public class PyController { + + @Autowired + private PyService pyService; + + /** + * @Description 街道:注册党员数、网格数、网格员数 + * @Param formDTO + * @author zxc + * @date 2021/6/2 10:07 上午 + */ + @PostMapping("streetdetail-py") + public Result streetDetail(@RequestBody StreetDetailPYFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, StreetDetailPYFormDTO.StreetDetailPYForm.class); + return new Result().ok(pyService.streetDetail(formDTO)); + } + +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java index e63eb501f8..c41380b282 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java @@ -5,14 +5,8 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectOrgDailyService; import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectQuantityOrgMonthlyService; import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectService; -import com.epmet.dto.form.screen.CategoryAnalysisFormDTO; -import com.epmet.dto.form.screen.EfficiencyAnalysisFormDTO; -import com.epmet.dto.form.screen.QueryQuantityMonthlyFormDTO; -import com.epmet.dto.form.screen.ScreenCommonFormDTO; -import com.epmet.dto.result.screen.CategoryAnalysisResultDTO; -import com.epmet.dto.result.screen.EfficiencyAnalysisResultDTO; -import com.epmet.dto.result.screen.ProjectQuantityResultDTO; -import com.epmet.dto.result.screen.QueryQuantityMonthlyResultDTO; +import com.epmet.dto.form.screen.*; +import com.epmet.dto.result.screen.*; import com.epmet.evaluationindex.screen.dto.form.ProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDistributionFormDTO; @@ -132,4 +126,17 @@ public class ScreenProjectController { ValidatorUtils.validateEntity(formDTO, CategoryAnalysisFormDTO.CategoryAnalysis.class); return new Result>().ok(screenProjectService.categoryAnalysis(customerId, formDTO)); } + + /** + * @Description 红黄绿事件总数 + * @Param formDTO + * @author zxc + * @date 2021/6/1 3:20 下午 + */ + @PostMapping("colorprojectotal") + public Result colorProjectTotal(@RequestBody ColorProjectTotalFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, ColorProjectTotalFormDTO.ColorProjectTotalForm.class); + return new Result().ok(screenProjectService.colorProjectTotal(formDTO)); + } + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java index 061d0b81f1..43801dabda 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java @@ -1,5 +1,6 @@ package com.epmet.datareport.dao.evaluationindex.screen; +import com.epmet.dto.result.screen.ColorProjectTotalResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDetailResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResultDTO; import org.apache.ibatis.annotations.Mapper; @@ -28,4 +29,20 @@ public interface ScreenProjectDataDao { List selectProjectProcessAttachments(@Param("processId") String processId, @Param("projectId") String projectId, @Param("customerId") String customerId); + + /** + * @Description 根据agencyId查询事件 + * @Param agencyId + * @author zxc + * @date 2021/6/1 3:48 下午 + */ + List selectColorProjectByAgencyId(@Param("agencyId") String agencyId); + + /** + * @Description 根据areaCode查询事件 + * @Param agencyId + * @author zxc + * @date 2021/6/1 3:48 下午 + */ + List selectColorProjectByAreaCode(@Param("areaCode") String areaCode); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java index 8de5eaadfc..2e3436f807 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenUserTotalDataDao.java @@ -17,6 +17,7 @@ package com.epmet.datareport.dao.evaluationindex.screen; +import com.epmet.dto.result.screen.StreetDetailPYResultDTO; import com.epmet.evaluationindex.screen.dto.result.PartymemberPercentResultDTO; import com.epmet.evaluationindex.screen.dto.result.TopProfileResultDTO; import org.apache.ibatis.annotations.Mapper; @@ -60,4 +61,20 @@ public interface ScreenUserTotalDataDao { int selectAvgIssue(@Param("agencyId")String agencyId); PartymemberPercentResultDTO selectAgencyPartymemberPercentByIds(@Param("orgIds") List orgIds); + + /** + * @Description 根据组织ID查询街道详情 + * @Param agencyId + * @author zxc + * @date 2021/6/2 10:38 上午 + */ + StreetDetailPYResultDTO selectStreetDetailByAgencyId(@Param("agencyId")String agencyId); + + /** + * @Description 根据组织编码查询街道详情 + * @Param agencyId + * @author zxc + * @date 2021/6/2 10:38 上午 + */ + StreetDetailPYResultDTO selectStreetDetailByAreaCode(@Param("areaCode")String areaCode); } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/PyService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/PyService.java new file mode 100644 index 0000000000..65c54e13ca --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/PyService.java @@ -0,0 +1,21 @@ +package com.epmet.datareport.service.evaluationindex.screen; + +import com.epmet.dto.form.screen.StreetDetailPYFormDTO; +import com.epmet.dto.result.screen.StreetDetailPYResultDTO; + +/** + * @Author zxc + * @DateTime 2021/6/2 10:05 上午 + * @DESC + */ +public interface PyService { + + /** + * @Description 街道:注册党员数、网格数、网格员数 + * @Param formDTO + * @author zxc + * @date 2021/6/2 10:07 上午 + */ + StreetDetailPYResultDTO streetDetail(StreetDetailPYFormDTO formDTO); + +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java index b4154a790a..7e708c3abe 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java @@ -2,7 +2,9 @@ package com.epmet.datareport.service.evaluationindex.screen; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.screen.CategoryAnalysisFormDTO; +import com.epmet.dto.form.screen.ColorProjectTotalFormDTO; import com.epmet.dto.result.screen.CategoryAnalysisResultDTO; +import com.epmet.dto.result.screen.ColorProjectTotalResultDTO; import com.epmet.evaluationindex.screen.dto.form.ProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDistributionFormDTO; @@ -40,4 +42,12 @@ public interface ScreenProjectService { List projectDistribution(ScreenProjectDistributionFormDTO formDTO); Result projectDistributionDetail(ScreenProjectDetailFormDTO formDTO); + + /** + * @Description 红黄绿事件总数 + * @Param formDTO + * @author zxc + * @date 2021/6/1 3:20 下午 + */ + ColorProjectTotalResultDTO colorProjectTotal(ColorProjectTotalFormDTO formDTO); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/PyServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/PyServiceImpl.java new file mode 100644 index 0000000000..9b3bed927d --- /dev/null +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/PyServiceImpl.java @@ -0,0 +1,51 @@ +package com.epmet.datareport.service.evaluationindex.screen.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.constant.DataSourceConstant; +import com.epmet.datareport.dao.evaluationindex.screen.ScreenUserTotalDataDao; +import com.epmet.datareport.service.evaluationindex.screen.PyService; +import com.epmet.dto.form.screen.StreetDetailPYFormDTO; +import com.epmet.dto.result.screen.StreetDetailPYResultDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author zxc + * @DateTime 2021/6/2 10:05 上午 + * @DESC + */ +@Slf4j +@Service +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class PyServiceImpl implements PyService { + + @Autowired + private ScreenUserTotalDataDao screenUserTotalDataDao; + + /** + * @Description 街道:注册党员数、网格数、网格员数 + * @Param formDTO + * @author zxc + * @date 2021/6/2 10:07 上午 + */ + @Override + public StreetDetailPYResultDTO streetDetail(StreetDetailPYFormDTO formDTO) { + StreetDetailPYResultDTO result = new StreetDetailPYResultDTO(); + if (StringUtils.isEmpty(formDTO.getAreaCode())){ + result = screenUserTotalDataDao.selectStreetDetailByAgencyId(formDTO.getAgencyId()); + }else { + StreetDetailPYResultDTO eightStreet = screenUserTotalDataDao.selectStreetDetailByAreaCode(formDTO.getAreaCode()); + result = screenUserTotalDataDao.selectStreetDetailByAgencyId(formDTO.getAgencyId()); + if (null == result){ + throw new RenException("组织ID【"+formDTO.getAgencyId()+"】不存在于screen_customer_agency"); + } + result.setGridMemberTotal(result.getGridMemberTotal() + eightStreet.getGridMemberTotal()); + result.setPartyMemberTotal(result.getPartyMemberTotal() + eightStreet.getPartyMemberTotal()); + result.setGridTotal(result.getGridTotal() + eightStreet.getGridTotal()); + } + return result; + } +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java index c2728396d0..153db70313 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java @@ -11,7 +11,9 @@ import com.epmet.datareport.dao.evaluationindex.screen.ScreenProjectCategoryOrgD import com.epmet.datareport.dao.evaluationindex.screen.ScreenProjectDataDao; import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectService; import com.epmet.dto.form.screen.CategoryAnalysisFormDTO; +import com.epmet.dto.form.screen.ColorProjectTotalFormDTO; import com.epmet.dto.result.screen.CategoryAnalysisResultDTO; +import com.epmet.dto.result.screen.ColorProjectTotalResultDTO; import com.epmet.evaluationindex.screen.dto.form.ProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDistributionFormDTO; @@ -28,6 +30,8 @@ import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 项目 @@ -149,4 +153,30 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { } return resultList; } + + /** + * @Description 红黄绿事件总数 + * @Param formDTO + * @author zxc + * @date 2021/6/1 3:20 下午 + */ + @Override + public ColorProjectTotalResultDTO colorProjectTotal(ColorProjectTotalFormDTO formDTO) { + ColorProjectTotalResultDTO result = new ColorProjectTotalResultDTO(); + List list = new ArrayList<>(); + if (StringUtils.isEmpty(formDTO.getAreaCode())){ + list = screenProjectDataDao.selectColorProjectByAgencyId(formDTO.getAgencyId()); + }else { + list = screenProjectDataDao.selectColorProjectByAreaCode(formDTO.getAreaCode()); + } + // 事件级别 红色1级:已超期;黄色2级:即将超期;绿色3级:未超期 + if (!CollectionUtils.isEmpty(list)){ + Map> groupByLevel = list.stream().collect(Collectors.groupingBy(ColorProjectTotalResultDTO::getProjectLevel)); + result.setRedTotal(CollectionUtils.isEmpty(groupByLevel.get(NumConstant.ONE)) ? NumConstant.ZERO : groupByLevel.get(NumConstant.ONE).size()); + result.setYellowTotal(CollectionUtils.isEmpty(groupByLevel.get(NumConstant.TWO)) ? NumConstant.ZERO : groupByLevel.get(NumConstant.TWO).size()); + result.setGreenTotal(CollectionUtils.isEmpty(groupByLevel.get(NumConstant.THREE)) ? NumConstant.ZERO : groupByLevel.get(NumConstant.THREE).size()); + result.setProjectTotal(list.size()); + } + return result; + } } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml index 2f173078a0..aed4954ead 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml @@ -112,4 +112,41 @@ and CUSTOMER_ID= #{customerId} order by sort asc + + + + + + diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml index d2040d3e13..815f5ec755 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml @@ -82,4 +82,32 @@ ISSUE_TOTAL desc, PROJECT_TOTAL desc + + + + + + \ No newline at end of file