- 견적서 템플릿 2종 추가 (estimateTemplate1.jsp, estimateTemplate2.jsp) - 견적서 작성 팝업 기능 구현 (estimateList_new.jsp) - 견적서 템플릿 컨트롤러 및 서비스 메서드 추가 - 견적서 템플릿용 DB 테이블 스키마 생성 스크립트 추가 - 회사 직인 이미지 추가 - 견적서 양식: A4 인쇄 최적화, 동적 품목 추가/수정, 자동 금액 계산
1343 lines
39 KiB
Java
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;
|
|
}
|
|
}
|