/*
* ContractMgmtController
*
* 1.0
*
* 2021.10.01
*
* Copyright ions
*/
package com.pms.salesmgmt.controller;
import java.math.BigDecimal;
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.commons.lang3.StringUtils;
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.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.pms.common.utils.CommonUtils;
import com.pms.salesmgmt.service.ContractMgmtService;
import com.pms.salesmgmt.service.SalesMgmtCommonService;
import com.pms.salesmgmt.service.SalesNcollectMgmtService;
import com.pms.service.CommonService;
/**
*
* 매출수금관리 Controller
*
* @since 2021.11.05
* @author min
* @version 1.0
*
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* ---------------- --------------------- --------------------------------------------------------
* 2021.11.05 민상익 최초작성
*
*
*
*/
@Controller
public class SalesNcollectMgmtController {
/** 계약관리 Service */
@Autowired
private ContractMgmtService contractMgmtService;
/** 매출수금 Service */
@Autowired
private SalesNcollectMgmtService salesNcollectMgmtService;
/** 영업관리 공통 Service */
@Autowired
private SalesMgmtCommonService salesMgmtCommonService;
@Autowired
private CommonService commonService;
/**
*
* 매출관리 메인 페이지 (메뉴 진입점)
*
* @param request
* @param paramMap - 검색 정보
* @return String
*
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* ---------------- --------------------- ----------------------------------------------------------
* 2025.10.15 수정 메뉴 URL 매핑 추가
*
*
*/
@RequestMapping(value = "/salesMgmt/salesMgmtList.do", method = RequestMethod.GET)
public String salesMgmtList(HttpServletRequest request
, @RequestParam Map paramMap) {
// /salesNcollectMgmt/contractList.do로 리다이렉트
return salesContractList(request, paramMap);
}
/**
*
* 매출관리 목록 페이지
*
* @param request
* @param paramMap - 검색 정보
* @return String
*/
@RequestMapping(value = "/revenueMgmt/revenueList.do", method = RequestMethod.GET)
public String showRevenueMgmtList(HttpServletRequest request, @RequestParam Map paramMap) {
try {
// 코드정보
Map codeMap = new HashMap();
// 주문유형
codeMap.put("orderTypeList" , commonService.bizMakeOptionList("0000167", "" , "common.getCodeselect"));
// 제품구분
codeMap.put("productTypeList", commonService.bizMakeOptionList("0000001", "", "common.getCodeselect"));
// 국내/해외
codeMap.put("nationList", commonService.bizMakeOptionList("0001219", "", "common.getCodeselect"));
//고객사
codeMap.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")),"common.getsupplyselect"));
/*
// 유/무상
codeMap.put("paymentTypeList",
salesMgmtCommonService.bizMakeOptionList("0000156", "", "salesMgmtCommon.getCodeList"));
*/
// 수주상태
codeMap.put("orderStatusList", commonService.bizMakeOptionList("0000963", "", "common.getCodeselect"));
//codeMap.put("orderStatusList",
// commonService.bizMakeOptionList("0000932", "", "common.getCodeselect"));
// 출하대기 상태
codeMap.put("shippingStatusList",
salesMgmtCommonService.bizMakeOptionList("SH", "", "salesMgmtCommon.getCodeList"));
/*
// 출고방법
codeMap.put("shippingMethodList",
salesMgmtCommonService.bizMakeOptionList("SM", "", "salesMgmtCommon.getCodeList"));
*/
// 담당자
codeMap.put("managerList", commonService.bizMakeOptionList("", "", "common.getUserselect"));
//codeMap.put("managerList",
// salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList"));
/*
// 인도조건
codeMap.put("incotermsList",
salesMgmtCommonService.bizMakeOptionList("IT", "", "salesMgmtCommon.getCodeList"));
*/
request.setAttribute("codeMap", codeMap);
} catch (Exception e) {
e.printStackTrace();
}
return "/salesmgmt/salesMgmt/revenueMgmtList";
}
/**
*
* 신규 매출관리 목록 페이지
*
* @param request
* @param paramMap - 검색 정보
* @return String
*/
@RequestMapping(value = "/contractMgmt/salesMgmtList.do", method = RequestMethod.GET)
public String showSalesMgmtList(HttpServletRequest request, @RequestParam Map paramMap) {
try {
// 코드정보 (기존 로직과 동일하게 설정 가능)
Map codeMap = new HashMap();
// 주문유형
codeMap.put("orderTypeList",
salesMgmtCommonService.bizMakeOptionList("GE", "", "salesMgmtCommon.getCodeList"));
// 제품구분
codeMap.put("productTypeList",
salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getGoodsList"));
// 국내/해외
codeMap.put("nationList",
salesMgmtCommonService.bizMakeOptionList("AR", "", "salesMgmtCommon.getCodeList"));
// 수주상태
codeMap.put("orderStatusList",
commonService.bizMakeOptionList("0000932", "", "common.getCodeselect"));
// 출하대기 상태
codeMap.put("shippingStatusList",
salesMgmtCommonService.bizMakeOptionList("SH", "", "salesMgmtCommon.getCodeList"));
// 담당자
codeMap.put("managerList",
salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList"));
request.setAttribute("codeMap", codeMap);
} catch (Exception e) {
e.printStackTrace();
}
return "/salesmgmt/salesMgmt/salesMgmtList";
}
/**
*
* 매출관리 그리드 데이터 조회 (Tabulator용)
*
* @param request
* @param paramMap - 검색 정보
* @return Map
*/
@ResponseBody
@RequestMapping(value = "/revenueMgmt/revenueGridList.do", method = RequestMethod.POST)
public Map salesMgmtGridList(HttpServletRequest request, @RequestParam Map paramMap) {
Map resultMap = new HashMap();
try {
System.out.println("===== revenueGridList.do 파라미터 =====");
System.out.println("paramMap: " + paramMap);
List