Files
wace_plm/src/com/pms/salesmgmt/controller/SalesMngController.java

1760 lines
60 KiB
Java

/*
* 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<Map<String,Object>> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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 += "<option value='paid'" + ("paid".equals(paidType) ? " selected" : "") + ">유상</option>";
paidTypeOptions += "<option value='free'" + ("free".equals(paidType) ? " selected" : "") + ">무상</option>";
}
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<String, Object> getSalesRequest(HttpServletRequest request, @RequestParam Map<String, Object> 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<String, Object> 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<Map<String,Object>> 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<String,Object> saveSalesRequestInfo(HttpServletRequest request, @RequestParam Map paramMap){
Map<String,Object> 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<String,Object> confirmSalesRequest(HttpServletRequest request, @RequestParam Map paramMap){
Map<String,Object> 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<String,Object> saveSalesRequestSupplyInfo(HttpServletRequest request, @RequestParam Map paramMap){
Map<String,Object> 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<String,Object> releaseSalesRequest(HttpServletRequest request, @RequestParam Map paramMap){
Map<String,Object> 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<Map<String,Object>> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<Map<String,Object>> 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<String,Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> paramMap){
commonService.selectListPagingNew("salesMng.salesBomReportList", request, paramMap);
return paramMap;
}
@RequestMapping("/salesMng/salesBomReportFormPopup.do")
public String salesBomReportFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> paramMap){
commonService.selectListPagingNew("salesMng.salesPartChgList", request, paramMap);
return paramMap;
}
@RequestMapping("/salesMng/salesPartChgFormPopup.do")
public String salesPartChgFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> paramMap){
commonService.selectListPagingNew("salesMng.salesLongDeliveryList", request, paramMap);
return paramMap;
}
@RequestMapping("/salesMng/salesLongDeliveryFormPopup.do")
public String salesLongDeliveryFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> paramMap){
Map resultMap = new HashMap();
try{
List<Map> 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<String, Object> 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<Map> list = salesMngService.getMBomForPurchaseList(request, paramMap);
// 키를 대문자로 변환
List<Map<String, Object>> upperList = new ArrayList<Map<String, Object>>();
if(list != null) {
for(Map item : list) {
Map<String, Object> upperItem = new HashMap<String, Object>();
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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> paramMap){
Map resultMap = new HashMap();
Map code_map = new HashMap();
ArrayList approvalList = new ArrayList();
List<Map> 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<String, Object> 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<String, Object> 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<Map> materialTargetParts = (List<Map>)partsInfo.get("materialTargetParts");
List<Map> processingTargetParts = (List<Map>)partsInfo.get("processingTargetParts");
List<Map> materialExcludedParts = (List<Map>)partsInfo.get("materialExcludedParts");
List<Map> processingExcludedParts = (List<Map>)partsInfo.get("processingExcludedParts");
// 기존 호환성을 위한 통합 데이터
List<Map> targetParts = (List<Map>)partsInfo.get("targetParts");
List<Map> excludedParts = (List<Map>)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<String, Object> paramMap){
return getProposalTargetParts(request, paramMap);
}
/**
* 품의서 생성 실행 (JSP에서 호출)
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/salesMng/createProposalFromPurchaseList.do")
public Map createProposalFromPurchaseList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
return createProposal(request, paramMap);
}
/**
* 품의서 저장 (마스터 + 품목)
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/salesMng/saveProposal.do")
public Map saveProposal(HttpServletRequest request, @RequestParam Map<String, Object> 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<Map<String, Object>> 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 += "<option value=''>전체</option>";
statusOptions += "<option value='create'" + ("create".equals(paramMap.get("status")) ? " selected" : "") + ">작성중</option>";
statusOptions += "<option value='sent'" + ("sent".equals(paramMap.get("status")) ? " selected" : "") + ">발송완료</option>";
statusOptions += "<option value='received'" + ("received".equals(paramMap.get("status")) ? " selected" : "") + ">견적수신</option>";
statusOptions += "<option value='completed'" + ("completed".equals(paramMap.get("status")) ? " selected" : "") + ">완료</option>";
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<String, Object> 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<String, Object> paramMap){
Map resultMap = new HashMap();
try {
List<Map> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> paramMap){
Map resultMap = new HashMap();
try {
List<Map> 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;
}
}