- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
524 lines
14 KiB
Java
524 lines
14 KiB
Java
package com.pms.service;
|
|
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.net.URLDecoder;
|
|
import java.net.URLEncoder;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.ArrayList;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.zip.ZipEntry;
|
|
import java.util.zip.ZipOutputStream;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
import org.apache.ibatis.session.SqlSession;
|
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
|
import org.apache.pdfbox.text.PDFTextStripper;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import com.pms.common.SqlMapConfig;
|
|
import com.pms.common.bean.PersonBean;
|
|
import com.pms.common.utils.CommonUtils;
|
|
import com.pms.common.utils.Constants;
|
|
|
|
@Service
|
|
public class EOMngService {
|
|
|
|
@Autowired
|
|
CommonService commonService;
|
|
|
|
public Map setPartMngCommonCD(HttpServletRequest request, Map paramMap){
|
|
paramMap.put("PRODUCT_GROUP_CODE", Constants.PRODUCT_GROUP_CODE);
|
|
paramMap.put("MATERIAL_CODE", Constants.MATERIAL_CODE);
|
|
paramMap.put("SPEC_NO_CODE", Constants.SPEC_NO_CODE);
|
|
paramMap.put("DESIGN_APPLY_POINT_CODE", Constants.DESIGN_APPLY_POINT_CODE);
|
|
|
|
return paramMap;
|
|
}
|
|
|
|
public Map setEOMngCommonCD(HttpServletRequest request, Map paramMap){
|
|
paramMap.put("EO_TYPE_CODE", Constants.EO_TYPE_CODE);
|
|
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* EO 정보를 merge 한다.
|
|
* @param request
|
|
* @param paramMap
|
|
*/
|
|
public void mergeEOmemo(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
try{
|
|
System.out.println("paramMap mergeEOmemo:: " + paramMap);
|
|
|
|
|
|
String rel_eo_objid_arr[] = (CommonUtils.checkNull(paramMap.get("rel_eo_objid_arr"))).split(",");
|
|
String memo_arr[] = (CommonUtils.checkNull(paramMap.get("memo_arr"))).split(",");
|
|
|
|
for(int i=0; i<rel_eo_objid_arr.length; i++){
|
|
Map sqlMap = new HashMap();
|
|
String rel_eo_objid = CommonUtils.checkNull(rel_eo_objid_arr[i]);
|
|
String memo = CommonUtils.checkNull(memo_arr[i]);
|
|
|
|
sqlMap.put("rel_eo_objid", rel_eo_objid);
|
|
sqlMap.put("memo", memo);
|
|
|
|
//EO 정보를 Merge 한다.
|
|
sqlSession.update("eoMng.mergeEOmemo",sqlMap);
|
|
}
|
|
|
|
|
|
|
|
// //연결된 Part에 EO 정보를 update 한다.
|
|
// sqlSession.update("eoMng.updatePartMngeo_temp",paramMap);
|
|
|
|
// Map partMap = (HashMap)sqlSession.selectOne("eoMng.partrevision", paramMap);
|
|
//
|
|
// String revision = CommonUtils.checkNull(partMap.get("revision"));
|
|
// System.out.println("revision?" + revision);
|
|
// if(!"".equals(revision)){
|
|
// //EO 정보를 part_mng에 넣는다
|
|
// sqlSession.update("eoMng.mergeEOpartre",paramMap);
|
|
//
|
|
// }else{
|
|
//
|
|
// //EO 정보를 part_mng에 넣는다
|
|
// sqlSession.update("eoMng.mergeEOpart1",paramMap);
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
sqlSession.commit();
|
|
}catch(Exception e){
|
|
sqlSession.rollback();
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* EO 정보를 merge 한다.
|
|
* @param request
|
|
* @param paramMap
|
|
*/
|
|
public void mergeEOMng(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
try{
|
|
HttpSession session = request.getSession();
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
String []arrdeploy_dept = request.getParameterValues("deploy_dept");
|
|
String deploy_dept ="";
|
|
|
|
if(null != arrdeploy_dept && 0 < arrdeploy_dept.length){
|
|
for(int i=0;i<arrdeploy_dept.length;i++){
|
|
deploy_dept += arrdeploy_dept[i];
|
|
if(i<(arrdeploy_dept.length-1)){
|
|
deploy_dept+=",";
|
|
}
|
|
}
|
|
}
|
|
|
|
String personId = CommonUtils.checkNull(person.getUserId());
|
|
paramMap.put("WRITER",personId);
|
|
paramMap.put("deploy_dept",deploy_dept);
|
|
System.out.println("paramMap :: " + paramMap);
|
|
//EO 정보를 Merge 한다.
|
|
sqlSession.update("eoMng.mergeEOMng",paramMap);
|
|
|
|
|
|
List objval = new ArrayList();
|
|
String[] partObjIdArr = request.getParameterValues("CHILD_OBJID");
|
|
String PARENT_OBJID = CommonUtils.checkNull(paramMap.get("OBJID"));
|
|
|
|
if(null != partObjIdArr && 0 < partObjIdArr.length){
|
|
for(int i=0;i<partObjIdArr.length;i++){
|
|
|
|
objval.add(partObjIdArr[i]);
|
|
|
|
}
|
|
HashMap sqlParamMap = new HashMap();
|
|
|
|
sqlParamMap.put("PARENT_OBJID", PARENT_OBJID);
|
|
sqlParamMap.put("CHILD_OBJID", objval);
|
|
//연결된 Part에 EO 정보를 update 한다.
|
|
sqlSession.update("eoMng.updatePartMngeo_temp",sqlParamMap);
|
|
|
|
|
|
sqlSession.commit();
|
|
}
|
|
|
|
|
|
|
|
sqlSession.commit();
|
|
}catch(Exception e){
|
|
sqlSession.rollback();
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* part를 연결한다.
|
|
* @param request
|
|
* @param paramMap
|
|
*/
|
|
public void addPartMng(HttpServletRequest request, Map paramMap){
|
|
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
try{
|
|
|
|
System.out.println("paramMap:"+paramMap);
|
|
List objval = new ArrayList();
|
|
// sqlSession.update("eoMng.relEOMngPartMngInit",paramMap);
|
|
|
|
String parentObjId = CommonUtils.checkNull(paramMap.get("OBJID"));
|
|
String[] partObjIdArr = request.getParameterValues("CHILD_OBJID");
|
|
|
|
HttpSession session = request.getSession();
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
String personId = CommonUtils.checkNull(person.getUserId());
|
|
|
|
if(null != partObjIdArr && 0 < partObjIdArr.length){
|
|
for(int i=0;i<partObjIdArr.length;i++){
|
|
|
|
objval.add(partObjIdArr[i]);
|
|
|
|
}
|
|
HashMap sqlParamMap = new HashMap();
|
|
|
|
sqlParamMap.put("WRITER", personId);
|
|
sqlParamMap.put("PARENT_OBJID", parentObjId);
|
|
sqlParamMap.put("partObjIdArr", objval);
|
|
sqlSession.insert("eoMng.insertRelEOMngMultiPartMng",sqlParamMap);
|
|
|
|
|
|
/* for(int i=0;i<partObjIdArr.length;i++){
|
|
|
|
String relObjId = CommonUtils.createObjId();
|
|
String childObjId = CommonUtils.checkNull(partObjIdArr[i]);
|
|
|
|
HashMap sqlParamMap = new HashMap();
|
|
|
|
sqlParamMap.put("OBJID", relObjId);
|
|
sqlParamMap.put("PARENT_OBJID", parentObjId);
|
|
sqlParamMap.put("CHILD_OBJID", childObjId);
|
|
sqlParamMap.put("WRITER", personId);
|
|
|
|
System.out.println("sqlParamMap : " + sqlParamMap);
|
|
|
|
//Relation에 정보를 입력한다.
|
|
sqlSession.insert("eoMng.insertRelEOMngPartMng",sqlParamMap);
|
|
|
|
//연결된 Part에 EO 정보를 update 한다.
|
|
// sqlSession.update("eoMng.updatePartMng",sqlParamMap);
|
|
|
|
}*/
|
|
sqlSession.commit();
|
|
}
|
|
}catch(Exception e){
|
|
sqlSession.rollback();
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* EO를 삭제한다.
|
|
* @param request
|
|
* @param paramMap
|
|
*/
|
|
public void deleteEO(HttpServletRequest request, Map paramMap){
|
|
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
try{
|
|
sqlSession.update("eo.deleteEO",paramMap);
|
|
String objId = CommonUtils.checkNull(paramMap.get("objId"));
|
|
|
|
paramMap.put("eoObjId", objId);
|
|
sqlSession.update("eo.disConnectAllPart",paramMap);
|
|
sqlSession.update("eo.deleteEORelPartInfo",paramMap);
|
|
|
|
sqlSession.commit();
|
|
}catch(Exception e){
|
|
sqlSession.rollback();
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* EO와 연결된 part목록을 가져온다.
|
|
* @param request
|
|
* @param paramMap
|
|
*/
|
|
public List getConnectPartMngList(HttpServletRequest request, Map paramMap){
|
|
List<Map<String,Object>> resultList = new ArrayList();
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
try{
|
|
|
|
setPartMngCommonCD(request, paramMap);
|
|
|
|
resultList = sqlSession.selectList("eoMng.getConnectEoPartList",paramMap);
|
|
}catch(Exception e){
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return CommonUtils.toUpperCaseMapKey(resultList);
|
|
}
|
|
|
|
/**
|
|
* EO와 연결된 part 연결해제
|
|
* @param request
|
|
* @param paramMap
|
|
*/
|
|
public void deleteConnectPartMng(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
try{
|
|
String parentObjId = CommonUtils.checkNull(paramMap.get("OBJID"));
|
|
String partObjId = CommonUtils.checkNull(paramMap.get("CHILD_OBJID"));
|
|
|
|
System.out.println("partObjId:"+partObjId);
|
|
|
|
String[] partObjIdArr = partObjId.split(",");
|
|
|
|
if(0 == partObjIdArr.length){
|
|
partObjIdArr[0] = partObjId;
|
|
}
|
|
|
|
System.out.println("partObjIdArr:"+partObjIdArr);
|
|
|
|
if(null != partObjIdArr && 0 < partObjIdArr.length){
|
|
for(int i=0;i<partObjIdArr.length;i++){
|
|
|
|
String childObjId = CommonUtils.checkNull(partObjIdArr[i]);
|
|
|
|
HashMap sqlParamMap = new HashMap();
|
|
|
|
sqlParamMap.put("PARENT_OBJID", parentObjId);
|
|
sqlParamMap.put("CHILD_OBJID", childObjId);
|
|
|
|
System.out.println("sqlParamMap :: " + sqlParamMap);
|
|
//Relation에 정보를 삭제한다.
|
|
sqlSession.delete("eoMng.deleteConnectPartMng",sqlParamMap);
|
|
|
|
sqlParamMap.put("PARENT_OBJID", "");
|
|
|
|
//연결된 Part에 EO 정보를 update 한다.
|
|
sqlSession.update("eoMng.updatedeleteConnectPartMng",sqlParamMap);
|
|
|
|
}
|
|
sqlSession.commit();
|
|
}
|
|
}catch(Exception e){
|
|
sqlSession.rollback();
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* EO의 목록을 가져온다.(페이징 O)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public List eoMngList(HttpServletRequest request, Map paramMap){
|
|
List<Map<String,Object>> resultList = new ArrayList();
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
|
|
setEOMngCommonCD(request, paramMap);
|
|
|
|
try{
|
|
String status_code = CommonUtils.checkNull(paramMap.get("status_code"));
|
|
if(!"".equals(status_code)){
|
|
if("0000131".equals(status_code)){
|
|
paramMap.put("status_code","create");
|
|
}else if("0000132".equals(status_code)){
|
|
paramMap.put("status_code","deploy");
|
|
}else if("0000133".equals(status_code)){
|
|
paramMap.put("status_code","approvalRequest");
|
|
}else if("0000134".equals(status_code)){
|
|
paramMap.put("status_code","approvalComplete");
|
|
}else if("0000135".equals(status_code)){
|
|
paramMap.put("status_code","reject");
|
|
}
|
|
|
|
}
|
|
|
|
System.out.println("paramMap = " + paramMap);
|
|
|
|
|
|
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("eoMng.eoMngListCnt", 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 = sqlSession.selectList("eoMng.eoMngList", paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return CommonUtils.toUpperCaseMapKey(resultList);
|
|
}
|
|
|
|
/**
|
|
* EO의 단건 정보를 가져온다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public HashMap getEOInfo(HttpServletRequest request, Map paramMap){
|
|
HashMap resultMap = new HashMap();
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
try{
|
|
resultMap = sqlSession.selectOne("eoMng.getEOMngInfo",paramMap);
|
|
}catch(Exception e){
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return CommonUtils.toUpperCaseMapKey(resultMap);
|
|
}
|
|
|
|
/**
|
|
* EO의 결재 정보를 가져온다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public ArrayList getEOApprovalList(HttpServletRequest request, Map paramMap){
|
|
ArrayList resultList = new ArrayList();
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
try{
|
|
resultList = (ArrayList)sqlSession.selectList("eo.getEOApprovalList",paramMap);
|
|
}catch(Exception e){
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
return resultList;
|
|
}
|
|
|
|
/**
|
|
* EO 배포
|
|
* @param request
|
|
* @param paramMap
|
|
*/
|
|
public void eoMngDeploy(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
try{
|
|
String[] eoObjIdArr = request.getParameterValues("OBJID");
|
|
|
|
if(null != eoObjIdArr && 0 < eoObjIdArr.length){
|
|
|
|
HttpSession session = request.getSession();
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
String personId = CommonUtils.checkNull(person.getUserId());
|
|
|
|
for(int i=0;i<eoObjIdArr.length;i++){
|
|
String eoObjId = CommonUtils.checkNull(eoObjIdArr[i]);
|
|
|
|
HashMap sqlParamMap = new HashMap();
|
|
|
|
sqlParamMap.put("OBJID", eoObjId);
|
|
sqlParamMap.put("DEPLOY_WRITER",personId);
|
|
|
|
//EO를 배포처리한다.
|
|
sqlSession.update("eoMng.deployEOMng",sqlParamMap);
|
|
}
|
|
sqlSession.commit();
|
|
}
|
|
}catch(Exception e){
|
|
sqlSession.rollback();
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* EO 삭제
|
|
* @param request
|
|
* @param paramMap
|
|
*/
|
|
public void deleteEOMng(HttpServletRequest request, Map paramMap){
|
|
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
try{
|
|
String[] eoObjIdArr = request.getParameterValues("OBJID");
|
|
|
|
if(null != eoObjIdArr && 0 < eoObjIdArr.length){
|
|
for(int i=0;i<eoObjIdArr.length;i++){
|
|
String eoObjId = CommonUtils.checkNull(eoObjIdArr[i]);
|
|
|
|
HashMap sqlParamMap = new HashMap();
|
|
|
|
sqlParamMap.put("OBJID", eoObjId);
|
|
|
|
//EO를 삭제처리한다.
|
|
sqlSession.delete("eoMng.deleteEOMng",sqlParamMap);
|
|
|
|
//연결된 Part에 EO 정보를 NULL로 업뎃 한다.
|
|
sqlSession.update("eoMng.deleteEOMngPart",sqlParamMap);
|
|
}
|
|
sqlSession.commit();
|
|
}
|
|
}catch(Exception e){
|
|
sqlSession.rollback();
|
|
throw e;
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 템플릿 리스트 조회
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
public List getEcr_cd_List(Map paramMap){
|
|
List<Map<String,Object>> resultList = new ArrayList();
|
|
SqlSession sqlSession = null;
|
|
try{
|
|
System.out.println("paramMapparamMap :: " +paramMap );
|
|
|
|
sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
resultList = (ArrayList)sqlSession.selectList("common.getEcrCodeselect", paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally{
|
|
sqlSession.close();
|
|
}
|
|
|
|
return CommonUtils.toUpperCaseMapKey(resultList);
|
|
}
|
|
|
|
|
|
}
|