546 lines
17 KiB
Java
546 lines
17 KiB
Java
/*
|
|
* 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;
|
|
|
|
/**
|
|
* <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
|
|
private SalesNcollectMgmtService salseNcollectMgmtService;
|
|
|
|
/** 영업관리 공통 Service */
|
|
@Autowired
|
|
private SalesMgmtCommonService salesMgmtCommonService;
|
|
|
|
@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
|
|
*/
|
|
@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("paymentTypeList",
|
|
salesMgmtCommonService.bizMakeOptionList("0000156", "", "salesMgmtCommon.getCodeList"));
|
|
*/
|
|
// 수주상태
|
|
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",
|
|
salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList"));
|
|
/*
|
|
// 인도조건
|
|
codeMap.put("incotermsList",
|
|
salesMgmtCommonService.bizMakeOptionList("IT", "", "salesMgmtCommon.getCodeList"));
|
|
*/
|
|
|
|
request.setAttribute("codeMap", codeMap);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "/salesmgmt/salesMgmt/salesMgmtList";
|
|
}
|
|
|
|
/**
|
|
* <pre>
|
|
* 매출관리 그리드 데이터 조회 (Tabulator용)
|
|
* </pre>
|
|
* @param request
|
|
* @param paramMap - 검색 정보
|
|
* @return Map
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping(value = "/salesMgmt/salesMgmtGridList.do", method = RequestMethod.POST)
|
|
public Map<String, Object> salesMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
try {
|
|
List<Map<String, Object>> list = salseNcollectMgmtService.getSalesMgmtGridList(request, paramMap);
|
|
int totalCount = salseNcollectMgmtService.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;
|
|
}
|
|
|
|
/**
|
|
* <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 {
|
|
List<Map<String,Object>> list = salseNcollectMgmtService.getSalseAllByOrderNo(request, paramMap);
|
|
|
|
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)) {
|
|
// 매출관리 조회
|
|
info = salseNcollectMgmtService.getSalesMgmt(paramMap);
|
|
} 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 {
|
|
resultMap.put("RESULT", salseNcollectMgmtService.saveSalesMgmt(request, paramMap));
|
|
} 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 {
|
|
resultMap.put("RESULT", salseNcollectMgmtService.deleteSalesMgmt(request, paramMap));
|
|
|
|
|
|
|
|
} 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 {
|
|
List<Map<String,Object>> list = salseNcollectMgmtService.getCollectAllByOrderNo(request, paramMap);
|
|
|
|
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)) {
|
|
// 수금관리 조회
|
|
info = salseNcollectMgmtService.getCollectMgmt(paramMap);
|
|
} 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"));
|
|
|
|
*/
|
|
|
|
//하단 그리드를 위한 수금 목록 조회
|
|
List<Map<String,Object>> list = salseNcollectMgmtService.getCollectAllByOrderNo(request, paramMap);
|
|
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 {
|
|
resultMap.put("RESULT", salseNcollectMgmtService.saveCollectMgmt(request, paramMap));
|
|
|
|
} 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 {
|
|
resultMap.put("RESULT", salseNcollectMgmtService.deleteCollectMgmt(request, paramMap));
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return resultMap;
|
|
}
|
|
}
|