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

525 lines
19 KiB
Java

package com.pms.controller;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
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 org.springframework.web.bind.annotation.ResponseBody;
import com.pms.common.bean.PersonBean;
import com.pms.common.service.BaseService;
import com.pms.common.utils.CommonUtils;
import com.pms.common.utils.Constants;
import com.pms.service.CommonService;
import com.pms.service.PurchaseOrderService;
import com.pms.service.SupplyChainMgmtService;
@Controller
public class SupplyChainMgmtController extends BaseService {
@Autowired
CommonService commonService;
@Autowired
SupplyChainMgmtService supplyChainMgmtService;
@Autowired
PurchaseOrderService purchaseOrderService;
/**
* 와주협업관리 -> 발주관리
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/supplyChainMgmt/purchaseOrderMgmtList.do")
public String purchaseOrderMgmtList(HttpServletRequest request, @RequestParam Map paramMap){
Map code_map = new HashMap();
try{
//프로젟트번호
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_no")),"common.getCusProjectNoList"));
//고객사
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")),"common.getsupplyselect"));
//제품구분
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect")); //공장
//PM
code_map.put("SALES_MNG_USER_ID", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("SALES_MNG_USER_ID")), "common.getUserselect")); //구매 PM
//공급업체
code_map.put("partner_objid",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("partner_objid")),"common.getmatersupplyselect"));
request.setAttribute("code_map",code_map);
}catch(Exception e){
e.printStackTrace();
}
return "/supplyChainMgmt/purchaseOrderMgmtList";
}
/**
* 와주협업관리 -> 발주관리
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/purchaseOrderMgmtGridList.do")
public Map planningdashboardGridList(HttpSession session,HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("PARTNER_OBJID", CommonUtils.checkNull(person.getPartner_cd()));
paramMap.put("USER_ID", CommonUtils.checkNull(person.getUserId()));
commonService.selectListPagingNew("supplyChainMgmt.purchaseOrderMgmtGridList", request, paramMap);
return paramMap;
}
/**
* 외주협업관리 -> 발주관리 접수
*/
@RequestMapping("/supplyChainMgmt/regsupplyChain.do")
@ResponseBody
public String regsupplyChain(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
String result = "";
try{
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("CONNECTUSERID", CommonUtils.checkNull(person.getUserId()));
supplyChainMgmtService.regsupplyChain(request, paramMap);
result = "SUCCESS";
}catch(Exception e){
e.printStackTrace();
result = "FAIL";
}
return result;
}
/**
* 입고계획 등록 팝업
*/
@RequestMapping("/supplyChainMgmt/arrivalplanFormPopup.do")
public String arrivalplanFormPopup(HttpSession session, HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
List detailList = new ArrayList();
List arrivalList = new ArrayList();
Map info = new HashMap();
try{
detailList = commonService.selectList("supplyChainMgmt.purchase_order_part", request, paramMap);
arrivalList = commonService.selectList("supplyChainMgmt.arrivalList", request, paramMap);
info = purchaseOrderService.getPurchaseOrderMasterInfo(request, paramMap);
request.setAttribute("detailList", detailList);
request.setAttribute("arrivalList", arrivalList);
request.setAttribute("objId", CommonUtils.checkNull(paramMap.get("PURCHASE_ORDER_MASTER_OBJID"), ""));
request.setAttribute("info", info);
}catch(Exception e){
e.printStackTrace();
}
return "/supplyChainMgmt/arrivalplanFormPopup";
}
@RequestMapping("/supplyChainMgmt/savearrivalplanFormPopup.do")
public String savearrivalplanFormPopup(HttpSession session,HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
HashMap resultMap = new HashMap();
try{
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
paramMap.put("WRITER", writer);
// deletedObjIds 처리
String[] deletedObjIds = request.getParameterValues("deletedObjIds");
if (deletedObjIds != null && deletedObjIds.length > 0) {
paramMap.put("deletedObjIds", deletedObjIds);
}
supplyChainMgmtService.savearrivalplanFormPopup(request, paramMap);
resultMap.put("message", "저장되었습니다.");
}catch(Exception e){
resultMap.put("message", "오류가 발생하였습니다.");
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
return "/ajax/ajaxResult";
}
/**
* SCM 구매확인
*/
@RequestMapping("/supplyChainMgmt/updateSalesStatus.do")
@ResponseBody
public String updateSalesStatus(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
String result = "";
try{
supplyChainMgmtService.updateSalesStatus(request, paramMap);
result = "저장에 성공하였습니다.";
}catch(Exception e){
e.printStackTrace();
result = "저장에 실패하였습니다.";
}
return result;
}
/**
* 와주협업관리 -> 부적합품관리
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/supplyChainMgmt/invalidMgmtList.do")
public String invalidMgmtList(HttpServletRequest request, @RequestParam Map paramMap){
Map code_map = new HashMap();
try{
//프로젟트번호
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_no")),"common.getCusProjectNoList"));
//고객사
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")),"common.getsupplyselect"));
//제품구분
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect")); //공장
//PM
code_map.put("pm_user_id", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("pm_user_id")), "common.getUserselect")); //구매 PM
//부적합사유
code_map.put("defect_reason",commonService.bizMakeOptionList("0001113", (String)paramMap.get("defect_reason"),"common.getCodeselect"));
request.setAttribute("code_map",code_map);
}catch(Exception e){
e.printStackTrace();
}
return "/supplyChainMgmt/invalidMgmtList";
}
/**
* 와주협업관리 -> 부적합품관리
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/invalidMgmtGridList.do")
public Map invalidMgmtGridList(HttpSession session, HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("PARTNER_OBJID", CommonUtils.checkNull(person.getPartner_cd()));
paramMap.put("USER_ID", CommonUtils.checkNull(person.getUserId()));
commonService.selectListPagingNew("supplyChainMgmt.invalidMgmtGridList", request, paramMap);
return paramMap;
}
/**
* 부적합품 재입고예정일 등록
*/
@RequestMapping("/supplyChainMgmt/redeliverydateReg.do")
@ResponseBody
public Map savePartMngChangeList(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
Map resultMap = new HashMap();
resultMap = supplyChainMgmtService.saveRedeliverydate(request, paramMap);
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
return resultMap;
}
/**
* 와주협업관리 -> 거래명세서관리
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/supplyChainMgmt/invoiceMgmtList.do")
public String invoiceMgmtList(HttpServletRequest request, @RequestParam Map paramMap){
Map code_map = new HashMap();
try{
//프로젟트번호
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_no")),"common.getCusProjectNoList"));
//고객사
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")),"common.getsupplyselect"));
//제품구분
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect")); //공장
//PM
code_map.put("pm_user_id", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("pm_user_id")), "common.getUserselect")); //구매 PM
//공급업체
code_map.put("partner_objid",commonService.bizMakeOptionList("", (String)paramMap.get("partner_objid"),"common.getmatersupplyselect"));
request.setAttribute("code_map",code_map);
}catch(Exception e){
e.printStackTrace();
}
return "/supplyChainMgmt/invoiceMgmtList";
}
/**
* 와주협업관리 -> 거래명세서관리
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/invoiceMgmtGridList.do")
public Map invoiceMgmtGridList(HttpSession session,HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("PARTNER_OBJID", CommonUtils.checkNull(person.getPartner_cd()));
paramMap.put("USER_ID", CommonUtils.checkNull(person.getUserId()));
commonService.selectListPagingNew("supplyChainMgmt.invoiceMgmtGridList", request, paramMap);
return paramMap;
}
/**
* 와주협업관리 -> 공급업체품질관리
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/supplyChainMgmt/supplyQCMgmtList.do")
public String supplyQCMgmtList(HttpServletRequest request, @RequestParam Map paramMap){
Map code_map = new HashMap();
try{
//프로젝트번호
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_no")),"common.getCusProjectNoList"));
//고객사
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")),"common.getsupplyselect"));
//제품구분
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect")); //공장
//PM
code_map.put("pm_user_id", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("pm_user_id")), "common.getUserselect")); //구매 PM
request.setAttribute("code_map",code_map);
}catch(Exception e){
e.printStackTrace();
}
return "/supplyChainMgmt/supplyQCMgmtList";
}
/**
* 와주협업관리 -> 공급업체품질관리
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/supplyQCMgmtGridList.do")
public Map supplyQCMgmtGridList(HttpSession session,HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("PARTNER_OBJID", CommonUtils.checkNull(person.getPartner_cd()));
paramMap.put("USER_ID", CommonUtils.checkNull(person.getUserId()));
commonService.selectListPagingNew("supplyChainMgmt.supplyQCMgmtGridList", request, paramMap);
return paramMap;
}
/**
* 외주협업관리 -> 자금지급관리
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/supplyChainMgmt/fundPaymentMgmtList.do")
public String fundPaymentMgmtList(HttpServletRequest request, @RequestParam Map paramMap){
Map code_map = new HashMap();
Map resultMap = new HashMap();
try{
paramMap.put("result_cd", "0000964"); //영업 수주
//영업번호
code_map.put("contract_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("contract_no")),"common.getContractNoList"));
//프로젟트번호
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_no")),"common.getCusProjectNoList"));
//고객사
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")),"common.getsupplyselect"));
//제품구분
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect")); //공장
//PM
code_map.put("pm_user_id", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("pm_user_id")), "common.getUserselect")); //구매 PM
//공급업체
code_map.put("partner_objid",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("partner_objid")),"common.getmatersupplyselect"));
//resultMap = commonService.selectOne("purchaseOrder.purchaseOrderStatusByProjectSum", request, paramMap);
request.setAttribute("code_map",code_map);
request.setAttribute("resultMap",resultMap);
}catch(Exception e){
e.printStackTrace();
}
return "/supplyChainMgmt/fundPaymentMgmtList";
}
/**
* 외주협업관리 -> 자금지급관리
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/fundPaymentMgmtGridList.do")
public Map fundPaymentMgmtGridList(HttpSession session,HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("PARTNER_OBJID", CommonUtils.checkNull(person.getPartner_cd()));
paramMap.put("USER_ID", CommonUtils.checkNull(person.getUserId()));
commonService.selectListPagingNew("supplyChainMgmt.fundPaymentMgmtGridList", request, paramMap);
return paramMap;
}
/**
* 외주협업관리 -> 자금지급관리 합
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/fundPaymentMgmtListSum.do")
public Map purchaseOrderMasterListSum(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map resultMap = new HashMap();
resultMap = commonService.selectOne("supplyChainMgmt.fundPaymentMgmtListSum", request, paramMap);
return resultMap;
}
/**
* 거래명세표
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/supplyChainMgmt/invoiceFormPopUp.do")
public String supplyChainMgmt(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map info = new HashMap();
//List detailList = new ArrayList();
Map sumPriceMap = new HashMap();
Map<String,Object> resultMap = new HashMap();
try{
info = purchaseOrderService.getPurchaseOrderMasterInfoInvoice(request, paramMap); //PURCHASE_ORDER_MASTER OUTER JOIN INVOICE_MGMT
String invoiceObjid = CommonUtils.checkNull(info.get("INVOICE_OBJID"));
if(!"".equals(invoiceObjid)){
paramMap.put("INVOICE_OBJID", invoiceObjid);
sumPriceMap = commonService.selectOne("purchaseOrder.getPURCHASE_SAVED_PART_INVOICE_sum", request, paramMap); //PURCHASE_ORDER_PART
}else{
sumPriceMap = commonService.selectOne("purchaseOrder.getPURCHASE_ORDER_PART_INVOICE_sum", request, paramMap);
}
//detailList = commonService.selectList("purchaseOrder.getPURCHASE_ORDER_PART_INVOICE", request, paramMap);
//sumPriceMap = commonService.selectOne("purchaseOrder.getPURCHASE_ORDER_PART_INVOICE_sum", request, paramMap);
}catch(Exception e){
e.printStackTrace();
}
//request.setAttribute("LIST", detailList);
request.setAttribute("info", info);
request.setAttribute("SUM_PRICE_MAP", sumPriceMap);
return "/supplyChainMgmt/invoiceFormPopUp";
}
/**
* 거래명세서에 해당하는 Part 목록을 가져온다.
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/getInvoiceTargetList.do")
public List<Map<String,Object>> getInvoiceTargetList(HttpServletRequest request, @RequestParam Map paramMap){
List partList = new ArrayList();
try{
String invoiceObjid = CommonUtils.checkNull(paramMap.get("INVOICE_OBJID"));
System.out.println("paramMap::"+paramMap);
if(!"".equals(invoiceObjid)){
partList = commonService.selectList("purchaseOrder.getPurchase_SAVED_PART_INVOICE", request, paramMap);
}else{
partList = commonService.selectList("purchaseOrder.getPURCHASE_ORDER_PART_INVOICE", request, paramMap);
}
}catch(Exception e){
e.printStackTrace();
}
return partList;
}
/**
* 거래명세서를 발행한다.
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/invoiceIssuance.do")
public Map<String,Object> invoiceIssuance(HttpServletRequest request, @RequestParam Map paramMap){
Map<String,Object> resultMap = new HashMap();
try{
resultMap =supplyChainMgmtService.invoiceIssuance(request, paramMap);
}catch(Exception e){
e.printStackTrace();
}
return resultMap;
}
/**
* 거래명세서 월별 마감
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/invoiceConfirm.do")
public Map invoiceConfirm(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map resultMap = supplyChainMgmtService.invoiceConfirm(request, paramMap);
return resultMap;
}
/**
* 자금지급관리 예정일등록 popup
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/supplyChainMgmt/dueDateRegPopUp.do")
public String dueDateRegPopUp(HttpServletRequest request, @RequestParam Map paramMap){
Map resultMap = new HashMap();
try{
/*resultMap = service.getFundMgmtInfo(request,paramMap);
request.setAttribute("resultMap", resultMap);*/
}catch(Exception e){
e.printStackTrace();
}
return "/supplyChainMgmt/dueDateRegPopUp";
}
/**
* 자금지급관리 예정일 저장
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/supplyChainMgmt/saveDueDateInfo.do")
public String saveDueDateInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
boolean result = supplyChainMgmtService.saveDueDateInfo(paramMap);
request.setAttribute("RESULT", CommonUtils.getJsonString("result", new Boolean(result).toString()));
return "/ajax/ajaxResult";
}
/**
* 거래명세서 지급완료
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/supplyChainMgmt/invoiceComplete.do")
public Map expenseConfirm(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map resultMap = supplyChainMgmtService.invoiceComplete(request, paramMap);
return resultMap;
}
}