diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/admin.xml b/WebContent/WEB-INF/classes/com/pms/mapper/admin.xml index 173d937..3472ca9 100644 --- a/WebContent/WEB-INF/classes/com/pms/mapper/admin.xml +++ b/WebContent/WEB-INF/classes/com/pms/mapper/admin.xml @@ -8525,4 +8525,252 @@ FROM ( ORDER BY V.PATH + + + + + + + + + + + + + + + + + + + + INSERT INTO WAREHOUSE_LOCATION + ( + OBJID, + LOCATION_CODE, + LOCATION_NAME, + LOCATION_DESCRIPTION, + OUT_CODE, + OUT_CO_NAME, + FIT_STATUS, + AVAILABLE_STATUS, + USE_STATUS, + BASE_LOC_CD, + CO_CD, + LOC_NMK, + INSERT_ID, + INSERT_IP, + INSERT_DT, + MODIFY_ID, + MODIFY_IP, + MODIFY_DT, + ATTR_NMK, + WRITER, + REGDATE, + STATUS + ) + VALUES + ( + #{objid}::numeric, + #{location_code}, + #{location_name}, + #{location_description}, + #{out_code}, + #{out_co_name}, + #{fit_status}, + #{available_status}, + COALESCE(#{use_status}, 'Y'), + #{base_loc_cd}, + #{co_cd}, + #{loc_nmk}, + #{insert_id}, + #{insert_ip}, + CASE WHEN #{insert_dt} = '' THEN NOW() ELSE COALESCE(#{insert_dt}::timestamp, NOW()) END, + #{modify_id}, + #{modify_ip}, + CASE WHEN #{modify_dt} = '' THEN NULL ELSE #{modify_dt}::timestamp END, + #{attr_nmk}, + #{writer}, + NOW(), + COALESCE(#{status}, 'ACTIVE') + ) + ON CONFLICT (OBJID) DO UPDATE + SET + LOCATION_NAME = #{location_name}, + LOCATION_DESCRIPTION = #{location_description}, + OUT_CODE = #{out_code}, + OUT_CO_NAME = #{out_co_name}, + FIT_STATUS = #{fit_status}, + AVAILABLE_STATUS = #{available_status}, + USE_STATUS = #{use_status}, + BASE_LOC_CD = #{base_loc_cd}, + CO_CD = #{co_cd}, + LOC_NMK = #{loc_nmk}, + MODIFY_ID = #{modify_id}, + MODIFY_IP = #{modify_ip}, + MODIFY_DT = CASE WHEN #{modify_dt} = '' THEN NOW() ELSE COALESCE(#{modify_dt}::timestamp, NOW()) END, + ATTR_NMK = #{attr_nmk}, + STATUS = #{status} + + + + + INSERT INTO WAREHOUSE_LOCATION_HISTORY + SELECT + #{objid}::numeric, + #{targetObjid}::numeric, + LOCATION_CODE, + LOCATION_NAME, + LOCATION_DESCRIPTION, + OUT_CODE, + OUT_CO_NAME, + FIT_STATUS, + AVAILABLE_STATUS, + USE_STATUS, + BASE_LOC_CD, + CO_CD, + LOC_NMK, + INSERT_ID, + INSERT_IP, + INSERT_DT, + MODIFY_ID, + MODIFY_IP, + MODIFY_DT, + ATTR_NMK, + #{writer}, + NOW(), + STATUS + FROM + WAREHOUSE_LOCATION + WHERE + OBJID = #{targetObjid}::numeric + + + + + + + + UPDATE + WAREHOUSE_LOCATION + SET + USE_STATUS = 'N', + MODIFY_DT = NOW() + WHERE + OBJID = #{OBJID}::numeric + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WebContent/WEB-INF/view/admin/warehouseList/warehouseHistoryList.jsp b/WebContent/WEB-INF/view/admin/warehouseList/warehouseHistoryList.jsp new file mode 100644 index 0000000..a562c2c --- /dev/null +++ b/WebContent/WEB-INF/view/admin/warehouseList/warehouseHistoryList.jsp @@ -0,0 +1,180 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.pms.common.utils.*"%> +<%@ page import="java.util.*" %> +<%@include file= "/init.jsp" %> + + + + +<%=Constants.SYSTEM_NAME%> + + + + + + + + + + + + +
+ +
+
+

창고관리 이력

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
위치코드위치명위치설명가출고코드가출고거래처명적합여부가용재고여부사용여부BASELOC_CDCO_CDLOC_NMKINSERT_IDINSERT_IPINSERT_DTMODIFY_IDMODIFY_IPMODIFY_DTATTR_NMK
${info.LOCATION_CODE}${info.LOCATION_NAME}${info.LOCATION_DESCRIPTION}${info.OUT_CODE}${info.OUT_CO_NAME}${info.FIT_STATUS}${info.AVAILABLE_STATUS}${info.USE_STATUS}${info.BASE_LOC_CD}${info.CO_CD}${info.LOC_NMK}${info.INSERT_ID}${info.INSERT_IP}${info.INSERT_DT}${info.MODIFY_ID}${info.MODIFY_IP}${info.MODIFY_DT}${info.ATTR_NMK}
조회된 정보가 없습니다.
+
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
prev   prev   ${nPage}   ${status.index}   nextnext
+

총 ${totalCount}건

+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/WebContent/WEB-INF/view/admin/warehouseList/warehouseListFormPopUp.jsp b/WebContent/WEB-INF/view/admin/warehouseList/warehouseListFormPopUp.jsp new file mode 100644 index 0000000..37f7b9c --- /dev/null +++ b/WebContent/WEB-INF/view/admin/warehouseList/warehouseListFormPopUp.jsp @@ -0,0 +1,174 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.pms.common.utils.*"%> +<%@include file="/init.jsp"%> + + + +<%=Constants.SYSTEM_NAME%> + + + +
+ + "> + +

창고 등록/수정

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
위치코드
위치명
위치설명
가출고코드
가출고거래처명
적합여부 + +
가용재고여부 + +
사용여부 + +
BASELOC_CD
CO_CD
LOC_NMK
INSERT_ID
INSERT_IP
INSERT_DT
MODIFY_ID
MODIFY_IP
MODIFY_DT
ATTR_NMK
+ + +
+ + \ No newline at end of file diff --git a/WebContent/WEB-INF/view/admin/warehouseList/warehouseMngList.jsp b/WebContent/WEB-INF/view/admin/warehouseList/warehouseMngList.jsp new file mode 100644 index 0000000..cb7adfb --- /dev/null +++ b/WebContent/WEB-INF/view/admin/warehouseList/warehouseMngList.jsp @@ -0,0 +1,389 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.pms.common.utils.*"%> +<%@ page import="java.util.*" %> +<%@include file= "/init.jsp" %> +<% + ArrayList warehouseList = new ArrayList(); + warehouseList = (ArrayList)request.getAttribute("warehouseList"); + if(null == warehouseList){ + warehouseList = new ArrayList(); + } + + // 검색 조건 + String searchCode = CommonUtils.checkNull(request.getParameter("searchCode")); + String searchLocationCode = CommonUtils.checkNull(request.getParameter("searchLocationCode")); + String searchLocationName = CommonUtils.checkNull(request.getParameter("searchLocationName")); + String searchLocationDescription = CommonUtils.checkNull(request.getParameter("searchLocationDescription")); + String searchOutCode = CommonUtils.checkNull(request.getParameter("searchOutCode")); + String searchOutCoName = CommonUtils.checkNull(request.getParameter("searchOutCoName")); + String searchFitStatus = CommonUtils.checkNull(request.getParameter("searchFitStatus")); + String searchAvailableStatus = CommonUtils.checkNull(request.getParameter("searchAvailableStatus")); + String searchUseStatus = CommonUtils.checkNull(request.getParameter("searchUseStatus")); + String searchBaseLocCd = CommonUtils.checkNull(request.getParameter("searchBaseLocCd")); + String searchCoCd = CommonUtils.checkNull(request.getParameter("searchCoCd")); + String searchLocNmk = CommonUtils.checkNull(request.getParameter("searchLocNmk")); + String searchInsertId = CommonUtils.checkNull(request.getParameter("searchInsertId")); + String searchInsertIp = CommonUtils.checkNull(request.getParameter("searchInsertIp")); + String searchInsertDt = CommonUtils.checkNull(request.getParameter("searchInsertDt")); + String searchModifyId = CommonUtils.checkNull(request.getParameter("searchModifyId")); + String searchModifyIp = CommonUtils.checkNull(request.getParameter("searchModifyIp")); + String searchModifyDt = CommonUtils.checkNull(request.getParameter("searchModifyDt")); + String searchAttrNmk = CommonUtils.checkNull(request.getParameter("searchAttrNmk")); +%> + + + + +<%=Constants.SYSTEM_NAME%> + + + + +
+ + + +
+
+ +
+
+

창고 관리

+
+ +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
위치코드위치명위치설명가출고코드가출고거래처명적합여부가용재고여부사용여부BASELOC_CDCO_CDLOC_NMKINSERT_IDINSERT_IPINSERT_DTMODIFY_IDMODIFY_IPMODIFY_DTATTR_NMK
+
+ + + + + + + + + + + + + + + + + + + + + + <% + if(0 < warehouseList.size()){ + for(int i=0;i + + + + + + + + + + + + + + + + + + + + + <% + } + }else{ + %> + + + + <% + } + %> +
+ <%=LOCATION_CODE%> + + + <%=LOCATION_NAME%><%=LOCATION_DESCRIPTION %><%=OUT_CODE %><%=OUT_CO_NAME %><%=FIT_STATUS %><%=AVAILABLE_STATUS %><%=USE_STATUS %><%=BASE_LOC_CD %><%=CO_CD %><%=LOC_NMK %><%=INSERT_ID %><%=INSERT_IP %><%=INSERT_DT %><%=MODIFY_ID %><%=MODIFY_IP %><%=MODIFY_DT %><%=ATTR_NMK %>
해당하는 데이터가 없습니다.
+
+
+
+
+
+ + \ No newline at end of file diff --git a/src/com/pms/controller/AdminController.java b/src/com/pms/controller/AdminController.java index 22b1e92..da517c2 100644 --- a/src/com/pms/controller/AdminController.java +++ b/src/com/pms/controller/AdminController.java @@ -562,6 +562,7 @@ public class AdminController extends BaseService { return "/ajax/ajaxResult"; } + /** * 고객사 목록을 가져온다. * @param request @@ -1044,6 +1045,14 @@ public class AdminController extends BaseService { } + + + + + + + + @SuppressWarnings("unchecked") @ResponseBody @@ -1350,6 +1359,143 @@ public class AdminController extends BaseService { return "/ajax/ajaxResult"; } + + + + + + /** + * 창고 관리 조회 11월 18일 이희진 + * + * @param request + * @param paramMap + * @return + */ + @RequestMapping("/admin/warehouseList.do") + public String getwarehouseList(HttpServletRequest request, @RequestParam Map paramMap){ + ArrayList warehouseList = new ArrayList(); + try{ + warehouseList = (ArrayList)adminService.getWarehouseList(request, paramMap); + }catch(Exception e){ + e.printStackTrace(); + } + request.setAttribute("warehouseList",warehouseList); + return "/admin/warehouseList/warehouseMngList"; + + } + + /** + * 창고관리 저장 시 중복 여부를 확인한다. 11월 18일 이희진 + * @param request + * @param paramMap + * @return + */ + @RequestMapping("/admin/checkDuplicateWarehouseList.do") + public String checkDuplicateWarehouseList(HttpServletRequest request, @RequestParam Map paramMap){ + ArrayList> existList = new ArrayList(); + try{ + existList = adminService.getDuplicateWarehouseListInfo(request, paramMap); + }catch(Exception e){ + e.printStackTrace(); + } + request.setAttribute("RESULT", CommonUtils.getJsonArray(CommonUtils.toUpperCaseMapKey(existList))); + + return "/ajax/ajaxResult"; + } + + +/** + * 창고 관리 등록 팝업 11월 19일 이희진 + * + * @param request + * @param paramMap + * @return + */ + @RequestMapping("/admin/warehouseListFormPopUp.do") + public String warehouseListFormPopUp(HttpServletRequest request, @RequestParam Map paramMap){ + HashMap info = new HashMap(); + try{ + if(!"".equals(CommonUtils.checkNull(request.getParameter("objid")))){ + info = (HashMap)adminService.getWarehouseListInfo(request, paramMap); + info = CommonUtils.toUpperCaseMapKey(info); + } + }catch(Exception e){ + e.printStackTrace(); + } + request.setAttribute("info", info); + request.setAttribute("OBJID", CommonUtils.checkNull(request.getParameter("objid"))); + return "/admin/warehouseList/warehouseListFormPopUp"; + } + + + /** + * 창고 관리 변경이력 11월 18일 이희진 + * @param request + * @param paramMap + * @return + */ + @RequestMapping("/admin/warehouseHistoryList.do") + public String warehouseHistoryList(HttpServletRequest request, @RequestParam Map paramMap){ + List> list = new ArrayList(); + try{ + list = adminService.warehouseHistoryList(request, paramMap); + }catch(Exception e){ + e.printStackTrace(); + } + request.setAttribute("LIST", CommonUtils.toUpperCaseMapKey(list)); + return "/admin/warehouseList/warehouseHistoryList"; + } + + /** + * 창고 관리 데이터를 저장한다. 11월 19일 이희진 + * + * @param request + * @param paramMap + * @return + */ + @RequestMapping("/admin/saveWarehouseListInfo.do") + public String saveWarehouseListInfo(HttpServletRequest request, @RequestParam Map paramMap){ + HashMap resultMap = new HashMap(); + try{ + + ArrayList existList = adminService.getDuplicateWarehouseListInfo(request, paramMap); + if(null != existList && 0 < existList.size()){ + resultMap = CommonUtils.setReqAttrResultMsg(request, "중복된 창고명이 존재 합니다.", "false", null,null); + }else{ + adminService.saveWarehouseListInfo(request, paramMap); + resultMap = CommonUtils.setReqAttrResultMsg(request, "저장하였습니다.", "true", null,null); + } + }catch(Exception e){ + e.printStackTrace(); + resultMap = CommonUtils.setReqAttrResultMsg(request, "오류가 발생하였습니다.", "false", e,null); + } + request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); + + return "/ajax/ajaxResult"; + } + +/** + * 창고 관리 삭제 11월 19일 이희진 + * @param request + * @param paramMap + * @return + */ +@RequestMapping("/admin/deleteWarehouse.do") +public String deleteWarehouse(HttpServletRequest request, @RequestParam Map paramMap){ + HashMap resultMap = new HashMap(); + try{ + adminService.deleteWarehouse(request, paramMap); + resultMap.put("result", true); + resultMap.put("msg", "삭제되었습니다."); + }catch(Exception e){ + e.printStackTrace(); + resultMap.put("result", false); + resultMap.put("msg", "삭제 중 오류가 발생했습니다."); + } + request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); + return "/ajax/ajaxResult"; +} + /** * 카테고리의 목록을 가져온다. * @return diff --git a/src/com/pms/mapper/admin.xml b/src/com/pms/mapper/admin.xml index 173d937..3472ca9 100644 --- a/src/com/pms/mapper/admin.xml +++ b/src/com/pms/mapper/admin.xml @@ -8525,4 +8525,252 @@ FROM ( ORDER BY V.PATH + + + + + + + + + + + + + + + + + + + + INSERT INTO WAREHOUSE_LOCATION + ( + OBJID, + LOCATION_CODE, + LOCATION_NAME, + LOCATION_DESCRIPTION, + OUT_CODE, + OUT_CO_NAME, + FIT_STATUS, + AVAILABLE_STATUS, + USE_STATUS, + BASE_LOC_CD, + CO_CD, + LOC_NMK, + INSERT_ID, + INSERT_IP, + INSERT_DT, + MODIFY_ID, + MODIFY_IP, + MODIFY_DT, + ATTR_NMK, + WRITER, + REGDATE, + STATUS + ) + VALUES + ( + #{objid}::numeric, + #{location_code}, + #{location_name}, + #{location_description}, + #{out_code}, + #{out_co_name}, + #{fit_status}, + #{available_status}, + COALESCE(#{use_status}, 'Y'), + #{base_loc_cd}, + #{co_cd}, + #{loc_nmk}, + #{insert_id}, + #{insert_ip}, + CASE WHEN #{insert_dt} = '' THEN NOW() ELSE COALESCE(#{insert_dt}::timestamp, NOW()) END, + #{modify_id}, + #{modify_ip}, + CASE WHEN #{modify_dt} = '' THEN NULL ELSE #{modify_dt}::timestamp END, + #{attr_nmk}, + #{writer}, + NOW(), + COALESCE(#{status}, 'ACTIVE') + ) + ON CONFLICT (OBJID) DO UPDATE + SET + LOCATION_NAME = #{location_name}, + LOCATION_DESCRIPTION = #{location_description}, + OUT_CODE = #{out_code}, + OUT_CO_NAME = #{out_co_name}, + FIT_STATUS = #{fit_status}, + AVAILABLE_STATUS = #{available_status}, + USE_STATUS = #{use_status}, + BASE_LOC_CD = #{base_loc_cd}, + CO_CD = #{co_cd}, + LOC_NMK = #{loc_nmk}, + MODIFY_ID = #{modify_id}, + MODIFY_IP = #{modify_ip}, + MODIFY_DT = CASE WHEN #{modify_dt} = '' THEN NOW() ELSE COALESCE(#{modify_dt}::timestamp, NOW()) END, + ATTR_NMK = #{attr_nmk}, + STATUS = #{status} + + + + + INSERT INTO WAREHOUSE_LOCATION_HISTORY + SELECT + #{objid}::numeric, + #{targetObjid}::numeric, + LOCATION_CODE, + LOCATION_NAME, + LOCATION_DESCRIPTION, + OUT_CODE, + OUT_CO_NAME, + FIT_STATUS, + AVAILABLE_STATUS, + USE_STATUS, + BASE_LOC_CD, + CO_CD, + LOC_NMK, + INSERT_ID, + INSERT_IP, + INSERT_DT, + MODIFY_ID, + MODIFY_IP, + MODIFY_DT, + ATTR_NMK, + #{writer}, + NOW(), + STATUS + FROM + WAREHOUSE_LOCATION + WHERE + OBJID = #{targetObjid}::numeric + + + + + + + + UPDATE + WAREHOUSE_LOCATION + SET + USE_STATUS = 'N', + MODIFY_DT = NOW() + WHERE + OBJID = #{OBJID}::numeric + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/pms/service/AdminService.java b/src/com/pms/service/AdminService.java index 6d48056..5f659d0 100644 --- a/src/com/pms/service/AdminService.java +++ b/src/com/pms/service/AdminService.java @@ -2354,6 +2354,163 @@ public class AdminService extends BaseService { return CommonUtils.toUpperCaseMapKey(resultList); } + + + +//-------------11월 19일 이희진------------- + + /** + * 창고관리 데이터를 저장한다. + * @param request + * @param paramMap + * @return + */ + public String saveWarehouseListInfo(HttpServletRequest request,Map paramMap){ + SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); + String objid = ""; + try{ + HttpSession session = request.getSession(); + PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); + String writer = CommonUtils.checkNull(person.getUserId()); + paramMap.put("writer", writer); + + objid = CommonUtils.checkNull(request.getParameter("objid")); + if("".equals(objid)){ + objid = CommonUtils.createObjId(); + paramMap.put("objid", objid); + } + + if(!"".equals(objid)){ + sqlSession.update("admin.mergewarehouseListInfo",paramMap); + + //이력 + paramMap.put("objid", CommonUtils.createObjId()); + paramMap.put("targetObjid", objid); + + sqlSession.insert("admin.insertwarehouseListHistory",paramMap); + } + }catch(Exception e){ + throw e; + }finally{ + sqlSession.close(); + } + return objid; + } + + /** + * 창고관리 중복확인 시 사용 + * @param request + * @param paramMap + * @return + */ + public ArrayList> getDuplicateWarehouseListInfo(HttpServletRequest request,Map paramMap){ + ArrayList> resultList = new ArrayList(); + SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); + try{ + resultList = (ArrayList)sqlSession.selectList("admin.getDuplicateWarehouseListInfo",paramMap); + }catch(Exception e){ + throw e; + }finally{ + sqlSession.close(); + } + return CommonUtils.toUpperCaseMapKey(resultList); + } + + /** + * 창고데이터를 가져온다 (단건) + * @param request + * @param paramMap + * @return + */ + public HashMap getWarehouseListInfo(HttpServletRequest request,Map paramMap){ + HashMap warehouseMap = new HashMap(); + SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); + try{ + String objid = CommonUtils.checkNull(request.getParameter("objid")); + + if("".equals(objid)){ + objid = CommonUtils.checkNull(request.getAttribute("objid")); + } + paramMap.put("OBJID", objid); + warehouseMap = sqlSession.selectOne("admin.getWarehouseListInfo",paramMap); + + }catch(Exception e){ + throw e; + }finally{ + sqlSession.close(); + } + return warehouseMap; + } + + /** + * 창고관리 이력 목록을 가져온다. + * @param request + * @param paramMap + * @return + */ + public List> warehouseHistoryList(HttpServletRequest request, Map paramMap){ + List> resultList = new ArrayList(); + SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); + try{ + resultList = sqlSession.selectList("admin.warehouseHistoryList", paramMap); + }catch(Exception e){ + throw e; + }finally{ + sqlSession.close(); + } + return resultList; + } + + + /** + * 창고관리 목록을 조회한다 + * @param request + * @param paramMap + * @return + */ + public ArrayList> getWarehouseList(HttpServletRequest request, Map paramMap){ + ArrayList> resultList = new ArrayList(); + SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); + try{ + resultList = (ArrayList)sqlSession.selectList("admin.getWarehouseList", paramMap); + }catch(Exception e){ + throw e; + }finally{ + sqlSession.close(); + } + return CommonUtils.toUpperCaseMapKey(resultList); +} + + /** + * 창고관리 데이터를 삭제한다. + * @param request + * @param paramMap + */ + public void deleteWarehouse(HttpServletRequest request,Map paramMap){ + SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); + try{ + String objid = CommonUtils.checkNull(request.getParameter("objid")); + paramMap.put("OBJID", objid); + sqlSession.update("admin.deleteWarehouse",paramMap); + }catch(Exception e){ + throw e; + }finally{ + sqlSession.close(); + } + } + + + //-------------11월 19일 이희진------------- + + + + + + + + + + /** * 기술자료 카레고리 데이터를 삭제한다. * @param request