From 87621984e6ade704ec376c55e2ffaae53c617681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Tue, 5 Sep 2023 11:58:08 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B6=88=EB=B2=95=EC=A1=B0=EC=97=85=20?= =?UTF-8?q?=EC=99=B8=EA=B5=AD=EC=96=B4=EC=84=A0=20=ED=86=B5=EA=B3=842=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=EC=99=84=EB=A3=8C.=20=EB=B6=88=EB=B2=95?= =?UTF-8?q?=EC=A1=B0=EC=97=85=20=EC=99=B8=EA=B5=AD=EC=96=B4=EC=84=A0=20?= =?UTF-8?q?=ED=86=B5=EA=B3=843=20=EC=9E=91=EC=97=85=EC=A4=91.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnlawfulFishingController.java | 9 +- .../mapper/UnlawfulFishingMapper.java | 2 + .../model/StatisticsModel.java | 3 +- .../service/UnlawfulFishingService.java | 90 ++++++++++++++++- .../mybatisMapper/UnlawfulFishingMapper.xml | 9 ++ .../statistics/statistics.html | 98 ++++++++++++++++++- 6 files changed, 200 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/UnlawfulFishingController.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/UnlawfulFishingController.java index 4e673974..2bcaaab8 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/UnlawfulFishingController.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/UnlawfulFishingController.java @@ -2,6 +2,7 @@ package com.dbnt.faisp.main.faStatistics.unlawfulFishing; import com.dbnt.faisp.main.authMgt.model.AccessConfig; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; +import com.dbnt.faisp.main.codeMgt.model.CodeMgt; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.ShipStatisticsEtc; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.StatisticsModel; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.UnlawfulFishingParam; @@ -21,10 +22,12 @@ import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.HttpSession; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Map; @RestController @RequiredArgsConstructor @@ -392,7 +395,7 @@ public class UnlawfulFishingController { } @GetMapping("/statistics") - public ModelAndView statistics(@AuthenticationPrincipal UserInfo loginUser, StatisticsModel params){ + public ModelAndView statistics(@AuthenticationPrincipal UserInfo loginUser, HttpSession session, StatisticsModel params){ ModelAndView mav = new ModelAndView("faStatistics/unlawfulFishing/statistics/statistics"); //메뉴권한 확인 AccessConfig accessConfig = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/unlawfulFishing/statistics?type=type1").get(0); @@ -405,7 +408,9 @@ public class UnlawfulFishingController { mav.addObject("statisticsList", unlawfulFishingService.selectStatisticsListType1(params)); break; case "type2": - mav.addObject("statisticsList", unlawfulFishingService.selectStatisticsListType2(params)); + List cpoCode = ((Map>) session.getAttribute("commonCode")).get("CPO"); + mav.addObject("statisticsList", unlawfulFishingService.selectStatisticsListType2(params, cpoCode)); + mav.addObject("monthStatList", unlawfulFishingService.selectMonthStatList(params)); break; case "type3": mav.addObject("statisticsList", unlawfulFishingService.selectStatisticsListType3(params)); diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/mapper/UnlawfulFishingMapper.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/mapper/UnlawfulFishingMapper.java index 9bcb2c25..aec1d7d1 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/mapper/UnlawfulFishingMapper.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/mapper/UnlawfulFishingMapper.java @@ -33,5 +33,7 @@ public interface UnlawfulFishingMapper { List selectStatisticsListType1(StatisticsModel params); List selectStatisticsListType2(StatisticsModel params); + List selectMonthStatList(StatisticsModel params); List selectStatisticsListType3(StatisticsModel params); + } diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/model/StatisticsModel.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/model/StatisticsModel.java index b28b35ef..d94330ba 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/model/StatisticsModel.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/model/StatisticsModel.java @@ -15,9 +15,10 @@ import java.util.List; @NoArgsConstructor public class StatisticsModel{ private String type; + private Integer year; + private Integer month; private String yearStr=""; - private Integer year; private Integer captureCnt=0; private Integer eezCnt=0; private Integer violation1=0; diff --git a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/service/UnlawfulFishingService.java b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/service/UnlawfulFishingService.java index dd129722..12beaf50 100644 --- a/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/service/UnlawfulFishingService.java +++ b/src/main/java/com/dbnt/faisp/main/faStatistics/unlawfulFishing/service/UnlawfulFishingService.java @@ -1,5 +1,6 @@ package com.dbnt.faisp.main.faStatistics.unlawfulFishing.service; +import com.dbnt.faisp.main.codeMgt.model.CodeMgt; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.ShipStatisticsEtc; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.StatisticsModel; import com.dbnt.faisp.main.faStatistics.unlawfulFishing.model.UnlawfulFishingParam; @@ -21,7 +22,9 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; @Service @RequiredArgsConstructor @@ -327,14 +330,94 @@ public class UnlawfulFishingService { statisticsList.addAll(temp); return statisticsList; } - public List selectStatisticsListType2(StatisticsModel params) { + public List selectStatisticsListType2(StatisticsModel params, List cpoCode) { List statisticsList = unlawfulFishingMapper.selectStatisticsListType2(params); - - for(StatisticsModel stat: statisticsList){ + StatisticsModel total = new StatisticsModel(); + StatisticsModel subTotalC = new StatisticsModel(); + subTotalC.setFieldIvsgt("C"); + StatisticsModel subTotalF = new StatisticsModel(); + subTotalF.setFieldIvsgt("F"); + + List organCaptureList = new ArrayList<>(); + for(CodeMgt cpo: cpoCode){ + StatisticsModel policeTotal = new StatisticsModel(); + policeTotal.setCrackdownPolice(cpo.getItemCd()); + organCaptureList.add(policeTotal); } + + for(CodeMgt cpo: cpoCode){ + boolean cpoFlagC = false; + boolean cpoFlagF = false; + for(StatisticsModel stat: statisticsList){ + if(stat.getCrackdownPolice().equals(cpo.getItemCd())){ + if(stat.getFieldIvsgt().equals("C")) + cpoFlagC = true; + if(stat.getFieldIvsgt().equals("F")) + cpoFlagF = true; + } + } + if(!cpoFlagC){ + StatisticsModel temp = new StatisticsModel(); + temp.setFieldIvsgt("C"); + temp.setCrackdownPolice(cpo.getItemCd()); + statisticsList.add(temp); + } + if(!cpoFlagF){ + StatisticsModel temp = new StatisticsModel(); + temp.setFieldIvsgt("F"); + temp.setCrackdownPolice(cpo.getItemCd()); + statisticsList.add(temp); + } + } + for(StatisticsModel stat: statisticsList){ + if(stat.getFieldIvsgt().equals("C")){ + subTotalC.setCaptureCnt(subTotalC.getCaptureCnt()+stat.getCaptureCnt()); + }else if(stat.getFieldIvsgt().equals("F")){ + subTotalF.setCaptureCnt(subTotalF.getCaptureCnt()+stat.getCaptureCnt()); + } + + for(StatisticsModel organ: organCaptureList){ + if(stat.getCrackdownPolice().equals(organ.getCrackdownPolice())){ + organ.setCaptureCnt(organ.getCaptureCnt()+stat.getCaptureCnt()); + } + } + } + + total.setCaptureCnt(subTotalC.getCaptureCnt()+subTotalF.getCaptureCnt()); + statisticsList.add(total); + statisticsList.add(subTotalC); + statisticsList.add(subTotalF); + statisticsList.addAll(organCaptureList); + return statisticsList; } + + public List selectMonthStatList(StatisticsModel params) { + List monthStatList = unlawfulFishingMapper.selectMonthStatList(params); + for(int i=1; i<=12; i++){ + boolean monthFlag = false; + for(StatisticsModel monthStat: monthStatList){ + if(monthStat.getMonth().equals(i)){ + monthFlag = true; + } + } + if(!monthFlag){ + StatisticsModel temp = new StatisticsModel(); + temp.setMonth(i); + monthStatList.add(temp); + } + } + int totalCnt = 0; + for(StatisticsModel monthStat: monthStatList){ + totalCnt += monthStat.getCaptureCnt(); + } + StatisticsModel total = new StatisticsModel(); + total.setCaptureCnt(totalCnt); + monthStatList.add(total); + return monthStatList; + } + public List selectStatisticsListType3(StatisticsModel params) { return unlawfulFishingMapper.selectStatisticsListType3(params); } @@ -343,4 +426,5 @@ public class UnlawfulFishingService { public void saveStatEtc(ShipStatisticsEtc statEtc){ sseRepository.save(statEtc); } + } diff --git a/src/main/resources/mybatisMapper/UnlawfulFishingMapper.xml b/src/main/resources/mybatisMapper/UnlawfulFishingMapper.xml index 5a6644d1..391d7671 100644 --- a/src/main/resources/mybatisMapper/UnlawfulFishingMapper.xml +++ b/src/main/resources/mybatisMapper/UnlawfulFishingMapper.xml @@ -461,6 +461,15 @@ where EXTRACT(YEAR FROM a.napo_dt) = ${year} group by a.field_ivsgt, a.crackdown_police + \ No newline at end of file diff --git a/src/main/resources/templates/faStatistics/unlawfulFishing/statistics/statistics.html b/src/main/resources/templates/faStatistics/unlawfulFishing/statistics/statistics.html index c55465c5..52263b2e 100644 --- a/src/main/resources/templates/faStatistics/unlawfulFishing/statistics/statistics.html +++ b/src/main/resources/templates/faStatistics/unlawfulFishing/statistics/statistics.html @@ -109,29 +109,117 @@ - + 구분 + 계 - + - + 나포척수 + + + + + + + + + + + + + + + + + 현장조사 + + + + + + + + + + + + + + + + + 압송(위탁) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
구분
월별 나포 현황
+