diff --git a/src/main/java/com/dbnt/faisp/equip/EquipController.java b/src/main/java/com/dbnt/faisp/equip/EquipController.java index fabb91c8..00edb5d5 100644 --- a/src/main/java/com/dbnt/faisp/equip/EquipController.java +++ b/src/main/java/com/dbnt/faisp/equip/EquipController.java @@ -5,8 +5,10 @@ import com.dbnt.faisp.authMgt.service.AuthMgtService; import com.dbnt.faisp.equip.model.CellPhone; import com.dbnt.faisp.equip.model.Equip; import com.dbnt.faisp.equip.model.EquipLog; +import com.dbnt.faisp.equip.model.UseList; import com.dbnt.faisp.equip.service.EquipService; import com.dbnt.faisp.fipTarget.model.PartInfo; +import com.dbnt.faisp.fipTarget.service.FipTargetService; import com.dbnt.faisp.organMgt.service.OrganConfigService; import com.dbnt.faisp.userInfo.model.UserInfo; import com.dbnt.faisp.userInfo.service.UserInfoService; @@ -40,6 +42,7 @@ public class EquipController { private final EquipService equipService; private final AuthMgtService authMgtService; private final OrganConfigService organConfigService; + private final FipTargetService fipTargetService; private final UserInfoService userInfoService; @GetMapping("/equipStatus") @@ -287,6 +290,47 @@ public class EquipController { equipService.deleteCellPhone(cellPhone); } + + @GetMapping("/pvreUseList") + public ModelAndView pvreUseList(@AuthenticationPrincipal UserInfo loginUser,UseList useList,HttpServletResponse response) { + ModelAndView mav = new ModelAndView("equip/pvreUseList"); + useList.setDownOrganCdList(loginUser.getDownOrganCdList()); + useList.setUseType("PVRE"); + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/pvreUseList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + useList.setQueryInfo(); + mav.addObject("useList", equipService.selectUseList(useList)); + useList.setContentCnt(equipService.selectUseListCnt(useList)); + useList.setPaginationInfo(); + mav.addObject("searchParams", useList); + + return mav; + } + + @GetMapping("/pvreEditModal") + public ModelAndView pvreEditModal(@AuthenticationPrincipal UserInfo loginUser,UseList useList) { + ModelAndView mav = new ModelAndView("equip/pvreEditModal"); + useList.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("organList", equipService.selectOrganList(useList)); + mav.addObject("userOrgan", loginUser.getOgCd()); + mav.addObject("useType", "PVRE"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/pvreUseList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + return mav; + } + + @PostMapping("/saveUse") + public void saveUse(@AuthenticationPrincipal UserInfo loginUser,UseList useList){ + useList.setWrtOrgan(loginUser.getOgCd()); + useList.setWrtPart(loginUser.getOfcCd()); + useList.setWrtUserSeq(loginUser.getUserSeq()); + useList.setWrtNm(loginUser.getUserId()); + useList.setWrtDt(LocalDateTime.now()); + equipService.saveUse(useList); + } diff --git a/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java b/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java index 40b89131..65277dfd 100644 --- a/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java +++ b/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java @@ -3,6 +3,7 @@ package com.dbnt.faisp.equip.mapper; import com.dbnt.faisp.equip.model.CellPhone; import com.dbnt.faisp.equip.model.Equip; import com.dbnt.faisp.equip.model.EquipLog; +import com.dbnt.faisp.equip.model.UseList; import com.dbnt.faisp.util.ParamMap; import org.apache.ibatis.annotations.Mapper; @@ -34,6 +35,16 @@ public interface EquipMapper { Integer selectCellPhoneListCnt(CellPhone cellPhone); + List selectOrganList(UseList useList); + + UseList selectUseNoCnt(UseList useList); + + Integer selectLastUseNo(UseList useList); + + List selectUseList(UseList useList); + + Integer selectUseListCnt(UseList useList); + } diff --git a/src/main/java/com/dbnt/faisp/equip/model/UseList.java b/src/main/java/com/dbnt/faisp/equip/model/UseList.java new file mode 100644 index 00000000..29201d6a --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/model/UseList.java @@ -0,0 +1,110 @@ +package com.dbnt.faisp.equip.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 javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(UseList.UseListId.class) +@Table(name = "use_list") +public class UseList extends BaseModel implements Serializable{ + @Id + @Column(name = "mgt_organ") + private String mgtOrgan; + @Id + @Column(name = "use_no") + private String useNo; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Id + @Column(name = "use_type") + private String useType; + @Column(name = "use_dt") + private String useDt; + @Column(name = "detail_type") + private String detailType; + @Column(name = "detail_self") + private String detailSelf; + @Column(name = "people_cnt") + private Integer peopleCnt; + @Column(name = "description") + private String description; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_grd") + private String wrtUserGrd; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @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; + + @Transient + private String year; + @Transient + private String detailTypeName; + + +@Embeddable +@Data +@NoArgsConstructor +@AllArgsConstructor +public static class UseListId implements Serializable { + private String mgtOrgan; + private String useNo; + private Integer versionNo; + private String useType; +} + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/repository/UseListRepository.java b/src/main/java/com/dbnt/faisp/equip/repository/UseListRepository.java new file mode 100644 index 00000000..d9683f6c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/equip/repository/UseListRepository.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.equip.repository; + +import com.dbnt.faisp.equip.model.UseList; + +import org.springframework.data.jpa.repository.JpaRepository; + + + +public interface UseListRepository extends JpaRepository { + + + + +} diff --git a/src/main/java/com/dbnt/faisp/equip/service/EquipService.java b/src/main/java/com/dbnt/faisp/equip/service/EquipService.java index b5883110..aecb2cbf 100644 --- a/src/main/java/com/dbnt/faisp/equip/service/EquipService.java +++ b/src/main/java/com/dbnt/faisp/equip/service/EquipService.java @@ -8,10 +8,12 @@ import com.dbnt.faisp.equip.model.Equip.EquipId; import com.dbnt.faisp.equip.model.EquipFile; import com.dbnt.faisp.equip.model.EquipFile.EquipFileId; import com.dbnt.faisp.equip.model.EquipLog; +import com.dbnt.faisp.equip.model.UseList; import com.dbnt.faisp.equip.repository.CellPhoneRepository; import com.dbnt.faisp.equip.repository.EquipFileRepository; import com.dbnt.faisp.equip.repository.EquipLogRepository; import com.dbnt.faisp.equip.repository.EquipRepository; +import com.dbnt.faisp.equip.repository.UseListRepository; import com.dbnt.faisp.userInfo.model.UserInfo; import com.dbnt.faisp.util.ParamMap; import com.dbnt.faisp.util.Utils; @@ -26,6 +28,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartFile; import java.io.File; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; @@ -39,8 +42,12 @@ public class EquipService { private final EquipFileRepository equipFileRepository; private final EquipLogRepository equipLogRepository; private final CellPhoneRepository cellPhoneRepository; + private final UseListRepository useListRepository; private final EquipMapper equipMapper; + SimpleDateFormat Date = new SimpleDateFormat("yyyy"); + String year = Date.format(new Date()); + @Transactional public void saveEquip(Equip equip, MultipartHttpServletRequest request) { @@ -317,6 +324,33 @@ public class EquipService { public void deleteCellPhone(List cellPhone) { cellPhoneRepository.deleteAll(cellPhone); } + + public List selectOrganList(UseList useList) { + return equipMapper.selectOrganList(useList); + } + + @Transactional + public void saveUse(UseList useList) { + useList.setYear(year); + Integer useNo = equipMapper.selectLastUseNo(useList); + if(useNo == null) { + useList.setUseNo(year+"-001"); + useList.setVersionNo(1); + } else { + useList.setUseNo(year+"-"+String.format("%03d", useNo+1)); + useList.setVersionNo(1); + } + useListRepository.save(useList); + + } + + public List selectUseList(UseList useList) { + return equipMapper.selectUseList(useList); + } + + public Integer selectUseListCnt(UseList useList) { + return equipMapper.selectUseListCnt(useList); + } diff --git a/src/main/resources/mybatisMapper/EquipMapper.xml b/src/main/resources/mybatisMapper/EquipMapper.xml index a150fc0e..ae608c15 100644 --- a/src/main/resources/mybatisMapper/EquipMapper.xml +++ b/src/main/resources/mybatisMapper/EquipMapper.xml @@ -441,7 +441,96 @@ order by cm.wrt_dt desc ) a - + + + + + + + + + diff --git a/src/main/resources/static/js/equip/pvre.js b/src/main/resources/static/js/equip/pvre.js new file mode 100644 index 00000000..fefca62d --- /dev/null +++ b/src/main/resources/static/js/equip/pvre.js @@ -0,0 +1,56 @@ + +$(document).on('click', '#addPvre', function (){ + $.ajax({ + url: '/equip/pvreEditModal', + type: 'GET', + dataType:"html", + success: function(html){ + $("#pvreEditModalContent").empty().append(html); + $("#pvreEditModal").modal('show'); + $("#useDt").datepicker({ + format: "mm-dd", + language: "ko" + }); + $('#detailSelf').hide(); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#saveUse', function (){ + + if(confirm("저장하시겠습니까?")){ + document.getElementById("mgtOrgan").disabled = false; + contentFade("in"); + const formData = new FormData($("#useFm")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/equip/saveUse", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) + +$(document).on('change', '#detailType', function (){ + if($(this).val() == 'USE007'){ + $('#detailSelf').show(); + }else{ + $('#detailSelf').hide(); + $('#detailSelf').val(''); + } + + +}); \ No newline at end of file diff --git a/src/main/resources/templates/equip/pvreEditModal.html b/src/main/resources/templates/equip/pvreEditModal.html new file mode 100644 index 00000000..c591fdbe --- /dev/null +++ b/src/main/resources/templates/equip/pvreEditModal.html @@ -0,0 +1,69 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/equip/pvreUseList.html b/src/main/resources/templates/equip/pvreUseList.html new file mode 100644 index 00000000..c1d6259d --- /dev/null +++ b/src/main/resources/templates/equip/pvreUseList.html @@ -0,0 +1,127 @@ + + + + + +
+
+

휴대용 녹화장비 사용대장

+ + +
+
+
+
+ + +
+
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
연번경찰서사용일시사용사유사용인원비고최종수정일
+
+
+
+ +
+
+
+ + +
+
+
+
+
+
+
+
+
+ + + + +
+ \ No newline at end of file