diff --git a/src/main/java/com/dbnt/faisp/config/FileController.java b/src/main/java/com/dbnt/faisp/config/FileController.java index 49b4cbc6..058cc65e 100644 --- a/src/main/java/com/dbnt/faisp/config/FileController.java +++ b/src/main/java/com/dbnt/faisp/config/FileController.java @@ -1,5 +1,6 @@ package com.dbnt.faisp.config; +import com.dbnt.faisp.faRpt.service.FaRptService; import com.dbnt.faisp.fpiMgt.affair.service.AffairService; import com.dbnt.faisp.fpiMgt.affairPlan.service.PlanService; import com.dbnt.faisp.fpiMgt.affairResult.service.ResultService; @@ -19,6 +20,7 @@ import java.net.URLEncoder; @RequiredArgsConstructor public class FileController { + private final FaRptService faRptService; private final PlanService planService; private final PublicBoardService publicBoardService; private final AffairService affairService; @@ -33,6 +35,9 @@ public class FileController { Integer fileSeq) { FileInfo downloadFile = null; switch (board){ + case "faRpt": + downloadFile = faRptService.selectFaRptFile(parentKey, fileSeq); + break; case "affairPlan": downloadFile = planService.selectPlanFile(parentKey, fileSeq); break; diff --git a/src/main/java/com/dbnt/faisp/faRpt/FaRptController.java b/src/main/java/com/dbnt/faisp/faRpt/FaRptController.java index 378d5ca5..b35d2866 100644 --- a/src/main/java/com/dbnt/faisp/faRpt/FaRptController.java +++ b/src/main/java/com/dbnt/faisp/faRpt/FaRptController.java @@ -14,6 +14,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; @RestController @@ -44,14 +45,17 @@ public class FaRptController { if(faRptBoard.getActiveTab().equals("send")){ faRptBoard.setWrtUserSeq(loginUser.getUserSeq()); }else if(faRptBoard.getActiveTab().equals("receive")){ + faRptBoard.setStatus("DST007"); faRptBoard.setReceiveUserSeq(loginUser.getUserSeq()); }else if(faRptBoard.getActiveTab().equals("all") && accessAuth.equals("ACC003")){ faRptBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); - mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); }else if(faRptBoard.getActiveTab().equals("all")){ faRptBoard.setActiveTab("send"); faRptBoard.setWrtUserSeq(loginUser.getUserSeq()); } + if(accessAuth.equals("ACC003")){ + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + } faRptBoard.setQueryInfo(); mav.addObject("faRptList", faRptService.selectFaRptList(faRptBoard)); @@ -65,11 +69,21 @@ public class FaRptController { public ModelAndView faRptEditModal(@AuthenticationPrincipal UserInfo loginUser, FaRptBoard faRptBoard){ ModelAndView mav = new ModelAndView("faRpt/faRptEditModal"); if(faRptBoard.getFaRptKey()!=null){ - faRptBoard = faRptService.selectFaRptBoard(faRptBoard.getFaRptKey()); + faRptBoard = faRptService.selectFaRptBoard(faRptBoard.getFaRptKey(), null); }else{ + if(faRptBoard.getRefKey()!=null){ + FaRptReadUser readUser = new FaRptReadUser(); + readUser.setUserSeq(faRptBoard.getWrtUserSeq()); + readUser.setOgCd(faRptBoard.getWrtOrgan()); + readUser.setOfcCd(faRptBoard.getWrtPart()); + readUser.setTitleCd(faRptBoard.getWrtUserGrd()); + readUser.setUserNm(faRptBoard.getWrtUserNm()); + faRptBoard.setReadUserList(new ArrayList<>()); + faRptBoard.getReadUserList().add(readUser); + } + faRptBoard.setWrtUserSeq(loginUser.getUserSeq()); faRptBoard.setWrtOrgan(loginUser.getOgCd()); faRptBoard.setWrtPart(loginUser.getOfcCd()); - faRptBoard.setWrtUserSeq(loginUser.getUserSeq()); faRptBoard.setWrtUserGrd(loginUser.getTitleCd()); faRptBoard.setWrtUserNm(loginUser.getUserNm()); faRptBoard.setWrtDt(LocalDateTime.now()); @@ -82,8 +96,7 @@ public class FaRptController { @GetMapping("/faRptViewModal") public ModelAndView faRptViewModal(@AuthenticationPrincipal UserInfo loginUser, FaRptBoard faRptBoard){ ModelAndView mav = new ModelAndView("faRpt/faRptViewModal"); - faRptBoard = faRptService.selectFaRptBoard(faRptBoard.getFaRptKey()); - mav.addObject("faRpt", faRptBoard); + mav.addObject("faRpt", faRptService.selectFaRptBoard(faRptBoard.getFaRptKey(), loginUser.getUserSeq())); mav.addObject("userSeq",loginUser.getUserSeq()); //메뉴권한 확인 mav.addObject("accessAuth", authMgtService.selectAccessConfigList diff --git a/src/main/java/com/dbnt/faisp/faRpt/mapper/FaRptMapper.java b/src/main/java/com/dbnt/faisp/faRpt/mapper/FaRptMapper.java index 5f5b300f..9e224dbc 100644 --- a/src/main/java/com/dbnt/faisp/faRpt/mapper/FaRptMapper.java +++ b/src/main/java/com/dbnt/faisp/faRpt/mapper/FaRptMapper.java @@ -12,4 +12,6 @@ public interface FaRptMapper { List selectFaRptList(FaRptBoard faRptBoard); Integer selectFaRptCnt(FaRptBoard faRptBoard); + + String selectHashTags(Integer faRptKey); } diff --git a/src/main/java/com/dbnt/faisp/faRpt/model/FaRptBoard.java b/src/main/java/com/dbnt/faisp/faRpt/model/FaRptBoard.java index 166c473a..c646bc65 100644 --- a/src/main/java/com/dbnt/faisp/faRpt/model/FaRptBoard.java +++ b/src/main/java/com/dbnt/faisp/faRpt/model/FaRptBoard.java @@ -60,6 +60,10 @@ public class FaRptBoard extends BaseModel { @Transient private Integer fileCnt; @Transient + private Integer readCnt; + @Transient + private Integer userCnt; + @Transient private List fileList; @Transient private List readUserList; diff --git a/src/main/java/com/dbnt/faisp/faRpt/model/HashTagLinkFaRpt.java b/src/main/java/com/dbnt/faisp/faRpt/model/HashTagLinkFaRpt.java new file mode 100644 index 00000000..71b11164 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/model/HashTagLinkFaRpt.java @@ -0,0 +1,37 @@ +package com.dbnt.faisp.faRpt.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "hash_tag_link_fa_rpt") +@IdClass(HashTagLinkFaRpt.HashTagLinkFaRptId.class) +public class HashTagLinkFaRpt extends FileInfo { + @Id + @Column(name = "fa_rpt_key") + private Integer faRptKey; + @Id + @Column(name = "tag_key") + private Integer tagKey; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class HashTagLinkFaRptId implements Serializable { + private Integer faRptKey; + private Integer tagKey; + } + +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/repository/HashTagLinkFaRptRepository.java b/src/main/java/com/dbnt/faisp/faRpt/repository/HashTagLinkFaRptRepository.java new file mode 100644 index 00000000..be9442cf --- /dev/null +++ b/src/main/java/com/dbnt/faisp/faRpt/repository/HashTagLinkFaRptRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.faRpt.repository; + +import com.dbnt.faisp.faRpt.model.HashTagLinkFaRpt; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface HashTagLinkFaRptRepository extends JpaRepository { + void deleteByFaRptKey(Integer faRptKey); +} diff --git a/src/main/java/com/dbnt/faisp/faRpt/service/FaRptService.java b/src/main/java/com/dbnt/faisp/faRpt/service/FaRptService.java index 6da4c279..74f91efb 100644 --- a/src/main/java/com/dbnt/faisp/faRpt/service/FaRptService.java +++ b/src/main/java/com/dbnt/faisp/faRpt/service/FaRptService.java @@ -6,12 +6,12 @@ import com.dbnt.faisp.faRpt.mapper.FaRptMapper; import com.dbnt.faisp.faRpt.model.FaRptBoard; import com.dbnt.faisp.faRpt.model.FaRptFile; import com.dbnt.faisp.faRpt.model.FaRptReadUser; +import com.dbnt.faisp.faRpt.model.HashTagLinkFaRpt; import com.dbnt.faisp.faRpt.repository.FaRptBoardRepository; import com.dbnt.faisp.faRpt.repository.FaRptFileRepository; import com.dbnt.faisp.faRpt.repository.FaRptReadUserRepository; -import com.dbnt.faisp.publicBoard.model.PublicBoard; -import com.dbnt.faisp.publicBoard.model.PublicComment; -import com.dbnt.faisp.publicBoard.model.PublicFile; +import com.dbnt.faisp.faRpt.repository.HashTagLinkFaRptRepository; +import com.dbnt.faisp.hashTag.service.HashTagService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,9 +25,11 @@ import java.util.UUID; @Service @RequiredArgsConstructor public class FaRptService extends BaseService { + private final HashTagService hashTagService; private final FaRptBoardRepository faRptBoardRepository; private final FaRptFileRepository faRptFileRepository; private final FaRptReadUserRepository faRptReadUserRepository; + private final HashTagLinkFaRptRepository hashTagLinkFaRptRepository; private final FaRptMapper faRptMapper; @@ -51,13 +53,28 @@ public class FaRptService extends BaseService { if(faRptBoard.getReadUserList() != null){ saveFaRptReadUser(faRptKey, faRptBoard.getReadUserList()); } + if(!faRptBoard.getHashTags().isEmpty()){ + saveHashTagLink(faRptKey, faRptBoard.getHashTags().split(" ")); + } return faRptKey; } - public FaRptBoard selectFaRptBoard(Integer faRptKey) { + @Transactional + public FaRptBoard selectFaRptBoard(Integer faRptKey, Integer userSeq) { FaRptBoard faRptBoard = faRptBoardRepository.findById(faRptKey).orElse(null); - faRptBoard.setFileList(faRptFileRepository.findByFaRptKey(faRptKey)); - faRptBoard.setReadUserList(faRptReadUserRepository.findByFaRptKey(faRptKey)); + if(faRptBoard != null){ + faRptBoard.setFileList(faRptFileRepository.findByFaRptKey(faRptKey)); + faRptBoard.setHashTags(faRptMapper.selectHashTags(faRptKey)); + faRptBoard.setReadUserList(faRptReadUserRepository.findByFaRptKey(faRptKey)); + if(faRptBoard.getStatus().equals("DST007")){ + for(FaRptReadUser readUser: faRptBoard.getReadUserList()){ + if(readUser.getUserSeq().equals(userSeq)){ + readUser.setReadYn("T"); + faRptReadUserRepository.save(readUser); + } + } + } + } return faRptBoard; } @@ -102,4 +119,18 @@ public class FaRptService extends BaseService { } } } + + private void saveHashTagLink(Integer faRptKey, String[] hashTagAry){ + hashTagLinkFaRptRepository.deleteByFaRptKey(faRptKey); + for(String tagNm: hashTagAry){ + HashTagLinkFaRpt hashTagLink = new HashTagLinkFaRpt(); + hashTagLink.setFaRptKey(faRptKey); + hashTagLink.setTagKey(hashTagService.selectTagKey(tagNm)); + hashTagLinkFaRptRepository.save(hashTagLink); + } + } + + public FileInfo selectFaRptFile(Integer faRptKey, Integer fileSeq) { + return faRptFileRepository.findById(new FaRptFile.FaRptFileId(faRptKey, fileSeq)).orElse(null); + } } \ No newline at end of file diff --git a/src/main/java/com/dbnt/faisp/fipTarget/FipTargetController.java b/src/main/java/com/dbnt/faisp/fipTarget/FipTargetController.java index 570caf8b..d8344bbe 100644 --- a/src/main/java/com/dbnt/faisp/fipTarget/FipTargetController.java +++ b/src/main/java/com/dbnt/faisp/fipTarget/FipTargetController.java @@ -6,6 +6,7 @@ import com.dbnt.faisp.fipTarget.model.PartInfo; import com.dbnt.faisp.fipTarget.model.PartInfoFile; import com.dbnt.faisp.fipTarget.model.PartWork; import com.dbnt.faisp.fipTarget.model.PartWorkFile; +import com.dbnt.faisp.fipTarget.model.ShipInfo; import com.dbnt.faisp.fipTarget.model.VulnFile; import com.dbnt.faisp.fipTarget.model.Vulnerable; import com.dbnt.faisp.fipTarget.service.FipTargetService; @@ -466,8 +467,33 @@ public class FipTargetController { public void deleteVulnerable(@RequestBody Vulnerable vulnerable) { fipTargetService.deleteVulnerable(vulnerable); } -//외사취약지 끝 + //외사취약지 끝 + //국제여객선 시작 + @GetMapping("/ipShipList") + public ModelAndView ipShipList(@AuthenticationPrincipal UserInfo loginUser,ShipInfo shipInfo, HttpServletResponse response) { + ModelAndView mav = new ModelAndView("fipTarget/ipShipList"); + shipInfo.setDownOrganCdList(loginUser.getDownOrganCdList()); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/ipShipList?siType="+shipInfo.getSiType()).get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + shipInfo.setQueryInfo(); + + shipInfo.setPaginationInfo(); + mav.addObject("uesrId", loginUser.getUserId()); + mav.addObject("searchParams", shipInfo); + return mav; + } + @GetMapping("/ipShipEditModal") + public ModelAndView ipShipEditModal(@AuthenticationPrincipal UserInfo loginUser,ShipInfo shipInfo) { + ModelAndView mav = new ModelAndView("fipTarget/ipShipEditModal"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partWorkList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + + + return mav; + } diff --git a/src/main/java/com/dbnt/faisp/fipTarget/model/ShipInfo.java b/src/main/java/com/dbnt/faisp/fipTarget/model/ShipInfo.java new file mode 100644 index 00000000..79470223 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fipTarget/model/ShipInfo.java @@ -0,0 +1,130 @@ +package com.dbnt.faisp.fipTarget.model; + +import com.dbnt.faisp.config.BaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(ShipInfo.ShipInfoId.class) +@Table(name = "ship_info") +public class ShipInfo extends BaseModel implements Serializable{ + @Id + @Column(name = "si_seq") + private Integer siSeq; + @Id + @Column(name = "si_type") + private String siType; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Column(name = "start_point") + private String startPoint; + @Column(name = "end_point") + private Integer endPoint; + @Column(name = "distance_nm") + private String distanceNm; + @Column(name = "distance_km") + private String distanceKm; + @Column(name = "owner_nm") + private String ownerNm; + @Column(name = "ship_nm") + private String shipNm; + @Column(name = "operation_cnt") + private String operationCnt; + @Column(name = "ship_weight") + private Integer shipWeight; + @Column(name = "passenger_cnt") + private Integer passengerCnt; + @Column(name = "freight_cnt") + private Integer freightCnt; + @Column(name = "close_yn") + private String closeYn; + @Column(name = "description") + private String description; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_title") + private String wrtTitle; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + @Transient + private String excel; + + +@Override +public String toString() { + return "ShipInfo [siSeq=" + siSeq + ", siType=" + siType + ", versionNo=" + versionNo + ", startPoint=" + startPoint + + ", endPoint=" + endPoint + ", distanceNm=" + distanceNm + ", distanceKm=" + distanceKm + ", ownerNm=" + + ownerNm + ", shipNm=" + shipNm + ", operationCnt=" + operationCnt + ", shipWeight=" + shipWeight + + ", passengerCnt=" + passengerCnt + ", freightCnt=" + freightCnt + ", description=" + description + + ", wrtOrgan=" + wrtOrgan + ", wrtPart=" + wrtPart + ", wrtUserSeq=" + wrtUserSeq + ", wrtTitle=" + + wrtTitle + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + ", excel=" + excel + "]"; +} + + + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class ShipInfoId implements Serializable { + private Integer siSeq; + private String siType; + private Integer versionNo; +} + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java index ed6b6157..8274147b 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java @@ -234,10 +234,15 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 @GetMapping("/statistics") public ModelAndView statistics(@AuthenticationPrincipal UserInfo loginUser, TypeStatistics typeStatistics){ ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairStatistics"); - List type1 = affairService.selectType1List(typeStatistics); - List type2 = affairService.selectType2List(typeStatistics); - List type3 = affairService.selectType3List(typeStatistics); - List type4 = affairService.selectType4List(typeStatistics); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("searchParams", typeStatistics); + + return mav; + } + + @PostMapping("/fieldStatistics") + public ModelAndView fieldStatistics(@AuthenticationPrincipal UserInfo loginUser, TypeStatistics typeStatistics){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/fieldStatistics"); List totalList = affairService.selectStatusTotal(typeStatistics); List type1List = affairService.selecType1ListCnt(typeStatistics); List type2List = affairService.selecType2ListCnt(typeStatistics); @@ -254,30 +259,59 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 totalList.add(total); } mav.addObject("totalList", totalList); - type1List = addTotalRow(type1, type1List); - type2List = addTotalRow(type2, type2List); - type3List = addTotalRow(type3, type3List); - type4List = addTotalRow(type4, type4List); - mav.addObject("type1", type1); - mav.addObject("type2", type2); - mav.addObject("type3", type3); - mav.addObject("type4", type4); + if(typeStatistics.getCategory1() != null) { + type1List = addTotalRow(typeStatistics.getCategory1(), type1List); + } + if(typeStatistics.getCategory2() != null) { + type2List = addTotalRow(typeStatistics.getCategory2(), type2List); + } + if(typeStatistics.getCategory3() != null) { + type3List = addTotalRow(typeStatistics.getCategory3(), type3List); + } + if(typeStatistics.getCategory4() != null) { + type4List = addTotalRow(typeStatistics.getCategory4(), type4List); + } mav.addObject("type1List", type1List); mav.addObject("type2List", type2List); mav.addObject("type3List", type3List); mav.addObject("type4List", type4List); - mav.addObject("searchParams", typeStatistics); - //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/translator/info").get(0).getAccessAuth(); - mav.addObject("accessAuth", accessAuth); - mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("searchParams", typeStatistics); return mav; } - private List addTotalRow(List type, List typeList){ + @PostMapping("/ratingStatistics") + public ModelAndView ratingStatistics(@AuthenticationPrincipal UserInfo loginUser, TypeStatistics typeStatistics){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/ratingStatistics"); + List totalList = affairService.selectRatingStatusTotal(typeStatistics); + List sangboCntList = affairService.selectSangboTotal(typeStatistics); + List arrCntList = affairService.selectArrCntList(typeStatistics); + if(!totalList.isEmpty()) { + TypeStatistics total = new TypeStatistics(); + total.setItemValue("누계"); + total.setWrtOrgan("total"); + total.setCnt(0); + for(TypeStatistics stat: totalList) { + total.setCnt(total.getCnt()+stat.getCnt()); + } + totalList.add(total); + } + if(typeStatistics.getSangbo() != null) { + sangboCntList = addTotalRow(typeStatistics.getSangbo(), sangboCntList); + } + if(typeStatistics.getRating() != null) { + arrCntList = addTotalRow(typeStatistics.getRating(), arrCntList); + } + mav.addObject("totalList", totalList); + mav.addObject("sangboList", sangboCntList); + mav.addObject("arrCntList", arrCntList); + mav.addObject("searchParams", typeStatistics); + return mav; + } + + private List addTotalRow(List type, List typeList){ Map totalMap = new HashMap<>(); - for(TypeStatistics t: type) { - totalMap.put(t.getAffairType(), 0); + for(String t: type) { + totalMap.put(t, 0); } for(TypeStatistics t: typeList) { totalMap.put(t.getAffairType(), totalMap.get(t.getAffairType())+t.getCnt()); @@ -291,9 +325,9 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 total.setAffairType(affairType); total.setCnt(cnt); typeList.add(total); - } - + } return typeList; } + } diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java index a77d7417..40336580 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java @@ -16,13 +16,6 @@ public interface AffairMapper { String selectHashTags(Integer affairKey); - List selectType1List(TypeStatistics typeStatistics); - - List selectType2List(TypeStatistics typeStatistics); - - List selectType3List(TypeStatistics typeStatistics); - - List selectType4List(TypeStatistics typeStatistics); List selectStatusTotal(TypeStatistics typeStatistics); @@ -33,4 +26,10 @@ public interface AffairMapper { List selecType3ListCnt(TypeStatistics typeStatistics); List selecType4ListCnt(TypeStatistics typeStatistics); + + List selectRatingStatusTotal(TypeStatistics typeStatistics); + + List selectSangboTotal(TypeStatistics typeStatistics); + + List selectArrCntList(TypeStatistics typeStatistics); } diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/TypeStatistics.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/TypeStatistics.java index 05f470a5..9366af8f 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/TypeStatistics.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/TypeStatistics.java @@ -24,6 +24,10 @@ public class TypeStatistics extends BaseModel { @Transient private Integer cnt; @Transient + private String userNm; + @Transient + private List rating; + @Transient private List category1; @Transient private List category2; @@ -33,11 +37,18 @@ public class TypeStatistics extends BaseModel { private List category4; @Transient private List organList; + @Transient + private List sangbo; @Override public String toString() { return "TypeStatistics [wrtOrgan=" + wrtOrgan + ", itemValue=" + itemValue + ", affairType=" + affairType + ", cnt=" - + cnt + ", category1=" + category1 + "]"; + + cnt + ", rating=" + rating + ", category1=" + category1 + ", category2=" + category2 + ", category3=" + + category3 + ", category4=" + category4 + ", organList=" + organList + "]"; } + + + + } diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java index f9a095bf..7c4e3411 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java @@ -6,6 +6,7 @@ import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.fpiMgt.affair.mapper.AffairMapper; import com.dbnt.faisp.fpiMgt.affair.model.*; import com.dbnt.faisp.fpiMgt.affair.repository.*; +import com.dbnt.faisp.hashTag.service.HashTagService; import com.dbnt.faisp.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -20,10 +21,10 @@ import java.util.UUID; @Service @RequiredArgsConstructor public class AffairService extends BaseService { // 견문보고 + private final HashTagService hashTagService; private final AffairBoardRepository affairBoardRepository; private final AffairFileRepository affairFileRepository; private final AffairRatingRepository affairRatingRepository; - private final HashTagRepository hashTagRepository; private final HashTagLinkRepository hashTagLinkRepository; private final AffairMapper affairMapper; @@ -46,9 +47,8 @@ public class AffairService extends BaseService { // 견문보고 @Transactional public Integer saveAffairBoard(AffairBoard affair, List deleteFileSeq){ Integer affairKey = affairBoardRepository.save(affair).getAffairKey(); - String[] hashTagAry = affair.getHashTags().split(" "); - if(hashTagAry.length>0){ - saveHashTagLink(affairKey, hashTagAry); + if(!affair.getHashTags().isEmpty()){ + saveHashTagLink(affairKey, affair.getHashTags().split(" ")); } if(deleteFileSeq != null && deleteFileSeq.size()>0){ deleteAffairFile(affairKey, deleteFileSeq); @@ -72,18 +72,9 @@ public class AffairService extends BaseService { // 견문보고 private void saveHashTagLink(Integer affairKey, String[] hashTagAry){ hashTagLinkRepository.deleteByAffairKey(affairKey); for(String tagNm : hashTagAry){ - HashTag savedTag = hashTagRepository.findByTagNm(tagNm).orElse(null); - Integer tagKey; - if(savedTag==null){ - HashTag tag = new HashTag(); - tag.setTagNm(tagNm); - tagKey = hashTagRepository.save(tag).getTagKey(); - }else{ - tagKey = savedTag.getTagKey(); - } HashTagLink hashTagLink = new HashTagLink(); hashTagLink.setAffairKey(affairKey); - hashTagLink.setTagKey(tagKey); + hashTagLink.setTagKey(hashTagService.selectTagKey(tagNm)); hashTagLinkRepository.save(hashTagLink); } } @@ -157,22 +148,6 @@ public class AffairService extends BaseService { // 견문보고 return affairFileRepository.findById(new AffairFile.AffairFileId(parentKey, fileSeq)).orElse(null); } - public List selectType1List(TypeStatistics typeStatistics) { - return affairMapper.selectType1List(typeStatistics); - } - - public List selectType2List(TypeStatistics typeStatistics) { - return affairMapper.selectType2List(typeStatistics); - } - - public List selectType3List(TypeStatistics typeStatistics) { - return affairMapper.selectType3List(typeStatistics); - } - - public List selectType4List(TypeStatistics typeStatistics) { - return affairMapper.selectType4List(typeStatistics); - } - public List selectStatusTotal(TypeStatistics typeStatistics) { return affairMapper.selectStatusTotal(typeStatistics); } @@ -192,4 +167,13 @@ public class AffairService extends BaseService { // 견문보고 public List selecType4ListCnt(TypeStatistics typeStatistics) { return affairMapper.selecType4ListCnt(typeStatistics); } + public List selectRatingStatusTotal(TypeStatistics typeStatistics) { + return affairMapper.selectRatingStatusTotal(typeStatistics); + } + public List selectSangboTotal(TypeStatistics typeStatistics) { + return affairMapper.selectSangboTotal(typeStatistics); + } + public List selectArrCntList(TypeStatistics typeStatistics) { + return affairMapper.selectArrCntList(typeStatistics); + } } diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java b/src/main/java/com/dbnt/faisp/hashTag/model/HashTag.java similarity index 91% rename from src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java rename to src/main/java/com/dbnt/faisp/hashTag/model/HashTag.java index 39673657..09784e9e 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java +++ b/src/main/java/com/dbnt/faisp/hashTag/model/HashTag.java @@ -1,4 +1,4 @@ -package com.dbnt.faisp.fpiMgt.affair.model; +package com.dbnt.faisp.hashTag.model; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java b/src/main/java/com/dbnt/faisp/hashTag/repository/HashTagRepository.java similarity index 68% rename from src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java rename to src/main/java/com/dbnt/faisp/hashTag/repository/HashTagRepository.java index bdc53154..95fd7c94 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java +++ b/src/main/java/com/dbnt/faisp/hashTag/repository/HashTagRepository.java @@ -1,6 +1,6 @@ -package com.dbnt.faisp.fpiMgt.affair.repository; +package com.dbnt.faisp.hashTag.repository; -import com.dbnt.faisp.fpiMgt.affair.model.HashTag; +import com.dbnt.faisp.hashTag.model.HashTag; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; diff --git a/src/main/java/com/dbnt/faisp/hashTag/service/HashTagService.java b/src/main/java/com/dbnt/faisp/hashTag/service/HashTagService.java new file mode 100644 index 00000000..a284f4c5 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/hashTag/service/HashTagService.java @@ -0,0 +1,25 @@ +package com.dbnt.faisp.hashTag.service; + +import com.dbnt.faisp.hashTag.model.HashTag; +import com.dbnt.faisp.hashTag.repository.HashTagRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +public class HashTagService { + private final HashTagRepository hashTagRepository; + + @Transactional + public Integer selectTagKey(String tagNm){ + HashTag savedTag = hashTagRepository.findByTagNm(tagNm).orElse(null); + if(savedTag==null){ + HashTag tag = new HashTag(); + tag.setTagNm(tagNm); + return hashTagRepository.save(tag).getTagKey(); + }else{ + return savedTag.getTagKey(); + } + } +} diff --git a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java index 0fc4d977..c422249d 100644 --- a/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java +++ b/src/main/java/com/dbnt/faisp/ivsgtMgt/boardInvestigation/service/BoardInvestigationService.java @@ -3,8 +3,7 @@ package com.dbnt.faisp.ivsgtMgt.boardInvestigation.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.FileInfo; -import com.dbnt.faisp.fpiMgt.affair.model.HashTag; -import com.dbnt.faisp.fpiMgt.affair.repository.HashTagRepository; +import com.dbnt.faisp.hashTag.service.HashTagService; import com.dbnt.faisp.ivsgtMgt.boardInvestigation.mapper.BoardInvestigationMapper; import com.dbnt.faisp.ivsgtMgt.boardInvestigation.model.*; import com.dbnt.faisp.ivsgtMgt.boardInvestigation.repository.*; @@ -21,11 +20,11 @@ import java.util.UUID; @Service @RequiredArgsConstructor public class BoardInvestigationService extends BaseService { + private final HashTagService hashTagService; private final BoardInvestigationRepository boardInvestigationRepository; private final IvsgtFileRepository ivsgtFileRepository; private final ArrestTypeRepository arrestTypeRepository; private final RelatedReportsRepository relatedReportsRepository; - private final HashTagRepository hashTagRepository; private final HashTagLinkIvsgtRepository hashTagLinkIvsgtRepository; private final BoardInvestigationMapper boardInvestigationMapper; @@ -120,18 +119,9 @@ public class BoardInvestigationService extends BaseService { private void saveHashTagLink(Integer ivsgtKey, String[] hashTagAry){ hashTagLinkIvsgtRepository.deleteByIvsgtKey(ivsgtKey); for(String tagNm : hashTagAry){ - HashTag savedTag = hashTagRepository.findByTagNm(tagNm).orElse(null); - Integer tagKey; - if(savedTag==null){ - HashTag tag = new HashTag(); - tag.setTagNm(tagNm); - tagKey = hashTagRepository.save(tag).getTagKey(); - }else{ - tagKey = savedTag.getTagKey(); - } HashTagLinkIvsgt hashTagLinkIvsgt = new HashTagLinkIvsgt(); hashTagLinkIvsgt.setIvsgtKey(ivsgtKey); - hashTagLinkIvsgt.setTagKey(tagKey); + hashTagLinkIvsgt.setTagKey(hashTagService.selectTagKey(tagNm)); hashTagLinkIvsgtRepository.save(hashTagLinkIvsgt); } } diff --git a/src/main/resources/mybatisMapper/AffairMapper.xml b/src/main/resources/mybatisMapper/AffairMapper.xml index d4ae9da5..f26fc49b 100644 --- a/src/main/resources/mybatisMapper/AffairMapper.xml +++ b/src/main/resources/mybatisMapper/AffairMapper.xml @@ -109,90 +109,102 @@ - + + + and wrt_user_nm like '%'||#{userNm}||'%' + + + and wrt_dt >= #{startDate}::date + + + and wrt_dt <= #{endDate}::date+1 + + + and ab.affair_key in ( + select affair_key + from affair_rating ar2 + inner join organ_config oc2 + on ar2.rating_organ = oc2.organ_cd + + + and ar2.affair_rate in + + #{item} + + + + and ar2.organ_up = 'T' + and oc2.organ_type in + + #{item} + + + + ) + + - + + + + and item_cd in + + #{item} + + + + and item_cd not in (select item_cd from code_mgt where category_cd = 'DC01') + + + - + + + + and item_cd in + + #{item} + + + + and item_cd not in (select item_cd from code_mgt where category_cd = 'DC02') + + + - + + + + and item_cd in + + #{item} + + + + and item_cd not in (select item_cd from code_mgt where category_cd = 'DC03') + + + + + + + + and item_cd in + + #{item} + + + + and item_cd not in (select item_cd from code_mgt where category_cd = 'DC04') + + + + + + + and wrt_user_nm like '%'||#{userNm}||'%' + + + and wrt_dt >= #{startDate}::date + + + and wrt_dt <= #{endDate}::date+1 + + + and ab.affair_key in ( + select affair_key + from affair_rating ar2 + inner join organ_config oc2 + on ar2.rating_organ = oc2.organ_cd + + + and ar2.affair_rate in + + #{item} + + + + and ar2.organ_up = 'T' + and oc2.organ_type in + + #{item} + + + + ) + + + and affair_type1 in + + #{item} + + + + and affair_type2 in + + #{item} + + + + and affair_type3 in + + #{item} + + + + and affair_type4 in + + #{item} + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/BoardInvestigationMapper.xml b/src/main/resources/mybatisMapper/BoardInvestigationMapper.xml index 0c5f6c40..686cedeb 100644 --- a/src/main/resources/mybatisMapper/BoardInvestigationMapper.xml +++ b/src/main/resources/mybatisMapper/BoardInvestigationMapper.xml @@ -71,14 +71,10 @@ select a.fa_rpt_key, a.title, + a.fa_rpt_type, + a.status, a.wrt_organ, a.wrt_part, a.wrt_user_nm, a.wrt_user_grd, a.wrt_user_seq, a.wrt_dt, - b.fileCnt + b.fileCnt, + c.readCnt, + c.userCnt from fa_rpt_board a left outer join (select fa_rpt_key, count(file_seq) as fileCnt from fa_rpt_file group by fa_rpt_key) b - on a.fa_rpt_key = b.fa_rpt_key + on a.fa_rpt_key = b.fa_rpt_key + left outer join (select fa_rpt_key, + count(read_yn='T') as readCnt, + count(*) as userCnt + from fa_rpt_read_user + group by fa_rpt_key) c + on a.fa_rpt_key = c.fa_rpt_key order by fa_rpt_key desc limit #{rowCnt} offset #{firstIndex} @@ -62,4 +83,11 @@ from fa_rpt_board a + + \ No newline at end of file diff --git a/src/main/resources/static/css/affair/affair.css b/src/main/resources/static/css/affair/affair.css new file mode 100644 index 00000000..93715b80 --- /dev/null +++ b/src/main/resources/static/css/affair/affair.css @@ -0,0 +1,6 @@ +/*로그인 폼*/ +.affair-scroll{ + max-height: 200px; + overflow-y: auto; +} + diff --git a/src/main/resources/static/css/common.css b/src/main/resources/static/css/common.css index fd8f5e86..df682d4c 100644 --- a/src/main/resources/static/css/common.css +++ b/src/main/resources/static/css/common.css @@ -16,6 +16,24 @@ background-color: #ffffff; } +#fadeSearchDiv{ + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background-color: #00000050; + z-index: 2090; +} + +#fadeSearchDiv > div{ + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + background-color: #ffffff; +} + .activeTr{ --bs-bg-opacity: 0.25; background-color: rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important; diff --git a/src/main/resources/static/js/common.js b/src/main/resources/static/js/common.js index 2fc61d56..6154c7c3 100644 --- a/src/main/resources/static/js/common.js +++ b/src/main/resources/static/js/common.js @@ -8,6 +8,14 @@ function contentFade(action){ } } +function searchFade(action){ + if(action === "in"){ + $("#fadeSearchDiv").show() + }else{ + $("#fadeSearchDiv").hide() + } +} + $(document).on('click', '.allChk', function (){ $(this).parents('table').find('[type="checkbox"]').prop("checked", this.checked); }) diff --git a/src/main/resources/static/js/faRpt/faRpt.js b/src/main/resources/static/js/faRpt/faRpt.js index 91728d02..89feee05 100644 --- a/src/main/resources/static/js/faRpt/faRpt.js +++ b/src/main/resources/static/js/faRpt/faRpt.js @@ -17,20 +17,44 @@ $(document).on('click', '#allTab', function (){ }) $(document).on('click', '#addFaRptBtn', function (){ - getFaRptEditModal(null) + getFaRptEditModal({faRptKey: null}) }) $(document).on('click', '#editFaRptBtn', function (){ $("#faRptViewModal").modal('hide'); - getFaRptEditModal(Number($(this).attr("data-farptkey"))); + getFaRptEditModal({faRptKey: Number($(this).attr("data-farptkey"))}); }) $(document).on('click', '#addReadUserBtn', function (){ searchModalSubmit(1); $("#userModal").modal('show'); }) +$(document).on('click', '.rowDeleteBtn', function (){ + $(this).parents(".readUserRow").remove() + setReadUserRowNum(); +}) +$(document).on('click', '#getMenuBtn', function (){ + $.ajax({ + type : 'POST', + url : "/faRpt/selectedUserTable", + data : JSON.stringify(selectedList), + contentType: 'application/json', + dataType:"html", + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(html) { + $("#readUserRow").empty().append(html); + setReadUserRowNum(); + $("#userModal").modal("hide"); + }, + error : function(xhr, status) { + + } + }) +}) $(document).on('click', '#saveFaRptBtn', function (){ - saveFaRpt('DST002') + saveFaRpt('DST007') }) $(document).on('click', '#saveTempBtn', function (){ @@ -45,7 +69,18 @@ $(document).on('click', '.faRptTr', function (){ } getFaRptViewModal(Number($(this).find(".faRptKey").val())); }) - +$(document).on('click', '#reSendBtn', function (){ + $("#faRptViewModal").modal('hide'); + const faRpt = { + refKey: Number($(this).attr("data-farptkey")), + wrtUserSeq: $("#wrtUserSeq").val(), + wrtOrgan: $("#wrtOrgan").val(), + wrtPart: $("#wrtPart").val(), + wrtUserGrd: $("#wrtUserGrd").val(), + wrtUserNm: $("#wrtUserNm").val() + } + getFaRptEditModal(faRpt); +}) function getFaRptViewModal(faRptKey){ $.ajax({ @@ -63,10 +98,10 @@ function getFaRptViewModal(faRptKey){ }); } -function getFaRptEditModal(faRptKey){ +function getFaRptEditModal(faRpt){ $.ajax({ url: '/faRpt/faRptEditModal', - data: {faRptKey: faRptKey}, + data: faRpt, type: 'GET', dataType:"html", success: function(html){ @@ -99,13 +134,20 @@ function getFaRptEditModal(faRptKey){ function saveFaRpt(faRptState){ if(contentCheck()){ if(confirm("저장하시겠습니까?")){ - $("#faRptState").val(faRptState); + $("#status").val(faRptState); contentFade("in"); const formData = new FormData($("#faRptEditForm")[0]); for(const file of files) { if(!file.isDelete) formData.append('uploadFiles', file, file.name); } + $.each($(".readUserRow"), function (idx, row){ + formData.append('readUserList['+idx+'].userSeq', $(row).find('.userSeq').val()); + formData.append('readUserList['+idx+'].ogCd', $(row).find('.ogCd').val()); + formData.append('readUserList['+idx+'].ofcCd', $(row).find('.ofcCd').val()); + formData.append('readUserList['+idx+'].titleCd', $(row).find('.titleCd').val()); + formData.append('readUserList['+idx+'].userNm', $(row).find('.userNm').val()); + }); $(".text-decoration-line-through").each(function (idx, el){ formData.append('fileSeq', $(el).attr("data-fileseq")); }) @@ -130,6 +172,11 @@ function saveFaRpt(faRptState){ } } +function setReadUserRowNum(){ + $.each($(".readUserRow"), function (idx, row){ + $(row).find(".rowSeq")[0].innerText = idx+1; + }) +} function contentCheck(){ let flag = true; diff --git a/src/main/resources/static/js/fipTarget/shipInfo.js b/src/main/resources/static/js/fipTarget/shipInfo.js new file mode 100644 index 00000000..aebfe764 --- /dev/null +++ b/src/main/resources/static/js/fipTarget/shipInfo.js @@ -0,0 +1,25 @@ +$(document).on('click', '#krcnTab', function (){ + location.href="/target/ipShipList?siType=KRCN"; +}) + +$(document).on('click', '#krjpruTab', function (){ + location.href="/target/ipShipList?siType=KRJPRU"; +}) + +$(document).on('click', '#addKRCN', function (){ + const siType = 'KRCN'; + $.ajax({ + url: '/target/ipShipEditModal', + data: {siType: siType}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#ipShipModalContent").empty().append(html); + $("#ipShipModal").modal('show'); + + }, + error:function(){ + + } + }); +}) \ No newline at end of file diff --git a/src/main/resources/static/js/igActivities/fpiMgt/affair/statistics.js b/src/main/resources/static/js/igActivities/fpiMgt/affair/statistics.js index be5b3576..3ed24b53 100644 --- a/src/main/resources/static/js/igActivities/fpiMgt/affair/statistics.js +++ b/src/main/resources/static/js/igActivities/fpiMgt/affair/statistics.js @@ -1,9 +1,33 @@ - -$(document).on('click', '#downExcel', function (){ - exportExcel(); +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); }) -function exportExcel(){ +$(document).on('click', '#fieldDownExcel', function (){ + exportExcel('분야별'); +}) + +$(document).on('click', '#ratingDownExcel', function (){ + exportExcel('평가별'); +}) + +function exportExcel(name){ + var excelHandler = { + getExcelFileName : function(){ + return '견문통계'+'_'+name+'_'+getToday()+'.xlsx'; //파일명 + }, + getSheetName : function(){ + return '견문통계'+'_'+name; + }, + getExcelData : function(){ + return document.getElementById('tableData'); //TABLE id + }, + getWorksheet : function(){ + return XLSX.utils.table_to_sheet(this.getExcelData()); + } + } // step 1. workbook 생성 var wb = XLSX.utils.book_new(); @@ -20,21 +44,6 @@ function exportExcel(){ saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), excelHandler.getExcelFileName()); } -var excelHandler = { - getExcelFileName : function(){ - return '견문통계'+'_'+getToday()+'.xlsx'; //파일명 - }, - getSheetName : function(){ - return 'Table Test Sheet'; //시트명 - }, - getExcelData : function(){ - return document.getElementById('tableData'); //TABLE id - }, - getWorksheet : function(){ - return XLSX.utils.table_to_sheet(this.getExcelData()); - } -} - function s2ab(s) { var buf = new ArrayBuffer(s.length); //convert s to arrayBuffer var view = new Uint8Array(buf); //create uint8array as viewer @@ -49,4 +58,123 @@ function getToday(){ var day = ("0" + date.getDate()).slice(-2); return year + "-" + month + "-" + day; -} \ No newline at end of file +} + +$(document).on('click', '#fieldSearch', function (){ + goFieldStatistics(); +}) + +$(document).on('click', '#fieldTab', function (){ + goFieldStatistics(); +}) + +function goFieldStatistics(){ + searchFade("in"); + const formData = new FormData($("#searchFm")[0]); + $.ajax({ + url: '/affair/fieldStatistics', + data: formData, + type: 'POST', + dataType:"html", + contentType: false, + processData: false, + success: function(html){ + $("#statisticsBody").empty().append(html) + $("#statisticsBody").show(); + $(".statisticsMenu").hide(); + searchFade("out"); + }, + error:function(){ + searchFade("out"); + + } + }); +} + +$(document).on('click', '#ratingSearch', function (){ + if($('input:checkbox[name=rating]:checked').length < 1){ + alert("평가항목을 선택해주세요"); + return false; + } + goRatingStatistics(); +}) +$(document).on('click', '#ratingTab', function (){ + if($('input:checkbox[name=rating]:checked').length < 1){ + alert("평가항목을 선택해주세요"); + return false; + } + goRatingStatistics(); +}) + +function goRatingStatistics(){ + searchFade("in"); + const formData = new FormData($("#searchFm")[0]); + $.ajax({ + url: '/affair/ratingStatistics', + data: formData, + type: 'POST', + dataType:"html", + contentType: false, + processData: false, + success: function(html){ + $("#statisticsBody").empty().append(html) + $("#statisticsBody").show(); + $(".statisticsMenu").hide(); + searchFade("out"); + }, + error:function(){ + searchFade("out"); + } + }); +} + +$(document).on('click', '#showMenu', function (){ + $(".statisticsMenu").show(); +}) + +$(document).ready(function() { + $("#organAll").click(function() { + if($("#organAll").is(":checked")){ + $("input[name=organList]").prop("checked", true); + } else{ + $("input[name=organList]").prop("checked", false); + } + }); + $("#ratingAll").click(function() { + if($("#ratingAll").is(":checked")){ + $("input[name=rating]").prop("checked", true); + } else{ + $("input[name=rating]").prop("checked", false); + } + }); + $("#category1All").click(function() { + if($("#category1All").is(":checked")){ + $("input[name=category1]").prop("checked", true); + } else{ + $("input[name=category1]").prop("checked", false); + } + }); + $("#category2All").click(function() { + if($("#category2All").is(":checked")){ + $("input[name=category2]").prop("checked", true); + } else{ + $("input[name=category2]").prop("checked", false); + } + }); + $("#category3All").click(function() { + if($("#category3All").is(":checked")){ + $("input[name=category3]").prop("checked", true); + } else{ + $("input[name=category3]").prop("checked", false); + } + }); + $("#category4All").click(function() { + if($("#category4All").is(":checked")){ + $("input[name=category4]").prop("checked", true); + } else{ + $("input[name=category4]").prop("checked", false); + } + }); + +}); + diff --git a/src/main/resources/static/js/modal/userModal.js b/src/main/resources/static/js/modal/userModal.js index 58a6360c..295b6d61 100644 --- a/src/main/resources/static/js/modal/userModal.js +++ b/src/main/resources/static/js/modal/userModal.js @@ -22,26 +22,6 @@ $(document).on('click', '.userInfoTr', function (){ } }) -$(document).on('click', '#getMenuBtn', function (){ - $.ajax({ - type : 'POST', - url : "/faRpt/selectedUserTable", - data : JSON.stringify(selectedList), - contentType: 'application/json', - dataType:"html", - beforeSend: function (xhr){ - xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); - }, - success : function(html) { - $("#readUserRow").empty().append(html); - $("#userModal").modal("hide"); - }, - error : function(xhr, status) { - - } - }) -}) - function setSelectedChkBox(){ $.each(selectedList, function (idx, item){ $(".userInfoCheckBox[value="+item.userSeq+"]").prop("checked", true); diff --git a/src/main/resources/templates/faRpt/faRptBoard.html b/src/main/resources/templates/faRpt/faRptBoard.html index c0de7fd4..26c2ed83 100644 --- a/src/main/resources/templates/faRpt/faRptBoard.html +++ b/src/main/resources/templates/faRpt/faRptBoard.html @@ -42,23 +42,24 @@
-
+
+
+ +
-
+
@@ -78,18 +79,31 @@ + 상태 + 분류 제목 관서 부서 작성자 작성일시 첨부파일 + 열람수 + + + + + + + + + + @@ -100,6 +114,7 @@ + diff --git a/src/main/resources/templates/faRpt/faRptEditModal.html b/src/main/resources/templates/faRpt/faRptEditModal.html index 6cb0e918..66a0c27b 100644 --- a/src/main/resources/templates/faRpt/faRptEditModal.html +++ b/src/main/resources/templates/faRpt/faRptEditModal.html @@ -14,6 +14,7 @@ +
@@ -52,7 +53,7 @@
-
@@ -89,6 +90,31 @@
+ +
+ + + + + +
+
+ + + + + + + + +
+
+ +
+
+
diff --git a/src/main/resources/templates/faRpt/faRptViewModal.html b/src/main/resources/templates/faRpt/faRptViewModal.html index 8bec9150..bb9dba80 100644 --- a/src/main/resources/templates/faRpt/faRptViewModal.html +++ b/src/main/resources/templates/faRpt/faRptViewModal.html @@ -10,76 +10,117 @@
- + + + + + +
- +
- - + +
+ +
+ + + + +
- +
-
- +
- +
- -
-
- -
파일을 업로드 해주세요. + +
+ + + + + + + + + + + + - -
- - 삭제 -
+ + +
+ + + + - + +
파일명사이즈
파일이 없습니다.
-
-
+
■ 수신자
-
no
수신자
-
삭제
+
열람

-
+
+ +
+
+
+ + + + + + + + +
+
+ +
+
+
@@ -89,5 +130,8 @@ + + +
\ No newline at end of file diff --git a/src/main/resources/templates/faRpt/readUserRow.html b/src/main/resources/templates/faRpt/readUserRow.html index 6ab32f43..bf76f099 100644 --- a/src/main/resources/templates/faRpt/readUserRow.html +++ b/src/main/resources/templates/faRpt/readUserRow.html @@ -1,13 +1,13 @@ - -
- - - - - -
+ +
+ + + + + +
diff --git a/src/main/resources/templates/fipTarget/ipShipEditModal.html b/src/main/resources/templates/fipTarget/ipShipEditModal.html new file mode 100644 index 00000000..34f4e272 --- /dev/null +++ b/src/main/resources/templates/fipTarget/ipShipEditModal.html @@ -0,0 +1,83 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/fipTarget/ipShipList.html b/src/main/resources/templates/fipTarget/ipShipList.html new file mode 100644 index 00000000..073586e4 --- /dev/null +++ b/src/main/resources/templates/fipTarget/ipShipList.html @@ -0,0 +1,117 @@ + + + + + +
+
+

국제여객선 목록

+ + +
+
+
+ +
+ +
+
+ +
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +
항로사업자
(한국대리점)
선명국제
총톤수
수송능력운항횟수휴항최종수정일
+
+
+
+ +
+
+
+ + +
+
+
+
+
+
+
+
+
+ + + +
+ \ No newline at end of file diff --git a/src/main/resources/templates/igActivities/fpiMgt/affair/affairStatistics.html b/src/main/resources/templates/igActivities/fpiMgt/affair/affairStatistics.html index 18d44b78..c784a185 100644 --- a/src/main/resources/templates/igActivities/fpiMgt/affair/affairStatistics.html +++ b/src/main/resources/templates/igActivities/fpiMgt/affair/affairStatistics.html @@ -5,6 +5,9 @@ + + +

견문통계

@@ -14,10 +17,11 @@
-
-
+ + +
@@ -25,146 +29,82 @@
-
+
+ +
+
+
+
+

소속

  • - - - + +
-
-
+
+

평가

+
    +
  • + + +
  • +
+
+
+

분야1

  • - - +
-
+
+

분야2

  • - - - + +
-
+
+

분야3

  • - - - + + +
  • +
+
+
+

분야4

+
    +
  • + +
-
    -
  • - - - -
  • -
+ 경찰서상보
+ 지방청상보
-
- + +
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
구분누계분류1분류2분류3분류4
-
-
+
diff --git a/src/main/resources/templates/igActivities/fpiMgt/affair/fieldStatistics.html b/src/main/resources/templates/igActivities/fpiMgt/affair/fieldStatistics.html new file mode 100644 index 00000000..b8b0c82f --- /dev/null +++ b/src/main/resources/templates/igActivities/fpiMgt/affair/fieldStatistics.html @@ -0,0 +1,111 @@ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
구분누계분류1분류2분류3분류4
+
+
\ No newline at end of file diff --git a/src/main/resources/templates/igActivities/fpiMgt/affair/ratingStatistics.html b/src/main/resources/templates/igActivities/fpiMgt/affair/ratingStatistics.html new file mode 100644 index 00000000..1c22ad6d --- /dev/null +++ b/src/main/resources/templates/igActivities/fpiMgt/affair/ratingStatistics.html @@ -0,0 +1,71 @@ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
구분누계상보평과결과별
지방청경찰서
+
+
\ No newline at end of file diff --git a/src/main/resources/templates/layout/layout.html b/src/main/resources/templates/layout/layout.html index 7f190a3d..bd0a55e8 100644 --- a/src/main/resources/templates/layout/layout.html +++ b/src/main/resources/templates/layout/layout.html @@ -63,6 +63,9 @@ + \ No newline at end of file