ERP-node/src/com/pms/service/ProjectService.java

4239 lines
134 KiB
Java
Raw Normal View History

2025-08-21 09:41:46 +09:00
package com.pms.service;
import java.io.File;
import java.io.FileInputStream;
import java.sql.Clob;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
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.common.utils.MailUtil;
@Service
public class ProjectService {
CommonService commonService = null;
@Autowired
AdminService adminService;
@Autowired
public void setCommonService(CommonService commonService){
this.commonService = commonService;
}
/*jmpark start*/
/**
* 이슈 목록 조회
* @param paramMap
* @return
*/
public List getIssueList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
Map pageMap = new HashMap();
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), ""+Constants.COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
pageMap = (HashMap)sqlSession.selectOne("project.getIssueListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap, countPerPage);
paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END")));
paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START")));
resultList = sqlSession.selectList("project.getIssueList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 이슈 저장
* @param request
* @param paramMap
* @return
*/
public Map saveIssueMgmtInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
System.out.println(paramMap.get("project_no"));
System.out.println(paramMap.get("parent_objid"));
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
String objId = CommonUtils.checkNull(paramMap.get("objId"));
if("".equals(objId)) objId = CommonUtils.createObjId();
paramMap.put("writer", writer);
paramMap.put("objId", objId);
int cnt = sqlSession.update("project.saveIssueMgmtInfo", paramMap);
String checWpstCd = CommonUtils.checkNull(paramMap.get("appr_wpst_cd"));
if(!checWpstCd.equals("")){
int cnt1 = sqlSession.update("project.updateIssueMgmtInfo", paramMap);
}
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}else{
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 이슈 배포
* @param request
* @param paramMap
* @return
*/
public Map issueWpstStatusUpdate(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
Map issueMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
/*PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());*/
String objId = CommonUtils.checkNull(paramMap.get("objId"));
java.util.Calendar cal = java.util.Calendar.getInstance();
int year = cal.get ( cal.YEAR );
issueMap = getIssueNo(issueMap);
//if("".equals(objId)) objId = CommonUtils.createObjId();
//paramMap.put("writer", writer);
paramMap.put("objId", objId);
paramMap.put("issueNo", String.valueOf(issueMap.get("ISSUNO")));
int cnt = sqlSession.update("project.issueWpstStatusUpdate", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}else{
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
public Map getIssueNo(Map paramMap){
SqlSession sqlSession = null;
Map resultMap = new HashMap();
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("project.getIssueNo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 이슈 상세조회
* @param paramMap
* @return
*/
public Map getIssueInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("project.getIssueInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 이슈 저장
* @param request
* @param paramMap
* @return
*/
public Map saveIssueInfo(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);
String writer = CommonUtils.checkNull(person.getUserId());
String objId = CommonUtils.checkNull(paramMap.get("objId"));
if("".equals(objId)) objId = CommonUtils.createObjId();
paramMap.put("writer", writer);
paramMap.put("objId", objId);
int cnt = sqlSession.update("project.saveIssueInfo", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}else{
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Gate관리 프로젝트 목록조회
* @param paramMap
* @return
*/
public List getProjectList_byGate(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("project.getProjectList_byGate", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* Project Gate별 일정조회
* @param paramMap
* @return
*/
public Map getProjectGateScheduleInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("project.getProjectGateSchedule", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Project Gate별 일정 저장
* @param paramMap
* @return
*/
public Map saveProjectGateScheduleInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String objId = CommonUtils.checkNull(paramMap.get("objId"));
if("".equals(objId)){
objId = CommonUtils.createObjId();
paramMap.put("objId", objId);
}
int cnt = sqlSession.update("project.saveProjectGateScheduleInfo", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}else{
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Gate1 현황
* @param paramMap
* @return
*/
public Map getGate1StatusInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("project.getGate1Status", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Gate2 현황
* @param paramMap
* @return
*/
public Map getGate2StatusInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("project.getGate2Status", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Gate3 현황
* @param paramMap
* @return
*/
public Map getGate3StatusInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("project.getGate3Status", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Gate4 현황
* @param paramMap
* @return
*/
public Map getGate4StatusInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("project.getGate4Status", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/*jmpark end*/
/*edhwang start*/
/**
* 프로젝트 목록을 가져온다.
* @param request
* @param paramMap
* @return
*/
public List getProjectList(HttpServletRequest request, Map paramMap){
List 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("project.getProjectListCnt",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("project.getProjectList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트 목록조회
* @param paramMap
* @return
*/
public List getContractCompleteList(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("project.getContractCompleteListCnt", 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("project.getContractCompleteList", paramMap));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트 목록조회
* @param paramMap
* @return
*/
public List getProjectMgntList(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("project.projectMgmtListCnt", 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("project.projectMgmtList", paramMap));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트 현황 대시보드용
* @param paramMap
* @return
*/
public List dashboardProjectMgmtList(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("project.projectMgmtListCnt", 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("project.dashboardProjectMgmtList", paramMap));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 대시보드 리스트
* @param paramMap
* @return
*/
public List getProjectMainBoardList(HttpServletRequest request,Map paramMap){
List<Map> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = (ArrayList)sqlSession.selectList("project.projectMainDashboardList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 이슈 목록을 가져온다.
* @param request
* @param paramMap
* @return
*/
public List getIssueListInfo(HttpServletRequest request, Map paramMap){
List 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("project.getIssueListInfoCnt",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("project.getIssueListInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트 상세 조회
* @param paramMap
* @return
*/
public Map getProjectMgmtInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("project.getProjectMgmtInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/** 프로젝트 수정
* @param request
* @param paramMap
* @return
*/
public Map saveProjectMgmt(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
String MANUFACTUR_COST1 = CommonUtils.checkNull(paramMap.get("manufactur_cost1"));
String MANUFACTUR_COST2= CommonUtils.checkNull(paramMap.get("manufactur_cost2"));
String CONTRACT_AMOUNT = CommonUtils.checkNull(paramMap.get("contract_amount"));
String MANUFACTUR_SCOST= CommonUtils.checkNull(paramMap.get("manufactur_scost"));
MANUFACTUR_COST1 = MANUFACTUR_COST1.replaceAll(",", "");
MANUFACTUR_COST2 = MANUFACTUR_COST2.replaceAll(",", "");
CONTRACT_AMOUNT = CONTRACT_AMOUNT.replaceAll(",", "");
MANUFACTUR_SCOST = MANUFACTUR_SCOST.replaceAll(",", "");
paramMap.put("manufactur_cost1", MANUFACTUR_COST1);
paramMap.put("manufactur_cost2", MANUFACTUR_COST2);
paramMap.put("contract_amount", CONTRACT_AMOUNT);
paramMap.put("manufactur_scost", MANUFACTUR_SCOST);
int cnt = 0;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
cnt = sqlSession.update("project.updateProjectMgmt", 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;
}
/**
* 프로젝트 WBS TASK 조최
* @param paramMap
* @return
*/
public List getProjectWbsList(HttpServletRequest request,Map paramMap){
List<Map> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = (ArrayList)sqlSession.selectList("project.getProjectTaskList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트 WBS TASK 조최
* @param paramMap
* @return
*/
public String getProjectAverage(HttpServletRequest request,Map paramMap){
SqlSession sqlSession = null;
String average = "";
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
//프로젝트 TASK 공정진척율 조회
average = CommonUtils.checkNull(sqlSession.selectOne("project.getProjectTaskAverage", paramMap));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return average;
}
/** TASK삭제
* @param request
* @param paramMap
* @return
*/
public Map delProjectMgmtInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
Map sqlMap = new HashMap();
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
String Key = (String) paramMap.get("delKey");
String [] delKey = Key.split(",");
sqlMap.put("delObjKeyarr", delKey);
int cnt = sqlSession.delete("project.deleteProjectmgmtinfo", sqlMap);
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;
}
/**
* 수주활동 목록을 가져온다(수주활동 품목X).
* @param request
* @param paramMap
* @return
*/
public List getProjectConceptList(HttpServletRequest request, Map paramMap){
ArrayList resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = (ArrayList)sqlSession.selectList("project.getProjectConceptList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트의 상세 정보를 가져온다.
* @param request
* @param paramMap
* @return
*/
public Map getProjectInfo(HttpServletRequest request, Map paramMap){
HashMap resultMap = new HashMap();
String objId = CommonUtils.checkNull(paramMap.get("objId"));
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
if(!"".equals(objId)){
resultMap = (HashMap)sqlSession.selectOne("project.getProjectInfo", paramMap);
}
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 프로젝트를 저장한다.
* @param request
* @param paramMap
* @return
*/
public Map saveProjectInfo(HttpSession session,HttpServletRequest request, Map paramMap)throws Exception{
HashMap resultMap = new HashMap();
String objId = CommonUtils.checkNull(paramMap.get("objId"));
boolean result = false;
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("writer", CommonUtils.checkNull(person.getUserId()));
try{
//작성된 프로젝트 내용을 저장한다.
sqlSession.update("project.saveProjectInfo", paramMap);
//기존에 연결된 제품을 삭제하고 다시 제품을 연결한다.
connectProjectProduct(sqlSession, request, paramMap);
mergeProjectMilestone(sqlSession, request, paramMap);
Map sqlMap = new HashMap();
sqlMap.put("targetUserId", CommonUtils.checkNull(paramMap.get("cft_userid")));
sqlMap.put("carObjId", CommonUtils.checkNull(paramMap.get("carObjId")));
sqlMap.put("objId", CommonUtils.createObjId());
// CFT인원 리셋
sqlSession.update("admin.resetCarMemberLeader", sqlMap);
//CFT장 등록
sqlSession.update("admin.mergeCarTFTLeader", sqlMap);
result = true;
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
resultMap.put("result", result);
return resultMap;
}
/**
* 프로젝트의 중복여부를 확인한다.
* @param request
* @param paramMap
* @return
*/
public Map checkProjectDuplicate(HttpServletRequest request, Map paramMap)throws Exception{
HashMap resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
resultMap = sqlSession.selectOne("project.checkProjectDuplicate", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 프로젝트의 상태를 확정상태로 변경한다.
* @param request
* @param paramMap
* @return
*/
public Map changeProjectStatus(HttpServletRequest request, Map paramMap)throws Exception{
Map resultMap = new HashMap();
String[] projects = request.getParameterValues("projectCheckBox");
String status = CommonUtils.checkNull(request.getParameter("status"));
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
if(null != projects && 0 < projects.length){
for(int i=0;i<projects.length;i++){
String projectObjId = CommonUtils.checkNull(projects[i].toString());
String carObjId = "";
String oemObjId = "";
if(!"".equals(projectObjId)){
carObjId = CommonUtils.checkNull(paramMap.get(projectObjId+"_carObjId"));
oemObjId = CommonUtils.checkNull(paramMap.get(projectObjId+"_oemObjId"));
Map sqlMap = new HashMap();
sqlMap.put("objId", projectObjId);
sqlMap.put("status", status);
sqlSession.update("project.changeProjectStatus", sqlMap);
//프로젝트 확정 시 표준 WBS를 프로젝트에 복사한다.
if("confirm".equals(status)){
paramMap.put("objId", projectObjId);
paramMap.put("carObjId", carObjId);
paramMap.put("oemObjId", oemObjId);
//저장 시 표준 WBS에 구성된 Task 구조를 프로젝트에 복사한다.
createProjectWBSTask(sqlSession, request, paramMap);
}
}
}
sqlSession.commit();
}
resultMap.put("result", true);
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 프로젝트 생성 표준 WBS에 해당하는 Task로 WBS를 구성한다.
* @param session
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map createProjectWBSTask(SqlSession sqlSession,HttpServletRequest request, Map paramMap)throws Exception{
HashMap resultMap = new HashMap();
String projectObjId = CommonUtils.checkNull(paramMap.get("objId"));
System.out.println("*******************************");
System.out.println("projectObjId ---->" + projectObjId);
System.out.println("*******************************");
String carObjId = CommonUtils.checkNull(projectObjId+"_carObjId");
String oemObjId =CommonUtils.checkNull(projectObjId+"_carObjId");
//담당자 매핑
String manager_pm = CommonUtils.checkNull(paramMap.get("manager_pm"));
String design_pm = CommonUtils.checkNull(paramMap.get("design_pm"));
String production_pm = CommonUtils.checkNull(paramMap.get("production_pm"));
String electro_pm = CommonUtils.checkNull(paramMap.get("electro_pm"));
String se_pm = CommonUtils.checkNull(paramMap.get("se_pm"));
String purchase_pm = CommonUtils.checkNull(paramMap.get("purchase_pm"));
boolean result = false;
try{
if(!"".equals(projectObjId) && !"".equals(carObjId)){
//표준 WBS 목록을 가져온다.
List standardWBSTaskList = new ArrayList();
standardWBSTaskList = getStandardWBSTask(sqlSession, request, paramMap);
if(null != standardWBSTaskList && 0 < standardWBSTaskList.size()){
//String lv1parentObjId = "";
//String lv2parentObjId = "";
for(int i=0;i<standardWBSTaskList.size();i++){
Map wbsTaskMap = CommonUtils.keyChangeUpperMap((HashMap)standardWBSTaskList.get(i));
Map sqlMap = new HashMap();
//String baseDate = CommonUtils.checkNull(wbsTaskMap.get("BASE_SCHEDULE"));
String afterObjId = CommonUtils.createObjId();
//String level = CommonUtils.checkNull(wbsTaskMap.get("LEV"));
//String taskDeptCode = "";
//String taskType = "";
/*if("1".equals(level)){
lv1parentObjId = afterObjId;
sqlMap.put("taskParentObjId", "");
}else if("2".equals(level)){
sqlMap.put("taskParentObjId", lv1parentObjId);
lv2parentObjId = afterObjId;
}else if("3".equals(level)){
taskDeptCode = CommonUtils.checkNull(wbsTaskMap.get("TASK_DEPT"));
sqlMap.put("taskParentObjId", lv2parentObjId);
taskType = "task";
}*/
sqlMap.put("taskObjId", Integer.parseInt(afterObjId));
sqlMap.put("projectObjId", Integer.parseInt(projectObjId));
sqlMap.put("taskName", CommonUtils.checkNull(wbsTaskMap.get("TASK_NAME")));
sqlMap.put("gate", CommonUtils.checkNull(wbsTaskMap.get("PROJ_STEP")));
sqlMap.put("wbsCode", CommonUtils.checkNull(wbsTaskMap.get("WBS_CODE")));
sqlMap.put("seq", wbsTaskMap.get("SEQ"));
sqlMap.put("taskType", "task");
sqlMap.put("taskDept", CommonUtils.checkNull(wbsTaskMap.get("TASK_DEPT")));
sqlMap.put("taskStartPlanDate", CommonUtils.checkNull(wbsTaskMap.get("TASK_START_PLAN_DATE")));
sqlMap.put("taskEndPlanDate", CommonUtils.checkNull(wbsTaskMap.get("TASK_END_PLAN_DATE")));
sqlMap.put("taskEndPlanDate", CommonUtils.checkNull(wbsTaskMap.get("TASK_END_PLAN_DATE")));
sqlMap.put("taskEndPlanDate", CommonUtils.checkNull(wbsTaskMap.get("TASK_END_PLAN_DATE")));
sqlMap.put("status", "create");
sqlMap.put("bigo", CommonUtils.checkNull(wbsTaskMap.get("BIGO")));
sqlMap.put("stepName", CommonUtils.checkNull(wbsTaskMap.get("STEP_NAME")));
sqlMap.put("taskStep", CommonUtils.checkNull(wbsTaskMap.get("TASK_STEP")));
//담당자 넣어주기
String task_no = CommonUtils.checkNull(wbsTaskMap.get("TASK_STEP"));
if(task_no.equals("2") ){
sqlMap.put("taskChargerId", design_pm);
}else if(task_no.equals("3")){
sqlMap.put("taskChargerId", purchase_pm);
}else if(task_no.equals("4")){
sqlMap.put("taskChargerId", production_pm);
}else if(task_no.equals("5")){
sqlMap.put("taskChargerId", production_pm);
}else if(task_no.equals("6")){
sqlMap.put("taskChargerId", production_pm);
}else if(task_no.equals("7")){
sqlMap.put("taskChargerId", production_pm);
}else if(task_no.equals("8")){
sqlMap.put("taskChargerId", manager_pm);
}else if(task_no.equals("1")){
sqlMap.put("taskChargerId", design_pm);
}
//기존에 표준 WBS에 해당하는 내용이 없을 시 insert 한다.
sqlSession.update("project.mergeProjectStandardWBSTask", sqlMap);
}
}
}
result = true;
}catch(Exception e){
sqlSession.rollback();
e.printStackTrace();
}
resultMap.put("result", result);
return resultMap;
}
/**
* 표준 WBS Task 목록을 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getStandardWBSTask(SqlSession sqlSession,HttpServletRequest request, Map paramMap)throws Exception{
List resultList = new ArrayList();
try{
//작성된 프로젝트 내용을 저장한다.
resultList = sqlSession.selectList("project.getStansardWBSTaskList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}
return resultList;
}
/**
* 프로젝트에 연결된 WBS Task의 목록을 트리형으로 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getProjectWBSTask(HttpServletRequest request, Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getProjectWBSTaskList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 검색조건에 해당하는 프로젝트의 WBS Task 목록을 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getSearchProjectWBSTaskList(HttpServletRequest request, Map paramMap){
List<Map> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getSearchProjectWBSTaskList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 선택된 Function Task와 WBS Task를 연결한다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map connectProjectWBSTask(HttpSession session,HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
String taskType = CommonUtils.checkNull(request.getParameter("connectTaskType"));
String targetData = CommonUtils.checkNull(request.getParameter("targetObjId"));
String[] targetList = null;
if(targetData.contains(",")){
targetList = targetData.split(",");
}
String[] wbsTaskList = request.getParameterValues("wbsTaskCheckBox");
if(null != targetList && 0 < targetList.length ){
for(int i=0;i<targetList.length;i++){
String fnTaskObjId = CommonUtils.checkNull(targetList[i].toString());
for(int j=0;j<wbsTaskList.length;j++){
String wbsTaskObjId = CommonUtils.checkNull(wbsTaskList[j].toString());
Map connectSqlMap = new HashMap();
connectSqlMap.put("objId", CommonUtils.createObjId());
connectSqlMap.put("wbsTaskObjId", wbsTaskObjId);
connectSqlMap.put("fnTaskObjId", fnTaskObjId);
connectSqlMap.put("taskType", taskType);
connectSqlMap.put("writer", writer);
sqlSession.update("project.connectProjectWBSTask", connectSqlMap);
}
}
}else{
for(int j=0;j<wbsTaskList.length;j++){
String wbsTaskObjId = CommonUtils.checkNull(wbsTaskList[j].toString());
Map connectSqlMap = new HashMap();
connectSqlMap.put("objId", CommonUtils.createObjId());
connectSqlMap.put("wbsTaskObjId", wbsTaskObjId);
connectSqlMap.put("fnTaskObjId", targetData);
connectSqlMap.put("taskType", taskType);
connectSqlMap.put("writer", writer);
sqlSession.update("project.connectProjectWBSTask", connectSqlMap);
}
}
sqlSession.commit();
resultMap.put("result", true);
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 선택된 Function Task와 WBS Task를 연결해제한다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map disConnectProjectWBSTask(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
//Function Task의 objId
String subObjId = CommonUtils.checkNull(request.getParameter("subObjId"));
//연결된 WBS Task 중 삭제를 위해 선택된 Task의 ObjId
String[] wbsTaskList = request.getParameterValues("wbsTaskCheckBox");
if(null != wbsTaskList && 0 < wbsTaskList.length){
for(int i=0;i<wbsTaskList.length;i++){
String wbsTaskObjId = CommonUtils.checkNull(wbsTaskList[i].toString());
Map disConnSqlMap = new HashMap();
disConnSqlMap.put("targetObjId", wbsTaskObjId);
disConnSqlMap.put("fnTaskObjId", subObjId);
System.out.println("disConnSqlMap:"+disConnSqlMap);
sqlSession.delete("project.disConnectProjectWBSTask", disConnSqlMap);
}
}
sqlSession.commit();
resultMap.put("result", true);
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task에 연결된 Function Task의 목록을 가져온다.
*
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getWBSTaskConnectFNTaskList(HttpServletRequest request, Map paramMap){
List<Map> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getWBSTaskConnectFNTaskList",paramMap);
for(Map resultMap:resultList){
String taskTitle = "";
String taskType = CommonUtils.checkNull(resultMap.get("TASK_TYPE"));
if(Constants.CONNECT_TYPE_CODE_DEV_MASTER.equals(taskType)){
taskTitle = Constants.CONNECT_TYPE_NAME_DEV_MASTER;
}else if(Constants.CONNECT_TYPE_CODE_DFMEA.equals(taskType)){
taskTitle = Constants.CONNECT_TYPE_NAME_DFMEA;
}else if(Constants.CONNECT_TYPE_CODE_PROTO_STOCK.equals(taskType)){
taskTitle = Constants.CONNECT_TYPE_NAME_PROTO_STOCK;
}else if(Constants.CONNECT_TYPE_CODE_PROTO_PLAN.equals(taskType)){
taskTitle = Constants.CONNECT_TYPE_NAME_PROTO_PLAN;
}else if(Constants.CONNECT_TYPE_CODE_PROTO_TEST.equals(taskType)){
taskTitle = Constants.CONNECT_TYPE_NAME_PROTO_TEST;
}else if(Constants.CONNECT_TYPE_CODE_EO_APPLY.equals(taskType)){
taskTitle = Constants.CONNECT_TYPE_NAME_EO_APPLY;
}else if(Constants.CONNECT_TYPE_CODE_QUALITY_TEST.equals(taskType)){
taskTitle = Constants.CONNECT_TYPE_NAME_QUALITY_TEST;
}else if(Constants.CONNECT_TYPE_CODE_APPLY_HISTORY.equals(taskType)){
taskTitle = Constants.CONNECT_TYPE_NAME_APPLY_HISTORY;
}else if(Constants.CONNECT_TYPE_CODE_STRUCTURE_REVIEW_REPORT.equals(taskType)){
taskTitle = Constants.CONNECT_TYPE_NAME_STRUCTURE_REVIEW_REPORT;
}
resultMap.put("TASK_TYPE_TITLE", taskTitle);
}
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* Function Task에 연결된 WBS Task 목록을 가져온다.
*
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getFNTaskConnectedTaskList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getFNTaskConnectWBSTaskList",paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* WBS Task의 내용을 저장한다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map saveProjectWBSTaskInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
sqlSession.update("project.mergeProjectWBSTaskInfo",paramMap);
resultMap.put("result", true);
}catch(Exception e){
resultMap.put("result", false);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task의 상세화면을 보여준다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map getProjectWBSTaskInfo(HttpServletRequest request, Map paramMap){
Map wbsMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
String taskObjId = CommonUtils.checkNull(paramMap.get("taskObjId"));
if(!"".equals(taskObjId)){
paramMap.put("taskObjId", Integer.parseInt(taskObjId));
wbsMap = sqlSession.selectOne("project.getProjectWBSTaskInfo",paramMap);
wbsMap = CommonUtils.keyChangeUpperMap(wbsMap);
}else{
String parentTaskObjId = CommonUtils.checkNull(paramMap.get("parentObjId"));
Map parentWBSMap = new HashMap();
if(!"".equals(parentTaskObjId)){
paramMap.put("taskObjId", Integer.parseInt(parentTaskObjId));
parentWBSMap = sqlSession.selectOne("project.getProjectWBSTaskInfo",paramMap);
parentWBSMap = CommonUtils.keyChangeUpperMap(parentWBSMap);
}
wbsMap.put("OBJID", CommonUtils.createObjId());
wbsMap.put("TARGET_OBJID", CommonUtils.checkNull(parentWBSMap.get("TARGET_OBJID")));
wbsMap.put("PARENT_OBJID", CommonUtils.checkNull(paramMap.get("parentObjId")));
wbsMap.put("PROJ_STEP", CommonUtils.checkNull(parentWBSMap.get("PROJ_STEP")));
wbsMap.put("TASK_TYPE", CommonUtils.checkNull(request.getParameter("taskType")));
wbsMap.put("IS_TEMPLATE_TASK", 1);
wbsMap.put("STATUS", CommonUtils.checkNull(paramMap.get("status")));
}
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return wbsMap;
}
/**
* 해당 인원의 권한을 확인한다.
* @param request
* @param paramMap
* @return
*/
public Map getWBSTaskMemberAuth(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getWBSTaskMemberAuth", paramMap);
System.out.println("resultList.size():"+resultList.size());
if(0 < resultList.size()){
resultMap.put("isTFTLeader", true);
}else{
resultMap.put("isTFTLeader", false);
}
String writer = CommonUtils.checkNull(paramMap.get("writer"));
if("plm_admin".equals(writer)){
resultMap.put("isTFTLeader", true);
}
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS에 해당하는 프로젝트의 TFT 인원 정보를 가져온다.
* @param request
* @param paramMap
* @return
*/
public List getWBSTaskProjectMemberList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getWBSTaskProjectMemberList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/**
* WBS TASK를 제출하여 TFT 장에게 메일을 발송한다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map submissionTask(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
List<Map> carTFTMemberList = new ArrayList();
carTFTMemberList = getWBSTaskProjectMemberList(request, paramMap);
//프로젝트의 상세 정보를 가져온다.
Map projectSqlMap = new HashMap();
projectSqlMap.put("taskObjId", CommonUtils.checkNull(request.getParameter("objId")));
Map wbsTaskMap = new HashMap();
wbsTaskMap = sqlSession.selectOne("project.getWBSTaskSubmissionInfo", projectSqlMap);
if(null != carTFTMemberList && 0 < carTFTMemberList.size()){
for(Map memberMap:carTFTMemberList){
String tftMemberAuth = CommonUtils.checkNull(memberMap.get("IS_TFT_LEADER"));
if("0".equals(tftMemberAuth)){
String userId = CommonUtils.checkNull(memberMap.get("MEMBER_USER_ID"));
String email = CommonUtils.checkNull(memberMap.get("EMAIL"));
if(!"".equals(email)){
Map mailParamMap = new HashMap();
String subject = "["+CommonUtils.checkNull(wbsTaskMap.get("CAR_CODE"))+" ("+CommonUtils.checkNull(wbsTaskMap.get("CAR_NAME"))+")] "+Message.MAIL_SUBJECT_WBS_TASK_SUBMISSION;
mailParamMap.put("SUBJECT", subject);
mailParamMap.putAll(wbsTaskMap);
String bodyContents = MailUtil.getHTMLContents("wbsTaskSubmissionMailTemplate", mailParamMap);
String receiverId = CommonUtils.checkNull(userId);
String receiverEmail = CommonUtils.checkNull(email);
MailUtil.sendMail(Constants.ADMIN_USER_ID, Constants.FROM_ADDR, receiverId, receiverEmail, null, subject, bodyContents, Constants.MAIL_TYPE_PROBLEM_RES_DISTRIBUTE);
}
}
}
}
resultMap.put("result", true);
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task의 TFT/PL가 작성한 확인 내용 목록을 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getTaskConfirmHistoryList(HttpServletRequest request, Map paramMap){
List<Map> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getTaskConfirmHistoryList",paramMap);
for(Map resultMap:resultList){
resultMap.put("CONTENTS", CommonUtils.getClobToString((Clob)resultMap.get("CONTENTS")));
}
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* WBS Task의 TFT/PL가 작성한 단건 내용을 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map getTaskConfirmHistoryInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
String objId = CommonUtils.checkNull(paramMap.get("confirmObjId"));
if(!"".equals(objId)){
resultMap = sqlSession.selectOne("project.getTaskConfirmHistoryInfo",paramMap);
resultMap.put("CONTENTS", CommonUtils.getClobToString((Clob)resultMap.get("CONTENTS")));
}else{
resultMap.put("OBJID",CommonUtils.createObjId());
resultMap.put("TARGET_OBJID",CommonUtils.checkNull(paramMap.get("objId")));
resultMap.put("CONFIRM_TYPE",CommonUtils.checkNull(paramMap.get("userType")));
}
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task의 TFT/PL가 작성한 단건 내용을 저장한다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map saveTaskConfirmHistoryInfo(HttpSession session,HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("writer", CommonUtils.checkNull(person.getUserId()));
sqlSession.insert("project.insertTaskConfirmHistoryInfo",paramMap);
String result = CommonUtils.checkNull(request.getParameter("result"));
//승인 시
if("ok".equals(result)){
paramMap.put("status", "complete");
//반려 시
}else if("ng".equals(result)){
//메일발송
sendTaskNgMail(request,paramMap);
paramMap.put("status", "reject");
}
sqlSession.update("project.taskConfirmChangeStatus",paramMap);
resultMap.put("result", true);
sqlSession.commit();
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 통합문제점 제기완료 메일발송
* @param request
* @param paramMap
*/
public Map sendTaskNgMail(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
System.out.println("paramMap : "+paramMap);
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
Map userInfo = person.getLoginInfo();
//1. 메일 발송할 대상의 정보조회
Map info = sqlSession.selectOne("mail.getsendTaskNgMail", paramMap);
String OEM_NAME = CommonUtils.checkNull(info.get("OEM_NAME"));
String CAR_NAME = CommonUtils.checkNull(info.get("CAR_NAME"));
String TASK_NAME = CommonUtils.checkNull(info.get("TASK_NAME"));
String SENDMAIL = CommonUtils.checkNull(info.get("SENDMAIL"));
String subject = "[PMS 시스템] 고객사 : "+OEM_NAME+" 차종 : "+CAR_NAME+" Task ["+TASK_NAME+"] CFT장 반려 알림";
String bodyContents = "";
bodyContents = "[PMS 시스템] 고객사 : "+OEM_NAME+" 차종 : "+CAR_NAME+" Task ["+TASK_NAME+"] 가 반려되었습니다.";
bodyContents += "<br>Task Name : "+TASK_NAME+"<br> 진양 PMS System에 접속해서 해당 Task를 확인하시기 바랍니다.";
bodyContents += "<br>";
bodyContents += "<a href=\""+"http://180.210.99.18/"+"\">▶ 시스템 바로가기</a>";
//담당자에게 메일 발송
MailUtil.sendMail1(SENDMAIL, subject, bodyContents);
resultMap.put("result", true);
resultMap.put("msg", Message.SEND_MAIL_SUCCESS);
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 검색조건에 해당하는 Task의 목록을 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getTaskList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
Map pageMap = new HashMap();
try{
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
//paging start
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), ""+Constants.COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
pageMap = (HashMap)sqlSession.selectOne("project.getTaskListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap, countPerPage);
paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END")));
paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START")));
//paging end
resultList = sqlSession.selectList("project.getTaskList",paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트에 해당하는 제품을 연결한다.
* @param request
* @param paramMap
* @return
*/
public void connectProjectProduct(SqlSession sqlSession,HttpServletRequest request, Map paramMap)throws Exception{
Map sqlMap = new HashMap();
//프로젝트의 objid
String targetObjId = CommonUtils.checkNull(paramMap.get("objId"));
String message = "";
String[] projectProductList = request.getParameterValues("addedOrderProductObjId");
ArrayList projectProductArrList = new ArrayList();
projectProductArrList = new ArrayList<String>(Arrays.asList(projectProductList));
sqlMap.put("targetObjId",targetObjId);
sqlMap.put("projectProductArrList",projectProductArrList);
sqlSession.delete("project.deleteConnectedProjectProduct", sqlMap);
if(null != projectProductList && 0 < projectProductList.length){
for(int i=0;i<projectProductList.length;i++){
String productObjId = projectProductList[i];
sqlMap.put("objId",CommonUtils.createObjId());
sqlMap.put("subObjId",productObjId);
sqlSession.insert("project.connectProjectProduct", sqlMap);
}
}
}
/**
* 프로젝트에 Milestone을 저장한다.
* @param request
* @param paramMap
* @return
*/
public void mergeProjectMilestone(SqlSession sqlSession,HttpServletRequest request, Map paramMap)throws Exception{
String[] oemMilestoneObjIdList = request.getParameterValues("oemMilestoneObjId");
String carObjId = CommonUtils.checkNull(paramMap.get("carObjId"));
String writer = CommonUtils.checkNull(paramMap.get("writer"));
if(null != oemMilestoneObjIdList && 0 < oemMilestoneObjIdList.length){
for(int i=0;i<oemMilestoneObjIdList.length;i++){
Map sqlMap = new HashMap();
String milestoneObjId = oemMilestoneObjIdList[i];
String milestoneDate = CommonUtils.checkNull(paramMap.get(milestoneObjId));
sqlMap.put("objId",CommonUtils.createObjId());
sqlMap.put("carObjId",carObjId);
sqlMap.put("milestoneObjId",milestoneObjId);
sqlMap.put("milestoneDate",milestoneDate);
sqlMap.put("writer",writer);
sqlSession.insert("project.mergeProjectCarMilestone", sqlMap);
}
}
}
/**
* 고객사에 해당하는 차종의 Milestone 정보를 가져온다.
* @param request
* @param paramMap
* @return
*/
public List getCarMilestoneList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("admin.getOEMMilestoneList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트에 연결된 입찰품목의 목록을 가져온다.
* @param request
* @param paramMap
* @return
*/
public List getProjectConnectProductList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getProjectConnectProductList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/** 영업활동등록
* @param request
* @param paramMap
* @return
*/
public Map saveProjectMgmtInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
int cnt = 0;
String[] parentObjId = request.getParameterValues("parentObjId");
String[] objId = request.getParameterValues("objId");
String[] order_no = request.getParameterValues("order_no");
String[] task_name = request.getParameterValues("task_name");
String[] user_id = request.getParameterValues("user_id");
String[] start_pdate = request.getParameterValues("start_pdate");
String[] end_pdate = request.getParameterValues("end_pdate");
String[] end_date = request.getParameterValues("end_date");
String[] appr_cd = request.getParameterValues("appr_cd");
String[] file_type = request.getParameterValues("file_type");
if(null != parentObjId && 0 < parentObjId.length){
for(int i=0;i<parentObjId.length;i++){
HashMap sqlParamMap = new HashMap();
String objid = CommonUtils.checkNull(objId[i]);
if("".equals(objid)){
objid = CommonUtils.createObjId();
}
sqlParamMap.put("objId", objid);
sqlParamMap.put("parentObjId", CommonUtils.checkNull(parentObjId[i]));
sqlParamMap.put("order_no", CommonUtils.checkNull(order_no[i]));
sqlParamMap.put("task_name", CommonUtils.checkNull(task_name[i]));
sqlParamMap.put("user_id", CommonUtils.checkNull(user_id[i]));
sqlParamMap.put("start_pdate", CommonUtils.checkNull(start_pdate[i]));
sqlParamMap.put("end_pdate", CommonUtils.checkNull(end_pdate[i]));
sqlParamMap.put("end_date", CommonUtils.checkNull(end_date[i]));
sqlParamMap.put("appr_cd", CommonUtils.checkNull(appr_cd[i]));
sqlParamMap.put("file_type", CommonUtils.checkNull(file_type[i]));
//선택된 기변항목의 목록을 가져와 파트와 연결한다.
cnt = sqlSession.update("project.mergeProjectMgmtInfo", sqlParamMap);
}
}
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;
}
/**
* 프로젝트 차종에 해당하는 TFT 인원의 목록을 가져온다.
* @param request
* @param paramMap
* @return
*/
public List getProjectMemberList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getProjectMemberList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 등록된 Part Master 목록을 가져온다.
* @param request
* @param paramMap
* @return
*/
public List getPartMasterList(HttpServletRequest request, Map paramMap){
List 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("getPartMasterListCnt",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("project.getPartMasterList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/**
* Part Master 내용을 저장한다.
* @param request
* @param paramMap
* @return
*/
public Map savePartMasterInfo(HttpSession session,HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("writer", CommonUtils.checkNull(person.getUserId()));
sqlSession.update("project.mergePartMasterInfo", paramMap);
resultMap.put("result", true);
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Part Master에 해당하는 내용의 중복 여부를 확인하다.
* @param request
* @param paramMap
* @return
*/
public Map checkPartMasterDuplicateCnt(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.checkPartMasterDuplicateCnt", paramMap);
resultMap.put("resultCnt", resultList.size());
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Part Master 내용을 가져온다.
* @param request
* @param paramMap
* @return
*/
public Map getPartMasterInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultMap = sqlSession.selectOne("project.getPartMasterInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Part Master에 연결된 Part 목록을 가져온다.
* @param request
* @param paramMap
* @return
*/
public List getPartMasterConnectedPartList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getPartMasterConnectedPartList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/**
* Part Master에 Part를 연결한다.
* @param request
* @param paramMap
* @return
*/
public Map partMasterConnectPart(HttpSession session,HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkedPartList[] = request.getParameterValues("searchPartCheckbox");
String targetObjId = CommonUtils.checkNull(request.getParameter("targetObjId"));
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
if(0 < checkedPartList.length){
for(int i=0;i<checkedPartList.length;i++){
String checkedPartNo = CommonUtils.checkNull(checkedPartList[i]);
Map sqlParamMap = new HashMap();
sqlParamMap.put("objId", CommonUtils.createObjId());
sqlParamMap.put("targetObjId", targetObjId);
sqlParamMap.put("partNo", checkedPartNo);
sqlParamMap.put("writer", writer);
sqlParamMap.put("seq", "");
sqlSession.update("project.partMasterConnectPart", sqlParamMap);
//Part Master에 연결된 개발 Master의 Part 목록을 가져온다.
List devMasterPartList = sqlSession.selectList("project.getPartMasterConnectedDevMasterPart", sqlParamMap);
if(null != devMasterPartList && 0 < devMasterPartList.size()){
for(int j=0;j<devMasterPartList.size();j++){
Map devMasterPartMap = (HashMap)devMasterPartList.get(j);
String devMasterObjId = CommonUtils.checkNull(devMasterPartMap.get("OBJID"));
//기존에 개발 Master에 연결된 Part가 없을 경우 개발마스터에 Part를 추가한다.
Map devMasterPartSqlMap = new HashMap();
devMasterPartSqlMap.put("targetObjId", devMasterObjId);
devMasterPartSqlMap.put("partNo", checkedPartNo);
devMasterPartSqlMap.put("writer", CommonUtils.checkNull(paramMap.get("writer")));
//공법승인
devMasterPartSqlMap.put("objId", CommonUtils.createObjId());
devMasterPartSqlMap.put("devPoint", "1methodAccept");
sqlSession.insert("devInfoMng.saveDevMasterNotConnectPartInfo",devMasterPartSqlMap);
//실제작
devMasterPartSqlMap.put("objId", CommonUtils.createObjId());
devMasterPartSqlMap.put("devPoint", "2realisticProduce");
sqlSession.insert("devInfoMng.saveDevMasterNotConnectPartInfo",devMasterPartSqlMap);
//HMC Nego
devMasterPartSqlMap.put("objId", CommonUtils.createObjId());
devMasterPartSqlMap.put("devPoint", "3hmcNego");
sqlSession.insert("devInfoMng.saveDevMasterNotConnectPartInfo",devMasterPartSqlMap);
}
}
}
resultMap.put("result", true);
sqlSession.commit();
}
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Part Master완 Part의 연결관계를 해제한다.
* @param request
* @param paramMap
* @return
*/
public Map partMasterDisConnectPart(HttpServletRequest request, Map paramMap){
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
Map resultMap = new HashMap();
try{
String checkedPartList[] = request.getParameterValues("connectedPartCheckBox");
String targetObjId = CommonUtils.checkNull(request.getParameter("objId"));
//해당 Part Master 관련 Dev Master 목록을 가져온다.
List<Map> connDevMasterList = new ArrayList();
connDevMasterList = sqlSession.selectList("project.getConnectDevMasterList", paramMap);
if(null != checkedPartList && 0 < checkedPartList.length){
for(int i=0;i<checkedPartList.length;i++){
String partNo = CommonUtils.checkNull(checkedPartList[i].toString());
Map disConnSqlMap = new HashMap();
disConnSqlMap.put("targetObjId",targetObjId);
disConnSqlMap.put("partNo",partNo);
sqlSession.delete("project.partMasterDisConnectPart", disConnSqlMap);
for(Map devMasterMap:connDevMasterList){
String devMasterObjId = CommonUtils.checkNull(devMasterMap.get("OBJID"));
if(!"".equals(devMasterObjId)){
Map disConnDevMstSqlMap = new HashMap();
disConnDevMstSqlMap.put("objId", devMasterObjId);
disConnDevMstSqlMap.put("partNo", partNo);
sqlSession.delete("project.partMasterConnectDevMasterDisConnectPart", disConnDevMstSqlMap);
}
}
}
}
resultMap.put("result", true);
sqlSession.commit();
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Part 정보를 조회한다.
* @param request
* @param paramMap
* @return
*/
public List getSearchPartList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getSearchPartList", paramMap);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 연결된 Part에 작성된 내용을 저장한다.
* @param request
* @param paramMap
* @return
*/
public Map saveConnectedPartInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
String targetObjId = CommonUtils.checkNull(request.getParameter("objId"));
try{
String connectedPartPartNos[] = request.getParameterValues("connectedPartPartNo");
if(null != connectedPartPartNos && 0 < connectedPartPartNos.length){
for(int i=0;i<connectedPartPartNos.length;i++){
Map sqlParamMap = new HashMap();
String partNo = CommonUtils.checkNull(connectedPartPartNos[i].toString());
String partNoSeq = CommonUtils.checkNull(request.getParameter("connectedPartSeq_"+partNo));
sqlParamMap.put("targetObjId", targetObjId);
sqlParamMap.put("partNo", partNo);
sqlParamMap.put("seq", partNoSeq);
sqlSession.update("project.updateConnectPartInfo", sqlParamMap);
}
sqlSession.commit();
}
resultMap.put("result", true);
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 부서정보 조회
* @param paramMap
* @return
*/
public List getDeptList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("project.searchDeptList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* WBS Task 정보를 저장한다.
* @param paramMap
* @return
*/
public Map saveWBSTaskInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
sqlSession.update("project.mergeProjectWBSTaskInfo", paramMap);
/* if(paramMap.get("taskStep").equals("6")){
paramMap.put("project_mgmt_objid", paramMap.get("projectObjId"));
sqlSession.update("Production.updateProductionData", paramMap);
}*/
sqlSession.commit();
resultMap.put("result", true);
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task 정보를 삭제한다.
* @param paramMap
* @return
*/
public Map deleteProjectWBSTask(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
List<Map> connectTaskList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
connectTaskList = sqlSession.selectList("project.getConnectedTaskList", paramMap);
if(null != connectTaskList && 0 < connectTaskList.size()){
for(Map taskMap:connectTaskList){
String taskObjId = CommonUtils.checkNull(taskMap.get("OBJID"));
Map sqlMap = new HashMap();
sqlMap.put("taskObjId", taskObjId);
//WBS Task를 삭제한다.
sqlSession.delete("project.deleteProjectWBSTask", sqlMap);
//WBS Task와 연결된 연결정보를 삭제한다.
sqlSession.delete("project.deleteTaskRelInfo", sqlMap);
}
}
sqlSession.commit();
resultMap.put("result", true);
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task 부서 정보를 저장한다.
* @param paramMap
* @return
*/
public Map changeTaskDept(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
sqlSession.update("project.changeTaskDept", paramMap);
sqlSession.commit();
resultMap.put("result", true);
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task 담당자 정보를 저장한다.
* @param paramMap
* @return
*/
public Map changeTaskChargerId(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
sqlSession.update("project.changeTaskChargerId", paramMap);
sqlSession.commit();
resultMap.put("result", true);
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/*edhwang end*/
/*msryu start*/
/**
* 검색조건에 해당하는 My Task의 목록을 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getMyTaskList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
Map pageMap = new HashMap();
try{
String searchDeptName = CommonUtils.checkNull(request.getParameter("search_deptName"));
String searchUserName = CommonUtils.checkNull(request.getParameter("search_userName"));
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
if("".equals(searchDeptName)){
paramMap.put("search_deptName", CommonUtils.checkNull(person.getDeptName()));
}
if("".equals(searchUserName)){
paramMap.put("search_userName", CommonUtils.checkNull(person.getUserName()));
}
//paging start
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), ""+Constants.COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
pageMap = (HashMap)sqlSession.selectOne("project.getMyTaskListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap, countPerPage);
paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END")));
paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START")));
//paging end
resultList = sqlSession.selectList("project.getMyTaskList",paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/*msryu end*/
/**
* 프로젝트의 PM 권한을 가져온다
* @param request
* @param paramMap
* @return
*/
public Map getProjectPmAuth(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = CommonUtils.keyChangeUpperList((ArrayList)sqlSession.selectList("project.getProjectPmAuth", paramMap));
System.out.println("resultList.size():"+resultList.size());
if(0 < resultList.size()){
resultMap.put("isTFTLeader", true);
}else{
resultMap.put("isTFTLeader", false);
}
//관리자는 권한 주기
String writer = CommonUtils.checkNull(paramMap.get("writer"));
if("plm_admin".equals(writer)){
resultMap.put("isTFTLeader", true);
}
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task 확정 기능.
* @param paramMap
* @return
*/
public Map completeProjectWBSTask(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String ObjId = CommonUtils.checkNull(paramMap.get("ObjId"));
String[] subObjId = ObjId.split(",");
Map sqlMap = new HashMap();
for(int i=0; i < subObjId.length; i++){
String valObjId = subObjId[i];
sqlMap.put("objId", valObjId);
//WBS Task를 삭제한다.
sqlSession.update("project.completeProjectWBSTask", sqlMap);
sqlSession.commit();
}
sqlSession.close();
resultMap.put("result", true);
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task 삭제.
* @param paramMap
* @return
*/
public Map deleteWBSTask(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String ObjId = CommonUtils.checkNull(paramMap.get("ObjId"));
String[] subObjId = ObjId.split(",");
Map sqlMap = new HashMap();
for(int i=0; i < subObjId.length; i++){
String valObjId = subObjId[i];
sqlMap.put("taskObjId", valObjId);
//WBS Task를 삭제한다.
sqlSession.delete("project.deleteProjectWBSTask", sqlMap);
sqlSession.commit();
}
sqlSession.close();
resultMap.put("result", true);
}catch(Exception e){
resultMap.put("result", false);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/** WBS 상태변경
* @param request
* @param paramMap
* @return
*/
public Map changewbsstatus(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
int cnt = sqlSession.update("project.changewbsstatus", 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;
}
/**
* 프로젝트 목록조회(제품별로 Row 구성)
* @param paramMap
* @return
*/
public List getProjectProductList(HttpServletRequest request,Map paramMap){
List<Map> resultList = new ArrayList();
SqlSession sqlSession = null;
System.out.println("getProjectConceptProductList"+paramMap);
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("project.getProjectProductListCnt", 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("project.getProjectProductList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 투자비 관리 추가
* @param paramMap
* @return
*/
public Map addSaveInvestCostMng(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String objId = CommonUtils.checkNull(CommonUtils.createObjId());
paramMap.put("OBJID", objId);
sqlSession.update("project.mergeInvestCostMng", paramMap);
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 투자비 관리 수정
* @param paramMap
* @return
*/
public Map saveInvestCostMng(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String paramObjid = request.getParameter("checkArr");
String[] objidArr = paramObjid.split(",");
System.out.println("objidArr : " + objidArr);
for(int i=0; i < objidArr.length; i++){
String objId = CommonUtils.checkNull(objidArr[i]);
String title = CommonUtils.checkNull(request.getParameter("title_"+objId));
String dueDate = CommonUtils.checkNull(request.getParameter("dueDate_"+objId));
String amount = CommonUtils.checkNull(request.getParameter("amount_"+objId));
String status = CommonUtils.checkNull(request.getParameter("status_"+objId));
System.out.println("objId"+i+" : " + objId);
System.out.println("title"+i+" : " + title);
System.out.println("dueDate"+i+" : " + dueDate);
System.out.println("amount"+i+" : " + amount);
System.out.println("status"+i+" : " + status);
HashMap wbsTaskMap = new HashMap();
wbsTaskMap.put("OBJID", objId);
wbsTaskMap.put("addTitle", title);
wbsTaskMap.put("addDueDate", dueDate);
wbsTaskMap.put("addAmount", amount);
wbsTaskMap.put("addStatus", status);
sqlSession.update("project.mergeInvestCostMng", wbsTaskMap);
}
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task 삭제.
* @param paramMap
* @return
*/
public Map saveWBSTask(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String[] objidArr = request.getParameterValues("OBJID");
String targetObjId = request.getParameter("TARGET_OBJID");
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
for(int i=0; i < objidArr.length; i++){
String objId = CommonUtils.checkNull(objidArr[i]);
String deptCode = CommonUtils.checkNull(request.getParameter("DEPT_CODE_"+objId));
String managerUserId = CommonUtils.checkNull(request.getParameter("MANAGER_USER_ID_"+objId));
String expectedPoint = CommonUtils.checkNull(request.getParameter("EXPECTED_POINT_"+objId));
String taskPerformDay = CommonUtils.checkNull(request.getParameter("TASK_PERFORM_DAY_"+objId));
String planStartDate = CommonUtils.checkNull(request.getParameter("PLAN_START_DATE_"+objId));
String planEndDate = CommonUtils.checkNull(request.getParameter("PLAN_END_DATE_"+objId));
String resultStartDate = CommonUtils.checkNull(request.getParameter("RESULT_START_DATE_"+objId));
String resultEndDate = CommonUtils.checkNull(request.getParameter("RESULT_END_DATE_"+objId));
String pmConfirmStatus = CommonUtils.checkNull(request.getParameter("PM_CONFIRM_STATUS_"+objId));
String remark = CommonUtils.checkNull(request.getParameter("REMARK_"+objId));
HashMap wbsTaskMap = new HashMap();
wbsTaskMap.put("OBJID", objId);
wbsTaskMap.put("TARGET_OBJID", targetObjId);
wbsTaskMap.put("DEPT_CODE", deptCode);
wbsTaskMap.put("MANAGER_USER_ID", managerUserId);
wbsTaskMap.put("EXPECTED_POINT", expectedPoint);
wbsTaskMap.put("TASK_PERFORM_DAY", taskPerformDay);
wbsTaskMap.put("PLAN_START_DATE", planStartDate);
wbsTaskMap.put("PLAN_END_DATE", planEndDate);
wbsTaskMap.put("RESULT_START_DATE", resultStartDate);
wbsTaskMap.put("RESULT_END_DATE", resultEndDate);
wbsTaskMap.put("PM_CONFIRM_STATUS", pmConfirmStatus);
wbsTaskMap.put("REMARK", remark);
wbsTaskMap.put("WRITER", writer);
sqlSession.update("project.mergeProjectWBSTask", wbsTaskMap);
}
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 투자비 관리 목록
* @param request
* @param paramMap
* @return
*/
public List investCostMngList(HttpServletRequest request, @RequestParam Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
List list = sqlSession.selectList("project.investCostMngList", paramMap);
return list;
}
/**
* 투자비 관리 삭제
* @param paramMap
* @return
*/
public Map deleteInvestCostMng(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
//1. 수주활동 제품별 협력부서정보 삭제
// int cnt1 = sqlSession.delete("projectConcept.deleteProjectConceptProductDeptInfo", paramMap);
String checkObjId = (String) paramMap.get("checkArr");
String[] arrObjId = checkObjId.split(",");
int resultCnt = 0;
for(int i = 0; i< arrObjId.length; i++ ){
paramMap.put("objId", arrObjId[i]);
//2. 수주활동별 제품정보 삭제
resultCnt = sqlSession.delete("project.deleteInvestCostMng", paramMap);
}
if((resultCnt) > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
sqlSession.commit();
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 프로젝트 목록조회
* @param paramMap
* @return
*/
public List getWBSTemplateMngList(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("project.getWBSTemplateMngListCnt", 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("project.getWBSTemplateMngList", paramMap));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 업로드된 Excel File을 통해 데이터를 Parsing 한다.
* @param request
* @param paramMap
* @return
*/
public List parsingExcelFile(HttpServletRequest request,Map paramMap)throws Exception{
List resultList = new ArrayList();
List fileList = commonService.getFileList(paramMap);
if(null != fileList && 1 == fileList.size()){
HashMap fileMap = (HashMap)fileList.get(0);
String path = CommonUtils.checkNull(fileMap.get("FILE_PATH"));
String fileName = CommonUtils.checkNull(fileMap.get("SAVED_FILE_NAME"));
int lastColumnIndex = 2;
FileInputStream fis = new FileInputStream(path+"\\"+fileName);
XSSFWorkbook workBook = new XSSFWorkbook(fis);
XSSFSheet sheet = workBook.getSheetAt(0);
int rows = sheet.getPhysicalNumberOfRows();
System.out.println("rows :: " + rows);
for(int rowIndex= 2 ; rowIndex < rows ; rowIndex++){
XSSFRow row = sheet.getRow(rowIndex);
if(null != row){
HashMap wbsMap = new HashMap();
wbsMap.put("WBS_OBJID", CommonUtils.createObjId());
String deptCode = "";
for(int columnIndex = 0 ; columnIndex < lastColumnIndex ; columnIndex++){
XSSFCell cell = row.getCell(columnIndex);
System.out.println("cell :: " + cell);
//데이버 유형별 get date
String cellValue = "";
if(null == cell){
cellValue = "";
}else{
switch(cell.getCellType()){
case XSSFCell.CELL_TYPE_FORMULA:
cellValue = cell.getCellFormula();
System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_FORMULA:"+cellValue);
break;
case XSSFCell.CELL_TYPE_NUMERIC:
DataFormatter formatter = new DataFormatter();
cellValue = formatter.formatCellValue(cell);
System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_STRING:"+cellValue);
break;
case XSSFCell.CELL_TYPE_STRING:
cellValue = cell.getStringCellValue()+"";
System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_STRING:"+cellValue);
break;
case XSSFCell.CELL_TYPE_BLANK:
cellValue = cell.getBooleanCellValue()+"";
System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_BLANK:"+cellValue);
break;
case XSSFCell.CELL_TYPE_ERROR:
cellValue = cell.getErrorCellValue()+"";
System.out.println(columnIndex+":"+"XSSFCell.CELL_TYPE_ERROR:"+cellValue);
break;
}
}
if("false".equals(cellValue)){
cellValue = "";
}
cellValue = CommonUtils.checkNull(cellValue);
//기본정보 시작===========================
/* //단계
if(0 == columnIndex){
wbsMap.put("STEP", cellValue);
}
//TASK명
if(1 == columnIndex){
wbsMap.put("TASK1", cellValue);
}*/
//공정명
if(0 == columnIndex){
wbsMap.put("TASK_NAME", cellValue);
}
//공정명
if(1 == columnIndex){
wbsMap.put("UNIT_NO", cellValue);
resultList.add(wbsMap);
System.out.println("wbsMap:"+wbsMap);
break;
}
//담당자
/*if(1 == columnIndex){
wbsMap.put("USER_NAME", cellValue);
if(!"".equals(cellValue)){
Map resultMap = new HashMap();
Map codeParamMap = new HashMap();
codeParamMap.put("USER_NAME", cellValue);
resultMap = commonService.getUserMap(codeParamMap);
if(null != resultMap){
wbsMap.put("USER_ID", CommonUtils.checkNull(resultMap.get("USER_ID")));
wbsMap.put("USER_NAME", CommonUtils.checkNull(resultMap.get("USER_NAME")));
}
}
resultList.add(wbsMap);
System.out.println("wbsMap:"+wbsMap);
break;
}*/
}
}
}
}
return resultList;
}
/**
* WBS Task Template 마스터 목록을 가져온다.
* @param paramMap
* @return
*/
public List<Map<String,Object>> getWBSTemplateProductList(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
System.out.println("getWBSTemplateProductList:"+paramMap);
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = (ArrayList)sqlSession.selectList("project.getWBSTemplateProductList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 템플릿을 통해 WBS 정보를 입력한다.
* @param request
* @param paramMap
*/
public void mergeExcelUploadWBS(HttpServletRequest request,Map paramMap) throws Exception{
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
String product = CommonUtils.checkNull(request.getParameter("product"));
String title = CommonUtils.checkNull(request.getParameter("title"));
String customer_product = CommonUtils.checkNull(request.getParameter("customer_product"));
Map templateMapsterSqlParamMap = new HashMap();
String wbsMasterObjId = CommonUtils.createObjId();
templateMapsterSqlParamMap.put("objid" , wbsMasterObjId);
templateMapsterSqlParamMap.put("product" , product);
templateMapsterSqlParamMap.put("title" , title);
templateMapsterSqlParamMap.put("writer" , writer);
templateMapsterSqlParamMap.put("customer_product" , customer_product);
//템플릿 마스터를 저장한다.
sqlSession.insert("project.saveWBSTaskTemp",templateMapsterSqlParamMap);
String[] wbsObjIdList = request.getParameterValues("WBS_TASK_OBJID");
if(null != wbsObjIdList || 0 < wbsObjIdList.length){
for(int i = 0;i<wbsObjIdList.length;i++){
String wbsObjId = CommonUtils.checkNull(wbsObjIdList[i]);
Map wbsSqlParamMap = new HashMap();
String TASK_NAME = CommonUtils.checkNull(request.getParameter("TASK_NAME_"+wbsObjId));
//String MANAGER_USER_ID = CommonUtils.checkNull(request.getParameter("TASK_CHARGER_ID_"+wbsObjId));
String UNIT_NO = CommonUtils.checkNull(request.getParameter("UNIT_NO_"+wbsObjId));
wbsSqlParamMap.put("objid", wbsObjId);
wbsSqlParamMap.put("task_name", TASK_NAME);
wbsSqlParamMap.put("task_seq", i+1);
wbsSqlParamMap.put("unit_no", UNIT_NO);
//wbsSqlParamMap.put("user_id", MANAGER_USER_ID);
wbsSqlParamMap.put("parent_objid", wbsMasterObjId);
wbsSqlParamMap.put("writer", writer);
System.out.println("wbsSqlParamMap:"+wbsSqlParamMap);
sqlSession.insert("project.saveWBSTemplateTaskInfo", wbsSqlParamMap);
//제품구분(0000001) 공통코드 등록 처리
// this.checkAndSaveUnitCodeInfo(request, wbsSqlParamMap, sqlSession);
}
sqlSession.commit();
}
}catch(Exception e){
sqlSession.rollback();
throw e;
}finally{
sqlSession.close();
}
}
/**
* WBS Task Template 마스터 단건조회.
* @param paramMap
* @return
*/
public Map<String,Object> getWBSTemplateMasterInfo(HttpServletRequest request,Map paramMap){
Map<String,Object> resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
if("".equals(objId)){
objId = CommonUtils.createObjId();
}
paramMap.put("OBJID",objId);
System.out.println("getWBSTemplateMasterInfo:"+paramMap);
resultMap = (Map)sqlSession.selectOne("project.getWBSTemplateMasterInfo", paramMap);
if(null == resultMap){
resultMap = new HashMap();
resultMap.put("objid",objId);
}
//System.out.println("getWBSTemplateMasterInfo(resultMap):"+resultMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultMap);
}
/**
* WBS Task Master 하위 WBS Task 목록
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getWBSTemplateTaskList(HttpServletRequest request, Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getWBSTemplateTaskList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* WBS TemplateTask의 상세화면을 보여준다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map getWBSTemplateTaskInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
if("".equals(objId)){
objId = CommonUtils.createObjId();
}
paramMap.put("OBJID", objId);
resultMap = sqlSession.selectOne("project.getWBSTemplateTaskInfo",paramMap);
if(null != resultMap){
resultMap = CommonUtils.keyChangeUpperMap(resultMap);
}
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
//제품구분(0000001) 공통코드 등록 처리
public Map checkAndSaveUnitCodeInfo(HttpServletRequest request, Map paramMap, SqlSession sqlSession)throws Exception{
Map codeResultMap = new HashMap();;
Map cdParamMap = new HashMap();
request.setAttribute("objid", ""); //초기화
//{objid=, parentCodeId=0001403, codeName=test c2, codeId=, status=active, ext_val=}
Map templateInfoMap = new HashMap();
String objid_code = CommonUtils.checkNull(paramMap.get("objid_code"));
if(CommonUtils.isBlank(objid_code)){ //등록
cdParamMap.put("objid", paramMap.get("parent_objid"));
List templateList = sqlSession.selectList("project.getWBSTemplateMngList",cdParamMap); //PMS_WBS_TEMPLATE 조회
cdParamMap.clear();
if(null != templateList && !templateList.isEmpty()){
templateInfoMap = (Map)templateList.get(0);
cdParamMap.put("parentCodeId", templateInfoMap.get("product_objid")); //PRODUCT_OBJID 가져옴
}
}else{ //수정
cdParamMap.put("objid", objid_code);
cdParamMap.put("objidEq", objid_code);
}
cdParamMap.put("codeName", paramMap.get("task_name"));
cdParamMap.put("ext_val", paramMap.get("unit_no"));
cdParamMap.put("status", "active");
// codeResultMap = adminService.checkAndSaveCodeCategogyInfo(request, cdParamMap); //중복체크해서 "제품구분" 코드 등록
System.out.println("codeResultMap:" + codeResultMap);
return codeResultMap;
}
//제품구분(0000001) 공통코드 삭제 처리
public void checkAndDeleteUnitCodeInfo(HttpServletRequest request, Map paramMap, SqlSession sqlSession)throws Exception{
Map<String,Object> cdParamMap = new HashMap<String,Object>();
cdParamMap.put("objid", paramMap.get("objid_code"));
//cdParamMap.put("codeName", paramMap.get("task_name"));
//cdParamMap.put("ext_val", paramMap.get("unit_no"));
cdParamMap.put("status", "inActive");
// adminService.changeCodeCategoryStatusByUnit(request, cdParamMap); // "제품구분" 코드 삭제
}
/**
* WBS Template Task의 내용을 저장한다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map saveWBSTemplateTaskInfo(HttpServletRequest request, Map paramMap)throws Exception{
Map resultMap = new HashMap();
Map infoMap = new HashMap();
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
Map sparamMap = new HashMap();
String objId = CommonUtils.checkNull(paramMap.get("objid"));
String task_name = CommonUtils.checkNull((String)paramMap.get("task_name")).trim();
if("".equals(objId)){//신규
objId = CommonUtils.createObjId();
}else{//수정
sparamMap.put("OBJID_NE", paramMap.get("objid"));
}
//제품구분(0000001) 공통코드 등록 처리
// this.checkAndSaveUnitCodeInfo(request, paramMap, sqlSession);
//230328 중복체크 추가
sparamMap.put("PARENT_OBJID", paramMap.get("parent_objid"));
sparamMap.put("TASK_NAME", task_name);
List list = sqlSession.selectList("project.getWBSTemplateTaskInfo",sparamMap);
if(null != list && !list.isEmpty()){ // && StringUtils.isNotEmpty((String)infoMap.get("OBJID"))
throw new Exception("UNIT Name이 중복됩니다.");
}
sparamMap.put("TASK_NAME", ""); //초기화
sparamMap.put("UNIT_NO", paramMap.get("unit_no"));
list = sqlSession.selectList("project.getWBSTemplateTaskInfo",sparamMap);
if(null != list && !list.isEmpty()){ // && StringUtils.isNotEmpty((String)infoMap.get("OBJID"))
throw new Exception("UNIT No가 중복됩니다.");
}
paramMap.put("objid", objId);
paramMap.put("task_name", task_name);
sqlSession.update("project.saveWBSTemplateTaskInfo",paramMap);
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
//프로젝트별 추가된 unit 폴더 추가생성(230802)
paramMap.put("unitCode", objId);
List<Map<String,Object>> projectList = sqlSession.selectList("common.getProjectListByUnit",paramMap);
if(null != projectList && !projectList.isEmpty()){
for (Map<String, Object> projectInfo : projectList) {
String projectNo = (String)projectInfo.get("project_no");
String filepath = Constants.FILE_STORAGE+"\\PART_DATA\\";
File file = new File(filepath+File.separator+projectNo+File.separator+task_name);
if(!file.exists()){
file.mkdirs();
}
}
}
sqlSession.commit();
}catch(Exception e){
if(CommonUtils.isEmpty(resultMap))
resultMap = new HashMap();
resultMap.put("result", false);
resultMap.put("msg", e.getMessage());
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
public Map saveWBSTemplateMasterInfo(HttpServletRequest request, Map paramMap)throws Exception{
Map resultMap = new HashMap();
Map infoMap = new HashMap();
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
Map sparamMap = new HashMap();
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
if("".equals(objId)){//신규
objId = CommonUtils.createObjId();
}else{//수정
sparamMap.put("OBJID_NE", paramMap.get("OBJID"));
}
//230328 중복체크 추가
/*
sparamMap.put("CONTRACT_OBJID", paramMap.get("parent_objid")); //PARENT_OBJID
sparamMap.put("TASK_NAME", paramMap.get("task_name"));
List list = sqlSession.selectList("project.getWBSTemplateMasterInfo",sparamMap);
if(null != list && !list.isEmpty()){ // && StringUtils.isNotEmpty((String)infoMap.get("OBJID"))
throw new Exception("UNIT Name이 중복됩니다.");
}
sparamMap.put("TASK_NAME", ""); //초기화
sparamMap.put("UNIT_NO", paramMap.get("unit_no"));
list = sqlSession.selectList("project.getWBSTemplateMasterInfo",sparamMap);
if(null != list && !list.isEmpty()){ // && StringUtils.isNotEmpty((String)infoMap.get("OBJID"))
throw new Exception("UNIT No가 중복됩니다.");
}
*/
//paramMap.put("objid", objId);
sqlSession.update("project.saveWBSTemplateMasterInfo",paramMap);
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
sqlSession.commit();
}catch(Exception e){
if(CommonUtils.isEmpty(resultMap))
resultMap = new HashMap();
resultMap.put("result", false);
resultMap.put("msg", e.getMessage());
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Template Task 삭제.
* @param paramMap
* @return
*/
public Map deleteWBSTemplateTask(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkArr[] = (CommonUtils.checkNull(paramMap.get("checkArr"))).split(",");
//String objidCodeArr[] = (CommonUtils.checkNull(paramMap.get("objidCodeArr"))).split(",");
if(0 == checkArr.length){
checkArr[0] = CommonUtils.checkNull(paramMap.get("checkArr"));
}
if(null != checkArr && 0 < checkArr.length){
Map sqlParamMap = new HashMap();
sqlParamMap.put("checkArr",checkArr);
sqlSession.update("project.deleteWBSTemplateTask", sqlParamMap);
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
/*
if(null != objidCodeArr && 0 < objidCodeArr.length){
for (String codeId : objidCodeArr) {
Map sqlParamMap = new HashMap();
//제품구분(0000001) 공통코드 삭제 처리
sqlParamMap.put("objid_code",codeId);
this.checkAndDeleteUnitCodeInfo(request, sqlParamMap, sqlSession);
}
}
*/
sqlSession.commit();
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Template Master 내용을 삭제한다.
* @param paramMap
* @return
*/
public Map deleteWBSTemplateMaster(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkArr[] = (CommonUtils.checkNull(paramMap.get("checkArr"))).split(",");
if(0 == checkArr.length){
checkArr[0] = CommonUtils.checkNull(paramMap.get("checkArr"));
}
if(null != checkArr && 0 < checkArr.length){
Map sqlParamMap = new HashMap();
sqlParamMap.put("checkArr",checkArr);
sqlSession.delete("project.deleteWBSTemplateMaster", sqlParamMap);
sqlSession.delete("project.deleteWBSTemplateMasterTask", sqlParamMap);
//sqlSession.delete("admin.deleteWBSTemplateMasterTask", sqlParamMap);
//changeCodeCategoryStatusByUnit
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task의 내용을 저장한다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map saveWBSTaskInfo2(HttpServletRequest request, Map paramMap)throws Exception{
Map resultMap = new HashMap();
Map infoMap = new HashMap();
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
Map sparamMap = new HashMap();
String objId = CommonUtils.checkNull(paramMap.get("objid"));
if("".equals(objId)){//신규
objId = CommonUtils.createObjId();
}else{//수정
sparamMap.put("OBJID_NE", paramMap.get("objid"));
}
//230328 중복체크 추가
sparamMap.put("CONTRACT_OBJID", paramMap.get("parent_objid")); //PARENT_OBJID
sparamMap.put("TASK_NAME", paramMap.get("task_name"));
List list = sqlSession.selectList("project.getWBSTaskInfo",sparamMap);
if(null != list && !list.isEmpty()){ // && StringUtils.isNotEmpty((String)infoMap.get("OBJID"))
throw new Exception("UNIT Name이 중복됩니다.");
}
sparamMap.put("TASK_NAME", ""); //초기화
sparamMap.put("UNIT_NO", paramMap.get("unit_no"));
list = sqlSession.selectList("project.getWBSTaskInfo",sparamMap);
if(null != list && !list.isEmpty()){ // && StringUtils.isNotEmpty((String)infoMap.get("OBJID"))
throw new Exception("UNIT No가 중복됩니다.");
}
paramMap.put("objid", objId);
sqlSession.update("project.saveWBSTaskInfo",paramMap);
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
sqlSession.commit();
}catch(Exception e){
if(CommonUtils.isEmpty(resultMap))
resultMap = new HashMap();
resultMap.put("result", false);
resultMap.put("msg", e.getMessage());
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task 삭제.
* @param paramMap
* @return
*/
public Map deleteWBSTask2(HttpServletRequest request, Map paramMap) throws Exception{
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkArr[] = (CommonUtils.checkNull(paramMap.get("checkArr"))).split(",");
if(0 == checkArr.length){
checkArr[0] = CommonUtils.checkNull(paramMap.get("checkArr"));
}
if(null != checkArr && 0 < checkArr.length){
Map sqlParamMap = new HashMap();
//240520 check 추가
for (String str : checkArr) {
sqlParamMap.put("unit_code", str);
List<Map<String, Object>> resultListBom = (ArrayList)sqlSession.selectList("partMng.getBOMStandardStructureList", sqlParamMap); //bom 조회
if(resultListBom != null && !resultListBom.isEmpty()) {
throw new Exception("해당 유닛으로 등록된 BOM이 존재합니다.");
}
}
//if (1==1) { return resultMap; //for test
sqlParamMap.put("checkArr",checkArr);
sqlSession.update("project.deleteWBSTask", sqlParamMap);
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
sqlSession.rollback();
e.printStackTrace();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Setup WBS Task 삭제.
* @param paramMap
* @return
*/
public Map deleteSetupWBSTask(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkArr[] = (CommonUtils.checkNull(paramMap.get("checkArr"))).split(",");
if(0 == checkArr.length){
checkArr[0] = CommonUtils.checkNull(paramMap.get("checkArr"));
}
if(null != checkArr && 0 < checkArr.length){
Map sqlParamMap = new HashMap();
sqlParamMap.put("checkArr",checkArr);
sqlSession.update("project.deleteSetupWBSTask", sqlParamMap);
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* WBS Task 삭제.
* @param paramMap
* @return
*/
public Map deleteInspection(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkArr[] = (CommonUtils.checkNull(paramMap.get("checkArr"))).split(",");
if(0 == checkArr.length){
checkArr[0] = CommonUtils.checkNull(paramMap.get("checkArr"));
}
if(null != checkArr && 0 < checkArr.length){
Map sqlParamMap = new HashMap();
sqlParamMap.put("checkArr",checkArr);
sqlSession.update("project.deleteInspection", sqlParamMap);
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* Setup WBS Task의 내용을 저장한다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public Map saveSetUpWBSTaskInfo(HttpServletRequest request, Map paramMap)throws Exception{
Map resultMap = new HashMap();
//Map infoMap = new HashMap();
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
Map sparamMap = new HashMap();
String objId = CommonUtils.checkNull(paramMap.get("objid"));
if("".equals(objId)){//신규
objId = CommonUtils.createObjId();
}else{//수정
sparamMap.put("OBJID_NE", paramMap.get("objid"));
}
//230328 중복체크 추가
sparamMap.put("CONTRACT_OBJID", paramMap.get("CONTRACT_OBJID")); //CONTRACT_OBJID
sparamMap.put("TASK_NAME", paramMap.get("task_name"));
List list = sqlSession.selectList("project.getSetupWBSTaskInfo",sparamMap);
if(null != list && !list.isEmpty()){ // && StringUtils.isNotEmpty((String)infoMap.get("OBJID"))
throw new Exception("Task Name이 중복됩니다.");
}
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
paramMap.put("writer", writer);
paramMap.put("objid", objId);
paramMap.put("parent_objid", paramMap.get("task_category"));
String prevObjId = CommonUtils.checkNull(paramMap.get("PREV_TASK_SEQ"));
if(StringUtils.isBlank(prevObjId)){
paramMap.put("task_seq", 1);
}else{
// Retrieve the value of PREV_TASK_SEQ
String prevTaskSeqStr = (String) paramMap.get("PREV_TASK_SEQ");
// Convert the String to Integer and add 1
int prevTaskSeq = Integer.parseInt(prevTaskSeqStr) + 1;
paramMap.put("task_seq", prevTaskSeq);
}
//시퀀스 업데이트
System.out.println("paramMap::::"+paramMap);
sqlSession.update("project.updateSetupWBSTaskListSeq",paramMap);
sqlSession.update("project.saveSetupWBSTaskInfo",paramMap);
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
sqlSession.commit();
}catch(Exception e){
if(CommonUtils.isEmpty(resultMap))
resultMap = new HashMap();
resultMap.put("result", false);
resultMap.put("msg", e.getMessage());
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 프로젝트에 연결된 WBS Task의 목록 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getProjectWBSTaskList(HttpServletRequest request, Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getProjectProductTaskList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 프로젝트에 연결된 SETUP WBS Task의 목록 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getProjectSetupWBSTaskList(HttpServletRequest request, Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getProjectSetupWBSTaskList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/** 검사관리 내용을 저장한다.
* @param request
* @param paramMap
* @return
*/
public Map save_inspectionListFormPopUp(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());
String parentObjId = CommonUtils.checkNull(request.getParameter("projectObjId"));
String partObjList[] = request.getParameterValues("OBJID");
if(parentObjId != null){
HashMap sqlParamMap = new HashMap();
sqlParamMap.put("parentObjId", parentObjId);
sqlSession.delete("project.deleteAllInspectionList",sqlParamMap);
}
if(null != partObjList && 0 < partObjList.length){
for(String targetObjId:partObjList){
Map sqlParamMep = new HashMap();
sqlParamMep.put("OBJID" , targetObjId);
sqlParamMep.put("PARENT_OBJID" , CommonUtils.checkNull(request.getParameter("PARENT_OBJID_"+targetObjId )));
sqlParamMep.put("UNIT_CODE" , CommonUtils.checkNull(request.getParameter("UNIT_CODE_"+targetObjId )));
sqlParamMep.put("INTERNAL_INSPECTION_DATE" , CommonUtils.checkNull(request.getParameter("INTERNAL_INSPECTION_DATE_"+targetObjId )));
sqlParamMep.put("INTERNAL_INSPECTION_RESULT" , CommonUtils.checkNull(request.getParameter("INTERNAL_INSPECTION_RESULT_"+targetObjId )));
sqlParamMep.put("INTERNAL_INSPECTION_ID" , CommonUtils.checkNull(request.getParameter("INTERNAL_INSPECTION_ID_"+targetObjId )));
//sqlParamMep.put("ADMISSION_INSPECTION_DATE" , CommonUtils.checkNull(request.getParameter("ADMISSION_INSPECTION_DATE_"+targetObjId )));
//sqlParamMep.put("ADMISSION_INSPECTION_RESULT" , CommonUtils.checkNull(request.getParameter("ADMISSION_INSPECTION_RESULT_"+targetObjId )));
//sqlParamMep.put("ADMISSION_INSPECTION_ID" , CommonUtils.checkNull(request.getParameter("ADMISSION_INSPECTION_ID_"+targetObjId )));
sqlParamMep.put("WRITER" , paramMap.get("WRITER"));
System.out.println("sqlParamMep::"+sqlParamMep);
sqlSession.update("project.save_inspectionListFormPopUp", sqlParamMep);
}
}
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 void save_wbsTaskProductForm(HttpServletRequest request, Map<String, Object> paramMap) {
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String[] TASK_OBJIDs = request.getParameterValues("TASK_OBJID");
//메일 발송 에서 프로젝트 이름가져오려고 맹금
Map<String,Object> projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", paramMap);
//메일 발송 에서 프로젝트 이름가져오려고 맹금
paramMap.put("project_name", CommonUtils.checkNull(projectInfo.get("project_name")));
List<String> MailList = new ArrayList<>();
if(TASK_OBJIDs != null){
for(int i=0; i<TASK_OBJIDs.length; i++){
Map saveMap = new HashMap();
saveMap.put("OBJID" , TASK_OBJIDs[i]);
//saveMap.put("CONTRACT_OBJID" , CommonUtils.checkNull(request.getParameterValues("CONTRACT_OBJID" )[i]));
//saveMap.put("PARENT_OBJID" , CommonUtils.checkNull(request.getParameterValues("PARENT_OBJID" )[i]));
saveMap.put("TASK_NAME" , CommonUtils.checkNull(request.getParameterValues("TASK_NAME" )[i]));
//saveMap.put("TASK_SEQ" , CommonUtils.checkNull(request.getParameterValues("TASK_SEQ" )[i]));
saveMap.put("DESIGN_USER_ID" , CommonUtils.checkNull(request.getParameterValues("DESIGN_USER_ID" )[i]));
saveMap.put("DESIGN_PLAN_START" , CommonUtils.checkNull(request.getParameterValues("DESIGN_PLAN_START" )[i]));
saveMap.put("DESIGN_PLAN_END" , CommonUtils.checkNull(request.getParameterValues("DESIGN_PLAN_END" )[i]));
saveMap.put("DESIGN_ACT_START" , CommonUtils.checkNull(request.getParameterValues("DESIGN_ACT_START" )[i]));
saveMap.put("DESIGN_ACT_END" , CommonUtils.checkNull(request.getParameterValues("DESIGN_ACT_END" )[i]));
saveMap.put("PURCHASE_USER_ID" , CommonUtils.checkNull(request.getParameterValues("PURCHASE_USER_ID" )[i]));
saveMap.put("PURCHASE_PLAN_START" , CommonUtils.checkNull(request.getParameterValues("PURCHASE_PLAN_START")[i]));
saveMap.put("PURCHASE_PLAN_END" , CommonUtils.checkNull(request.getParameterValues("PURCHASE_PLAN_END" )[i]));
saveMap.put("PURCHASE_ACT_START" , CommonUtils.checkNull(request.getParameterValues("PURCHASE_ACT_START" )[i]));
saveMap.put("PURCHASE_ACT_END" , CommonUtils.checkNull(request.getParameterValues("PURCHASE_ACT_END" )[i]));
/*saveMap.put("PRODUCE_USER_ID" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_USER_ID" )[i]));
saveMap.put("PRODUCE_PLAN_START" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_PLAN_START" )[i]));
saveMap.put("PRODUCE_PLAN_END" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_PLAN_END" )[i]));
saveMap.put("PRODUCE_ACT_START" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_ACT_START" )[i]));
saveMap.put("PRODUCE_ACT_END" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_ACT_END" )[i]));*/
/*saveMap.put("SELFINS_USER_ID" , CommonUtils.checkNull(request.getParameterValues("SELFINS_USER_ID" )[i]));
saveMap.put("SELFINS_PLAN_START" , CommonUtils.checkNull(request.getParameterValues("SELFINS_PLAN_START" )[i]));
saveMap.put("SELFINS_PLAN_END" , CommonUtils.checkNull(request.getParameterValues("SELFINS_PLAN_END" )[i]));
saveMap.put("SELFINS_ACT_START" , CommonUtils.checkNull(request.getParameterValues("SELFINS_ACT_START" )[i]));
saveMap.put("SELFINS_ACT_END" , CommonUtils.checkNull(request.getParameterValues("SELFINS_ACT_END" )[i]));
saveMap.put("FINALINS_USER_ID" , CommonUtils.checkNull(request.getParameterValues("FINALINS_USER_ID" )[i]));
saveMap.put("FINALINS_PLAN_START" , CommonUtils.checkNull(request.getParameterValues("FINALINS_PLAN_START")[i]));
saveMap.put("FINALINS_PLAN_END" , CommonUtils.checkNull(request.getParameterValues("FINALINS_PLAN_END" )[i]));
saveMap.put("FINALINS_ACT_START" , CommonUtils.checkNull(request.getParameterValues("FINALINS_ACT_START" )[i]));
saveMap.put("FINALINS_ACT_END" , CommonUtils.checkNull(request.getParameterValues("FINALINS_ACT_END" )[i]));
saveMap.put("SHIP_USER_ID" , CommonUtils.checkNull(request.getParameterValues("SHIP_USER_ID" )[i]));
saveMap.put("SHIP_PLAN_START" , CommonUtils.checkNull(request.getParameterValues("SHIP_PLAN_START" )[i]));
saveMap.put("SHIP_PLAN_END" , CommonUtils.checkNull(request.getParameterValues("SHIP_PLAN_END" )[i]));
saveMap.put("SHIP_ACT_START" , CommonUtils.checkNull(request.getParameterValues("SHIP_ACT_START" )[i]));
saveMap.put("SHIP_ACT_END" , CommonUtils.checkNull(request.getParameterValues("SHIP_ACT_END" )[i]));
saveMap.put("SETUP_USER_ID" , CommonUtils.checkNull(request.getParameterValues("SETUP_USER_ID" )[i]));
saveMap.put("SETUP_PLAN_START" , CommonUtils.checkNull(request.getParameterValues("SETUP_PLAN_START" )[i]));
saveMap.put("SETUP_PLAN_END" , CommonUtils.checkNull(request.getParameterValues("SETUP_PLAN_END" )[i]));
saveMap.put("SETUP_ACT_START" , CommonUtils.checkNull(request.getParameterValues("SETUP_ACT_START" )[i]));
saveMap.put("SETUP_ACT_END" , CommonUtils.checkNull(request.getParameterValues("SETUP_ACT_END" )[i]));*/
saveMap.put("WRITER" , paramMap.get("WRITER"));
saveMap.put("DESIGN_RATE" , CommonUtils.checkNull(request.getParameterValues("DESIGN_RATE" )[i], "0" ));
saveMap.put("PURCHASE_RATE" , CommonUtils.checkNull(request.getParameterValues("PURCHASE_RATE" )[i], "0" ));
/*saveMap.put("PRODUCE_RATE" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_RATE" )[i], "0" ));
saveMap.put("SELFINS_RATE" , CommonUtils.checkNull(request.getParameterValues("SELFINS_RATE" )[i], "0" ));
saveMap.put("FINALINS_RATE" , CommonUtils.checkNull(request.getParameterValues("FINALINS_RATE" )[i], "0" ));
saveMap.put("SHIP_RATE" , CommonUtils.checkNull(request.getParameterValues("SHIP_RATE" )[i], "0" ));
saveMap.put("SETUP_RATE" , CommonUtils.checkNull(request.getParameterValues("SETUP_RATE" )[i], "0" ));*/
sqlSession.update("project.save_wbsTaskProductForm", saveMap);
//각담당자 메일 발송
if(!"".equals(CommonUtils.checkNull(request.getParameterValues("DESIGN_USER_ID")[i]))){
MailList.add(CommonUtils.checkNull(request.getParameterValues("DESIGN_USER_ID")[i]));
//commonService.SendMail(paramMap,"TASK_SAVE",CommonUtils.checkNull(request.getParameterValues("DESIGN_USER_ID" )[i]));
}
if(!"".equals(CommonUtils.checkNull(request.getParameterValues("PURCHASE_USER_ID")[i]))){
MailList.add(CommonUtils.checkNull(request.getParameterValues("PURCHASE_USER_ID")[i]));
//commonService.SendMail(paramMap,"TASK_SAVE",CommonUtils.checkNull(request.getParameterValues("PURCHASE_USER_ID" )[i]));
}
//if(!"".equals(CommonUtils.checkNull(request.getParameterValues("PRODUCE_USER_ID")[i]))){
//MailList.add(CommonUtils.checkNull(request.getParameterValues("PRODUCE_USER_ID")[i]));
//commonService.SendMail(paramMap,"TASK_SAVE",CommonUtils.checkNull(request.getParameterValues("PRODUCE_USER_ID" )[i]));
//}
//if(!"".equals(CommonUtils.checkNull(request.getParameterValues("SELFINS_USER_ID")[i]))){
// MailList.add(CommonUtils.checkNull(request.getParameterValues("SELFINS_USER_ID")[i]));
//commonService.SendMail(paramMap,"TASK_SAVE",CommonUtils.checkNull(request.getParameterValues("SELFINS_USER_ID" )[i]));
//}
//if(!"".equals(CommonUtils.checkNull(request.getParameterValues("FINALINS_USER_ID")[i]))){
// MailList.add(CommonUtils.checkNull(request.getParameterValues("FINALINS_USER_ID")[i]));
//commonService.SendMail(paramMap,"TASK_SAVE",CommonUtils.checkNull(request.getParameterValues("FINALINS_USER_ID" )[i]));
//}
//if(!"".equals(CommonUtils.checkNull(request.getParameterValues("SHIP_USER_ID")[i]))){
// MailList.add(CommonUtils.checkNull(request.getParameterValues("SHIP_USER_ID")[i]));
//commonService.SendMail(paramMap,"TASK_SAVE",CommonUtils.checkNull(request.getParameterValues("SHIP_USER_ID" )[i]));
//}
//if(!"".equals(CommonUtils.checkNull(request.getParameterValues("SETUP_USER_ID")[i]))){
// MailList.add(CommonUtils.checkNull(request.getParameterValues("SETUP_USER_ID")[i]));
//commonService.SendMail(paramMap,"TASK_SAVE",CommonUtils.checkNull(request.getParameterValues("SETUP_USER_ID" )[i]));
//}
}
}
Set<String> setWithoutDuplicates = new LinkedHashSet<>(MailList);
MailList = new ArrayList<>(setWithoutDuplicates);
for(String mailuser:MailList){
//중복제거 메일 발송
commonService.SendMail(paramMap,"TASK_SAVE",mailuser);
}
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
throw e;
}finally{
sqlSession.close();
}
}
public void save_setupWbsTaskProductForm(HttpServletRequest request, Map<String, Object> paramMap) {
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String[] TASK_OBJIDs = request.getParameterValues("TASK_OBJID");
//메일 발송 에서 프로젝트 이름가져오려고 맹금
Map<String,Object> projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", paramMap);
//메일 발송 에서 프로젝트 이름가져오려고 맹금
paramMap.put("project_name", CommonUtils.checkNull(projectInfo.get("project_name")));
List<String> MailList = new ArrayList<>();
if(TASK_OBJIDs != null){
for(int i=0; i<TASK_OBJIDs.length; i++){
Map saveMap = new HashMap();
saveMap.put("OBJID" , TASK_OBJIDs[i]);
//saveMap.put("CONTRACT_OBJID" , CommonUtils.checkNull(request.getParameterValues("CONTRACT_OBJID" )[i]));
//saveMap.put("PARENT_OBJID" , CommonUtils.checkNull(request.getParameterValues("PARENT_OBJID" )[i]));
//saveMap.put("TASK_NAME" , CommonUtils.checkNull(request.getParameterValues("TASK_NAME" )[i]));
//saveMap.put("TASK_SEQ" , CommonUtils.checkNull(request.getParameterValues("TASK_SEQ" )[i]));
//saveMap.put("SETUP_USER_ID" , CommonUtils.checkNull(request.getParameterValues("SETUP_USER_ID" )[i]));
saveMap.put("SETUP_PLAN_START" , CommonUtils.checkNull(request.getParameterValues("SETUP_PLAN_START" )[i]));
saveMap.put("SETUP_PLAN_END" , CommonUtils.checkNull(request.getParameterValues("SETUP_PLAN_END" )[i]));
saveMap.put("SETUP_ACT_START" , CommonUtils.checkNull(request.getParameterValues("SETUP_ACT_START" )[i]));
saveMap.put("SETUP_ACT_END" , CommonUtils.checkNull(request.getParameterValues("SETUP_ACT_END" )[i]));
saveMap.put("WRITER" , paramMap.get("WRITER"));
saveMap.put("EMPLOYEES_IN" , CommonUtils.checkNull(request.getParameterValues("EMPLOYEES_IN" )[i], "0" ));
saveMap.put("EMPLOYEES_OUT" , CommonUtils.checkNull(request.getParameterValues("EMPLOYEES_OUT" )[i], "0" ));
//saveMap.put("SETUP_RATE" , CommonUtils.checkNull(request.getParameterValues("SETUP_RATE" )[i], "0" ));
sqlSession.update("project.save_setupWbsTaskProductForm", saveMap);
//각담당자 메일 발송
//if(!"".equals(CommonUtils.checkNull(request.getParameterValues("SETUP_USER_ID")[i]))){
// MailList.add(CommonUtils.checkNull(request.getParameterValues("SETUP_USER_ID")[i]));
//commonService.SendMail(paramMap,"TASK_SAVE",CommonUtils.checkNull(request.getParameterValues("SETUP_USER_ID" )[i]));
//}
}
}
Set<String> setWithoutDuplicates = new LinkedHashSet<>(MailList);
MailList = new ArrayList<>(setWithoutDuplicates);
for(String mailuser:MailList){
//중복제거 메일 발송
commonService.SendMail(paramMap,"TASK_SAVE",mailuser);
}
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
throw e;
}finally{
sqlSession.close();
}
}
public void save_wbsTaskProductProduceForm(HttpServletRequest request, Map<String, Object> paramMap) {
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String[] TASK_OBJIDs = request.getParameterValues("TASK_OBJID");
String tempData = "123";
//메일 발송 에서 프로젝트 이름가져오려고 맹금
Map<String,Object> projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", paramMap);
//메일 발송 에서 프로젝트 이름가져오려고 맹금
paramMap.put("project_name", CommonUtils.checkNull(projectInfo.get("project_name")));
List<String> MailList = new ArrayList<>();
if(TASK_OBJIDs != null){
for(int i=0; i<TASK_OBJIDs.length; i++){
Map saveMap = new HashMap();
saveMap.put("OBJID" , TASK_OBJIDs[i]);
saveMap.put("PRODUCE_USER_ID" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_USER_ID" )[i]));
saveMap.put("PRODUCE_PLAN_START" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_PLAN_START" )[i]));
saveMap.put("PRODUCE_PLAN_END" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_PLAN_END" )[i]));
//saveMap.put("PRODUCE_ACT_START" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_ACT_START" )[i]));
//saveMap.put("PRODUCE_ACT_END" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_ACT_END" )[i]));
saveMap.put("PRODUCE_RATE" , CommonUtils.checkNull(request.getParameterValues("PRODUCE_RATE" )[i], "0" ));
sqlSession.update("project.save_wbsTaskProductProduceForm", saveMap);
}
}
Set<String> setWithoutDuplicates = new LinkedHashSet<>(MailList);
MailList = new ArrayList<>(setWithoutDuplicates);
for(String mailuser:MailList){
//중복제거 메일 발송
commonService.SendMail(paramMap,"TASK_SAVE",mailuser);
}
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
throw e;
}finally{
sqlSession.close();
}
}
/**
* 프로젝트에 연결된 WBS Task의 목록 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getProjectWBSGanttTaskList(HttpServletRequest request, Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getProjectProductGanttTaskList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 프로젝트에 연결된 WBS Task(신규) 목록 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getProjectWBSGanttTaskNewList(HttpServletRequest request, Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getProjectProductGanttTaskNewList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 간트차트
* @param paramMap
* @return
*/
public List wbsTaskProductGantt(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("project.wbsTaskProductGantt", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* PROJECT 생성및 WBS TASK 생성
* @param paramMap
* @return
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map CreateProjectWbsTask(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());
paramMap.put("OBJID", CommonUtils.createObjId());
int cnt = sqlSession.update("project.createProject", paramMap);
//프로젝트 TASK 등록
cnt = sqlSession.insert("project.insertProjectTask", paramMap);
//project_no - unit 폴더 생성
//paramMap.put("OBJID", paramMap.get("OBJID"));
Map<String,Object> projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", paramMap);
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("task_name")));
if(!file.exists()){
file.mkdirs();
}
}
}
if(cnt > 0){
//프로젝트 신규 등록 메일발송
commonService.SendMail(paramMap,"PROJECT_REG","");
}
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<Map<String,Object>> checkProjectNo(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = (ArrayList)sqlSession.selectList("project.getProjectNoList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 프로젝트 정보를 가져온다.
* @param request
* @param paramMap
* @return
*/
public HashMap<String,Object> getProjectMngInfo(HttpServletRequest request,Map<String,Object> paramMap){
HashMap<String,Object> oemInfo = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
oemInfo = (HashMap)sqlSession.selectOne("project.getProjectMngInfo", paramMap);
}catch(Exception e){
throw e;
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(oemInfo);
}
/**
* 프로젝트 수정
* @param paramMap
* @return
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map ModifyProject(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
Map resultList = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
int cnt = sqlSession.update("project.ModifyProject", 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
* @return
*/
public Map<String,Object> deleteProjectMngInfo(HttpServletRequest request,Map<String,Object> paramMap){
Map<String,Object> resultMap = new HashMap();
Map sqlMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkArr = CommonUtils.checkNull(paramMap.get("checkArr"));
if(!"".equals(checkArr)){
sqlSession.delete("project.deleteProjectMngInfo",paramMap);
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
sqlSession.rollback();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 프로젝트에 타임라인 차트 쿼리
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getProjectTimeLineList(HttpServletRequest request, Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getProjectTimeLineList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 프로젝트 목록조회
* @param paramMap
* @return
*/
public List getProjectMgntTimeLineList(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("project.projectMgmtTimeLineListCnt", 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("project.projectMgmtTimeLineList", paramMap));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트에 연결된 Setup WBS Task의 목록 가져온다.
* @param sqlSession
* @param request
* @param paramMap
* @return
* @throws Exception
*/
public List getProjectWBSSetupTaskList(HttpServletRequest request, Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("project.getProjectSetupWBSTaskList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
}