Files
wace_plm/src/com/pms/controller/EOController.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

426 lines
13 KiB
Java

package com.pms.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.pms.common.bean.PersonBean;
import com.pms.common.utils.CommonUtils;
import com.pms.common.utils.Constants;
import com.pms.service.AdminService;
import com.pms.service.CommonService;
import com.pms.service.EOService;
@Controller
public class EOController {
@Autowired
EOService eoService;
@Autowired
CommonService commonService;
@Autowired
AdminService adminService;
/**
* EO 등록 팝업
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/eoFormPopup.do")
public String tempEOFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap eoMap = new HashMap();
ArrayList partList = new ArrayList();
ArrayList oemList = new ArrayList();
ArrayList eoApprovalList = new ArrayList();
try{
eoMap = eoService.getEOInfo(request, paramMap);
String objid = CommonUtils.checkNull(paramMap.get("objId"));
if("".equals(objid)){
eoMap = new HashMap();
eoMap.put("OBJID", CommonUtils.createObjId());
}
eoApprovalList = eoService.getEOApprovalList(request, paramMap);
oemList = (ArrayList)commonService.getOEMList_combo(paramMap);
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("eoInfo", eoMap);
request.setAttribute("eoApprovalList", eoApprovalList);
request.setAttribute("partList", partList);
request.setAttribute("oemList",oemList);
return "/eo/eoFormPopup";
}
/**
* EO 갑지에 등록된 PDF 파일을 통해 해당 PDF문서의 데이터를
* 추출한다.
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/getPDFParsingData.do")
public String getPDFParsingData(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap pdfEOMap = new HashMap();
try{
pdfEOMap = eoService.pdfDataPatser(request, paramMap);
String carCode = CommonUtils.checkNull(pdfEOMap.get("carCode"));
if(!"".equals(carCode)){
ArrayList carTypeList = new ArrayList();
paramMap.put("search_carCode", carCode);
carTypeList = (ArrayList)commonService.getCarTypeList_combo(paramMap);
if(null != carTypeList && 1 == carTypeList.size()){
HashMap carTypeMap = (HashMap)carTypeList.get(0);
pdfEOMap.put("oemObjId", carTypeMap.get("OEM_OBJID"));
pdfEOMap.put("carObjId", carTypeMap.get("OBJID"));
}
}
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonMap(pdfEOMap));
return "/ajax/ajaxResult";
}
/**
* EO 저장
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/saveEO.do")
public String saveEO(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap resultMap = new HashMap();
try{
eoService.mergeEO(request, paramMap);
resultMap.put("message", "저장되었습니다.");
}catch(Exception e){
resultMap.put("message", "오류가 발생하였습니다.");
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
return "/ajax/ajaxResult";
}
/**
* 신규 EO 생성
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/createEOData.do")
public String createEOData(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap resultMap = new HashMap();
try{
paramMap.put("objId",CommonUtils.createObjId());
paramMap.put("eoNo", "NEW EO :"+CommonUtils.getDateTime(new Date(), "yyyy-MM-dd"));
paramMap.put("status","create");
HttpSession session = request.getSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
paramMap.put("writer", writer);
eoService.mergeEO(request, paramMap);
resultMap.put("message", "등록되었습니다.");
}catch(Exception e){
resultMap.put("message", "오류가 발생하였습니다.");
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
return "/ajax/ajaxResult";
}
/**
* EO 상세정보 팝업
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/eoDetailViewPopup.do")
public String eoDetailViewPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
System.out.println("eoDetailViewPopup(paramMap):"+paramMap);
HashMap eoMap = new HashMap();
ArrayList partList = new ArrayList();
ArrayList releaseMemberList = new ArrayList();
ArrayList eoApprovalList = new ArrayList();
String isAppLineUser = CommonUtils.checkNull(paramMap.get("isApprovalLine"));
try{
eoMap = eoService.getEOInfo(request, paramMap);
partList = eoService.getConnectPartList(request, paramMap);
eoApprovalList = eoService.getEOApprovalList(request, paramMap);
paramMap.put("search_carObjid", "");//CommonUtils.checkNull(eoMap.get("CAR_OBJID")));
releaseMemberList = adminService.getCarDistributeMngList(request, paramMap);
}catch(Exception e){
e.printStackTrace();
}
HttpSession session = request.getSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = CommonUtils.checkNull(person.getUserId());
String writer = "";//CommonUtils.checkNull(eoMap.get("WRITER_ORG"));
String isWriter = "";
String isAdmin = "";
if(writer.equals(userId)){
isWriter = "true";
}
if("plm_admin".equals(userId)){
isAdmin = "true";
}
request.setAttribute("userId", CommonUtils.checkNull(person.getUserId()));
request.setAttribute("isAppLineUser", isAppLineUser);
request.setAttribute("isWriter", isWriter);
request.setAttribute("isAdmin", isAdmin);
request.setAttribute("eoInfo", eoMap);
request.setAttribute("partList", partList);
request.setAttribute("eoApprovalList", eoApprovalList);
request.setAttribute("releaseMemberList", releaseMemberList);
return "/eo/eoDetailViewPopup";
}
/**
* EO 등록 목록(결재 전)
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/tempEoList.do")
public String tempEoList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
ArrayList eoList = new ArrayList();
paramMap.put("search_status", "create");
try{
eoList = (ArrayList)eoService.getEOListPaging(request, paramMap);
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("eoList", eoList);
return "/eo/tempEoList";
}
/**
* 신규 EO 목록(결재완료)
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/newEoList.do")
public String newEoList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
ArrayList eoList = new ArrayList();
ArrayList oemList = new ArrayList();
try{
oemList = (ArrayList)commonService.getOEMList_combo(paramMap);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = new GregorianCalendar(Locale.KOREA);
cal.setTime(new Date());
//현재 일자로부터 10일 전 EO까지
cal.add(Calendar.DAY_OF_YEAR, -10);
paramMap.put("search_completeDate_start", CommonUtils.checkNull(formatter.format(cal.getTime())));
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_YEAR, +1);
paramMap.put("search_completeDate_end", CommonUtils.checkNull(formatter.format(cal.getTime())));
paramMap.put("search_status", "release");
paramMap.put("listType", "new");
eoList = (ArrayList)eoService.getEOListPaging(request, paramMap);
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("listType", "new");
request.setAttribute("eoList", eoList);
request.setAttribute("oemList", oemList);
return "/eo/eoList";
}
/**
* EO 목록( 결재완료 EO 전제)
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/eoList.do")
public String eoList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
ArrayList eoList = new ArrayList();
ArrayList oemList = new ArrayList();
try{
oemList = (ArrayList)commonService.getOEMList_combo(paramMap);
if(!paramMap.isEmpty()){
paramMap.put("search_status", "release");
eoList = (ArrayList)eoService.getEOListPaging(request, paramMap);
}
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("eoList", eoList);
request.setAttribute("oemList", oemList);
return "/eo/eoList";
}
/**
* EO 팝업 -> part 조회 팝업
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/partSearchPopup.do")
public String partSearchPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
ArrayList productGroupList = new ArrayList();
ArrayList carList = new ArrayList();
try{
productGroupList = (ArrayList)commonService.getProductGroupList_combo(paramMap);
carList = (ArrayList)commonService.getCarTypeList_combo(paramMap);
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("carList",carList);
request.setAttribute("productGroupList",productGroupList);
return "/eo/EoListPopupPartSearch";
}
/**
* EO와 Part를 연결
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/connectPart.do")
public String connectPart(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap resultMap = new HashMap();
try{
eoService.connectPart(request, paramMap);
CommonUtils.setReqAttrResultMsg(request, "연결하였습니다.", null, null, resultMap);
}catch(Exception e){
CommonUtils.setReqAttrResultMsg(request, "오류가 발생하였습니다.", null, e, resultMap);
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
return "/ajax/ajaxResult";
}
/**
* EO와 Part 연결을 삭제
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/disConnectPart.do")
public String disConnectPart(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap resultMap = new HashMap();
try{
eoService.disConnectPart(request, paramMap);
CommonUtils.setReqAttrResultMsg(request, "삭제하였습니다.", null, null, resultMap);
}catch(Exception e){
CommonUtils.setReqAttrResultMsg(request, "오류가 발생하였습니다.", null, e, resultMap);
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
return "/ajax/ajaxResult";
}
@RequestMapping("/eo/deleteEO.do")
public String deleteEO(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap resultMap = new HashMap();
try{
eoService.deleteEO(request, paramMap);
CommonUtils.setReqAttrResultMsg(request, "삭제하였습니다.", null, null, resultMap);
}catch(Exception e){
CommonUtils.setReqAttrResultMsg(request, "오류가 발생하였습니다.", null, e, resultMap);
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
return "/ajax/ajaxResult";
}
/**
* EO와 연결된 Part 정보를 가져온다.
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/getConnectPartList.do")
public String getConnectPartList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
ArrayList resultList = new ArrayList();
try{
resultList = eoService.getConnectPartList(request, paramMap);
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonArray(resultList));
return "/ajax/ajaxResult";
}
/**
* 해당 EO에 연결된 파트의 첨부파일을 ZIP 파일로 추출하여 다운로드 한다.
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/packgeingPartFile.do")
public String packgeingPartFile(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap fileMap = new HashMap();
try{
fileMap = eoService.packgeingPartFile(request, paramMap);
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("FILE_MAP", fileMap);
return "/common/download";
}
/**
* EO 등록에서 결재상신 전 해당 EO의 유효성을 검사한다.
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/eo/checkEOValidate.do")
public String checkEOValidate(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap resultMap = new HashMap();
try{
resultMap = (HashMap)eoService.checkEOValidate(request, paramMap);
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
return "/ajax/ajaxResult";
}
}