/* * SalesMgmtController * * 1.0 * * 2021.10.01 * * Copyright ions */ package com.pms.salesmgmt.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.ibatis.session.SqlSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.pms.common.JsonUtil; import com.pms.common.SqlMapConfig; import com.pms.common.bean.PersonBean; import com.pms.common.utils.CommonUtils; import com.pms.common.utils.Constants; import com.pms.salesmgmt.service.SalesMngService; import com.pms.service.ApprovalService; import com.pms.service.CommonService; import com.pms.service.PartMgmtService; import com.pms.service.PartMngService; @Controller public class SalesMngController { @Autowired private SalesMngService salesMngService; @Autowired PartMgmtService partMgmtService; @Autowired CommonService commonService; @Autowired ApprovalService approvalService; @Autowired PartMngService partMngService; /** * 구매 BOM 관리 */ @RequestMapping("/salesMng/salesMngBOMList.do") public String salesMngBOMList(HttpServletRequest request, @RequestParam Map paramMap){ String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String returnUrl = "/salesMng/salesMngBOMList"; Map code_map = new HashMap(); try { if("excel".equals(actionType)){ returnUrl = "/salesMng/salesMngBOMList"; } code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect")); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("code_map", code_map); return returnUrl; } /** * BOM조회(정전개) ajax */ @ResponseBody @RequestMapping("/salesMng/getSalesMngBOMList.do") public List> getSalesMngBOMList(HttpServletRequest request, @RequestParam Map paramMap){ String actionType = CommonUtils.checkNull(paramMap.get("actionType")); List resultList =null; String objId = CommonUtils.checkNull(paramMap.get("OBJID")); String status = CommonUtils.checkNull(paramMap.get("STATUS")); String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE")); if("0".equals(searchRevision)){ paramMap.put("IS_LAST",""); paramMap.put("STATUS","release"); }else if("1".equals(searchRevision)){ paramMap.put("IS_LAST",searchRevision); paramMap.put("STATUS","release"); } if(!"".equals(actionType)){ resultList = CommonUtils.keyChangeUpperList(partMgmtService.structureAscendingList(request,paramMap)); } return resultList; } @RequestMapping("/salesMng/salesMngBOMListPopUp.do") public String structureAscendingListPopup(HttpServletRequest request, @RequestParam Map paramMap){ String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String returnUrl = "/salesMng/salesMngBOMListPopUp"; Map code_map = new HashMap(); List resultList =null; String objId = CommonUtils.checkNull(paramMap.get("OBJID")); String status = CommonUtils.checkNull(paramMap.get("STATUS")); String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE")); try { resultList = CommonUtils.keyChangeUpperList(salesMngService.structureAscendingListPopup(request,paramMap)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } request.setAttribute("code_map", code_map); request.setAttribute("LIST", resultList); return returnUrl; } /** * BOM조회(정전개) ajax */ @ResponseBody @RequestMapping("/salesMng/saveSalesMngBOM.do") public Map saveSalesMngBOM(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); resultMap = salesMngService.saveSalesMngBOM(request, paramMap); return resultMap; } /** * 구매의뢰서 등록 */ @RequestMapping("/salesMng/salesRequestMngRegList.do") public String salesRequestMngRegList(HttpServletRequest request, @RequestParam Map paramMap){ String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String returnUrl = "/salesMng/salesRequestMngRegList"; Map code_map = new HashMap(); //List list = new ArrayList(); try { if("excel".equals(actionType)){ returnUrl = "/salesMng/salesRequestMngRegList"; } paramMap.put("SEARCH_STATUS", "create,reject,approvalRequest,release,reception"); //list = salesMngService.getSalesRequestMasterList(request, paramMap); //프로젝트번호 project_no code_map.put("contract_objid",commonService.bizMakeOptionList("", (String)paramMap.get("contract_objid"),"common.getProjectNameList")); //상태 code_map.put("act_status",commonService.bizMakeOptionList("0001062", (String)paramMap.get("act_status"),"common.getCodeselect")); //접수자 code_map.put("receipt_writer", commonService.bizMakeOptionList("", (String)paramMap.get("writer"),"common.getUserselect")); //구분 code_map.put("request_cd",commonService.bizMakeOptionList("0000167", (String)paramMap.get("request_cd"),"common.getCodeselect")); code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect")); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("code_map", code_map); //request.setAttribute("LIST", list); return returnUrl; } /** * 구매요청서 관리 - 구매요청서 목록 페이징 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/salesRequestMngRegGridList.do") public Map getSalesRequestMasterList(HttpServletRequest request, @RequestParam Map paramMap){ commonService.selectListPagingNew("salesMng.getSalesRequestMasterGridList", request, paramMap); return paramMap; } /** * 구매요청서 작성 페이지 (새로운 페이지) * - 구매요청서 작성 버튼 활성화 * - SOURCE_TYPE = 'PURCHASE_REG'인 데이터만 조회 */ @RequestMapping("/salesMng/purchaseRequestRegList.do") public String purchaseRequestRegList(HttpServletRequest request, @RequestParam Map paramMap){ String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String returnUrl = "/salesMng/purchaseRequestRegList"; Map code_map = new HashMap(); try { if("excel".equals(actionType)){ returnUrl = "/salesMng/purchaseRequestRegList"; } paramMap.put("SEARCH_STATUS", "create,reject,approvalRequest,release,reception"); // 프로젝트번호 project_no code_map.put("contract_objid",commonService.bizMakeOptionList("", (String)paramMap.get("contract_objid"),"common.getProjectNameList")); // 상태 code_map.put("act_status",commonService.bizMakeOptionList("0001062", (String)paramMap.get("act_status"),"common.getCodeselect")); // 접수자 code_map.put("receipt_writer", commonService.bizMakeOptionList("", (String)paramMap.get("writer"),"common.getUserselect")); // 구분 code_map.put("request_cd",commonService.bizMakeOptionList("0000167", (String)paramMap.get("request_cd"),"common.getCodeselect")); code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect")); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("code_map", code_map); return returnUrl; } /** * 구매요청서 작성 - 목록 페이징 (새로운 페이지용) * - DOC_TYPE = 'PURCHASE_REG'인 데이터만 조회 */ @ResponseBody @RequestMapping("/salesMng/purchaseRequestRegGridList.do") public Map getPurchaseRequestRegList(HttpServletRequest request, @RequestParam Map paramMap){ // DOC_TYPE 필터 추가 (구매요청서 작성 페이지에서 생성된 데이터만) paramMap.put("DOC_TYPE_FILTER", "PURCHASE_REG"); commonService.selectListPagingNew("salesMng.getSalesRequestMasterGridList", request, paramMap); return paramMap; } /** * 구매의뢰서 조회 */ @RequestMapping("/salesMng/salesRequestMngList.do") public String salesRequestMngList(HttpServletRequest request, @RequestParam Map paramMap){ String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String returnUrl = "/salesMng/salesRequestMngList"; Map code_map = new HashMap(); List list = new ArrayList(); try { if("excel".equals(actionType)){ returnUrl = "/salesMng/salesRequestMngList"; } paramMap.put("SEARCH_STATUS", "approvalComplete"); list = salesMngService.getSalesRequestMasterList(request, paramMap); code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect")); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("code_map", code_map); request.setAttribute("LIST", list); return returnUrl; } /** * 구매 의뢰 상세 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/salesRequestDetailPopUp.do") public String salesRequestDetailPopUp(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); Map code_map = new HashMap(); try{ String salesRequestMasterObjId = CommonUtils.checkNull(paramMap.get("SALES_REQUEST_MASTER_OBJID")); if(!"".equals(salesRequestMasterObjId)){ resultMap = salesMngService.getSalesRequestMasterInfo(request, paramMap); }else{ resultMap.put("OBJID", CommonUtils.createObjId()); resultMap.put("STATUS", "create"); } //프로젝트번호 project_no code_map.put("project_no",commonService.bizMakeOptionList("", (String)resultMap.get("PROJECT_NO"),"common.getProjectNameList")); //구분 code_map.put("request_cd",commonService.bizMakeOptionList("0000167", (String)resultMap.get("REQUEST_CD"),"common.getCodeselect")); //요청사유 code_map.put("request_reasons",commonService.bizMakeOptionList("0001603", (String)resultMap.get("REQUEST_REASONS"),"common.getCodeselect")); //요청인 code_map.put("request_user_id", commonService.bizMakeOptionList("", (String)resultMap.get("REQUEST_USER_ID"),"common.getUserselect")); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("code_map", code_map); request.setAttribute("resultMap", resultMap); return "/salesMng/salesRequestDetailPopUp"; } /** * 구매 의뢰 등록 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/salesRequestFormPopUp.do") public String salesRequestFormPopUp(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); Map code_map = new HashMap(); try{ String salesRequestMasterObjId = CommonUtils.checkNull(paramMap.get("SALES_REQUEST_MASTER_OBJID")); if(!"".equals(salesRequestMasterObjId)){ resultMap = salesMngService.getSalesRequestMasterInfo(request, paramMap); // 디버깅: 조인으로 가져온 값 확인 System.out.println("========== 디버깅: resultMap 값 확인 =========="); System.out.println("PURCHASE_TYPE: " + resultMap.get("PURCHASE_TYPE")); System.out.println("ORDER_TYPE: " + resultMap.get("ORDER_TYPE")); System.out.println("PRODUCT_NAME: " + resultMap.get("PRODUCT_NAME")); System.out.println("PRODUCT_NAME_FULL: " + resultMap.get("PRODUCT_NAME_FULL")); System.out.println("AREA_CD: " + resultMap.get("AREA_CD")); System.out.println("CUSTOMER_OBJID: " + resultMap.get("CUSTOMER_OBJID")); System.out.println("PAID_TYPE: " + resultMap.get("PAID_TYPE")); System.out.println("CATEGORY_CD: " + resultMap.get("CATEGORY_CD")); System.out.println("=========================================="); }else{ resultMap.put("OBJID", CommonUtils.createObjId()); resultMap.put("STATUS", "create"); } //프로젝트번호 project_no code_map.put("project_no",commonService.bizMakeOptionList("", (String)resultMap.get("PROJECT_NO"),"common.getProjectNameList")); //구분 code_map.put("request_cd",commonService.bizMakeOptionList("0000167", (String)resultMap.get("REQUEST_CD"),"common.getCodeselect")); //요청사유 code_map.put("request_reasons",commonService.bizMakeOptionList("0001603", (String)resultMap.get("REQUEST_REASONS"),"common.getCodeselect")); //요청인 code_map.put("request_user_id", commonService.bizMakeOptionList("", (String)resultMap.get("REQUEST_USER_ID"),"common.getUserselect")); //국내/해외 - 0001219 사용 code_map.put("area_cd",commonService.bizMakeOptionList("0001219", (String)resultMap.get("AREA_CD"),"common.getCodeselect")); //고객사 code_map.put("customer_objid",commonService.bizMakeOptionList("", (String)resultMap.get("CUSTOMER_OBJID"),"common.getsupplyselect")); //구매유형 (PURCHASE_TYPE) - 0001814 사용 code_map.put("purchase_type",commonService.bizMakeOptionList("0001814", (String)resultMap.get("PURCHASE_TYPE"),"common.getCodeselect")); //주문유형 (ORDER_TYPE) - 0001406 사용 code_map.put("order_type",commonService.bizMakeOptionList("0001406", (String)resultMap.get("ORDER_TYPE"),"common.getCodeselect")); //제품구분 (PRODUCT_NAME) - 0000001 사용 code_map.put("product_name",commonService.bizMakeOptionList("0000001", (String)resultMap.get("PRODUCT_NAME"),"common.getCodeselect")); //제품유형 (CATEGORY_CD) - 0000167 사용 code_map.put("category_cd",commonService.bizMakeOptionList("0000167", (String)resultMap.get("CATEGORY_CD"),"common.getCodeselect")); //유/무상 (PAID_TYPE) - COMM_CODE에서 조회 시도, 없으면 하드코딩 String paidTypeOptions = ""; try { paidTypeOptions = commonService.bizMakeOptionList("PAID_TYPE", (String)resultMap.get("PAID_TYPE"),"common.getCodeselect"); } catch (Exception e) { // COMM_CODE에 없으면 하드코딩 } if (paidTypeOptions == null || paidTypeOptions.trim().isEmpty()) { String paidType = (String)resultMap.get("PAID_TYPE"); paidTypeOptions = ""; paidTypeOptions += ""; paidTypeOptions += ""; } code_map.put("paid_type", paidTypeOptions); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("code_map", code_map); request.setAttribute("resultMap", resultMap); return "/salesMng/salesRequestFormPopUp"; } @SuppressWarnings("unchecked") @ResponseBody @RequestMapping("/salesMng/getSalesRequest.do") public Map getSalesRequest(HttpServletRequest request, @RequestParam Map paramMap){ Map result_map = new HashMap(); try { result_map.put("RESULT", salesMngService.getSalesRequest(paramMap)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return result_map; } /** * 구매 의뢰 접수 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/receiptSalesRequestInfo.do") public String receiptSalesRequestInfo(HttpSession session,HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); String writer = CommonUtils.checkNull(person.getUserId()); paramMap.put("RECEIPT_USER_ID", writer); salesMngService.receiptSalesRequestInfo(request, paramMap); resultMap.put("message", "접수되었습니다."); }catch(Exception e){ resultMap.put("message", "오류가 발생하였습니다."); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } /** * 구매의뢰에 해당하는 Part 목록을 가져온다. * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getSalesRequestTargetList.do") public List> getSalesRequestTargetList(HttpServletRequest request, @RequestParam Map paramMap){ List partList = new ArrayList(); try{ String bomReportObjId = CommonUtils.checkNull(paramMap.get("bom_report_objid")); if(!"".equals(bomReportObjId)){ partList = CommonUtils.toUpperCaseMapKey(salesMngService.getSalesBOMList(request,paramMap)); }else{ partList = CommonUtils.keyChangeUpperList(salesMngService.getSalesRequestSavedPartList(request,paramMap)); } }catch(Exception e){ e.printStackTrace(); } return partList; } /** * 구매의뢰 내용을 저장한다. * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/saveSalesRequestInfo.do") public Map saveSalesRequestInfo(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ resultMap = salesMngService.saveSalesRequestInfo(request, paramMap); }catch(Exception e){ e.printStackTrace(); } return resultMap; } /** * 구매요청서 확정 처리 * - STATUS를 'confirmed'로 변경하여 수정 불가능하게 함 */ @ResponseBody @RequestMapping("/salesMng/confirmSalesRequest.do") public Map confirmSalesRequest(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ resultMap = salesMngService.confirmSalesRequest(request, paramMap); }catch(Exception e){ e.printStackTrace(); resultMap.put("result", false); resultMap.put("msg", "확정 처리 중 오류가 발생했습니다."); } return resultMap; } /** * 구매의뢰 공급업체 내용을 저장한다. * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/saveSalesRequestSupplyInfo.do") public Map saveSalesRequestSupplyInfo(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ resultMap = salesMngService.saveSalesRequestSupplyInfo(request, paramMap); }catch(Exception e){ e.printStackTrace(); } return resultMap; } /** * 구매의뢰 뱌포처리 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/releaseSalesRequest.do") public Map releaseSalesRequest(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ resultMap = salesMngService.changeStatusSalesRequestMaster(request, paramMap); }catch(Exception e){ e.printStackTrace(); } return resultMap; } /** * 파트에 해당하는 공급업체와 단가 정보를 가져온다. * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getSalesPartnerInfoList.do") public List> getSalesPartnerInfoList(HttpServletRequest request, @RequestParam Map paramMap){ List resultList = new ArrayList(); try{ resultList = CommonUtils.keyChangeUpperList(salesMngService.getSalesPartnerInfoList(request,paramMap)); }catch(Exception e){ e.printStackTrace(); } return resultList; } /** * 발주특성 목록 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/orderSpecMngList.do") public String orderSpecMngList(HttpServletRequest request, @RequestParam Map paramMap){ List list = new ArrayList(); Map code_map = new HashMap(); try { code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect")); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("code_map",code_map); return "/salesMng/orderSpecMngList"; } /** * 발주특성 목록 조회 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/searchOrderSpecMngList.do") public String searchOrderSpecMngList(HttpServletRequest request, @RequestParam Map paramMap){ List list = new ArrayList(); Map code_map = new HashMap(); try { list = CommonUtils.keyChangeUpperList(partMngService.partMngTempList(request,paramMap)); code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect")); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("code_map",code_map); request.setAttribute("LIST", list); return "/salesMng/orderSpecMngList"; } /** * 구매 의뢰 등록 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/orderSpecMngDetailPopUp.do") public String orderSpecMngDetailPopUp(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ resultMap = CommonUtils.keyChangeUpperMap(partMngService.getPartMngInfo(request,paramMap)); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("resultMap", resultMap); return "/salesMng/orderSpecMngDetailPopUp"; } /** * 구매 의뢰 등록 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/orderSpecMngFormPopUp.do") public String orderSpecMngFormPopUp(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ String objId = CommonUtils.checkNull(paramMap.get("OBJID")); String partObjId = CommonUtils.checkNull(paramMap.get("PART_OBJID")); if(!"".equals(objId)){ resultMap = salesMngService.getOrderSpecMngMap(request,paramMap); }else{ objId = CommonUtils.createObjId(); resultMap.put("OBJID", objId); resultMap.put("PART_OBJID", partObjId); } }catch(Exception e){ e.printStackTrace(); } request.setAttribute("resultMap", resultMap); return "/salesMng/orderSpecMngFormPopUp"; } /** * 파트에 연결된 발주특성 정보를 가져온다. * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getOrderSpecMngList.do") public List> getOrderSpecMngList(HttpServletRequest request, @RequestParam Map paramMap){ List resultList =null; try{ resultList = CommonUtils.keyChangeUpperList(salesMngService.getOrderSpecMngList(request,paramMap)); }catch(Exception e){ e.printStackTrace(); } return resultList; } /** * 발주서 작성에 추가된 파트의 발주특성 정보를 가져온다. * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getOrderSpecMngMap.do") public Map getOrderSpecMngMap(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ resultMap = CommonUtils.toUpperCaseMapKey(salesMngService.getOrderSpecMngMap(request,paramMap)); }catch(Exception e){ e.printStackTrace(); } return resultMap; } /** * 발주특성 업체저장 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/saveOrderSpecPartnerMng.do") public Map saveOrderSpecPartnerMng(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); resultMap = salesMngService.saveOrderSpecPartnerMng(request, paramMap); return resultMap; } /** * 발주특성 삭제 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/deleteOrderSpecMng.do") public Map deleteOrderSpecMng(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); resultMap = salesMngService.deleteOrderSpecMng(request, paramMap); return resultMap; } /** * 발주특성 이력 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/orderSpecMngHistoryPopUp.do") public String orderSpecMngHistoryPopUp(HttpServletRequest request, @RequestParam Map paramMap){ List resultList =null; try{ resultList = CommonUtils.keyChangeUpperList(salesMngService.getOrderSpecMngHistoryList(request,paramMap)); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("LIST", resultList); return "/salesMng/orderSpecMngHistoryPopUp"; } //구매의뢰 시 구매 BOM 내용을 가져온다. @RequestMapping("/salesMng/salesRequestTargetBOMList.do") public String salesRequestTargetBOMList(HttpServletRequest request, @RequestParam Map paramMap){ String actionType = CommonUtils.checkNull(paramMap.get("actionType")); String returnUrl = "/salesMng/salesRequestTargetBOMList"; Map code_map = new HashMap(); List resultList =null; String objId = CommonUtils.checkNull(paramMap.get("OBJID")); String status = CommonUtils.checkNull(paramMap.get("STATUS")); String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE")); try { resultList = CommonUtils.keyChangeUpperList(salesMngService.structureAscendingListPopup(request,paramMap)); code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect")); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } request.setAttribute("code_map", code_map); request.setAttribute("LIST", resultList); return returnUrl; } /** * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/deleteSalesRequestMng.do") public Map deleteSalesRequestMng(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); resultMap = salesMngService.deleteSalesRequestMng(request, paramMap); return resultMap; } /** * 발주특성 저장 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/saveOrderSpecMng.do") public Map saveOrderSpecMng(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); resultMap = salesMngService.saveOrderSpecMng(request, paramMap); return resultMap; } @RequestMapping("/salesMng/parsingTemp.do") public void parsingTemp(HttpServletRequest request, @RequestParam Map paramMap){ salesMngService.parsingTemp(request, paramMap); } @RequestMapping("/salesMng/salesBomReportList.do") public String salesBomReportList(HttpServletRequest request, @RequestParam Map paramMap){ //ArrayList list = new ArrayList(); Map code_map = new HashMap(); try{ //고객사 code_map.put("customer_cd",commonService.bizMakeOptionList("", (String)paramMap.get("customer_cd"),"common.getsupplyselect")); //구매담당자 code_map.put("writer2_id", commonService.bizMakeOptionList("", (String)paramMap.get("writer2_id"),"common.getUserselect")); //list = commonService.selectListPaging("salesMng.salesBomReportList", request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("code_map",code_map); //request.setAttribute("LIST", JsonUtil.ListToJson(list)); return "/salesMng/salesBomReportList"; } /** * 구매BOM 관리 - 구매BOM 목록 페이징 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/salesBomReportGridList.do") public Map getsalesBomReportGridListPaging(HttpServletRequest request, @RequestParam Map paramMap){ commonService.selectListPagingNew("salesMng.salesBomReportList", request, paramMap); return paramMap; } @RequestMapping("/salesMng/salesBomReportFormPopup.do") public String salesBomReportFormPopup(HttpServletRequest request, @RequestParam Map paramMap){ HashMap info = new HashMap(); ArrayList partList = new ArrayList(); Map code_map = new HashMap(); String pageUrl = "/salesMng/salesBomReportFormPopup"; String actionType = CommonUtils.checkNull(paramMap.get("actionType")); if("excel".equals(actionType)){ pageUrl = "/salesMng/salesBomReportExcelPopup"; } try{ String objid = CommonUtils.checkNull(paramMap.get("objId")); if("".equals(objid)){ info = new HashMap(); info.put("OBJID", CommonUtils.createObjId()); info.put("PARENT_OBJID", CommonUtils.checkNull(paramMap.get("parent_objId"))); }else{ info = commonService.selectOne("salesMng.salesBomReportInfo", request, paramMap); } partList = commonService.selectList("salesMng.salesBomReportPartList", request, paramMap); Map param = new HashMap(); code_map.put("jqGridSelect_adminSUPPLY" ,commonService.getJqGridSelectBoxJsonData("common.getAdminSupCdList", param, "선택")); //공급업체명 }catch(Exception e){ e.printStackTrace(); } request.setAttribute("info", info); request.setAttribute("gridPartData", JsonUtil.ListToJson(partList)); request.setAttribute("partList", partList); request.setAttribute("code_map", code_map); request.setAttribute("actionType", actionType); return pageUrl; } @RequestMapping("/salesMng/saveSalesBomReportInfo.do") public String saveSalesBomReportInfo(HttpSession session,HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); String writer = CommonUtils.checkNull(person.getUserId()); paramMap.put("writer", writer); salesMngService.mergeSalesBomReportInfo(request, paramMap); resultMap.put("message", "저장되었습니다."); }catch(Exception e){ resultMap.put("message", "오류가 발생하였습니다."); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } @RequestMapping("/salesMng/salesPartChgList.do") public String salesPartChgList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList list = new ArrayList(); Map code_map = new HashMap(); try{ //고객사 code_map.put("customer_cd",commonService.bizMakeOptionList("", (String)paramMap.get("customer_cd"),"common.getsupplyselect")); //당사프로젝트번호 project_no code_map.put("contract_objid",commonService.bizMakeOptionList("", (String)paramMap.get("contract_objid"),"common.getProjectNameList")); //설변사유 code_map.put("change_option",commonService.bizMakeOptionList("0000318", (String)paramMap.get("change_option"),"common.getCodeselect")); //설변구분 code_map.put("change_type",commonService.bizMakeOptionList("0001054", (String)paramMap.get("change_type"),"common.getCodeselect")); //PART구분 code_map.put("part_type",commonService.bizMakeOptionList(Constants.PART_TYPE_CODE, (String)paramMap.get("part_type"),"common.getCodeselect")); //설계담당자 code_map.put("part_writer", commonService.bizMakeOptionList("", (String)paramMap.get("part_writer"),"common.getUserselect")); //구매담당자 code_map.put("sales_writer", commonService.bizMakeOptionList("", (String)paramMap.get("sales_writer"),"common.getUserselect")); //조치내역 code_map.put("act_cd",commonService.bizMakeOptionList("0001059", (String)paramMap.get("act_cd"),"common.getCodeselect")); //조치결과 code_map.put("act_status",commonService.bizMakeOptionList("0001062", (String)paramMap.get("act_status"),"common.getCodeselect")); list = commonService.selectListPaging("salesMng.salesPartChgList", request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("code_map",code_map); request.setAttribute("LIST", JsonUtil.ListToJson(list)); return "/salesMng/salesPartChgList"; } /** * 설계변경관리 - 설계변경 목록 페이징 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/salesPartChgGridList.do") public Map getsalesPartChgListPaging(HttpServletRequest request, @RequestParam Map paramMap){ commonService.selectListPagingNew("salesMng.salesPartChgList", request, paramMap); return paramMap; } @RequestMapping("/salesMng/salesPartChgFormPopup.do") public String salesPartChgFormPopup(HttpServletRequest request, @RequestParam Map paramMap){ HashMap info = new HashMap(); Map code_map = new HashMap(); String actionType = CommonUtils.checkNull(paramMap.get("actionType")); try{ String objid = CommonUtils.checkNull(paramMap.get("objId")); if("".equals(objid)){ info = new HashMap(); info.put("OBJID" , CommonUtils.createObjId()); info.put("PART_OBJID", CommonUtils.checkNull(paramMap.get("part_objid"))); info.put("EO_NO" , CommonUtils.checkNull(paramMap.get("eo_no"))); info.put("PART_NO" , CommonUtils.checkNull(paramMap.get("part_no"))); info.put("PROJECT_NO", CommonUtils.checkNull(paramMap.get("project_no"))); }else{ info = commonService.selectOne("salesMng.salesPartChgInfo", request, paramMap); } }catch(Exception e){ e.printStackTrace(); } request.setAttribute("info", info); request.setAttribute("code_map", code_map); request.setAttribute("actionType", actionType); return "/salesMng/salesPartChgFormPopup"; } @RequestMapping("/salesMng/receiptSalesPartChgInfo.do") public String receiptSalesPartChgInfo(HttpSession session,HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); String writer = CommonUtils.checkNull(person.getUserId()); paramMap.put("writer", writer); salesMngService.receiptSalesPartChgInfo(request, paramMap); resultMap.put("message", "접수되었습니다."); }catch(Exception e){ resultMap.put("message", "오류가 발생하였습니다."); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } @RequestMapping("/salesMng/saveSalesPartChgInfo.do") public String saveSalesPartChgInfo(HttpSession session,HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); String writer = CommonUtils.checkNull(person.getUserId()); paramMap.put("writer", writer); salesMngService.mergeSalesPartChgInfo(request, paramMap); resultMap.put("message", "저장되었습니다."); }catch(Exception e){ resultMap.put("message", "오류가 발생하였습니다."); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } /** * 장납기품 리스트 (발주서 제품추가시 선택팝업으로도 사용) */ @RequestMapping("/salesMng/salesLongDeliveryList.do") public String salesLongDeliveryList(HttpServletRequest request, @RequestParam Map paramMap){ ArrayList list = new ArrayList(); Map code_map = new HashMap(); Map resultMap = new HashMap(); String actionType = CommonUtils.checkNull(paramMap.get("actionType")); try{ //공급업체 code_map.put("admin_supply",commonService.bizMakeOptionList("", (String)paramMap.get("admin_supply"),"common.getmatersupplyselect")); //location code_map.put("location",commonService.bizMakeOptionList("0000262", (String)paramMap.get("location"),"common.getCodeselect")); //list = commonService.selectList("salesMng.salesLongDeliveryList", request, paramMap); list = commonService.selectListPaging("salesMng.salesLongDeliveryList", request, paramMap); resultMap = commonService.selectOne("salesMng.salesLongDeliveryListSum", request, paramMap); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("code_map",code_map); //request.setAttribute("LIST", list); request.setAttribute("LIST", JsonUtil.ListToJson(list)); request.setAttribute("resultMap",resultMap); return "/salesMng/salesLongDeliveryList"; } /** * 장납기품 관리 - 장납기품 목록 페이징 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/salesLongDeliveryGridList.do") public Map getSalesLongDeliveryGridListPaging(HttpServletRequest request, @RequestParam Map paramMap){ commonService.selectListPagingNew("salesMng.salesLongDeliveryList", request, paramMap); return paramMap; } @RequestMapping("/salesMng/salesLongDeliveryFormPopup.do") public String salesLongDeliveryFormPopup(HttpServletRequest request, @RequestParam Map paramMap){ HashMap info = new HashMap(); ArrayList inputList = new ArrayList(); ArrayList predictList = new ArrayList(); Map code_map = new HashMap(); String actionType = CommonUtils.checkNull(paramMap.get("actionType")); try{ String objid = CommonUtils.checkNull(paramMap.get("objId")); if("".equals(objid)){ info = new HashMap(); info.put("OBJID" , CommonUtils.createObjId()); }else{ info = commonService.selectOne("salesMng.salesLongDeliveryInfo", request, paramMap); inputList = commonService.selectList("salesMng.salesLongDeliveryInputList", request, paramMap); predictList = commonService.selectList("salesMng.salesLongDeliveryPredictList", request, paramMap); } //공급업체 code_map.put("SUPPLY_OBJID",commonService.bizMakeOptionList("", (String)info.get("SUPPLY_OBJID"),"common.getmatersupplyselect")); //location code_map.put("LOCATION",commonService.bizMakeOptionList("0000262", (String)info.get("LOCATION"),"common.getCodeselect")); //계약-프로젝트번호 Map param = new HashMap(); code_map.put("jqGridSelect_CONTRACT_OBJID", commonService.getJqGridSelectBoxJsonData2("common.getProjectNameList", param, "선택", "CODE", "NAME")); //용처 code_map.put("jqGridSelect_SUPPLY_OBJID", commonService.getJqGridSelectBoxJsonData2("common.getmatersupplyselect", param, "선택", "CODE", "NAME")); }catch(Exception e){ e.printStackTrace(); } request.setAttribute("info", info); request.setAttribute("inputList", JsonUtil.ListToJson(inputList)); request.setAttribute("predictList", JsonUtil.ListToJson(predictList)); request.setAttribute("code_map", code_map); request.setAttribute("actionType", actionType); return "/salesMng/salesLongDeliveryFormPopup"; } @RequestMapping("/salesMng/saveSalesLongDeliveryInfo.do") public String saveSalesLongDeliveryInfo(HttpSession session,HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); String writer = CommonUtils.checkNull(person.getUserId()); paramMap.put("writer", writer); salesMngService.mergeSalesLongDeliveryInfo(request, paramMap); resultMap.put("message", "저장되었습니다."); }catch(Exception e){ resultMap.put("message", "오류가 발생하였습니다."); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } @RequestMapping("/salesMng/deleteSalesLongDeliveryInfo.do") public String deleteSalesLongDeliveryInfo(HttpSession session,HttpServletRequest request, @RequestParam Map paramMap){ HashMap resultMap = new HashMap(); try{ PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN); String writer = CommonUtils.checkNull(person.getUserId()); paramMap.put("writer", writer); salesMngService.deleteSalesLongDeliveryInfo(request, paramMap); resultMap.put("message", "삭제되었습니다."); }catch(Exception e){ resultMap.put("message", "오류가 발생하였습니다."); e.printStackTrace(); } request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap)); return "/ajax/ajaxResult"; } @RequestMapping("/salesMng/salesBomExcelImportPopUp.do") public String salesBomExcelImportPopUp(HttpServletRequest request, @RequestParam Map paramMap){ String EXCEL_IMPORT_OBJID = CommonUtils.createObjId(); request.setAttribute("EXCEL_IMPORT_OBJID", EXCEL_IMPORT_OBJID); return "/salesMng/salesBomExcelImportPopUp"; } /** * 업로드된 Excel File을 통해서 데이터를 Parsing하여 목록으로 return. * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/parsingSalesBomExcelImport.do") public List parsingSalesBomExcelImport(HttpServletRequest request, @RequestParam Map paramMap){ List resultList = new ArrayList(); try{ resultList = (ArrayList)salesMngService.parsingSalesBomExcelImport(request, paramMap); }catch(Exception e){ e.printStackTrace(); } return resultList; } /** * 업로드된 Excel File을 통해서 데이터를 Parsing하여 목록으로 return. * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/saveSalesBomExcelImport.do") public Map saveSalesBomExcelImport(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ resultMap = salesMngService.saveSalesBomExcelImport(request, paramMap); }catch(Exception e){ e.printStackTrace(); } return resultMap; } /** * 구매리스트 작성 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/purchaseListFormPopUp.do") public String purchaseListFormPopUp(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ String salesRequestMasterObjId = CommonUtils.checkNull(paramMap.get("SALES_REQUEST_MASTER_OBJID")); String projectMgmtObjId = CommonUtils.checkNull(paramMap.get("PROJECT_MGMT_OBJID")); if(!"".equals(salesRequestMasterObjId)){ // 기존 구매리스트 조회 resultMap = salesMngService.getSalesRequestMasterInfo(request, paramMap); }else if(!"".equals(projectMgmtObjId)){ // M-BOM에서 새로 생성 resultMap.put("OBJID", CommonUtils.createObjId()); resultMap.put("STATUS", "create"); }else{ resultMap.put("OBJID", CommonUtils.createObjId()); resultMap.put("STATUS", "create"); } }catch(Exception e){ e.printStackTrace(); } request.setAttribute("resultMap", resultMap); return "/salesMng/purchaseListFormPopUp"; } /** * 구매리스트 상세 조회 (기존 구매리스트) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getPurchaseListDetail.do") public Map getPurchaseListDetail(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ List list = salesMngService.getPurchaseListDetail(request, paramMap); resultMap.put("list", list); }catch(Exception e){ e.printStackTrace(); resultMap.put("list", new ArrayList()); } return resultMap; } /** * M-BOM에서 구매리스트 생성 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getMBomForPurchaseList.do") public Map getMBomForPurchaseList(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ System.out.println("========== getMBomForPurchaseList 호출 =========="); System.out.println("paramMap: " + paramMap); System.out.println("PROJECT_MGMT_OBJID: " + paramMap.get("PROJECT_MGMT_OBJID")); System.out.println("bomReportObjId: " + paramMap.get("bomReportObjId")); List list = salesMngService.getMBomForPurchaseList(request, paramMap); // 키를 대문자로 변환 List> upperList = new ArrayList>(); if(list != null) { for(Map item : list) { Map upperItem = new HashMap(); for(Object key : item.keySet()) { upperItem.put(key.toString().toUpperCase(), item.get(key)); } upperList.add(upperItem); } } System.out.println("결과 리스트 크기: " + upperList.size()); if(!upperList.isEmpty()) { System.out.println("첫번째 항목: " + upperList.get(0)); } resultMap.put("list", upperList); }catch(Exception e){ System.out.println("getMBomForPurchaseList 오류 발생!"); e.printStackTrace(); resultMap.put("list", new ArrayList()); } return resultMap; } /** * 구매리스트 저장 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/savePurchaseList.do") public Map savePurchaseList(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ resultMap = salesMngService.savePurchaseList(request, paramMap); }catch(Exception e){ e.printStackTrace(); resultMap.put("result", "error"); resultMap.put("message", "저장 중 오류가 발생했습니다: " + e.getMessage()); } return resultMap; } /** * M-BOM에서 구매리스트 생성 (SALES_REQUEST_MASTER 생성) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/createPurchaseListFromMBom.do") public Map createPurchaseListFromMBom(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try{ resultMap = salesMngService.createPurchaseListFromMBom(request, paramMap); }catch(Exception e){ e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "구매리스트 생성 중 오류가 발생했습니다: " + e.getMessage()); } return resultMap; } // ==================== 품의서 관리 ==================== /** * 품의서 관리 - 목록 화면 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/proposalMngList.do") public String proposalMngList(HttpServletRequest request, @RequestParam Map paramMap){ String returnUrl = "/salesMng/proposalMngList"; Map code_map = new HashMap(); try { // 구매유형 code_map.put("purchase_type", commonService.bizMakeOptionList("0001821", (String)paramMap.get("purchase_type"), "common.getCodeselect")); // 주문유형 code_map.put("order_type", commonService.bizMakeOptionList("0001822", (String)paramMap.get("order_type"), "common.getCodeselect")); // 제품구분 code_map.put("product_name", commonService.bizMakeOptionList("0000016", (String)paramMap.get("product_name"), "common.getCodeselect")); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("code_map", code_map); return returnUrl; } /** * 품의서 관리 - 목록 조회 (페이징) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/proposalMngGridList.do") public Map getProposalMngGridList(HttpServletRequest request, @RequestParam Map paramMap){ commonService.selectListPagingNew("salesMng.getProposalMngGridList", request, paramMap); return paramMap; } /** * 품의서 상세 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/proposalFormPopUp.do") public String proposalFormPopUp(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); Map code_map = new HashMap(); ArrayList approvalList = new ArrayList(); List partList = new ArrayList(); try { String proposalObjId = CommonUtils.checkNull(paramMap.get("PROPOSAL_OBJID")); if(!"".equals(proposalObjId)){ resultMap = commonService.selectOne("salesMng.getProposalInfo", request, paramMap); // 결재 정보 조회 Map approvalParam = new HashMap(); approvalParam.put("OBJID", proposalObjId); approvalList = approvalService.getApprovalLine(request, approvalParam); // 품의서 품목 리스트 조회 Map partParam = new HashMap(); partParam.put("PROPOSAL_OBJID", proposalObjId); partList = commonService.selectList("salesMng.getProposalPartList", request, partParam); } else { resultMap.put("OBJID", CommonUtils.createObjId()); resultMap.put("STATUS", "create"); } // 구매유형 code_map.put("purchase_type", commonService.bizMakeOptionList("0001821", (String)resultMap.get("PURCHASE_TYPE"), "common.getCodeselect")); // 주문유형 code_map.put("order_type", commonService.bizMakeOptionList("0001822", (String)resultMap.get("ORDER_TYPE"), "common.getCodeselect")); // 제품구분 code_map.put("product_name", commonService.bizMakeOptionList("0000016", (String)resultMap.get("PRODUCT_NAME"), "common.getCodeselect")); // 단위 코드 목록 (UNIT_CD: 단위) code_map.put("unit_list", commonService.bizMakeOptionList("0001399", "", "common.getCodeselect")); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("resultMap", resultMap); request.setAttribute("code_map", code_map); request.setAttribute("approvalList", approvalList); request.setAttribute("partList", partList); return "/salesMng/proposalFormPopUp"; } /** * 품의서 생성 (JSP에서 호출) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/createProposal.do") public Map createProposal(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try { resultMap = salesMngService.createProposal(request, paramMap); } catch (Exception e) { e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "품의서 생성 중 오류가 발생했습니다: " + e.getMessage()); } return resultMap; } /** * 품의서 대상 품목 조회 (JSP에서 호출) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getProposalTargetParts.do") public Map getProposalTargetParts(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); SqlSession sqlSession = null; try { sqlSession = SqlMapConfig.getInstance().getSqlSession(); String salesRequestMasterObjid = CommonUtils.checkNull(paramMap.get("SALES_REQUEST_MASTER_OBJID")); // Service의 공통 메서드 사용 (소재/가공 분리) Map partsInfo = salesMngService.getProposalTargetPartsWithInfo(sqlSession, salesRequestMasterObjid); // 소재/가공 각각 분리된 데이터 List materialTargetParts = (List)partsInfo.get("materialTargetParts"); List processingTargetParts = (List)partsInfo.get("processingTargetParts"); List materialExcludedParts = (List)partsInfo.get("materialExcludedParts"); List processingExcludedParts = (List)partsInfo.get("processingExcludedParts"); // 기존 호환성을 위한 통합 데이터 List targetParts = (List)partsInfo.get("targetParts"); List excludedParts = (List)partsInfo.get("excludedParts"); boolean hasMaterialParts = materialTargetParts != null && !materialTargetParts.isEmpty(); boolean hasProcessingParts = processingTargetParts != null && !processingTargetParts.isEmpty(); if(hasMaterialParts || hasProcessingParts) { resultMap.put("resultFlag", "S"); // 소재/가공 분리 데이터 resultMap.put("materialTargetParts", materialTargetParts); resultMap.put("processingTargetParts", processingTargetParts); resultMap.put("materialExcludedParts", materialExcludedParts); resultMap.put("processingExcludedParts", processingExcludedParts); // 기존 호환성 resultMap.put("data", targetParts); resultMap.put("excludedParts", excludedParts); } else { resultMap.put("resultFlag", "F"); resultMap.put("message", "품의서 생성 대상 품목이 없습니다.\n(소재단가+공급업체 또는 가공단가+가공업체가 입력되고 품의서가 생성되지 않은 품목만 가능)"); resultMap.put("materialExcludedParts", materialExcludedParts); resultMap.put("processingExcludedParts", processingExcludedParts); } } catch (Exception e) { e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "품목 조회 중 오류가 발생했습니다: " + e.getMessage()); } finally { if(sqlSession != null) sqlSession.close(); } return resultMap; } /** * 품의서 대상 품목 미리보기 (JSP에서 호출 - 별칭) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getProposalTargetPartsForPreview.do") public Map getProposalTargetPartsForPreview(HttpServletRequest request, @RequestParam Map paramMap){ return getProposalTargetParts(request, paramMap); } /** * 품의서 생성 실행 (JSP에서 호출) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/createProposalFromPurchaseList.do") public Map createProposalFromPurchaseList(HttpServletRequest request, @RequestParam Map paramMap){ return createProposal(request, paramMap); } /** * 품의서 저장 (마스터 + 품목) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/saveProposal.do") public Map saveProposal(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); SqlSession sqlSession = null; try { sqlSession = SqlMapConfig.getInstance().getSqlSession(false); // 1. 마스터 정보 저장 sqlSession.update("salesMng.updateProposalMaster", paramMap); // 2. 품목 정보 저장 (JSON 배열로 전달받음) String partListJson = CommonUtils.checkNull(paramMap.get("PART_LIST")); if(!"".equals(partListJson)) { List> partList = JsonUtil.JsonToList(partListJson); for(Map part : partList) { sqlSession.update("salesMng.updateProposalPart", part); } } sqlSession.commit(); resultMap.put("resultFlag", "S"); resultMap.put("message", "저장되었습니다."); } catch (Exception e) { if(sqlSession != null) sqlSession.rollback(); e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "저장 중 오류가 발생했습니다: " + e.getMessage()); } finally { if(sqlSession != null) sqlSession.close(); } return resultMap; } // ===================================================== // 견적요청서 관리 컨트롤러 // ===================================================== /** * 견적요청서 목록 페이지 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/quotationRequestList.do") public String quotationRequestList(HttpServletRequest request, @RequestParam Map paramMap){ String returnUrl = "/salesMng/quotationRequestList"; Map code_map = new HashMap(); try { // 프로젝트번호 code_map.put("project_no", commonService.bizMakeOptionList("", (String)paramMap.get("project_no"), "common.getProjectNameList")); // 업체 목록 code_map.put("vendor_objid", commonService.bizMakeOptionList("", (String)paramMap.get("vendor_objid"), "common.getsupplyselect")); // 상태 String statusOptions = ""; statusOptions += ""; statusOptions += ""; statusOptions += ""; statusOptions += ""; statusOptions += ""; code_map.put("status", statusOptions); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("code_map", code_map); return returnUrl; } /** * 견적요청서 목록 조회 (페이징) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/quotationRequestListPaging.do") public Map getQuotationRequestListPaging(HttpServletRequest request, @RequestParam Map paramMap){ commonService.selectListPagingNew("salesMng.getQuotationRequestList", request, paramMap); return paramMap; } /** * 견적요청서 상세 팝업 * @param request * @param paramMap * @return */ @RequestMapping("/salesMng/quotationRequestFormPopup.do") public String quotationRequestFormPopup(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); Map code_map = new HashMap(); try { String quotationRequestMasterObjid = CommonUtils.checkNull(paramMap.get("QUOTATION_REQUEST_MASTER_OBJID")); if(!"".equals(quotationRequestMasterObjid)){ // 기존 견적요청서 조회 resultMap = salesMngService.getQuotationRequestMasterInfo(request, paramMap); } else { // 신규 생성 (구매리스트에서 호출 시) resultMap.put("OBJID", CommonUtils.createObjId()); resultMap.put("STATUS", "create"); } } catch (Exception e) { e.printStackTrace(); } request.setAttribute("code_map", code_map); request.setAttribute("resultMap", resultMap); return "/salesMng/quotationRequestFormPopup"; } /** * 견적요청서 상세 목록 조회 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getQuotationRequestDetailList.do") public Map getQuotationRequestDetailList(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try { List detailList = salesMngService.getQuotationRequestDetailList(request, paramMap); resultMap.put("list", detailList); resultMap.put("resultFlag", "S"); } catch (Exception e) { e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "조회 중 오류가 발생했습니다."); } return resultMap; } /** * 견적요청서 생성 (구매리스트에서) * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/createQuotationRequest.do") public Map createQuotationRequest(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try { resultMap = salesMngService.createQuotationRequest(request, paramMap); } catch (Exception e) { e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "견적요청서 생성 중 오류가 발생했습니다: " + e.getMessage()); } return resultMap; } /** * 견적요청서 단가 저장 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/saveQuotationRequestPrice.do") public Map saveQuotationRequestPrice(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try { resultMap = salesMngService.saveQuotationRequestPrice(request, paramMap); } catch (Exception e) { e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "저장 중 오류가 발생했습니다: " + e.getMessage()); } return resultMap; } /** * 견적요청서 메일 발송 후 상태 업데이트 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/updateQuotationRequestMailSent.do") public Map updateQuotationRequestMailSent(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try { resultMap = salesMngService.updateQuotationRequestMailSent(request, paramMap); } catch (Exception e) { e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "상태 업데이트 중 오류가 발생했습니다: " + e.getMessage()); } return resultMap; } /** * 견적요청서 삭제 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/deleteQuotationRequest.do") public Map deleteQuotationRequest(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try { resultMap = salesMngService.deleteQuotationRequest(request, paramMap); } catch (Exception e) { e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "삭제 중 오류가 발생했습니다: " + e.getMessage()); } return resultMap; } /** * 구매리스트에서 견적요청서 생성 대상 조회 * @param request * @param paramMap * @return */ @ResponseBody @RequestMapping("/salesMng/getPurchaseListForQuotation.do") public Map getPurchaseListForQuotation(HttpServletRequest request, @RequestParam Map paramMap){ Map resultMap = new HashMap(); try { List list = salesMngService.getPurchaseListForQuotation(request, paramMap); resultMap.put("list", list); resultMap.put("resultFlag", "S"); } catch (Exception e) { e.printStackTrace(); resultMap.put("resultFlag", "F"); resultMap.put("message", "조회 중 오류가 발생했습니다."); } return resultMap; } }