- 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
426 lines
13 KiB
Java
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";
|
|
}
|
|
|
|
}
|