견적요청서관리 기능 개발

This commit is contained in:
2026-01-19 12:06:41 +09:00
parent ec94dde67a
commit d6a75db657
7 changed files with 2263 additions and 30 deletions

View File

@@ -1538,4 +1538,222 @@ public class SalesMngController {
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;
}
}