2025-08-29 15:46:08 +09:00
|
|
|
/*
|
|
|
|
|
* 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;
|
2025-10-17 12:09:17 +09:00
|
|
|
import com.pms.service.CommonService;
|
2025-08-29 15:46:08 +09:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 매출수금관리 Controller
|
|
|
|
|
* </pre>
|
|
|
|
|
* @since 2021.11.05
|
|
|
|
|
* @author min
|
|
|
|
|
* @version 1.0
|
|
|
|
|
*
|
|
|
|
|
* <pre>
|
|
|
|
|
* << 개정 이력 >>
|
|
|
|
|
*
|
|
|
|
|
* 수정일 수정자 수정내용
|
|
|
|
|
* ---------------- --------------------- --------------------------------------------------------
|
|
|
|
|
* 2021.11.05 민상익 최초작성
|
|
|
|
|
*
|
|
|
|
|
* </pre>
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
@Controller
|
|
|
|
|
public class SalesNcollectMgmtController {
|
|
|
|
|
|
|
|
|
|
/** 계약관리 Service */
|
|
|
|
|
@Autowired
|
|
|
|
|
private ContractMgmtService contractMgmtService;
|
|
|
|
|
|
|
|
|
|
/** 매출수금 Service */
|
|
|
|
|
@Autowired
|
2025-10-20 23:04:30 +09:00
|
|
|
private SalesNcollectMgmtService salesNcollectMgmtService;
|
2025-08-29 15:46:08 +09:00
|
|
|
|
|
|
|
|
/** 영업관리 공통 Service */
|
|
|
|
|
@Autowired
|
|
|
|
|
private SalesMgmtCommonService salesMgmtCommonService;
|
|
|
|
|
|
2025-10-17 12:09:17 +09:00
|
|
|
@Autowired
|
|
|
|
|
private CommonService commonService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 매출관리 메인 페이지 (메뉴 진입점)
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 검색 정보
|
|
|
|
|
* @return String
|
|
|
|
|
*
|
|
|
|
|
* <pre>
|
|
|
|
|
* << 개정 이력 >>
|
|
|
|
|
*
|
|
|
|
|
* 수정일 수정자 수정내용
|
|
|
|
|
* ---------------- --------------------- ----------------------------------------------------------
|
|
|
|
|
* 2025.10.15 수정 메뉴 URL 매핑 추가
|
|
|
|
|
*
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value = "/salesMgmt/salesMgmtList.do", method = RequestMethod.GET)
|
|
|
|
|
public String salesMgmtList(HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
// /salesNcollectMgmt/contractList.do로 리다이렉트
|
|
|
|
|
return salesContractList(request, paramMap);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 매출관리 목록 페이지
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 검색 정보
|
|
|
|
|
* @return String
|
|
|
|
|
*/
|
2025-10-17 17:18:05 +09:00
|
|
|
@RequestMapping(value = "/revenueMgmt/revenueList.do", method = RequestMethod.GET)
|
|
|
|
|
public String showRevenueMgmtList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
2025-10-17 12:09:17 +09:00
|
|
|
try {
|
|
|
|
|
// 코드정보
|
|
|
|
|
Map<String, Object> codeMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
// 주문유형
|
2025-10-22 20:53:46 +09:00
|
|
|
codeMap.put("orderTypeList" , commonService.bizMakeOptionList("0000167", "" , "common.getCodeselect"));
|
|
|
|
|
|
2025-10-17 12:09:17 +09:00
|
|
|
// 제품구분
|
2025-10-22 20:53:46 +09:00
|
|
|
codeMap.put("productTypeList", commonService.bizMakeOptionList("0000001", "", "common.getCodeselect"));
|
|
|
|
|
|
2025-10-17 12:09:17 +09:00
|
|
|
// 국내/해외
|
2025-10-22 20:53:46 +09:00
|
|
|
codeMap.put("nationList", commonService.bizMakeOptionList("0001219", "", "common.getCodeselect"));
|
|
|
|
|
//고객사
|
|
|
|
|
codeMap.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")),"common.getsupplyselect"));
|
2025-10-17 12:09:17 +09:00
|
|
|
/*
|
|
|
|
|
// 유/무상
|
|
|
|
|
codeMap.put("paymentTypeList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("0000156", "", "salesMgmtCommon.getCodeList"));
|
|
|
|
|
*/
|
|
|
|
|
// 수주상태
|
2025-10-22 20:53:46 +09:00
|
|
|
codeMap.put("orderStatusList", commonService.bizMakeOptionList("0000963", "", "common.getCodeselect"));
|
|
|
|
|
//codeMap.put("orderStatusList",
|
|
|
|
|
// commonService.bizMakeOptionList("0000932", "", "common.getCodeselect"));
|
2025-10-17 12:09:17 +09:00
|
|
|
// 출하대기 상태
|
|
|
|
|
codeMap.put("shippingStatusList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("SH", "", "salesMgmtCommon.getCodeList"));
|
|
|
|
|
/*
|
|
|
|
|
// 출고방법
|
|
|
|
|
codeMap.put("shippingMethodList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("SM", "", "salesMgmtCommon.getCodeList"));
|
|
|
|
|
*/
|
|
|
|
|
// 담당자
|
2025-10-22 20:53:46 +09:00
|
|
|
codeMap.put("managerList", commonService.bizMakeOptionList("", "", "common.getUserselect"));
|
|
|
|
|
//codeMap.put("managerList",
|
|
|
|
|
// salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList"));
|
2025-10-17 12:09:17 +09:00
|
|
|
/*
|
|
|
|
|
// 인도조건
|
|
|
|
|
codeMap.put("incotermsList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("IT", "", "salesMgmtCommon.getCodeList"));
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
request.setAttribute("codeMap", codeMap);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
2025-10-17 17:18:05 +09:00
|
|
|
return "/salesmgmt/salesMgmt/revenueMgmtList";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 신규 매출관리 목록 페이지
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 검색 정보
|
|
|
|
|
* @return String
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value = "/contractMgmt/salesMgmtList.do", method = RequestMethod.GET)
|
|
|
|
|
public String showSalesMgmtList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
try {
|
|
|
|
|
// 코드정보 (기존 로직과 동일하게 설정 가능)
|
|
|
|
|
Map<String, Object> codeMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
// 주문유형
|
|
|
|
|
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();
|
|
|
|
|
}
|
2025-10-17 12:09:17 +09:00
|
|
|
return "/salesmgmt/salesMgmt/salesMgmtList";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 매출관리 그리드 데이터 조회 (Tabulator용)
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 검색 정보
|
|
|
|
|
* @return Map
|
|
|
|
|
*/
|
|
|
|
|
@ResponseBody
|
2025-10-17 17:18:05 +09:00
|
|
|
@RequestMapping(value = "/revenueMgmt/revenueGridList.do", method = RequestMethod.POST)
|
2025-10-17 12:09:17 +09:00
|
|
|
public Map<String, Object> salesMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
try {
|
2025-10-20 23:04:30 +09:00
|
|
|
System.out.println("===== revenueGridList.do 파라미터 =====");
|
|
|
|
|
System.out.println("paramMap: " + paramMap);
|
|
|
|
|
|
|
|
|
|
List<Map<String, Object>> list = salesNcollectMgmtService.getSalesMgmtGridList(request, paramMap);
|
|
|
|
|
int totalCount = salesNcollectMgmtService.getSalesMgmtGridListCount(paramMap);
|
|
|
|
|
Map<String, Object> totals = salesNcollectMgmtService.getSalesMgmtTotals(paramMap);
|
|
|
|
|
|
|
|
|
|
System.out.println("list size: " + list.size());
|
|
|
|
|
System.out.println("totalCount: " + totalCount);
|
|
|
|
|
System.out.println("totals: " + totals);
|
2025-10-17 12:09:17 +09:00
|
|
|
|
|
|
|
|
resultMap.put("RESULTLIST", list);
|
|
|
|
|
resultMap.put("last_page", (int) Math.ceil((double)totalCount / Integer.parseInt(CommonUtils.checkNull(request.getParameter("size"), "10"))));
|
2025-10-20 23:04:30 +09:00
|
|
|
resultMap.put("TOTALS", totals); // Total 공급가액, 부가세, 총액
|
2025-10-17 12:09:17 +09:00
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
// Tabulator는 에러 발생 시 빈 배열을 기대합니다.
|
|
|
|
|
resultMap.put("RESULTLIST", new java.util.ArrayList<>());
|
|
|
|
|
resultMap.put("last_page", 0);
|
2025-10-20 23:04:30 +09:00
|
|
|
|
|
|
|
|
// Total 초기화
|
|
|
|
|
Map<String, Object> emptyTotals = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
emptyTotals.put("TOTAL_SUPPLY_PRICE", 0);
|
|
|
|
|
emptyTotals.put("TOTAL_VAT", 0);
|
|
|
|
|
emptyTotals.put("TOTAL_AMOUNT", 0);
|
|
|
|
|
resultMap.put("TOTALS", emptyTotals);
|
2025-10-17 12:09:17 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-17 17:18:05 +09:00
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 판매등록 폼 팝업
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap
|
|
|
|
|
* @return String
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value = "/salesMgmt/salesRegForm.do", method = RequestMethod.GET)
|
|
|
|
|
public String showSalesRegForm(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
try {
|
2025-10-22 17:22:02 +09:00
|
|
|
// URL 인코딩 처리: 한글 프로젝트 번호 디코딩
|
|
|
|
|
if(paramMap.get("orderNo") != null) {
|
|
|
|
|
String orderNo = paramMap.get("orderNo").toString();
|
|
|
|
|
// 이미 디코딩된 경우와 구분하기 위해 %가 포함된 경우에만 디코딩
|
|
|
|
|
if(orderNo.contains("%")) {
|
|
|
|
|
try {
|
|
|
|
|
orderNo = java.net.URLDecoder.decode(orderNo, "UTF-8");
|
|
|
|
|
paramMap.put("orderNo", orderNo);
|
|
|
|
|
} catch(Exception ex) {
|
|
|
|
|
// 디코딩 실패시 원본 사용
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-22 19:37:35 +09:00
|
|
|
Map<String, Object> codeMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
// 담당자
|
|
|
|
|
codeMap.put("managerList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList"));
|
|
|
|
|
|
2025-10-22 21:00:17 +09:00
|
|
|
// 기존 판매 정보 조회 후 환종(통화) 공통코드 세팅
|
|
|
|
|
Map<String, Object> saleInfo = null;
|
|
|
|
|
String salesCurrency = "";
|
|
|
|
|
if(paramMap.get("orderNo") != null && !paramMap.get("orderNo").equals("")) {
|
|
|
|
|
saleInfo = salesNcollectMgmtService.getSaleInfo(paramMap);
|
|
|
|
|
salesCurrency = CommonUtils.nullToEmpty((String)saleInfo.get("SALES_CURRENCY"));
|
|
|
|
|
request.setAttribute("saleInfo", saleInfo);
|
2025-10-22 19:37:35 +09:00
|
|
|
|
2025-10-22 21:00:17 +09:00
|
|
|
// orderInfo로 견적 정보 전달 (saleInfo가 이미 모든 필요한 정보를 포함)
|
|
|
|
|
request.setAttribute("orderInfo", saleInfo);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 환종(통화) - 공통코드 0001533
|
|
|
|
|
codeMap.put("salesCurrency",
|
|
|
|
|
commonService.bizMakeOptionList("0001533", salesCurrency, "common.getCodeselect"));
|
|
|
|
|
|
|
|
|
|
request.setAttribute("codeMap", codeMap);
|
2025-10-17 17:18:05 +09:00
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
return "/salesmgmt/salesMgmt/salesRegForm";
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-20 23:04:30 +09:00
|
|
|
@RequestMapping(value = "/salesMgmt/salesMgmtGridList.do", method = RequestMethod.POST)
|
|
|
|
|
@ResponseBody
|
|
|
|
|
public Map<String, Object> getSalesMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
List<Map<String, Object>> list = salesNcollectMgmtService.getSalesMgmtGridList(request, paramMap);
|
|
|
|
|
int totalCount = salesNcollectMgmtService.getSalesMgmtGridListCount(paramMap);
|
|
|
|
|
|
|
|
|
|
resultMap.put("RESULTLIST", list);
|
|
|
|
|
resultMap.put("last_page", (int) Math.ceil((double)totalCount / Integer.parseInt(CommonUtils.checkNull(request.getParameter("size"), "10"))));
|
|
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
// Tabulator는 에러 발생 시 빈 배열을 기대합니다.
|
|
|
|
|
resultMap.put("RESULTLIST", new java.util.ArrayList<>());
|
|
|
|
|
resultMap.put("last_page", 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "/salesMgmt/saveSales.do", method = RequestMethod.POST)
|
|
|
|
|
@ResponseBody
|
|
|
|
|
public Map<String, Object> saveSales(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
|
try {
|
|
|
|
|
resultMap = salesNcollectMgmtService.saveSaleRegistration(request, paramMap);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
resultMap.put("result", false);
|
|
|
|
|
resultMap.put("msg", "저장 중 오류가 발생했습니다.");
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 분할출하 팝업 폼
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap
|
|
|
|
|
* @return String
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value = "/salesMgmt/splitShipmentForm.do", method = RequestMethod.GET)
|
|
|
|
|
public String showSplitShipmentForm(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
try {
|
|
|
|
|
Map<String, Object> codeMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
// 담당자
|
|
|
|
|
codeMap.put("managerList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList"));
|
|
|
|
|
|
|
|
|
|
request.setAttribute("codeMap", codeMap);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
return "/salesmgmt/salesMgmt/splitShipmentForm";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 분할출하 저장 처리
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 분할출하 정보
|
|
|
|
|
* @return Map
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value = "/salesMgmt/saveSplitShipment.do", method = RequestMethod.POST)
|
|
|
|
|
@ResponseBody
|
|
|
|
|
public Map<String, Object> saveSplitShipment(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
|
try {
|
|
|
|
|
resultMap = salesNcollectMgmtService.splitShipment(request, paramMap);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
resultMap.put("result", false);
|
|
|
|
|
resultMap.put("msg", "분할출하 처리 중 오류가 발생했습니다.");
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 계약관리 목록 조회
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 계약관리 검색 정보
|
|
|
|
|
* @return String
|
|
|
|
|
*
|
|
|
|
|
* <pre>
|
|
|
|
|
* << 개정 이력 >>
|
|
|
|
|
*
|
|
|
|
|
* 수정일 수정자 수정내용
|
|
|
|
|
* ---------------- --------------------- ----------------------------------------------------------
|
|
|
|
|
* 2021.11.05 민상익 최초작성
|
|
|
|
|
*
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value = "/salesNcollectMgmt/contractList.do", method = RequestMethod.GET)
|
|
|
|
|
public String salesContractList(HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
String orderNo = request.getParameter("orderNo");
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
List<Map<String,Object>> list = contractMgmtService.getContractMgmtAll(request, paramMap);
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(orderNo) && list != null && !list.isEmpty()) {
|
|
|
|
|
Map<String,Object> dataMap = list.get(0);
|
|
|
|
|
orderNo = (String) dataMap.get("ORDERNO");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
request.setAttribute("LIST", list);
|
|
|
|
|
request.setAttribute("orderNo", orderNo);
|
|
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "/salesmgmt/salesNcollectMgmt/contractMgmtList";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 매출등록 목록 조회
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 계약관리 검색 정보
|
|
|
|
|
* @return String
|
|
|
|
|
*
|
|
|
|
|
* <pre>
|
|
|
|
|
* << 개정 이력 >>
|
|
|
|
|
*
|
|
|
|
|
* 수정일 수정자 수정내용
|
|
|
|
|
* ---------------- --------------------- ----------------------------------------------------------
|
|
|
|
|
* 2021.11.05 민상익 최초작성
|
|
|
|
|
*
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value = "/salesNcollectMgmt/sales.do", method = RequestMethod.GET)
|
|
|
|
|
public String sales(HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
try {
|
2025-10-20 23:04:30 +09:00
|
|
|
List<Map<String,Object>> list = salesNcollectMgmtService.getSalseAllByOrderNo(request, paramMap);
|
2025-08-29 15:46:08 +09:00
|
|
|
|
|
|
|
|
request.setAttribute("LIST", list);
|
|
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "/salesmgmt/salesNcollectMgmt/salesMgmt";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 매출등록 상세 조회
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 매출등록 검색 정보
|
|
|
|
|
* @return String
|
|
|
|
|
*
|
|
|
|
|
* <pre>
|
|
|
|
|
* << 개정 이력 >>
|
|
|
|
|
*
|
|
|
|
|
* 수정일 수정자 수정내용
|
|
|
|
|
* ---------------- --------------------- ----------------------------------------------------------
|
|
|
|
|
* 2021.11.05 민상익 최초작성
|
|
|
|
|
*
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/salesNcollectMgmt/salesMgmtFormPopup.do")
|
|
|
|
|
public String salesMgmt(HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
String saleNo = CommonUtils.checkNull(paramMap.get("saleNo"));
|
|
|
|
|
Map<String, Object> info = null;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
if(StringUtils.isNotBlank(saleNo)) {
|
|
|
|
|
// 매출관리 조회
|
2025-10-20 23:04:30 +09:00
|
|
|
info = salesNcollectMgmtService.getSalesMgmt(paramMap);
|
2025-08-29 15:46:08 +09:00
|
|
|
} else {
|
|
|
|
|
info = new HashMap<String, Object>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 계약관리 조회
|
|
|
|
|
Map<String, Object> contractInfo = contractMgmtService.getContractMgmt(paramMap);
|
|
|
|
|
if (info == null || !info.containsKey("SALENO")) {
|
|
|
|
|
String custCd = (String) contractInfo.get("CUSTCD"); // 고객코드
|
|
|
|
|
String custNm = (String) contractInfo.get("CUSTNM"); // 고객명
|
|
|
|
|
int goodsQty = (Integer) contractInfo.get("GOODSQTY"); // 계약수량
|
|
|
|
|
long salePrice = Integer.parseInt(String.valueOf((BigDecimal) contractInfo.get("SALEPRICE"))); // 계약단가
|
|
|
|
|
long saleAmt = Integer.parseInt(String.valueOf((BigDecimal) contractInfo.get("SALEAMT"))); // 계약금액
|
|
|
|
|
long vatAmt = Integer.parseInt(String.valueOf((BigDecimal) contractInfo.get("VATAMT"))); // 부가세
|
|
|
|
|
|
|
|
|
|
info.put("CUSTCD", custCd); // 고객코드
|
|
|
|
|
info.put("CUSTNM", custNm); // 고객명
|
|
|
|
|
info.put("SUPPLYQTY", goodsQty); // 계약수량
|
|
|
|
|
info.put("SUPPLYPRICE", salePrice); // 계약단가
|
|
|
|
|
info.put("SUPPLYAMT", saleAmt); // 계약금액
|
|
|
|
|
info.put("SUPPLYVAT", vatAmt); // 부가세
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 코드정보
|
|
|
|
|
Map<String, Object> codeMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
//과세 유형
|
|
|
|
|
codeMap.put("taxTypeList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("DB", (String) info.get("TAXTYPE"), "salesMgmtCommon.getCodeList"));
|
|
|
|
|
|
|
|
|
|
request.setAttribute("info", info);
|
|
|
|
|
request.setAttribute("codeMap", codeMap);
|
|
|
|
|
request.setAttribute("contractInfo", contractInfo);
|
|
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "/salesmgmt/salesNcollectMgmt/salesFormPopup";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 매출관리 저장
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 고객관리 정보
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@RequestMapping("/salesNcollectMgmt/saveSalesMgmt.do")
|
|
|
|
|
public Map<String, Object> saveSalesMgmt(HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
try {
|
2025-10-20 23:04:30 +09:00
|
|
|
resultMap.put("RESULT", salesNcollectMgmtService.saveSalesMgmt(request, paramMap));
|
2025-08-29 15:46:08 +09:00
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 매출관리 삭제
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 고객관리 정보
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@RequestMapping("/salesNcollectMgmt/deleteSalesMgmt.do")
|
|
|
|
|
public Map<String, Object> deleteSalesMgmt(HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
try {
|
2025-10-20 23:04:30 +09:00
|
|
|
resultMap.put("RESULT", salesNcollectMgmtService.deleteSalesMgmt(request, paramMap));
|
2025-08-29 15:46:08 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/********************************************************************************************************************************
|
|
|
|
|
********************************************************************************************************************************
|
|
|
|
|
수금관리 시작
|
|
|
|
|
********************************************************************************************************************************
|
|
|
|
|
********************************************************************************************************************************/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 수금 목록 조회
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap -
|
|
|
|
|
* @return String
|
|
|
|
|
*
|
|
|
|
|
* <pre>
|
|
|
|
|
* << 개정 이력 >>
|
|
|
|
|
*
|
|
|
|
|
* 수정일 수정자 수정내용
|
|
|
|
|
* ---------------- --------------------- ----------------------------------------------------------
|
|
|
|
|
* 2021.11.05 민상익 최초작성
|
|
|
|
|
*
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value = "/salesNcollectMgmt/collect.do", method = RequestMethod.GET)
|
|
|
|
|
public String collect(HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
|
|
|
|
|
try {
|
2025-10-20 23:04:30 +09:00
|
|
|
List<Map<String,Object>> list = salesNcollectMgmtService.getCollectAllByOrderNo(request, paramMap);
|
2025-08-29 15:46:08 +09:00
|
|
|
|
|
|
|
|
request.setAttribute("LIST", list);
|
|
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "/salesmgmt/salesNcollectMgmt/collectMgmt";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 수금 상세 조회
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param session
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 매출 검색 정보
|
|
|
|
|
* @return String
|
|
|
|
|
*
|
|
|
|
|
* <pre>
|
|
|
|
|
* << 개정 이력 >>
|
|
|
|
|
*
|
|
|
|
|
* 수정일 수정자 수정내용
|
|
|
|
|
* ---------------- --------------------- ----------------------------------------------------------
|
|
|
|
|
* 2021.11.05 민상익 최초작성
|
|
|
|
|
*
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("/salesNcollectMgmt/collectMgmtFormPopup.do")
|
|
|
|
|
public String collectMgmt(HttpSession session
|
|
|
|
|
, HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
|
|
|
|
|
String saleNo = CommonUtils.checkNull(paramMap.get("rcptNo"));
|
|
|
|
|
Map<String, Object> info = null;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
System.out.println("paramMap##################### " + paramMap);
|
|
|
|
|
if(StringUtils.isNotBlank(saleNo)) {
|
|
|
|
|
// 수금관리 조회
|
2025-10-20 23:04:30 +09:00
|
|
|
info = salesNcollectMgmtService.getCollectMgmt(paramMap);
|
2025-08-29 15:46:08 +09:00
|
|
|
} else {
|
|
|
|
|
info = new HashMap<String, Object>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 계약관리 조회
|
|
|
|
|
Map<String, Object> contractInfo = contractMgmtService.getContractMgmt(paramMap);
|
|
|
|
|
if (info == null || !info.containsKey("RCPTNO")) {
|
|
|
|
|
String custCd = (String) contractInfo.get("CUSTCD"); // 고객코드
|
|
|
|
|
long saleAmt = Integer.parseInt(String.valueOf((BigDecimal) contractInfo.get("SALEAMT"))); // 계약금액
|
|
|
|
|
|
|
|
|
|
info.put("CUSTCD", custCd); // 고객코드
|
|
|
|
|
info.put("RCPTAMT", saleAmt); // 수금금액
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 코드정보
|
|
|
|
|
Map<String, Object> codeMap = new HashMap<String, Object>();
|
|
|
|
|
System.out.println("info##################### " + info);
|
|
|
|
|
|
|
|
|
|
//고객
|
|
|
|
|
codeMap.put("customerList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("", (String) info.get("CUSTCD"), "salesMgmtCommon.getCustomerList"));
|
|
|
|
|
|
|
|
|
|
//계정과목
|
|
|
|
|
codeMap.put("accountTypeList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("AK", (String) info.get("ACCOUNTTYPE"), "salesMgmtCommon.getCodeList"));
|
|
|
|
|
|
|
|
|
|
//자금구분
|
|
|
|
|
codeMap.put("fundsTypeList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("AM", (String) info.get("FUNDSTYPE"), "salesMgmtCommon.getCodeList"));
|
|
|
|
|
|
|
|
|
|
//자금 유형
|
|
|
|
|
codeMap.put("aoTypeList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("AO", (String) info.get("AOTYPE"), "salesMgmtCommon.getCodeList"));
|
|
|
|
|
|
|
|
|
|
/* // 영업부서
|
|
|
|
|
codeMap.put("deptList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("", (String) info.get("DEPTCD"), "salesMgmtCommon.getDeptList"));
|
|
|
|
|
|
|
|
|
|
// 영업담당자
|
|
|
|
|
codeMap.put("SalesmanList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("", (String) info.get("SALESMAN"), "salesMgmtCommon.getSalesmanList"));
|
|
|
|
|
// 고객지역
|
|
|
|
|
codeMap.put("areaList",
|
|
|
|
|
salesMgmtCommonService.bizMakeOptionList("AR", (String) info.get("CUSTAREA"), "salesMgmtCommon.getCodeList"));
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//하단 그리드를 위한 수금 목록 조회
|
2025-10-20 23:04:30 +09:00
|
|
|
List<Map<String,Object>> list = salesNcollectMgmtService.getCollectAllByOrderNo(request, paramMap);
|
2025-08-29 15:46:08 +09:00
|
|
|
request.setAttribute("LIST", list);
|
|
|
|
|
|
|
|
|
|
request.setAttribute("info", info);
|
|
|
|
|
request.setAttribute("codeMap", codeMap);
|
|
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "/salesmgmt/salesNcollectMgmt/collectFormPopup";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 수금관리 저장
|
|
|
|
|
* </pre>
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap -
|
|
|
|
|
* @return String
|
|
|
|
|
*
|
|
|
|
|
* <pre>
|
|
|
|
|
* << 개정 이력 >>
|
|
|
|
|
*
|
|
|
|
|
* 수정일 수정자 수정내용
|
|
|
|
|
* ---------------- --------------------- ----------------------------------------------------------
|
|
|
|
|
* 2021.11.05 민상익 최초작성
|
|
|
|
|
*
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@RequestMapping("/salesNcollectMgmt/saveCollectMgmt.do")
|
|
|
|
|
public Map<String, Object> saveCollectMgmt(HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
|
System.out.println("ctr::paramMap##################### " + paramMap);
|
|
|
|
|
try {
|
2025-10-20 23:04:30 +09:00
|
|
|
resultMap.put("RESULT", salesNcollectMgmtService.saveCollectMgmt(request, paramMap));
|
2025-08-29 15:46:08 +09:00
|
|
|
|
|
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 수금관리 삭제
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap - 고객관리 정보
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@RequestMapping("/salesNcollectMgmt/deleteCollectMgmt.do")
|
|
|
|
|
public Map<String, Object> deleteCollectMgmt(HttpServletRequest request
|
|
|
|
|
, @RequestParam Map<String, Object> paramMap) {
|
|
|
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
try {
|
2025-10-20 23:04:30 +09:00
|
|
|
resultMap.put("RESULT", salesNcollectMgmtService.deleteCollectMgmt(request, paramMap));
|
2025-08-29 15:46:08 +09:00
|
|
|
} catch(Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
2025-10-22 20:53:46 +09:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 매출마감 처리
|
|
|
|
|
* @param request
|
|
|
|
|
* @param paramMap
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@RequestMapping("/salesNcollectMgmt/salesDeadlineConfirm.do")
|
|
|
|
|
public Map salesDeadlineConfirm(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
|
|
|
Map resultMap = salesNcollectMgmtService.salesDeadlineConfirm(request, paramMap);
|
|
|
|
|
return resultMap;
|
|
|
|
|
}
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|