Files
wace_plm/src/com/pms/salesmgmt/service/ContractMgmtService.java
hjjeong 60356f886c feat: 견적서 작성 기능 추가 (일반 견적서, 장비 견적서)
- 견적서 템플릿 2종 추가 (estimateTemplate1.jsp, estimateTemplate2.jsp)
- 견적서 작성 팝업 기능 구현 (estimateList_new.jsp)
- 견적서 템플릿 컨트롤러 및 서비스 메서드 추가
- 견적서 템플릿용 DB 테이블 스키마 생성 스크립트 추가
- 회사 직인 이미지 추가
- 견적서 양식: A4 인쇄 최적화, 동적 품목 추가/수정, 자동 금액 계산
2025-10-15 15:45:34 +09:00

1343 lines
39 KiB
Java

/*
* ContractMgmtService
*
* 1.0
*
* 2021.10.01
*
* Copyright ions
*/
package com.pms.salesmgmt.service;
import java.io.File;
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.commons.lang3.StringUtils;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.pms.common.Message;
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.service.CommonService;
/**
* <pre>
* 계약관리 Service
* </pre>
* @since 2021.10.01
* @author kim
* @version 1.0
*
* <pre>
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* ---------------- --------------------- --------------------------------------------------------
* 2021.10.01 김효일 최초작성
*
* </pre>
*
*/
@Service
public class ContractMgmtService {
@Autowired
CommonService commonService;
/**
* <pre>
* 계약관리 목록 조회
* </pre>
* @param request
* @param paramMap - 계약관리 검색 정보
* @return List<Map<String,Object>>
*
* <pre>
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* ---------------- --------------------- ----------------------------------------------------------
* 2021.10.01 김효일 최초작성
*
* </pre>
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public List<Map<String,Object>> getContractMgmtAll(HttpServletRequest request
, Map<String, Object> paramMap) {
List<Map<String,Object>> resultList = new ArrayList<Map<String,Object>>();
SqlSession sqlSession = null;
try {
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
Map pageMap = (HashMap) sqlSession.selectOne("contractMgmt.getContractMgmtListCnt", paramMap);
pageMap = (HashMap) CommonUtils.setPagingInfo(request, pageMap);
paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END")));
paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START")));
resultList = (ArrayList) sqlSession.selectList("contractMgmt.getContractMgmtList", paramMap);
} catch(Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* <pre>
* 고객, 딜러, 제품를 선택한 계약관리 목록 조회
* </pre>
* @param request
* @param paramMap - 계약관리 검색 정보
* @return List<Map<String,Object>>
*
* <pre>
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* ---------------- --------------------- ----------------------------------------------------------
* 2021.10.01 김효일 최초작성
*
* </pre>
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public List<Map<String,Object>> getContractMgmtListRelation(HttpServletRequest request
, Map<String, Object> paramMap) {
List<Map<String,Object>> resultList = new ArrayList<Map<String,Object>>();
SqlSession sqlSession = null;
try {
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = (ArrayList) sqlSession.selectList("contractMgmt.getContractMgmtListRelation", paramMap);
} catch(Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* <pre>
* 계약관리 조회
* </pre>
* @param paramMap - 계약관리 검색 정보
* @return Map<String, Object>
*
* <pre>
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* ---------------- --------------------- ----------------------------------------------------------
* 2021.10.01 김효일 최초작성
*
* </pre>
*/
public Map<String, Object> getContractMgmt(Map<String, Object> paramMap) {
Map<String, Object> resultMap = new HashMap<String, Object>();
SqlSession sqlSession = null;
try {
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("contractMgmt.getContractMgmt", paramMap);
} catch(Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultMap);
}
/**
* <pre>
* 계약관리 등록
* </pre>
* @param paramMap - 계약관리 정보
*
* <pre>
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* ---------------- --------------------- ----------------------------------------------------------
* 2021.10.01 김효일 최초작성
*
* </pre>
*/
public Map<String, Object> saveContractMgmt(HttpServletRequest request
, Map<String, Object> paramMap){
Map<String, Object> resultMap = new HashMap<String, Object>();
SqlSession sqlSession = null;
try {
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
String orderDate = (String) paramMap.get("orderDate"); // 계약일자
orderDate = orderDate.replaceAll("[^0-9]", "");
paramMap.put("orderDate", orderDate);
String finishDate = (String) paramMap.get("finishDate"); // 최종납기일
finishDate = finishDate.replaceAll("[^0-9]", "");
paramMap.put("finishDate", finishDate);
String orderYm = orderDate.substring(0, 6); // 계약년월
paramMap.put("orderYm", orderYm);
if (paramMap.containsKey("goodsGuarantee") && StringUtils.isBlank((String) paramMap.get("goodsGuarantee"))) {
paramMap.put("goodsGuarantee", null);
}
if (paramMap.containsKey("goodsQty") && StringUtils.isBlank((String) paramMap.get("goodsQty"))) {
paramMap.put("goodsQty", null);
}
if (paramMap.containsKey("saleQty") && StringUtils.isBlank((String) paramMap.get("saleQty"))) {
paramMap.put("saleQty", null);
}
if (paramMap.containsKey("saleQty1") && StringUtils.isBlank((String) paramMap.get("saleQty1"))) {
paramMap.put("saleQty1", null);
}
if (paramMap.containsKey("supplyQty") && StringUtils.isBlank((String) paramMap.get("supplyQty"))) {
paramMap.put("supplyQty", null);
}
if (paramMap.containsKey("salePrice") && StringUtils.isBlank((String) paramMap.get("salePrice"))) {
paramMap.put("salePrice", null);
}
if (paramMap.containsKey("saleAmt") && StringUtils.isBlank((String) paramMap.get("saleAmt"))) {
paramMap.put("saleAmt", null);
}
if (paramMap.containsKey("vatAmt") && StringUtils.isBlank((String) paramMap.get("vatAmt"))) {
paramMap.put("vatAmt", null);
}
if (paramMap.containsKey("supplyAmt") && StringUtils.isBlank((String) paramMap.get("supplyAmt"))) {
paramMap.put("supplyAmt", null);
}
if (paramMap.containsKey("rcptAmt") && StringUtils.isBlank((String) paramMap.get("rcptAmt"))) {
paramMap.put("rcptAmt", null);
}
if (StringUtils.isBlank((String) paramMap.get("orderNo"))) {
String acntUnit = (String) paramMap.get("acntUnit"); // 사업부
int orderSer = sqlSession.selectOne("contractMgmt.getContractMgmtOrderSer", paramMap); // 일련번호
paramMap.put("orderSer", orderSer);
// 계약번호 생성
String orderNo = acntUnit + orderYm + StringUtils.leftPad(String.valueOf(orderSer), 3, "0");
paramMap.put("orderNo", orderNo);
}
// 작성자
PersonBean person = (PersonBean) request.getSession().getAttribute(Constants.PERSON_BEAN);
paramMap.put("cretEmpNo", person.getUserId());
String cancelFlag = request.getParameter("cancelFlag");
if (StringUtils.isBlank(cancelFlag) || !"Y".equals(cancelFlag)) {
cancelFlag = "N";
paramMap.put("cancelFlag", cancelFlag);
} else {
// 취소자
paramMap.put("cancelWorkMan", person.getUserId());
}
int cnt = sqlSession.update("contractMgmt.insertContractMgmt", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}
sqlSession.commit();
} catch(Exception e) {
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
} finally {
sqlSession.close();
}
return resultMap;
}
/**
* <pre>
* 계약관리 삭제
* </pre>
* @param paramMap - 계약관리 정보
*
* <pre>
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* ---------------- --------------------- ----------------------------------------------------------
* 2021.10.01 김효일 최초작성
*
* </pre>
*/
public Map<String, Object> deleteContractMgmt(HttpServletRequest request
, Map<String, Object> paramMap){
Map<String, Object> resultMap = new HashMap<String, Object>();
SqlSession sqlSession = null;
try {
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
// 취소자
PersonBean person = (PersonBean) request.getSession().getAttribute(Constants.PERSON_BEAN);
paramMap.put("cancelWorkMan", person.getUserId());
int cnt = sqlSession.delete("contractMgmt.deleteContractMgmt", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
sqlSession.commit();
} catch(Exception e) {
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
e.printStackTrace();
} finally {
sqlSession.close();
}
return resultMap;
}
/**
* 계약관리 목록조회
* @param paramMap
* @return
*/
public List getcontractList(HttpServletRequest request,Map paramMap){
List<Map> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
Map pageMap = (HashMap)sqlSession.selectOne("contractMgmt.contractListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap);
paramMap.put("PAGE_END", pageMap.get("PAGE_END"));
paramMap.put("PAGE_START", pageMap.get("PAGE_START"));
resultList = CommonUtils.keyChangeUpperList((ArrayList)sqlSession.selectList("contractMgmt.contractList", paramMap));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 계약관리 목록조회 CNT
* @param paramMap
* @return
*/
public Map getContractListCnt(HttpServletRequest request,Map paramMap){
Map<String,Object> pagingMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
/* String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
Map pageMap = (HashMap)sqlSession.selectOne("contractMgmt.contractListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap);
paramMap.put("PAGE_END", pageMap.get("PAGE_END"));
paramMap.put("PAGE_START", pageMap.get("PAGE_START"));*/
pagingMap = sqlSession.selectOne("contractMgmt.contractListCnt", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return pagingMap;
}
/**
* 견적관리 목록조회
* @param paramMap
* @return
*/
public List getestimateList(HttpServletRequest request,Map paramMap){
List<Map> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
Map pageMap = (HashMap)sqlSession.selectOne("contractMgmt.estimateListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap);
paramMap.put("PAGE_END", pageMap.get("PAGE_END"));
paramMap.put("PAGE_START", pageMap.get("PAGE_START"));
resultList = CommonUtils.keyChangeUpperList((ArrayList)sqlSession.selectList("contractMgmt.estimateList", paramMap));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 계약 등록
* @param paramMap
* @return
*/
public Map getContractInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("contractMgmt.getOrderMgmtInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
public Map getContractMgmtInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("contractMgmt.getContractMgmtInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
public List overlapOrder(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
//차수 중복확인
resultList = sqlSession.selectList("contractMgmt.overlapOrder", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/** 견적등록 저장. 프로젝트 생성은 주문서 등록에서 처리 */
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map saveContractMgmtInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
Map resultList = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
paramMap.put("writer", person.getUserId());
int cnt = sqlSession.update("contractMgmt.saveContractMgmtInfo", paramMap);
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map saveContractMgmtInfo_old(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
Map resultList = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
paramMap.put("writer", person.getUserId());
int cnt = sqlSession.update("contractMgmt.saveContractMgmtInfo", paramMap);
//영업 수주 완료시 자동 프로젝트 등록 로직
String result_cd= CommonUtils.checkNull(paramMap.get("contract_result"));
String contract_objid= CommonUtils.checkNull(paramMap.get("objId"));
String category_cd= CommonUtils.checkNull(paramMap.get("category_cd"));
String target_project_no= CommonUtils.checkNull(paramMap.get("target_project_no_direct"));
int overhaul_order = Integer.parseInt(CommonUtils.checkNull(paramMap.get("overhaul_order"),"1"));
int project_cnt= Integer.parseInt(CommonUtils.checkNull(paramMap.get("facility_qty"), "1"));
long contract_price_currency= Long.parseLong(CommonUtils.checkNull(paramMap.get("contract_price_currency"), "0"));
long contract_price= Long.parseLong(CommonUtils.checkNull(paramMap.get("contract_price"), "0"));
//수주가와 금액은 대수로 나누어서 등록
paramMap.put("contract_price_currency", contract_price_currency/project_cnt + "");
paramMap.put("contract_price", contract_price/project_cnt + "");
if("0000964".equals(result_cd)){
resultList = sqlSession.selectOne("contractMgmt.getProjectListBycontractObjid", paramMap);
System.out.println("resultList:::"+resultList);
//resultList = sqlSession.selectOne("contractMgmt.getProjectCnt", paramMap);
if(null==resultList){
for (int i=0; i<project_cnt; i++){
paramMap.put("OBJID", CommonUtils.createObjId());
paramMap.put("is_temp", '1');
paramMap.put("facility_qty", '1');
if("0000170".equals(category_cd) || "0000171".equals(category_cd)){
paramMap.put("overhaul_project_no", target_project_no);
paramMap.put("overhaul_order", overhaul_order+i);
}else{
}
//프로젝트 등록
cnt = sqlSession.update("project.createProject", paramMap);
//프로젝트 TASK 등록
cnt = sqlSession.insert("contractMgmt.insertProjectTask", paramMap);
//프로젝트 SETUP_TASK 등록
cnt = sqlSession.insert("contractMgmt.insertProjectSetupTask", paramMap);
//project_no - unit 폴더 생성
//paramMap.put("OBJID", paramMap.get("OBJID"));
Map<String,Object> projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", paramMap);
paramMap.put("contract_objid", paramMap.get("objId"));
paramMap.put("customer_product", paramMap.get("mechanical_type"));
List<Map<String,Object>> taskUnitList = (ArrayList)sqlSession.selectList("project.getWbsTaskListByProject", paramMap);
if(CommonUtils.isNotEmpty(taskUnitList) && !taskUnitList.isEmpty()){
String projectNo = (String)projectInfo.get("project_no");
String filepath = Constants.FILE_STORAGE+"\\PART_DATA\\";
for (Map<String, Object> map : taskUnitList) {
File file = new File(filepath+File.separator+projectNo+File.separator+CommonUtils.checkNull((String)map.get("unit_no"))+"-"+CommonUtils.checkNull((String)map.get("task_name")));
if(!file.exists()){
file.mkdirs();
}
}
}
}
}else{
sqlSession.update("project.ModifyProjectByContract", paramMap);
}
}
if(cnt > 0){
//계약완료 일시 메일
if("0000964".equals(CommonUtils.checkNull(paramMap.get("contract_result")))){
commonService.SendMail(paramMap,"CONTRACT_COMP",CommonUtils.checkNull(paramMap.get("pm_user_id")));
//그냥 등록일때 메일
}else{
if("regist".equals(CommonUtils.checkNull(paramMap.get("actionType")))){
commonService.SendMail(paramMap,"CONTRACT_REG",CommonUtils.checkNull(paramMap.get("")));
}
}
}
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map saveContractMgmtReviewInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
paramMap.put("writer", person.getUserId());
int cnt = sqlSession.update("contractMgmt.saveContractMgmtReviewInfo", paramMap);
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
//황의돈==============================================================================
/**
* 현황에 사용된 기본정보(월)를 구성한다.
* @param request
* @param paramMap
*/
public void setMonthColumn(HttpServletRequest request, Map paramMap){
ArrayList<HashMap<String,Object>> monthList = new ArrayList();
try{
for(int i=0;i<12;i++){
HashMap monthMap = new HashMap();
String month = String.valueOf(i+1);
String monthTitle = month+"";
monthMap.put("MONTH_TITLE", monthTitle);
if(i+1 < 10){
month = "0"+month;
}
monthMap.put("MONTH", month);
monthMap.put("CONTRACT_MONTH_COL_NAME", "CONTRACT_CNT_MONTH_"+month);
monthMap.put("CONTRACT_COST_MONTH_COL_NAME", "CONTRACT_COST_MONTH_"+month);
monthMap.put("RELEASE_MONTH_COL_NAME", "RELEASE_CNT_MONTH_"+month);
monthMap.put("MONTH_FIRST_DAY_COL_NAME", "MONTH_FIRST_DAY_"+month);
monthMap.put("MONTH_LAST_DAY_COL_NAME", "MONTH_LAST_DAY_"+month);
monthList.add(monthMap);
}
}catch(Exception e){
e.printStackTrace();
}
paramMap.put("monthList", monthList);
request.setAttribute("monthList", monthList);
}
/**
* 고객사의 목록을 가져온다.(페이징 처리된 목록)
* @param request
* @param paramMap
* @return
*/
public ArrayList<HashMap<String,Object>> getSUPPLYInfoListPaging(HttpServletRequest request,Map<String,Object> paramMap){
ArrayList<HashMap<String,Object>> oemInfoList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
Map pageMap = (HashMap)sqlSession.selectOne("contractMgmt.getSUPPLYInfoListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap);
paramMap.put("PAGE_END", pageMap.get("PAGE_END"));
paramMap.put("PAGE_START", pageMap.get("PAGE_START"));
oemInfoList = (ArrayList)sqlSession.selectList("contractMgmt.getSUPPLYInfoList", paramMap);
}catch(Exception e){
throw e;
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(oemInfoList);
}
/**
* 고객사의 정보를 가져온다.
* @param request
* @param paramMap
* @return
*/
public HashMap<String,Object> getSupMngInfo(HttpServletRequest request,Map<String,Object> paramMap){
HashMap<String,Object> oemInfo = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
String objid = CommonUtils.checkNull(request.getParameter("objid"));
if(!"".equals(objid)){
HashMap sqlParamMap = new HashMap();
sqlParamMap.put("objid", objid);
oemInfo = (HashMap)sqlSession.selectOne("contractMgmt.getSupMngInfo", sqlParamMap);
}
}catch(Exception e){
throw e;
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(oemInfo);
}
//황의돈=================================================================================================
/**
* 계약현황
* @param paramMap
* @return
*/
public List getContractDashBoard(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = (ArrayList)sqlSession.selectList("contractMgmt.getContractDashBoard", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map deleteContractMngInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
System.out.println("paramMap : "+paramMap);
String[] objIds = request.getParameterValues("objId");
int cnt = 0;
for(int i=0; i<objIds.length; i++){
paramMap.put("objId", objIds[i]);
cnt += sqlSession.update("contractMgmt.deleteContractMngInfo", paramMap);
}
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map deletesupplyMngInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
System.out.println("paramMap : "+paramMap);
String[] objIds = request.getParameterValues("objId");
int cnt = 0;
for(int i=0; i<objIds.length; i++){
paramMap.put("objId", objIds[i]);
cnt += sqlSession.update("contractMgmt.deletesupplyMngInfo", paramMap);
}
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 계약 옵션 리스트
* @param paramMap
* @return
*/
public List getContractOptionList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("contractMgmt.getContractOptionList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/** 공급업체 등록
* @param request
* @param paramMap
* @return
*/
public Map saveSupMgmtInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
/* HttpSession session = request.getSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
paramMap.put("userId", writer);*/
int cnt = sqlSession.update("contractMgmt.mergeSupMgmtInfo", paramMap);
String objid = CommonUtils.checkNull(paramMap.get("objid"));
//paramMap.put("objid", CommonUtils.createObjId());
//paramMap.put("targetObjid", objid);
//paramMap.put("writer", writer);
//sqlSession.update("admin.insertSupplyMngHistory", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 상담내역 목록조회
* @param paramMap
* @return
*/
public List counselingList(HttpServletRequest request,Map paramMap){
List<Map> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
Map pageMap = (HashMap)sqlSession.selectOne("contractMgmt.counselingListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap);
paramMap.put("PAGE_END", pageMap.get("PAGE_END"));
paramMap.put("PAGE_START", pageMap.get("PAGE_START"));
resultList = CommonUtils.keyChangeUpperList((ArrayList)sqlSession.selectList("contractMgmt.counselingList", paramMap));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
public Map getcounselingMgmtInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("contractMgmt.getcounselingMgmtInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/** 공급업체 등록
* @param request
* @param paramMap
* @return
*/
public Map savecounselingInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
HttpSession session = request.getSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
paramMap.put("userId", writer);
int cnt = sqlSession.update("contractMgmt.savecounselingInfo", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
public Map getEstimateMgmtInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("contractMgmt.getEstimateMgmtInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map saveEstimateMgmtInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
paramMap.put("userId", person.getUserId());
int cnt = sqlSession.update("contractMgmt.saveEstimateMgmtInfo", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map deleteEstimateMgmtInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
System.out.println("paramMap : "+paramMap);
String[] objIds = request.getParameterValues("chk_objId");
int cnt = 0;
for(int i=0; i<objIds.length; i++){
paramMap.put("objId", objIds[i]);
cnt += sqlSession.delete("contractMgmt.deleteEstimateMgmtInfo", paramMap);
}
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
//계약등록
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map createEstimateMgmtInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
System.out.println("paramMap : "+paramMap);
String[] objIds = request.getParameterValues("chk_objId");
int cnt = 0;
for(int i=0; i<objIds.length; i++){
paramMap.put("objId", objIds[i]);
//견적 상태값 계약완료로 변경
cnt += sqlSession.update("contractMgmt.updateEstimateMgmtInfo", paramMap);
paramMap.put("contractobjid",CommonUtils.createObjId());
//견적 내용 계약으로 등록
cnt += sqlSession.insert("contractMgmt.createEstimateMgmtInfo", paramMap);
}
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
e.printStackTrace();
sqlSession.rollback();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 영업목표 Form PopUp
* @param paramMap
* @return
*/
public Map<String,Object> getYearGoalInfo(HttpServletRequest request,Map paramMap){
Map<String,Object> resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = (HashMap)sqlSession.selectOne("contractMgmt.getYearGoalInfo", paramMap);
String yearGoalObjId = "";
if(CommonUtils.isNotEmpty(resultMap)){
yearGoalObjId = CommonUtils.checkNull(resultMap.get("year_goal_objid"));
}else{
resultMap = new HashMap();
}
if("".equals(yearGoalObjId)){
yearGoalObjId = CommonUtils.createObjId();
}
resultMap.put("YEAR_GOAL_OBJID", yearGoalObjId);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultMap);
}
/**
* 영업목표 저장
* @param paramMap
* @return
*/
public Map<String,Object> saveYearGoalInfo(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
paramMap.put("WRITER", writer);
sqlSession.insert("contractMgmt.saveYearGoalInfo", paramMap);
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 영업목표 삭제
* @param paramMap
* @return
*/
public Map<String,Object> deleteYearGoalInfo(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
String targetObjId = CommonUtils.checkNull(paramMap.get("checkArr"));
System.out.println("paramMap:"+paramMap);
if(!"".equals(targetObjId)){
sqlSession.delete("contractMgmt.deleteYearGoalInfo", paramMap);
sqlSession.commit();
}
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 견적서 템플릿 기본 정보 조회
* @param paramMap
* @return
*/
public Map getEstimateTemplateInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
String objId = CommonUtils.checkNull(paramMap.get("objId"));
String templateType = CommonUtils.checkNull(paramMap.get("template_type"));
if(!"".equals(objId) && !"-1".equals(objId)){
// 견적서 기본 정보 조회 (CONTRACT_MGMT 테이블에서)
resultMap = (Map) sqlSession.selectOne("contractMgmt.getEstimateTemplateInfo", paramMap);
// 견적서 템플릿 정보 조회 (ESTIMATE_TEMPLATE 테이블에서, 있는 경우)
Map templateInfo = (Map) sqlSession.selectOne("contractMgmt.getEstimateTemplateData", paramMap);
if(templateInfo != null && !templateInfo.isEmpty()){
resultMap.putAll(templateInfo);
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
/**
* 견적서 템플릿 품목 정보 조회
* @param paramMap
* @return
*/
public List<Map> getEstimateTemplateItems(Map paramMap){
List<Map> resultList = new ArrayList<Map>();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
String objId = CommonUtils.checkNull(paramMap.get("objId"));
if(!"".equals(objId) && !"-1".equals(objId)){
resultList = sqlSession.selectList("contractMgmt.getEstimateTemplateItems", paramMap);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultList;
}
/**
* 견적서 템플릿 저장
* @param request
* @param paramMap
* @return
*/
public Map saveEstimateTemplate(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String userId = person.getUserId();
String objId = CommonUtils.checkNull(paramMap.get("objId"));
String templateType = CommonUtils.checkNull(paramMap.get("template_type"));
String itemsJson = CommonUtils.checkNull(paramMap.get("items"));
String categoriesJson = CommonUtils.checkNull(paramMap.get("categories"));
paramMap.put("writer", userId);
paramMap.put("chg_user_id", userId);
// 견적서 템플릿 정보 저장/수정
Map existingTemplate = (Map) sqlSession.selectOne("contractMgmt.getEstimateTemplateData", paramMap);
if(existingTemplate != null && !existingTemplate.isEmpty()){
// 기존 데이터 업데이트
sqlSession.update("contractMgmt.updateEstimateTemplate", paramMap);
} else {
// 신규 데이터 삽입
sqlSession.insert("contractMgmt.insertEstimateTemplate", paramMap);
}
// 기존 품목 삭제
sqlSession.delete("contractMgmt.deleteEstimateTemplateItems", paramMap);
// 품목 정보 저장
if(!"".equals(itemsJson)){
// JSON 파싱 및 저장 로직 (실제 구현 시 JSON 라이브러리 사용)
// 여기서는 간단히 파라미터로 받은 데이터를 저장
paramMap.put("items_json", itemsJson);
sqlSession.insert("contractMgmt.insertEstimateTemplateItems", paramMap);
}
// 카테고리 정보 저장 (장비 견적서용)
if(!"".equals(categoriesJson)){
paramMap.put("categories_json", categoriesJson);
sqlSession.update("contractMgmt.updateEstimateTemplateCategories", paramMap);
}
sqlSession.commit();
resultMap.put("result", "success");
resultMap.put("msg", Message.SAVE_SUCCESS);
}catch(Exception e){
if(sqlSession != null) sqlSession.rollback();
resultMap.put("result", "error");
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
}