diff --git a/src/main/java/com/biutag/supervision/controller/datav/DataVGlobalController.java b/src/main/java/com/biutag/supervision/controller/datav/DataVGlobalController.java index ecfae35..136a302 100644 --- a/src/main/java/com/biutag/supervision/controller/datav/DataVGlobalController.java +++ b/src/main/java/com/biutag/supervision/controller/datav/DataVGlobalController.java @@ -14,18 +14,18 @@ import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.entity.DataCaseVerif; import com.biutag.supervision.pojo.entity.Negative; import com.biutag.supervision.pojo.entity.SupDepart; +import com.biutag.supervision.pojo.request.datav.DataVRequest; import com.biutag.supervision.pojo.vo.*; import com.biutag.supervision.service.DataMailService; import com.biutag.supervision.service.NegativeService; +import com.biutag.supervision.service.datav.DatavService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Date; @@ -56,6 +56,9 @@ public class DataVGlobalController { private final MailMapper mailMapper; private final DataCaseVerifMapper dataCaseVerifMapper; + + @Resource + private DatavService datavService; //region 左边 /** @@ -168,6 +171,12 @@ public class DataVGlobalController { } + @Operation(description = "首页大屏地图Icon数据") + @PostMapping("/getGlobalMap") + public Result getGlobalMap(@RequestBody DataVRequest request) { + return datavService.getGlobalMap(request); + } + /** * 数据大屏问题趋势统计 * diff --git a/src/main/java/com/biutag/supervision/service/datav/DatavService.java b/src/main/java/com/biutag/supervision/service/datav/DatavService.java index da7ce5b..8ca690f 100644 --- a/src/main/java/com/biutag/supervision/service/datav/DatavService.java +++ b/src/main/java/com/biutag/supervision/service/datav/DatavService.java @@ -19,4 +19,11 @@ public interface DatavService { * @return */ Result getAuditMap(DataVRequest request); + + /** + * 获取一级首页的地图数据 + * @param request + * @return + */ + Result getGlobalMap(DataVRequest request); } diff --git a/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java b/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java index 0dba84b..67bc324 100644 --- a/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java @@ -8,16 +8,21 @@ import com.biutag.supervision.constants.enums.ProblemSourcesEnum; import com.biutag.supervision.constants.enums.invest.DeleteStatusEnum; import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.dto.DepartAndSubDepartDto; +import com.biutag.supervision.pojo.entity.DataPetitionComplaint; import com.biutag.supervision.pojo.entity.Negative; import com.biutag.supervision.pojo.entity.NegativeBlame; +import com.biutag.supervision.pojo.entity.SupExternalDepart; +import com.biutag.supervision.pojo.entity.mailbox.Mail; import com.biutag.supervision.pojo.entity.report.ReportProject; -import com.biutag.supervision.pojo.param.NegativeQueryParam; -import com.biutag.supervision.pojo.param.ReportProjectQueryParam; -import com.biutag.supervision.pojo.param.SupDepartGroupParam; +import com.biutag.supervision.pojo.param.*; import com.biutag.supervision.pojo.request.datav.DataVRequest; import com.biutag.supervision.pojo.vo.AuditSuperviseMapIconVo; +import com.biutag.supervision.pojo.vo.GlobalMapIconVo; +import com.biutag.supervision.repository.dataPetitionComplaint.DataPetitionComplaintResourceService; +import com.biutag.supervision.repository.mail.MailResourceService; import com.biutag.supervision.repository.negative.NegativeResourceService; import com.biutag.supervision.repository.reportproject.ReportProjectResourceService; +import com.biutag.supervision.repository.supExternalDepart.SupExternalDepartResourceService; import com.biutag.supervision.repository.supdepart.SupDepartResourceService; import com.biutag.supervision.service.NegativeBlameService; import jakarta.annotation.Resource; @@ -49,6 +54,15 @@ public class DatavServiceImpl implements DatavService { @Resource private NegativeBlameService negativeBlameService; + @Resource + private DataPetitionComplaintResourceService dataPetitionComplaintResourceService; + + @Resource + private MailResourceService mailResourceService; + + @Resource + private SupExternalDepartResourceService supExternalDepartResourceService; + @Override public Result getAuditMap(DataVRequest request) { List auditSuperviseMapIconVoList = new ArrayList<>(); @@ -104,4 +118,76 @@ public class DatavServiceImpl implements DatavService { JSONObject data = new JSONObject().fluentPut("auditSuperviseMapIconVoList", auditSuperviseMapIconVoList); return Result.success(data); } + + @Override + public Result getGlobalMap(DataVRequest request) { + List globalMapIconVoList = new ArrayList<>(); + SupDepartGroupParam supDepartGroupParam = new SupDepartGroupParam(); + supDepartGroupParam.setGroupId(DepartGroupEnum.COUNTY_CITY_BUREAUS.getId()); + supDepartGroupParam.setParentLevel(2); + supDepartGroupParam.setChildLevel(3); + Map departAndSubDepart = supDepartResourceService.getDepartAndSubDepart(supDepartGroupParam); + + for (Map.Entry entry : departAndSubDepart.entrySet()) { + String departId = entry.getKey(); + DepartAndSubDepartDto departDto = entry.getValue(); + Set allDepartIds = departDto.getAllDepartIds(); + GlobalMapIconVo globalMapIconVo = GlobalMapIconVo.of(departId, departDto.getParentName()); + List dates = Arrays.asList(request.getBeginTime(), request.getEndTime()); + + NegativeQueryParam negativeQueryParam = new NegativeQueryParam(); + negativeQueryParam.setCrtTime(dates); + negativeQueryParam.setInvolveDepartIds(allDepartIds); + List negativeList = negativeResourceService.query(negativeQueryParam); + // 现场督查 + long supervisionProCount = negativeList.stream().filter(one -> ProblemSourcesEnum.GROUP_13.contains(one.getProblemSourcesCode())).count(); + // 数字督察 + long numSupervisionProCount = negativeList.stream().filter(one -> ProblemSourcesEnum.GROUP_14_15_16.contains(one.getProblemSourcesCode())).count(); + // 案件核查 + long caseVerificationProCount = negativeList.stream().filter(one -> ProblemSourcesEnum.GROUP_17_18_19_20.contains(one.getProblemSourcesCode())).count(); + // 12337 + long XF12337count = negativeList.stream().filter(one -> ProblemSourcesEnum.XF12337.getValue().equals(one.getProblemSourcesCode())).count(); + + DataPetitionComplaintQueryParam dataPetitionComplaintQueryParam = new DataPetitionComplaintQueryParam(); + dataPetitionComplaintQueryParam.setCreateTime(dates); + List dataPetitionComplaints = dataPetitionComplaintResourceService.query(dataPetitionComplaintQueryParam); + // 国家信访 + long countryMail = dataPetitionComplaints.stream().filter(one -> "22".equals(one.getProblemSourcesCode())).count(); + // 公安部门信访 + long policeMail = dataPetitionComplaints.stream().filter(one -> "21".equals(one.getProblemSourcesCode())).count(); + // 审计项目数 + ReportProjectQueryParam reportProjectQueryParam = new ReportProjectQueryParam(); + reportProjectQueryParam.setArchivingStart(request.getBeginTime()); + reportProjectQueryParam.setArchivingEnd(request.getEndTime()); + reportProjectQueryParam.setAuditUnitIds(allDepartIds); + reportProjectQueryParam.setDeleteFlag(DeleteStatusEnum.NO.getCode()); + List reportProjectList = reportProjectResourceService.query(reportProjectQueryParam); + + // 局长信箱 + SupExternalDepartQueryParam supExternalDepartQueryParam = new SupExternalDepartQueryParam(); + supExternalDepartQueryParam.setInternalIds(Collections.singleton(departDto.getParentId())); + supExternalDepartQueryParam.setSource("局长信箱"); + List supExternalDepartList = supExternalDepartResourceService.query(supExternalDepartQueryParam); + SupExternalDepart depart = Optional + .ofNullable(supExternalDepartList) + .filter(list -> !list.isEmpty()) + .map(list -> list.get(0)) + .orElseThrow(() -> new RuntimeException("未查询到"+departDto.getParentName()+"的外部部门信息")); + + MailQueryParam mailQueryParam = new MailQueryParam(); + mailQueryParam.setSecondDeptId(depart.getExternalId()); + List mailList = mailResourceService.query(mailQueryParam); + + globalMapIconVo.setSupervisionPro(supervisionProCount); + globalMapIconVo.setNumSupervisionPro(numSupervisionProCount); + globalMapIconVo.setCaseVerificationPro(caseVerificationProCount); + globalMapIconVo.setComplaintPro(XF12337count+countryMail+policeMail); + globalMapIconVo.setAuditPro((long) reportProjectList.size()); + globalMapIconVo.setMailboxNumber((long) mailList.size()); + globalMapIconVo.calcTotal(); + globalMapIconVoList.add(globalMapIconVo); + } + JSONObject data = new JSONObject().fluentPut("globalTempMapVoList", globalMapIconVoList); + return Result.success(data); + } }