diff --git a/WebContent/WEB-INF/view/contractMgmt/estimateTemplate2.jsp b/WebContent/WEB-INF/view/contractMgmt/estimateTemplate2.jsp index bd0cb1d..2e12b8f 100644 --- a/WebContent/WEB-INF/view/contractMgmt/estimateTemplate2.jsp +++ b/WebContent/WEB-INF/view/contractMgmt/estimateTemplate2.jsp @@ -243,6 +243,16 @@ textarea { .editable { background-color: transparent; } + + textarea { + border: none !important; + overflow: hidden; + resize: none; + } + + input[type="text"] { + border: none !important; + } } + + +
+ + + + +
+
+
+
+

+ 영업관리_주문서관리 +

+
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + ~ + + + + + ~ + +
+
+ + <%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %> +
+
+ + + \ No newline at end of file diff --git a/WebContent/WEB-INF/view/contractMgmt/orderRegistFormPopup.jsp b/WebContent/WEB-INF/view/contractMgmt/orderRegistFormPopup.jsp new file mode 100644 index 0000000..b60c8a5 --- /dev/null +++ b/WebContent/WEB-INF/view/contractMgmt/orderRegistFormPopup.jsp @@ -0,0 +1,298 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ page import="com.pms.common.utils.*"%> +<%@ page import="java.util.*"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@include file="/init_new.jsp"%> +<% + PersonBean person = (PersonBean) session.getAttribute(Constants.PERSON_BEAN); + String userId = CommonUtils.checkNull(person.getUserId()); +%> + + + + +<%=Constants.SYSTEM_NAME%> + + + + +
+ + + + +
+
+

+ 영업관리_주문서관리_수주등록 (영업번호: ${contractInfo.CONTRACT_NO}) +

+
+ +
+
+ 수주 정보입력 +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+ +
+ +
+
+ + + <%-- 조회 모드: 닫기 버튼만 표시 --%> + + + + + + + + + +
+
+ +
+
+ + + diff --git a/WebContent/WEB-INF/view/main/header.jsp b/WebContent/WEB-INF/view/main/header.jsp index 2e494b6..571b84e 100644 --- a/WebContent/WEB-INF/view/main/header.jsp +++ b/WebContent/WEB-INF/view/main/header.jsp @@ -414,7 +414,12 @@ function fn_setApprovalCnt(){ - Logout + Logout + + <% + if("plm_admin".equals(userId)){%> + Admin + <%}%> <%-- Manual Download @@ -478,17 +483,7 @@ function fn_setApprovalCnt(){ --> - - - <% - if("plm_admin".equals(userId)){%> - - <%}%> - + diff --git a/src/com/pms/salesmgmt/controller/ContractMgmtController.java b/src/com/pms/salesmgmt/controller/ContractMgmtController.java index c7601f7..8729c14 100644 --- a/src/com/pms/salesmgmt/controller/ContractMgmtController.java +++ b/src/com/pms/salesmgmt/controller/ContractMgmtController.java @@ -1965,4 +1965,128 @@ public class ContractMgmtController { return resultMap; } + + /** + * 주문서관리 리스트 + * @param request + * @param paramMap + * @return + */ + @RequestMapping("/contractMgmt/orderMgmtList.do") + public String orderMgmtList(HttpServletRequest request, @RequestParam Map paramMap){ + //List list = contractMgmtService.getcontractList(request,paramMap); + String actionType = CommonUtils.checkNull(paramMap.get("actionType")); + Map code_map = new HashMap(); + String returnUrl ="/contractMgmt/orderMgmtList"; + + try{ + + if("excel".equals(actionType)){ + //returnUrl = "/contractMgmt/contractListExcel"; + } + + //구분 + code_map.put("category_cd" , commonService.bizMakeOptionList("0000167", CommonUtils.nullToEmpty((String)paramMap.get("category_cd")) , "common.getCodeselect")); + + //고객사 + code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")),"common.getsupplyselect")); + + //제품구분 + code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect")); //공장 + + //진행상황 + code_map.put("status_cd" , commonService.bizMakeOptionList("0000932", CommonUtils.nullToEmpty((String)paramMap.get("status_cd")) , "common.getCodeselect")); + + //결과 + code_map.put("result_cd", commonService.bizMakeOptionList("0000963", CommonUtils.nullToEmpty((String)paramMap.get("result_cd")), "common.getCodeselect")); + + //PM + code_map.put("pm_user_id", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("pm_user_id")), "common.getUserselect")); //구매 PM + + request.setAttribute("code_map",code_map); + request.setAttribute("actionType",actionType); + //request.setAttribute("LIST", list); + + }catch(Exception e){ + e.printStackTrace(); + } + return returnUrl; + } + + /** + * 주문서관리 - 주문서관리 목록 페이징 + * @param request + * @param paramMap + * @return + */ + @ResponseBody + @RequestMapping("/contractMgmt/orderMgmtGrodList.do") + public Map getOrderMgmtListPaging(HttpServletRequest request, @RequestParam Map paramMap){ + commonService.selectListPagingNew("contractMgmt.orderMgmtGrodList", request, paramMap); + return paramMap; + } + + /** + * 수주등록 팝업 페이지 + * @param session + * @param request + * @param paramMap + * @return + */ + @RequestMapping("/contractMgmt/orderRegistFormPopup.do") + public String orderRegistFormPopup(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap) { + String objId = CommonUtils.checkNull(paramMap.get("contractObjId")); + //String contractObjId = CommonUtils.checkNull(paramMap.get("contractObjId")); + String actionType = CommonUtils.checkNull(paramMap.get("actionType")); + + Map code_map = new HashMap(); + Map info = new HashMap(); + Map contractInfo = new HashMap(); + + try { + // 영업정보(견적정보) 조회 + if(StringUtils.isNotBlank(objId)) { + paramMap.put("objId", objId); + contractInfo = CommonUtils.keyChangeUpperMap(contractMgmtService.getContractMgmtInfo(paramMap)); + // contractInfo가 곧 수주정보이기도 함 (같은 테이블) + info = contractInfo; + } + + // 수주상태 코드 (CONTRACT_RESULT 코드 사용) + code_map.put("contract_result", commonService.bizMakeOptionList("0000963", CommonUtils.nullToEmpty((String)info.get("CONTRACT_RESULT")), "common.getCodeselect")); + + // 환종 코드 + code_map.put("contract_currency", commonService.bizMakeOptionList("0001533", CommonUtils.nullToEmpty((String)info.get("CONTRACT_CURRENCY")), "common.getCodeselect")); + + request.setAttribute("code_map", code_map); + request.setAttribute("info", info); + request.setAttribute("contractInfo", contractInfo); + request.setAttribute("contractObjId", objId); + request.setAttribute("objId", objId); + request.setAttribute("actionType", actionType); + + } catch(Exception e) { + e.printStackTrace(); + } + + return "/contractMgmt/orderRegistFormPopup"; + } + + /** + * 수주정보 저장 + * @param session + * @param request + * @param paramMap + * @return + */ + @RequestMapping("/contractMgmt/saveOrderInfo.do") + public String saveOrderInfo(HttpServletRequest request, @RequestParam Map paramMap){ + try { + request.setAttribute("RESULT", CommonUtils.getJsonMap(contractMgmtService.saveOrderInfo(request, paramMap)) ); + + } catch (Exception e) { + e.printStackTrace(); + } + return "/ajax/ajaxResult"; + } } diff --git a/src/com/pms/salesmgmt/mapper/contractMgmt.xml b/src/com/pms/salesmgmt/mapper/contractMgmt.xml index a12c431..209f229 100644 --- a/src/com/pms/salesmgmt/mapper/contractMgmt.xml +++ b/src/com/pms/salesmgmt/mapper/contractMgmt.xml @@ -903,6 +903,11 @@ ,QUANTITY ,CUSTOMER_REQUEST ,EXCHANGE_RATE + ,ORDER_DATE + ,ORDER_UNIT_PRICE + ,ORDER_SUPPLY_PRICE + ,ORDER_VAT + ,ORDER_TOTAL_AMOUNT ) VALUES ( @@ -965,6 +970,11 @@ ,#{quantity} ,#{customer_request} ,#{exchange_rate} + ,#{order_date} + ,#{unit_price} + ,#{supply_price} + ,#{vat} + ,#{total_amount} ) ON CONFLICT (OBJID) DO UPDATE @@ -1024,6 +1034,11 @@ ,QUANTITY = #{quantity} ,CUSTOMER_REQUEST = #{customer_request} ,EXCHANGE_RATE = #{exchange_rate} + ,ORDER_DATE = #{order_date} + ,ORDER_UNIT_PRICE = #{unit_price} + ,ORDER_SUPPLY_PRICE = #{supply_price} + ,ORDER_VAT = #{vat} + ,ORDER_TOTAL_AMOUNT = #{total_amount} @@ -1405,6 +1420,11 @@ ,QUANTITY ,CUSTOMER_REQUEST ,EXCHANGE_RATE + ,ORDER_DATE + ,ORDER_UNIT_PRICE + ,ORDER_SUPPLY_PRICE + ,ORDER_VAT + ,ORDER_TOTAL_AMOUNT ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT1 ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT2 ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt03' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT3 @@ -4035,4 +4055,151 @@ ORDER BY ASM.SUPPLY_NAME OBJID::VARCHAR = #{objId} + + + + + + + + + + + + UPDATE CONTRACT_MGMT + SET + CONTRACT_RESULT = #{contract_result}, + PO_NO = #{po_no}, + ORDER_DATE = #{order_date}, + QUANTITY = #{quantity}, + ORDER_UNIT_PRICE = #{unit_price}, + ORDER_SUPPLY_PRICE = #{supply_price}, + ORDER_VAT = #{vat}, + ORDER_TOTAL_AMOUNT = #{total_amount}, + CONTRACT_CURRENCY = #{contract_currency}, + EXCHANGE_RATE = #{exchange_rate} + WHERE OBJID = #{contractObjId} + \ No newline at end of file diff --git a/src/com/pms/salesmgmt/service/ContractMgmtService.java b/src/com/pms/salesmgmt/service/ContractMgmtService.java index bae1f2c..9c7063c 100644 --- a/src/com/pms/salesmgmt/service/ContractMgmtService.java +++ b/src/com/pms/salesmgmt/service/ContractMgmtService.java @@ -1732,4 +1732,160 @@ private String makeEstimateMailContents(Map contractInfo, Map estimateTemplate, return contents.toString(); } + + /** + * 영업정보 조회 (수주등록용) + * @param contractObjId + * @return + */ + public Map getContractInfo(String contractObjId) { + Map resultMap = new HashMap(); + SqlSession sqlSession = null; + + try { + sqlSession = SqlMapConfig.getInstance().getSqlSession(); + + Map paramMap = new HashMap(); + paramMap.put("objId", contractObjId); + + resultMap = (Map) sqlSession.selectOne("contractMgmt.getContractInfo", paramMap); + + } catch(Exception e) { + e.printStackTrace(); + } finally { + if(sqlSession != null) { + sqlSession.close(); + } + } + + return resultMap != null ? resultMap : new HashMap(); + } + + /** + * 수주정보 조회 (영업정보와 동일) + * @param objId + * @return + */ + public Map getOrderInfo(String objId) { + Map resultMap = new HashMap(); + SqlSession sqlSession = null; + + try { + sqlSession = SqlMapConfig.getInstance().getSqlSession(); + + Map paramMap = new HashMap(); + paramMap.put("objId", objId); + + // TB_CONTRACT_MGMT 테이블에서 조회 + resultMap = (Map) sqlSession.selectOne("contractMgmt.getOrderInfo", paramMap); + + } catch(Exception e) { + e.printStackTrace(); + } finally { + if(sqlSession != null) { + sqlSession.close(); + } + } + + return resultMap != null ? resultMap : new HashMap(); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public Map saveOrderInfo(HttpServletRequest request, Map paramMap){ + Map resultMap = new HashMap(); + SqlSession sqlSession = null; + Map resultList = null; + try{ + sqlSession = SqlMapConfig.getInstance().getSqlSession(); + PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN); + paramMap.put("writer", person.getUserId()); + + String contract_objid= CommonUtils.checkNull(paramMap.get("objId")); + paramMap.put("objId", contract_objid); + int cnt = sqlSession.update("contractMgmt.updateOrderInfo", paramMap); + + //영업 수주 완료시 자동 프로젝트 등록 로직 + String result_cd= CommonUtils.checkNull(paramMap.get("contract_result")); + + String category_cd= CommonUtils.checkNull(paramMap.get("category_cd")); + String target_project_no= CommonUtils.checkNull(paramMap.get("target_project_no_direct")); + //int overhaul_order = Integer.parseInt(CommonUtils.checkNull(paramMap.get("overhaul_order"),"1")); + //int project_cnt= Integer.parseInt(CommonUtils.checkNull(paramMap.get("facility_qty"), "1")); + //long contract_price_currency= Long.parseLong(CommonUtils.checkNull(paramMap.get("contract_price_currency"), "0")); + //long contract_price= Long.parseLong(CommonUtils.checkNull(paramMap.get("contract_price"), "0")); + + //수주가와 금액은 대수로 나누어서 등록 + //paramMap.put("contract_price_currency", contract_price_currency/project_cnt + ""); + //paramMap.put("contract_price", contract_price/project_cnt + ""); + + if("0000964".equals(result_cd) || "0000968".equals(result_cd)){ + resultList = sqlSession.selectOne("contractMgmt.getProjectListBycontractObjid", paramMap); + System.out.println("resultList:::"+resultList); + //resultList = sqlSession.selectOne("contractMgmt.getProjectCnt", paramMap); + if(null==resultList){ + +// for (int i=0; i projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", paramMap); + + paramMap.put("contract_objid", paramMap.get("contractObjId")); + paramMap.put("customer_product", paramMap.get("mechanical_type")); + List> taskUnitList = (ArrayList)sqlSession.selectList("project.getWbsTaskListByProject", paramMap); + if(CommonUtils.isNotEmpty(taskUnitList) && !taskUnitList.isEmpty()){ + String projectNo = (String)projectInfo.get("project_no"); + String filepath = Constants.FILE_STORAGE+"\\PART_DATA\\"; + for (Map map : taskUnitList) { + File file = new File(filepath+File.separator+projectNo+File.separator+CommonUtils.checkNull((String)map.get("unit_no"))+"-"+CommonUtils.checkNull((String)map.get("task_name"))); + if(!file.exists()){ + file.mkdirs(); + } + } + } +// } + }else{ + sqlSession.update("project.ModifyProjectByContract", paramMap); + } + } +// if(cnt > 0){ + //계약완료 일시 메일 +// if("0000964".equals(CommonUtils.checkNull(paramMap.get("contract_result")))){ +// commonService.SendMail(paramMap,"CONTRACT_COMP",CommonUtils.checkNull(paramMap.get("pm_user_id"))); + //그냥 등록일때 메일 +// }else{ +// if("regist".equals(CommonUtils.checkNull(paramMap.get("actionType")))){ +// commonService.SendMail(paramMap,"CONTRACT_REG",CommonUtils.checkNull(paramMap.get(""))); +// } +// } +// } + resultMap.put("result", true); + resultMap.put("msg", Message.SAVE_SUCCESS); + sqlSession.commit(); + }catch(Exception e){ + sqlSession.rollback(); + resultMap.put("result", false); + resultMap.put("msg", Message.SAVE_FAILED); + e.printStackTrace(); + }finally{ + sqlSession.close(); + } + + return resultMap; + } }