Files
wace_plm/src/com/pms/service/EOMngService.java
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- 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
2025-08-29 15:46:08 +09:00

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);
}
}