Quellcode durchsuchen

Merge branch 'databank' of http://wcollector.idatabank.com:5230/dbs289/LifeCenter.git into databank

junekeunsong vor 4 Jahren
Ursprung
Commit
d6b742797d

+ 19 - 3
src/main/java/com/lemon/lifecenter/controller/CenterController.java

@@ -50,11 +50,12 @@ import com.lemon.lifecenter.common.LifeCenterFunction;
 import com.lemon.lifecenter.common.LifeCenterPaging;
 import com.lemon.lifecenter.common.LifeCenterSessionController;
 import com.lemon.lifecenter.dto.CenterInfoDTO;
+import com.lemon.lifecenter.dto.FileDownloadDTO;
 import com.lemon.lifecenter.dto.LocationDTO;
 import com.lemon.lifecenter.dto.LoginDTO;
-import com.lemon.lifecenter.dto.PatientDTO;
 import com.lemon.lifecenter.dto.StaffDTO;
 import com.lemon.lifecenter.service.CenterService;
+import com.lemon.lifecenter.service.FileDownloadService;
 import com.lemon.lifecenter.service.LoginService;
 import com.lemon.lifecenter.service.StaffService;
 
@@ -71,6 +72,8 @@ public class CenterController extends LifeCenterController {
     @Autowired
     private LoginService loginService;
     @Autowired
+    private FileDownloadService fileDownloadService;
+    @Autowired
     private LifeCenterConfigVO config;
     private LifeCenterPaging paging;
     
@@ -292,7 +295,20 @@ public class CenterController extends LifeCenterController {
     }
     
     @RequestMapping( value="/excel", method=RequestMethod.POST )
-    public void getCenterList(HttpServletRequest request,HttpServletResponse response) {
+    public void getCenterList(
+            @RequestParam(value="downMemo", required=false, defaultValue="") String downMemo,
+            HttpServletRequest request,HttpServletResponse response ) {
+        String userId = LifeCenterSessionController.getSession(request, "sesId");
+
+        //excel 다운로드 로그 남기기
+        FileDownloadDTO fileDTO = new FileDownloadDTO();
+        fileDTO.setId( userId );
+        fileDTO.setIp( LifeCenterFunction.getRemoteAddr( request ) );
+        fileDTO.setUrl( request.getRequestURI().toString() );
+        fileDTO.setMemo( downMemo );
+        fileDTO.setEtc( "" );
+        fileDownloadService.insertExcelDownloadLog( fileDTO );
+        
         CenterInfoDTO dto = new CenterInfoDTO();
         int total = centerService.selectCenterCount(dto);
         List<CenterInfoDTO> result = new ArrayList<CenterInfoDTO>();
@@ -312,7 +328,7 @@ public class CenterController extends LifeCenterController {
     private void getCenterListExcel(HttpServletRequest request, HttpServletResponse response, List<CenterInfoDTO> data ) {
         String password = LifeCenterSessionController.getSession(request, "sesPhoneNumber");
         password = password.toLowerCase();
-        if (!password.equals("null")) {
+        if (!password.equals("null") && !password.equals( "" )) {
             password = password.replace("-", "");
             password = password.substring(3).trim();
         } else {

+ 20 - 4
src/main/java/com/lemon/lifecenter/controller/PatientController.java

@@ -7,7 +7,6 @@ import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.security.GeneralSecurityException;
@@ -22,7 +21,6 @@ import javax.servlet.http.HttpServletResponse;
 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.openxml4j.opc.PackageAccess;
 import org.apache.poi.poifs.crypt.EncryptionInfo;
 import org.apache.poi.poifs.crypt.EncryptionMode;
 import org.apache.poi.poifs.crypt.Encryptor;
@@ -56,9 +54,11 @@ import com.lemon.lifecenter.common.LifeCenterFunction;
 import com.lemon.lifecenter.common.LifeCenterPaging;
 import com.lemon.lifecenter.common.LifeCenterSessionController;
 import com.lemon.lifecenter.dto.CenterInfoDTO;
+import com.lemon.lifecenter.dto.FileDownloadDTO;
 import com.lemon.lifecenter.dto.PatientDTO;
 import com.lemon.lifecenter.dto.StaffDTO;
 import com.lemon.lifecenter.service.CenterService;
+import com.lemon.lifecenter.service.FileDownloadService;
 import com.lemon.lifecenter.service.PatientService;
 import com.lemon.lifecenter.service.StaffService;
 
@@ -76,6 +76,9 @@ public class PatientController extends LifeCenterController {
     @Autowired
     private StaffService staffService;
     
+    @Autowired
+    private FileDownloadService fileDownloadService;
+    
     @Autowired
     private LifeCenterConfigVO config;
     
@@ -528,18 +531,31 @@ public class PatientController extends LifeCenterController {
     
     @RequestMapping( value="/excel", method=RequestMethod.POST )
     public void getPatientList(
+          @RequestParam(value="downMemo", required=false, defaultValue="") String downMemo,
           @RequestParam(value="inputState", required=false, defaultValue="ALL") String inputState,
           @RequestParam(value="patientName", required=false, defaultValue="") String patientName,
           @RequestParam(value="startDate", required=false, defaultValue="") String startDate,
           @RequestParam(value="endDate", required=false, defaultValue="") String endDate,
           @RequestParam(value="page", required=false, defaultValue="1") int page,
           HttpServletRequest request,HttpServletResponse response ) {
-      
+        
+        String userId = LifeCenterSessionController.getSession(request, "sesId");
         String sesCenterCode = LifeCenterSessionController.getSession(request, "sesCenterCode");
         String sesGroupIdx = LifeCenterSessionController.getSession(request, "sesGroupIdx");
 
+        //excel 다운로드 로그 남기기
+        FileDownloadDTO fileDTO = new FileDownloadDTO();
+        fileDTO.setId( userId );
+        fileDTO.setIp( LifeCenterFunction.getRemoteAddr( request ) );
+        fileDTO.setUrl( request.getRequestURI().toString() );
+        fileDTO.setMemo( downMemo );
+        fileDTO.setEtc( "" );
+        fileDownloadService.insertExcelDownloadLog( fileDTO );
+        
+        
+        
+        
         // 권한이 SYSTEM일경우
-
         PatientDTO dto = new PatientDTO();
 
         dto.setCenterCode(Integer.parseInt(sesCenterCode));

+ 52 - 0
src/main/java/com/lemon/lifecenter/dto/FileDownloadDTO.java

@@ -0,0 +1,52 @@
+package com.lemon.lifecenter.dto;
+
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class FileDownloadDTO {
+    private String id;
+    private String downloadDate;
+    private String ip;
+    private String url;
+    private String memo;
+    private String etc;
+    
+    public String getId() {
+        return id;
+    }
+    public void setId(String id) {
+        this.id = id;
+    }
+    public String getDownloadDate() {
+        return downloadDate;
+    }
+    public void setDownloadDate(String downloadDate) {
+        this.downloadDate = downloadDate;
+    }
+    public String getIp() {
+        return ip;
+    }
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+    public String getUrl() {
+        return url;
+    }
+    public void setUrl(String url) {
+        this.url = url;
+    }
+    public String getMemo() {
+        return memo;
+    }
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+    public String getEtc() {
+        return etc;
+    }
+    public void setEtc(String etc) {
+        this.etc = etc;
+    }
+    
+    
+}

+ 12 - 0
src/main/java/com/lemon/lifecenter/mapper/FileDownloadMapper.java

@@ -0,0 +1,12 @@
+package com.lemon.lifecenter.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import com.lemon.lifecenter.dto.FileDownloadDTO;
+
+@Repository
+@Mapper
+public interface FileDownloadMapper {
+    public void insertExcelDownloadLog( FileDownloadDTO dto );
+}

+ 17 - 0
src/main/java/com/lemon/lifecenter/service/FileDownloadService.java

@@ -0,0 +1,17 @@
+package com.lemon.lifecenter.service;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.lemon.lifecenter.dto.FileDownloadDTO;
+import com.lemon.lifecenter.mapper.FileDownloadMapper;
+
+@Service
+public class FileDownloadService {
+    @Autowired
+    private FileDownloadMapper mapper;
+    
+    public void insertExcelDownloadLog( FileDownloadDTO dto ) {
+        mapper.insertExcelDownloadLog(dto);
+    }
+}

+ 13 - 0
src/main/resources/mybatis/mapper/file/file.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.lemon.lifecenter.mapper.FileDownloadMapper">
+    <insert id="insertExcelDownloadLog" parameterType="FileDownloadDTO">
+        <![CDATA[
+            INSERT 
+              INTO excel_download_log 
+                   ( id,    download_date,  ip,    url,    memo,    etc    )
+            VALUES ( #{id}, NOW(),          #{ip}, #{url}, #{memo}, #{etc} );
+        ]]>
+    </insert>
+</mapper>

+ 41 - 1
src/main/webapp/WEB-INF/jsp/center/list.jsp

@@ -33,6 +33,11 @@ var endDate   = "<c:out value='${endDate}'/>";
     });
 
 function getExcel(){
+	if( $.trim( $( "#downMemo" ).val() ) == "" ){
+        alertBox({ txt : "사유를 입력해주세요" });
+        $( ".modal-header>.modal-title h3" ).remove();
+        return false;
+    }
     var newForm = $( "#searchForm" ).clone();
     
     newForm.attr( "id", "excelForm" );
@@ -43,11 +48,46 @@ function getExcel(){
     
     $( document.body ).append( newForm );
     newForm.submit();
+    $( "button.close" ).click();
+    $( "#downMemo" ).val( "" );
     $( "#excelForm" ).remove();
+    
 }
 </script>
 </head>
 <body>
+    <div class="modal fade" id="excelDownMemo" tabindex="-1" role="dialog" aria-hidden="true" data-memoid="">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">생활치료센터 리스트 Excel 다운로드</h5>
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
+                            aria-hidden="true">&times;</span> </button>
+                </div>
+                <div class="modal-body m-3">
+                    <table class="table mobile-table">
+                        <colgroup>
+                            <col style="width: 20%">
+                            <col style="width: 80%">
+                        </colgroup>
+                        <tr>
+                            <th><span class="fix">*</span>다운로드 사유</th>
+                            <td>
+                                <div class="form-row">
+                                    <textarea id="downMemo" name="downMemo" class="form-control" cols="" rows="6" placeholder="" maxlength="200"></textarea>
+                                </div>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+                <div class="addMemoTools modal-footer">
+                    <button type="button" class="btn btn-outline-primary" data-dismiss="modal">취소</button>
+                    <button type="button" class="btn btn-primary" onclick="getExcel();">제출 후 다운로드</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    
     <div class="wrapper">
         <jsp:include page="${data._INCLUDE}/sidebar.jsp"></jsp:include>
         
@@ -140,7 +180,7 @@ function getExcel(){
                                             <fmt:formatNumber value="${total}" pattern="#,###" />
                                         </div>
                                         <div class="col-6 text-right">
-                                            <button class="btn btn-success" onclick="getExcel();">Excel 다운로드</button>
+                                            <button class="btn btn-success" data-toggle="modal" data-target="#excelDownMemo">Excel 다운로드</button>
                                             <button class="btn btn-primary" onclick="location.href='./new';">생활치료센터 신규 등록</button>
                                         </div>
                                     </div>

+ 43 - 1
src/main/webapp/WEB-INF/jsp/patient/list.jsp

@@ -103,6 +103,11 @@ $(function() {
 });
 
 function getExcel(){
+	if( $.trim( $( "#downMemo" ).val() ) == "" ){
+		alertBox({ txt : "사유를 입력해주세요" });
+		$( ".modal-header>.modal-title h3" ).remove();
+		return false;
+	}
     var newForm = $( "#searchForm" ).clone();
     
     newForm.attr( "id", "excelForm" );
@@ -112,7 +117,10 @@ function getExcel(){
     newForm.hide();
     
     $( document.body ).append( newForm );
+    newForm.append( $("#downMemo").clone() );
     newForm.submit();
+    $( "button.close" ).click();
+    $( "#downMemo" ).val( "" );
     $( "#excelForm" ).remove();
 }
 </script>
@@ -125,6 +133,38 @@ tr.phr-info td span.no-data{color:#999999;}
 </style>
 </head>
 <body>
+    <div class="modal fade" id="excelDownMemo" tabindex="-1" role="dialog" aria-hidden="true" data-memoid="">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">환자 리스트 Excel 다운로드</h5>
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
+                            aria-hidden="true">&times;</span> </button>
+                </div>
+                <div class="modal-body m-3">
+                    <table class="table mobile-table">
+                        <colgroup>
+                            <col style="width: 20%">
+                            <col style="width: 80%">
+                        </colgroup>
+                        <tr>
+                            <th><span class="fix">*</span>다운로드 사유</th>
+                            <td>
+                                <div class="form-row">
+                                    <textarea id="downMemo" name="downMemo" class="form-control" cols="" rows="6" placeholder="" maxlength="200"></textarea>
+                                </div>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+                <div class="addMemoTools modal-footer">
+                    <button type="button" class="btn btn-outline-primary" data-dismiss="modal">취소</button>
+                    <button type="button" class="btn btn-primary" onclick="getExcel();">제출 후 다운로드</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    
     <div class="wrapper">
         <jsp:include page="${data._INCLUDE}/sidebar.jsp"></jsp:include>
 
@@ -244,7 +284,9 @@ tr.phr-info td span.no-data{color:#999999;}
                                             <fmt:formatNumber value="${total}" pattern="#,###" />
                                         </div>
                                         <div class="col-6 text-right">
-                                            <button class="btn btn-success" onclick="getExcel();">Excel 다운로드</button>
+                                            <c:if test="${data._SES_GROUP_IDX eq 1 or data._SES_GROUP_IDX eq 2}">
+                                                <button class="btn btn-success" data-toggle="modal" data-target="#excelDownMemo">Excel 다운로드</button>
+                                            </c:if>
                                             <a class="btn btn-primary" target="_blank" href="/store/manual/survey">입소자 문진표 서식 다운로드</a>
                                             <c:if test="${sesGroupIdx ne '1'}">
                                                 <button class="btn btn-primary" onclick="location.href='./new';">신규환자등록</button>