1926 lines
73 KiB
Java
1926 lines
73 KiB
Java
package com.pms.controller;
|
|
|
|
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.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
import com.google.gson.Gson;
|
|
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.salesmgmt.service.ReleaseMgmtService;
|
|
import com.pms.service.CommonService;
|
|
import com.pms.service.ProductionPlanningService;
|
|
|
|
@Controller
|
|
public class ProductionPlanningController extends BaseService {
|
|
@Autowired
|
|
CommonService commonService;
|
|
|
|
@Autowired
|
|
ProductionPlanningService productionPlanningService;
|
|
|
|
// 영업관리 - 출고관리 서비스
|
|
@Autowired
|
|
ReleaseMgmtService releaseMgmtService;
|
|
|
|
|
|
/**
|
|
* 생산관리 -> 현황
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/planningdashboard.do")
|
|
public String planningdashboard(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 "/productionplanning/planningdashboard";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 현황
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/planningdashboardGridList.do")
|
|
public Map planningdashboardGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.planningdashboardGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
|
|
/**
|
|
* 생산관리 -> 생산계획수립
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/planningList.do")
|
|
public String planningList(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 "/productionplanning/planningList";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 생산계획수립
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/planningGridList.do")
|
|
public Map planningGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.planningGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 이슈관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/processperformanceList.do")
|
|
public String processperformanceList(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 "/productionplanning/processperformanceList";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 공정실적관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/processperformanceGridList.do")
|
|
public Map processperformanceGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.processperformanceGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
|
|
/**
|
|
* 생산관리 -> 이슈관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/issuemgmtList.do")
|
|
public String issuemgmtList(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("issue_category",commonService.bizMakeOptionList("0001611", CommonUtils.nullToEmpty((String)paramMap.get("issue_category")),"common.getCodeselect"));
|
|
|
|
//등록자
|
|
code_map.put("writer", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("writer")), "common.getUserselect")); //구매 PM
|
|
|
|
//조치담당자
|
|
code_map.put("design_userid", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("design_userid")),"common.getUserselect"));
|
|
|
|
//조치결과
|
|
code_map.put("design_result",commonService.bizMakeOptionList("0001615",CommonUtils.nullToEmpty((String)paramMap.get("design_result")),"common.getCodeselect"));
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("paramMap",paramMap);
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/issuemgmtList";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 이슈관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/issuemgmtGridList.do")
|
|
public Map issuemgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.selectPlanningIssueList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
|
|
@RequestMapping("/productionplanning/issueFormPopUp.do")
|
|
public String issueFormPopUp(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map info = new HashMap();
|
|
Map code_map = new HashMap();
|
|
String objid = CommonUtils.checkNull(paramMap.get("objId"));
|
|
|
|
try{
|
|
info = productionPlanningService.issueFormPopUp(request,paramMap);
|
|
if(info==null){
|
|
objid = CommonUtils.createObjId();
|
|
//프로젝트 번호
|
|
code_map.put("project_no",commonService.bizMakeOptionList("", "","common.getCusProjectNoList"));
|
|
//이슈구분
|
|
code_map.put("issue_category",commonService.bizMakeOptionList("0001611", "","common.getCodeselect"));
|
|
//설계담당자
|
|
code_map.put("design_userid", commonService.bizMakeOptionList("", "","common.getUserselect"));
|
|
//설계 조치내역
|
|
code_map.put("design_result",commonService.bizMakeOptionList("0001615","","common.getCodeselect"));
|
|
//구매담당자
|
|
code_map.put("purchase_userid", commonService.bizMakeOptionList("", "","common.getUserselect"));
|
|
//구매 조치내역
|
|
code_map.put("purchase_result",commonService.bizMakeOptionList("0001615", "","common.getCodeselect"));
|
|
//품질담당자
|
|
code_map.put("quality_userid", commonService.bizMakeOptionList("", "","common.getUserselect"));
|
|
//품질 조치내역
|
|
code_map.put("quality_result",commonService.bizMakeOptionList("0001615","","common.getCodeselect"));
|
|
//생산담당자
|
|
code_map.put("production_userid", commonService.bizMakeOptionList("", "","common.getUserselect"));
|
|
//생산 조치내역
|
|
code_map.put("production_result",commonService.bizMakeOptionList("0001615", "","common.getCodeselect"));
|
|
|
|
}else{
|
|
//프로젝트 번호
|
|
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("PROJECT_OBJID")),"common.getCusProjectNoList"));
|
|
//이슈구분
|
|
code_map.put("issue_category",commonService.bizMakeOptionList("0001611", CommonUtils.nullToEmpty((String)info.get("ISSUE_CATEGORY")),"common.getCodeselect"));
|
|
//설계담당자
|
|
code_map.put("design_userid", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("DESIGN_USERID")),"common.getUserselect"));
|
|
//설계 조치내역
|
|
code_map.put("design_result",commonService.bizMakeOptionList("0001615", CommonUtils.nullToEmpty((String)info.get("DESIGN_RESULT")),"common.getCodeselect"));
|
|
//구매담당자
|
|
code_map.put("purchase_userid", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("PURCHASE_USERID")),"common.getUserselect"));
|
|
//구매 조치내역
|
|
code_map.put("purchase_result",commonService.bizMakeOptionList("0001615", CommonUtils.nullToEmpty((String)info.get("PURCHASE_RESULT")),"common.getCodeselect"));
|
|
//품질담당자
|
|
code_map.put("quality_userid", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("QUALITY_USERID")),"common.getUserselect"));
|
|
//품질 조치내역
|
|
code_map.put("quality_result",commonService.bizMakeOptionList("0001615",CommonUtils.nullToEmpty((String)info.get("QUALITY_RESULT")),"common.getCodeselect"));
|
|
//생산담당자
|
|
code_map.put("production_userid", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("PRODUCTION_USERID")),"common.getUserselect"));
|
|
//생산 조치내역
|
|
code_map.put("production_result",commonService.bizMakeOptionList("0001615", CommonUtils.nullToEmpty((String)info.get("PRODUCTION_RESULT")),"common.getCodeselect"));
|
|
}
|
|
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("info", info);
|
|
request.setAttribute("code_map", code_map);
|
|
request.setAttribute("OBJID", objid);
|
|
return "/productionplanning/issueFormPopUp";
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 이슈 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/saveissueInfo.do")
|
|
public Map<String, Object> saveissueInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map result_map = new HashMap();
|
|
try {
|
|
result_map.put("RESULT", productionPlanningService.saveissueInfo(request, paramMap));
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
return result_map;
|
|
}
|
|
|
|
|
|
/**
|
|
* 이슈 삭제
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/planningDelete.do")
|
|
public Map planningDelete(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = productionPlanningService.planningDelete(request, paramMap);
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 이슈 배포
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/planningRelease.do")
|
|
public Map planningRelease(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = productionPlanningService.planningRelease(request, paramMap);
|
|
return resultMap;
|
|
}
|
|
|
|
|
|
@RequestMapping("/productionplanning/assemblyWbsFormPopUp.do")
|
|
public String assemblyWbsFormPopUp(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map code_map = new HashMap();
|
|
List resultList = null;
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
try{
|
|
|
|
code_map.put("project_name",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_name")),"common.getProjectNameList"));
|
|
|
|
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_cd")),"common.getsupplyselect"));
|
|
|
|
code_map.put("unit_code",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("unit_code")),"common.getUnitCodeList"));
|
|
|
|
code_map.put("pm_user_id", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("pm_user_id")), "common.getUserselect")); //구매 PM
|
|
|
|
//인계자
|
|
code_map.put("transfer_user_id",commonService.bizMakeOptionList("",CommonUtils.nullToEmpty((String)paramMap.get("transfer_user_id")),"common.getUserselect", true, "TRANSFER_USER_ID", "TRANSFER_USER_ID"));
|
|
|
|
//인수담당자
|
|
code_map.put("receive_user_id",commonService.bizMakeOptionList("",CommonUtils.nullToEmpty((String)paramMap.get("receive_user_id")),"common.getUserselect", true, "RECEIVE_USER_ID", "RECEIVE_USER_ID"));
|
|
|
|
//조립담당자
|
|
code_map.put("assembly_user_id",commonService.bizMakeOptionList("",CommonUtils.nullToEmpty((String)paramMap.get("assembly_user_id")),"common.getUserselect", true, "ASSEMBLY_USER_ID", "ASSEMBLY_USER_ID"));
|
|
|
|
resultList = productionPlanningService.getassemblyWbsList(request,paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("List",resultList);
|
|
return "/productionplanning/assemblyWbsFormPopUp";
|
|
}
|
|
|
|
|
|
/**
|
|
* 생산관리 -> 출고관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/releaseMgmtList.do")
|
|
public String releasMgmtList(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 "/productionplanning/releaseMgmtList";
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 생산관리 -> 출고관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/releaseMgmtGridList.do")
|
|
public Map releaseMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.releaseMgmtGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 생산관리 -> 출고관리 등록 PopUp
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/releaseMgmtFormSimplePopUp.do")
|
|
public String releaseMgmtFormPopUp(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
Map code_map = new HashMap();
|
|
|
|
try{
|
|
resultMap = releaseMgmtService.getReleaseMgmtInfo(request,paramMap);
|
|
resultMap.put("PM_USER_ID", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("pm_user_id")), "common.getUserselect")); //구매 PM
|
|
request.setAttribute("resultMap", resultMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return "/productionplanning/releaseMgmtFormSimplePopUp";
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 생산관리 -> 출고관리 등록 PopUp 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/saveReleaseMgmtInfo.do")
|
|
public Map saveReleaseMgmtInfo(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
try{
|
|
resultMap = productionPlanningService.saveReleaseMgmtInfo(request,paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
|
|
/**
|
|
* 생산관리 -> 셋업관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/setupmgmtList.do")
|
|
public String setupmgmtList(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 "/productionplanning/setupmgmtList";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 셋업관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/setupmgmtGridList.do")
|
|
public Map setupmgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.selectSetupMgmtList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
|
|
/**
|
|
* 공정실적 등록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/saveassemblyList.do")
|
|
public Map<String, Object> saveassemblyList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map result_map = new HashMap();
|
|
try {
|
|
result_map.put("RESULT", productionPlanningService.saveassemblyList(request, paramMap));
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
return result_map;
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 검사관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/inspectionMgmtList.do")
|
|
public String inspectionMgmtList(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 "/productionplanning/inspectionMgmtList";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 검사관리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/inspectionGridList.do")
|
|
public Map inspectionMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.inspectionGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 담당자별 작업현황
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/workStatusByImployeeList.do")
|
|
public String workStatusByImployeeList(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map code_map = new HashMap();
|
|
List list = new ArrayList();
|
|
List non_proj_list = new ArrayList();
|
|
Map sumPriceMap = new HashMap();
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
try{
|
|
//프로젟트번호
|
|
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_no")),"common.getCusProjectNoList"));
|
|
//등록자
|
|
code_map.put("worker", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("worker")), "common.getUserselect")); //구매 PM
|
|
//부서
|
|
code_map.put("busUsersDeptId",commonService.bizMakeOptionList(Constants.BUS_CONTENT , CommonUtils.nullToEmpty((String)paramMap.get("busUsersDeptId")),"common.getDeptselect")); //팀
|
|
|
|
if("Y".equals(search)){
|
|
sumPriceMap = commonService.selectOne("productionplanning.workStatusByImployeeList_sum", request, paramMap);
|
|
list = CommonUtils.keyChangeUpperList(productionPlanningService.getWorkStatusByImployeeList(request,paramMap));
|
|
non_proj_list = CommonUtils.keyChangeUpperList(productionPlanningService.getWorkStatusByImployeeNPList(request,paramMap));
|
|
}
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("paramMap",paramMap);
|
|
request.setAttribute("LIST", list);
|
|
request.setAttribute("NP_LIST", non_proj_list);
|
|
request.setAttribute("SUM_PRICE_MAP", sumPriceMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/workStatusByImployeeList";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 프로젝트별 작업현황
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/workStatusByProjectList.do")
|
|
public String workStatusByProjectList(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map code_map = new HashMap();
|
|
List list = new ArrayList();
|
|
Map sumPriceMap = new HashMap();
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
try{
|
|
//프로젟트번호
|
|
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_no")),"common.getCusProjectNoList"));
|
|
//등록자
|
|
code_map.put("worker", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("worker")), "common.getUserselect")); //구매 PM
|
|
//부서
|
|
code_map.put("busUsersDeptId",commonService.bizMakeOptionList(Constants.BUS_CONTENT , CommonUtils.nullToEmpty((String)paramMap.get("busUsersDeptId")),"common.getDeptselect")); //팀
|
|
|
|
if("Y".equals(search)){
|
|
sumPriceMap = commonService.selectOne("productionplanning.workStatusByProjectList_sum", request, paramMap);
|
|
list = CommonUtils.keyChangeUpperList(productionPlanningService.getworkStatusByProjectList(request,paramMap));
|
|
}
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("paramMap",paramMap);
|
|
request.setAttribute("LIST", list);
|
|
request.setAttribute("SUM_PRICE_MAP", sumPriceMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/workStatusByProjectList";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 공정실적 등록 인수 History PopUp
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/assemblyWbsHistoryPopUp.do")
|
|
public String assemblyWbsHistoryPopUp(HttpServletRequest request, @RequestParam Map paramMap){
|
|
//List list = new ArrayList();
|
|
Map code_map = new HashMap();
|
|
|
|
try{
|
|
//list = productionPlanningService.getAssemblyWbsHistoryInfo(request,paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
//request.setAttribute("list", list);
|
|
return "/productionplanning/assemblyWbsHistoryPopUp";
|
|
}
|
|
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/getAssemblyWbsHistoryList.do")
|
|
public List getAssemblyWbsHistoryList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
List<Map<String,Object>> detailList = new ArrayList();
|
|
try {
|
|
detailList = commonService.selectList("productionplanning.getAssemblyWbsHistoryList", request, paramMap);
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
System.out.println("detailList:"+detailList);
|
|
return detailList;
|
|
}
|
|
|
|
@RequestMapping("/productionplanning/deleteassemblyWbsHistoryList.do")
|
|
public String deleteinventoryHistoryList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
try {
|
|
request.setAttribute("RESULT", CommonUtils.getJsonMap(productionPlanningService.deleteassemblyWbsHistoryList(request, paramMap)) );
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 인수인계 History 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/saveAssemblyWbsHistory.do")
|
|
public Map<String, Object> saveAssemblyWbsHistory(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map result_map = new HashMap();
|
|
try {
|
|
result_map = productionPlanningService.saveAssemblyWbsHistory(request, paramMap);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return result_map;
|
|
}
|
|
|
|
/**
|
|
* 작업관리 -> 현황
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/workMgmtdashboard.do")
|
|
public String workMgmtdashboard(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("worker", commonService.bizMakeOptionList("", "", "common.getUserselect")); //구매 PM
|
|
//부서
|
|
code_map.put("busUsersDeptId",commonService.bizMakeOptionList(Constants.BUS_CONTENT , CommonUtils.nullToEmpty((String)paramMap.get("busUsersDeptId")),"common.getDeptselect")); //팀
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/workMgmtdashboard";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 현황
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/workMgmtdashboardGridList.do")
|
|
public Map workMgmtdashboardGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.workMgmtdashboardGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* 작업관리 -> 작업일지
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/workDiaryList.do")
|
|
public String workDiaryList(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("writer", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("writer")), "common.getUserselect")); //구매 PM
|
|
//작업자
|
|
code_map.put("worker", commonService.bizMakeOptionList("", "", "common.getUserselect")); //구매 PM
|
|
//부서
|
|
code_map.put("busUsersDeptId",commonService.bizMakeOptionList(Constants.BUS_CONTENT , CommonUtils.nullToEmpty((String)paramMap.get("busUsersDeptId")),"common.getDeptselect")); //팀
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("paramMap",paramMap);
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/workDiaryList";
|
|
}
|
|
|
|
/**
|
|
* 작업관리 -> 작업일지
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/workDiaryGridList.do")
|
|
public Map workDiaryGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.workDiaryGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
@RequestMapping("/productionplanning/workDiaryFormPopUp.do")
|
|
public String workDiaryFormPopUp(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map info = new HashMap();
|
|
Map code_map = new HashMap();
|
|
String objid = CommonUtils.checkNull(paramMap.get("objId"));
|
|
|
|
try{
|
|
info = productionPlanningService.workDiaryFormPopUp(request,paramMap);
|
|
if(info==null){
|
|
objid = CommonUtils.createObjId();
|
|
//프로젝트 번호
|
|
code_map.put("project_no",commonService.bizMakeOptionList("", "","common.getCusProjectNoList"));
|
|
//작업자
|
|
code_map.put("worker_id", commonService.bizMakeOptionList("", "","common.getUserselect"));
|
|
}else{
|
|
//프로젝트 번호
|
|
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("CONTRACT_OBJID")),"common.getCusProjectNoList"));
|
|
//작업자
|
|
code_map.put("worker_id", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("WORKER_ID")),"common.getUserselect"));
|
|
}
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("info", info);
|
|
request.setAttribute("code_map", code_map);
|
|
request.setAttribute("OBJID", objid);
|
|
return "/productionplanning/workDiaryFormPopUp";
|
|
}
|
|
@RequestMapping("/productionplanning/workDiaryFormPopUp_NEW.do")
|
|
public String workDiaryFormPopUp_NEW(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map info = new HashMap();
|
|
Map code_map = new HashMap();
|
|
String objid = CommonUtils.checkNull(paramMap.get("objId"));
|
|
|
|
try{
|
|
info = productionPlanningService.workDiaryFormPopUp(request,paramMap);
|
|
if(info==null){
|
|
objid = CommonUtils.createObjId();
|
|
//프로젝트 번호
|
|
code_map.put("project_no",commonService.bizMakeOptionList("", "","common.getCusProjectNoList"));
|
|
//작업자
|
|
code_map.put("worker_id", commonService.bizMakeOptionList("", "","common.getUserselect"));
|
|
}else{
|
|
//프로젝트 번호
|
|
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("CONTRACT_OBJID")),"common.getCusProjectNoList"));
|
|
//작업자
|
|
code_map.put("worker_id", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("WORKER_ID")),"common.getUserselect"));
|
|
}
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("info", info);
|
|
request.setAttribute("code_map", code_map);
|
|
request.setAttribute("OBJID", objid);
|
|
return "/productionplanning/workDiaryFormPopUp_NEW";
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 작업일지 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/saveWorkDiaryInfo.do")
|
|
public Map<String, Object> saveWorkDiaryInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map result_map = new HashMap();
|
|
try {
|
|
result_map.put("RESULT", productionPlanningService.saveWorkDiaryInfo(request, paramMap));
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
return result_map;
|
|
}
|
|
|
|
|
|
/**
|
|
* 작업일지 삭제
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/workDiaryDelete.do")
|
|
public Map workDiaryDelete(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = productionPlanningService.workDiaryDelete(request, paramMap);
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 작업일지 팀장 확인
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/workDiaryConfirm.do")
|
|
public Map workDiaryConfirm(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = productionPlanningService.workDiaryConfirm(request, paramMap);
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> M-BOM 관리 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomMgmt.do")
|
|
public String mBomMgmt(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map code_map = new HashMap();
|
|
try{
|
|
request.setAttribute("code_map", code_map);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/mBomMgmtList";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> M-BOM 관리 그리드 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/mBomMgmtGridList.do")
|
|
public Map mBomMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("productionplanning.mBomMgmtGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* M-BOM E-BOM 선택 팝업
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomEbomSelectPopup.do")
|
|
public String mBomEbomSelectPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
try {
|
|
// 필요한 코드 맵 설정 (structureList.jsp 참고)
|
|
Map<String, Object> codeMap = new HashMap<>();
|
|
// 제품구분 코드 - structureList와 동일하게 설정
|
|
codeMap.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product_cd")), "common.getCodeselect"));
|
|
request.setAttribute("code_map", codeMap);
|
|
|
|
// 현재 할당된 E-BOM 정보 조회
|
|
String bomReportObjid = CommonUtils.checkNull(paramMap.get("bomReportObjid"));
|
|
if(!"".equals(bomReportObjid)) {
|
|
// E-BOM 정보 조회
|
|
Map<String, Object> ebomInfo = productionPlanningService.getEbomInfo(bomReportObjid);
|
|
request.setAttribute("currentEbom", ebomInfo);
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/mBomEbomSelectPopup";
|
|
}
|
|
|
|
/**
|
|
* M-BOM 조회 팝업 (읽기 전용)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomViewPopup.do")
|
|
public String mBomViewPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
return "/productionplanning/mBomViewPopup";
|
|
}
|
|
|
|
/**
|
|
* M-BOM 복사 팝업 메인 (frameset)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomFormPopup.do")
|
|
public String mBomFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
try {
|
|
String objId = CommonUtils.checkNull(paramMap.get("objId"));
|
|
System.out.println("========== mBomFormPopup ==========");
|
|
System.out.println("objId: " + objId);
|
|
|
|
// PROJECT_MGMT 정보 조회
|
|
if(!"".equals(objId)) {
|
|
paramMap.put("objId", objId);
|
|
Map<String, Object> projectInfo = commonService.selectOne("productionplanning.getProjectMgmtDetail", request, paramMap);
|
|
System.out.println("projectInfo: " + projectInfo);
|
|
|
|
if(projectInfo != null && !projectInfo.isEmpty()) {
|
|
request.setAttribute("info", projectInfo);
|
|
|
|
// Machine 이외 제품: 품번 기준 M-BOM 템플릿 조회
|
|
String productCode = CommonUtils.checkNull(projectInfo.get("PRODUCT_CODE"));
|
|
String partNo = CommonUtils.checkNull(projectInfo.get("PART_NO"));
|
|
|
|
System.out.println("제품구분 코드: " + productCode);
|
|
System.out.println("품번: " + partNo);
|
|
|
|
// Machine(0000928) 이외 제품이고 품번이 있는 경우
|
|
if(!"0000928".equals(productCode) && !"".equals(partNo)) {
|
|
Map<String, Object> templateParam = new HashMap<>();
|
|
templateParam.put("partNo", partNo);
|
|
|
|
// 품번 기준 최신 M-BOM 템플릿 조회
|
|
Map<String, Object> template = commonService.selectOne("productionplanning.getLatestMbomTemplateByPartNo", request, templateParam);
|
|
|
|
if(template != null && !template.isEmpty()) {
|
|
System.out.println("M-BOM 템플릿 발견: " + template.get("TEMPLATE_MBOM_NO"));
|
|
|
|
// 템플릿 상세 항목 조회
|
|
Map<String, Object> detailParam = new HashMap<>();
|
|
detailParam.put("mbomHeaderObjid", template.get("TEMPLATE_HEADER_OBJID"));
|
|
List<Map<String, Object>> templateDetails = commonService.selectList("productionplanning.getMbomTemplateDetails", request, detailParam);
|
|
|
|
System.out.println("템플릿 상세 항목 수: " + (templateDetails != null ? templateDetails.size() : 0));
|
|
|
|
request.setAttribute("mbomTemplate", template);
|
|
request.setAttribute("mbomTemplateDetails", templateDetails);
|
|
} else {
|
|
System.out.println("해당 품번의 M-BOM 템플릿 없음");
|
|
}
|
|
}
|
|
} else {
|
|
System.out.println("projectInfo is null or empty!");
|
|
}
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/mBomPopupHeaderFs";
|
|
}
|
|
|
|
/**
|
|
* M-BOM 조회 팝업 상단 헤더
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomHeaderPopup.do")
|
|
public String mBomHeaderPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
try {
|
|
String objId = CommonUtils.checkNull(paramMap.get("objId"));
|
|
if(!"".equals(objId)) {
|
|
paramMap.put("objId", objId);
|
|
Map<String, Object> projectInfo = commonService.selectOne("productionplanning.getProjectMgmtDetail", request, paramMap);
|
|
request.setAttribute("info", projectInfo);
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/mBomHeaderPopup";
|
|
}
|
|
|
|
/**
|
|
* M-BOM 조회 팝업 중앙 버튼 영역
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomCenterBtnPopup.do")
|
|
public String mBomCenterBtnPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
return "/productionplanning/mBomCenterBtnPopup";
|
|
}
|
|
|
|
/**
|
|
* M-BOM 조회 팝업 중앙 버튼 영역
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomPopupCenter.do")
|
|
public String mBomPopupCenter(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
return "/productionplanning/mBomPopupCenter";
|
|
}
|
|
|
|
/**
|
|
* M-BOM 조회 팝업 오른쪽 E-BOM 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomPopupRight.do")
|
|
public String mBomPopupRight(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
return "/productionplanning/mBomPopupRight";
|
|
}
|
|
|
|
/**
|
|
* E-BOM 목록 조회 (AJAX)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/getEbomList.do")
|
|
@ResponseBody
|
|
public Map<String, Object> getEbomList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map<String, Object> result = new HashMap<>();
|
|
try {
|
|
List<Map<String, Object>> list = commonService.selectList("productionplanning.getEbomList", request, paramMap);
|
|
result.put("list", list);
|
|
result.put("result", true);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
result.put("result", false);
|
|
result.put("list", new ArrayList<>());
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* M-BOM 조회 팝업 하단 frameset
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomBottomPopupFS.do")
|
|
public String mBomBottomPopupFS(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
return "/productionplanning/mBomPopupFs";
|
|
}
|
|
|
|
/**
|
|
* M-BOM 조회 팝업 왼쪽 트리
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomPopupLeft.do")
|
|
public String mBomPopupLeft(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Gson gson = new Gson();
|
|
try {
|
|
String objId = CommonUtils.checkNull(paramMap.get("objId"));
|
|
|
|
// PROJECT_MGMT 정보 조회
|
|
if(!"".equals(objId)) {
|
|
paramMap.put("objId", objId);
|
|
Map<String, Object> projectInfo = commonService.selectOne("productionplanning.getProjectMgmtDetail", request, paramMap);
|
|
|
|
System.out.println("========== mBomPopupLeft ==========");
|
|
System.out.println("objId: " + objId);
|
|
System.out.println("projectInfo: " + projectInfo);
|
|
|
|
if(projectInfo != null) {
|
|
System.out.println("BOM_REPORT_OBJID: " + projectInfo.get("BOM_REPORT_OBJID"));
|
|
System.out.println("SOURCE_BOM_TYPE: " + projectInfo.get("SOURCE_BOM_TYPE"));
|
|
System.out.println("SOURCE_EBOM_OBJID: " + projectInfo.get("SOURCE_EBOM_OBJID"));
|
|
System.out.println("SOURCE_MBOM_OBJID: " + projectInfo.get("SOURCE_MBOM_OBJID"));
|
|
System.out.println("MBOM_STATUS: " + projectInfo.get("MBOM_STATUS"));
|
|
|
|
String bomReportObjid = "";
|
|
String bomDataType = ""; // "SAVED", "TEMPLATE", "ASSIGNED_EBOM", "ASSIGNED_MBOM"
|
|
|
|
// 1. 먼저 저장된 M-BOM이 있는지 확인 (MBOM_HEADER 테이블)
|
|
Map<String, Object> savedMbomParam = new HashMap<>();
|
|
savedMbomParam.put("projectObjId", objId);
|
|
Map<String, Object> savedMbom = commonService.selectOne("productionplanning.getLatestMbomByProjectId", request, savedMbomParam);
|
|
|
|
if(savedMbom != null && savedMbom.get("OBJID") != null) {
|
|
// 저장된 M-BOM이 있으면 해당 M-BOM 사용
|
|
bomReportObjid = CommonUtils.checkNull(savedMbom.get("OBJID"));
|
|
bomDataType = "SAVED";
|
|
System.out.println("저장된 M-BOM 사용: " + bomReportObjid);
|
|
} else {
|
|
// 저장된 M-BOM이 없으면 할당된 BOM 정보 사용
|
|
String sourceBomType = CommonUtils.checkNull(projectInfo.get("SOURCE_BOM_TYPE"));
|
|
String sourceEbomObjId = CommonUtils.checkNull(projectInfo.get("SOURCE_EBOM_OBJID"));
|
|
String sourceMbomObjId = CommonUtils.checkNull(projectInfo.get("SOURCE_MBOM_OBJID"));
|
|
|
|
if("EBOM".equals(sourceBomType) && !"".equals(sourceEbomObjId)) {
|
|
bomReportObjid = sourceEbomObjId;
|
|
bomDataType = "ASSIGNED_EBOM";
|
|
System.out.println("할당된 E-BOM 사용: " + bomReportObjid);
|
|
} else if("MBOM".equals(sourceBomType) && !"".equals(sourceMbomObjId)) {
|
|
bomReportObjid = sourceMbomObjId;
|
|
bomDataType = "ASSIGNED_MBOM";
|
|
System.out.println("할당된 M-BOM 사용: " + bomReportObjid);
|
|
} else {
|
|
// 할당된 BOM도 없으면 Machine 이외 제품은 템플릿 확인
|
|
String productCode = CommonUtils.checkNull(projectInfo.get("PRODUCT_CODE"));
|
|
String partNo = CommonUtils.checkNull(projectInfo.get("PART_NO"));
|
|
|
|
if(!"0000928".equals(productCode) && !"".equals(partNo)) {
|
|
System.out.println("Machine 이외 제품 - 템플릿 조회 시도");
|
|
Map<String, Object> templateParam = new HashMap<>();
|
|
templateParam.put("partNo", partNo);
|
|
|
|
Map<String, Object> template = commonService.selectOne("productionplanning.getLatestMbomTemplateByPartNo", request, templateParam);
|
|
|
|
if(template != null && !template.isEmpty()) {
|
|
bomReportObjid = CommonUtils.checkNull(template.get("TEMPLATE_HEADER_OBJID"));
|
|
bomDataType = "TEMPLATE";
|
|
System.out.println("템플릿 M-BOM 사용: " + bomReportObjid);
|
|
} else {
|
|
bomReportObjid = CommonUtils.checkNull(projectInfo.get("BOM_REPORT_OBJID"));
|
|
System.out.println("기존 BOM_REPORT_OBJID 사용: " + bomReportObjid);
|
|
}
|
|
} else {
|
|
bomReportObjid = CommonUtils.checkNull(projectInfo.get("BOM_REPORT_OBJID"));
|
|
System.out.println("기존 BOM_REPORT_OBJID 사용: " + bomReportObjid);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 2. BOM 데이터 조회
|
|
List<Map<String, Object>> mbomDetailList = null;
|
|
|
|
if(!"".equals(bomReportObjid)) {
|
|
if("SAVED".equals(bomDataType)) {
|
|
// 저장된 M-BOM: MBOM_DETAIL 테이블에서 조회 (ORDER_QTY, PRODUCTION_QTY 포함)
|
|
Map<String, Object> mbomParam = new HashMap<>();
|
|
mbomParam.put("mbomHeaderObjid", bomReportObjid);
|
|
List tempList = commonService.selectList("productionplanning.getSavedMbomTreeList", request, mbomParam);
|
|
mbomDetailList = (List<Map<String, Object>>) (List<?>) CommonUtils.keyChangeUpperList(tempList);
|
|
System.out.println("저장된 M-BOM 조회 - mbomDetailList size: " + (mbomDetailList != null ? mbomDetailList.size() : 0));
|
|
} else if("TEMPLATE".equals(bomDataType)) {
|
|
// 템플릿 M-BOM: MBOM_DETAIL 테이블에서 조회 (ORDER_QTY, PRODUCTION_QTY 제외)
|
|
Map<String, Object> mbomParam = new HashMap<>();
|
|
mbomParam.put("mbomHeaderObjid", bomReportObjid);
|
|
List tempList = commonService.selectList("productionplanning.getMbomTemplateDetails", request, mbomParam);
|
|
mbomDetailList = (List<Map<String, Object>>) (List<?>) CommonUtils.keyChangeUpperList(tempList);
|
|
System.out.println("템플릿 M-BOM 조회 - mbomDetailList size: " + (mbomDetailList != null ? mbomDetailList.size() : 0));
|
|
} else if("ASSIGNED_EBOM".equals(bomDataType)) {
|
|
// 할당된 E-BOM: BOM_PART_QTY 테이블에서 조회
|
|
Map<String, Object> bomParam = new HashMap<>();
|
|
bomParam.put("bomReportObjId", bomReportObjid);
|
|
bomParam.put("search_type", "working");
|
|
mbomDetailList = commonService.selectList("partMng.getBOMTreeList", request, bomParam);
|
|
System.out.println("할당된 E-BOM 조회 - mbomDetailList size: " + (mbomDetailList != null ? mbomDetailList.size() : 0));
|
|
} else if("ASSIGNED_MBOM".equals(bomDataType)) {
|
|
// 할당된 M-BOM: 구조만 조회 (생산 정보 제외)
|
|
Map<String, Object> mbomParam = new HashMap<>();
|
|
mbomParam.put("mbomHeaderObjid", bomReportObjid);
|
|
List tempList = commonService.selectList("productionplanning.getMbomStructureOnly", request, mbomParam);
|
|
// UpperKeyMap으로 이미 대문자 변환되어 오므로 keyChangeUpperList 불필요
|
|
mbomDetailList = (List<Map<String, Object>>) (List<?>) tempList;
|
|
System.out.println("할당된 M-BOM 구조만 조회 - size: " + (mbomDetailList != null ? mbomDetailList.size() : 0));
|
|
}
|
|
}
|
|
|
|
if(mbomDetailList != null && !mbomDetailList.isEmpty()) {
|
|
// 저장된 M-BOM 데이터가 있으면 이를 표시
|
|
int maxLevel = 1;
|
|
for(Map<String, Object> item : mbomDetailList) {
|
|
Integer level = (Integer) item.get("LEVEL");
|
|
if(level != null && level > maxLevel) {
|
|
maxLevel = level;
|
|
}
|
|
|
|
// LEVEL_1, LEVEL_2, ... 필드 추가
|
|
if(level != null) {
|
|
for(int i = 1; i <= level; i++) {
|
|
if(i == level) {
|
|
item.put("LEVEL_" + i, "*");
|
|
} else {
|
|
item.put("LEVEL_" + i, "");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
request.setAttribute("MAXLEV", maxLevel);
|
|
request.setAttribute("bomTreeListJson", gson.toJson(mbomDetailList));
|
|
return "/productionplanning/mBomPopupLeft";
|
|
}
|
|
}
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
// 데이터가 없을 때 빈 배열 설정
|
|
request.setAttribute("MAXLEV", 1);
|
|
request.setAttribute("bomTreeListJson", "[]");
|
|
return "/productionplanning/mBomPopupLeft";
|
|
}
|
|
|
|
/**
|
|
* E-BOM을 M-BOM(PROJECT_MGMT)에 할당
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/assignEbomToMbom.do")
|
|
public Map<String, Object> assignEbomToMbom(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
String projectMgmtObjid = CommonUtils.checkNull(paramMap.get("projectMgmtObjid"));
|
|
String bomReportObjid = CommonUtils.checkNull(paramMap.get("bomReportObjid"));
|
|
|
|
if(projectMgmtObjid.isEmpty() || bomReportObjid.isEmpty()) {
|
|
resultMap.put("success", false);
|
|
resultMap.put("message", "필수 파라미터가 누락되었습니다.");
|
|
return resultMap;
|
|
}
|
|
|
|
// PROJECT_MGMT 테이블의 PART_OBJID 업데이트
|
|
int updateResult = productionPlanningService.assignEbomToProject(projectMgmtObjid, bomReportObjid);
|
|
|
|
if(updateResult > 0) {
|
|
resultMap.put("success", true);
|
|
resultMap.put("message", "E-BOM이 할당되었습니다.");
|
|
} else {
|
|
resultMap.put("success", false);
|
|
resultMap.put("message", "할당에 실패했습니다.");
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("success", false);
|
|
resultMap.put("message", "오류가 발생했습니다: " + e.getMessage());
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* M-BOM 목록 조회 (검색 조건 포함)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/getMbomList.do")
|
|
public Map<String, Object> getMbomList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map<String, Object> result = new HashMap<>();
|
|
try {
|
|
// 검색 조건에 맞는 M-BOM 목록 조회
|
|
List<Map<String, Object>> list = commonService.selectList("productionplanning.getMbomList", request, paramMap);
|
|
result.put("list", list);
|
|
result.put("result", true);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
result.put("result", false);
|
|
result.put("list", new ArrayList<>());
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 품번으로 최신 M-BOM 조회 (Machine 이외 제품용)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/getLatestMbomByPartNo.do")
|
|
public Map<String, Object> getLatestMbomByPartNo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
String partNo = CommonUtils.checkNull(paramMap.get("partNo"));
|
|
|
|
if("".equals(partNo)) {
|
|
return resultMap;
|
|
}
|
|
|
|
// 최신 M-BOM 조회
|
|
Map<String, Object> mbomInfo = commonService.selectOne("productionplanning.getLatestMbomByPartNo", request, paramMap);
|
|
|
|
if(mbomInfo != null) {
|
|
resultMap.putAll(mbomInfo);
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* M-BOM 이력 조회
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/getMbomHistory.do")
|
|
public Map<String, Object> getMbomHistory(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
String projectObjId = CommonUtils.checkNull(paramMap.get("projectObjId"));
|
|
|
|
if("".equals(projectObjId)) {
|
|
resultMap.put("historyList", new ArrayList<>());
|
|
return resultMap;
|
|
}
|
|
|
|
System.out.println("========== getMbomHistory ==========");
|
|
System.out.println("projectObjId: " + projectObjId);
|
|
|
|
// M-BOM 이력 조회 (PROJECT_OBJID로 조회)
|
|
List<Map<String, Object>> historyList = commonService.selectList("productionplanning.getMbomHistory", request, paramMap);
|
|
|
|
System.out.println("조회된 이력 수: " + (historyList != null ? historyList.size() : 0));
|
|
|
|
resultMap.put("historyList", historyList != null ? historyList : new ArrayList<>());
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("historyList", new ArrayList<>());
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* M-BOM Part 연결 (E-BOM의 relatePartInfo와 동일)
|
|
* @param request
|
|
* @param paramMap
|
|
* @param rightCheckedArr
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/relateMbomPartInfo.do")
|
|
public Map<String, Object> relateMbomPartInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap, @RequestParam(value = "rightCheckedArr[]") List<String> rightCheckedArr){
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
boolean result = productionPlanningService.relateMbomPartInfo(request, paramMap, rightCheckedArr);
|
|
resultMap.put("result", result);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", false);
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* M-BOM Part 연결 해제 (E-BOM의 deleteStatusPartRelateInfo와 동일)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/deleteMbomPartRelateInfo.do")
|
|
public Map<String, Object> deleteMbomPartRelateInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
boolean result = productionPlanningService.deleteMbomPartRelateInfo(request, paramMap);
|
|
resultMap.put("result", result);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", false);
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* M-BOM Part 변경 (E-BOM의 changeRelatePartInfo와 동일)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/changeMbomPartInfo.do")
|
|
public Map<String, Object> changeMbomPartInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
boolean result = productionPlanningService.changeMbomPartInfo(request, paramMap);
|
|
resultMap.put("result", result);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", false);
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* BOM 할당 정보 저장 (M-BOM 기준 설정)
|
|
* PROJECT_MGMT 테이블에 E-BOM 또는 M-BOM 할당 정보만 저장
|
|
* 실제 M-BOM 생성은 M-BOM 상세 팝업에서 수행
|
|
*/
|
|
@RequestMapping("/productionplanning/saveBomAssignment.do")
|
|
@ResponseBody
|
|
public Map<String, Object> saveBomAssignment(HttpServletRequest request, @RequestBody Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
System.out.println("========== saveBomAssignment ==========");
|
|
System.out.println("projectObjId: " + paramMap.get("projectObjId"));
|
|
System.out.println("sourceBomType: " + paramMap.get("sourceBomType"));
|
|
System.out.println("sourceBomObjId: " + paramMap.get("sourceBomObjId"));
|
|
System.out.println("partNo: " + paramMap.get("partNo"));
|
|
System.out.println("partName: " + paramMap.get("partName"));
|
|
|
|
// PROJECT_MGMT 테이블 업데이트
|
|
boolean updateResult = productionPlanningService.saveBomAssignment(request, paramMap);
|
|
|
|
if(updateResult) {
|
|
resultMap.put("result", "success");
|
|
resultMap.put("message", "M-BOM 기준 정보가 저장되었습니다.");
|
|
} else {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "저장에 실패했습니다.");
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "error");
|
|
resultMap.put("message", "오류가 발생했습니다: " + e.getMessage());
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
@RequestMapping("/productionplanning/getMbomAssignmentInfo.do")
|
|
@ResponseBody
|
|
public Map<String, Object> getMbomAssignmentInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
String projectObjId = CommonUtils.checkNull((String)paramMap.get("projectObjId"));
|
|
System.out.println("========== getMbomAssignmentInfo ==========");
|
|
System.out.println("projectObjId: " + projectObjId);
|
|
|
|
// PROJECT_MGMT에서 BOM 할당 정보 조회
|
|
Map<String, Object> assignmentInfo = productionPlanningService.getMbomAssignment(projectObjId);
|
|
|
|
if(assignmentInfo != null && !assignmentInfo.isEmpty()) {
|
|
resultMap.putAll(assignmentInfo);
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("error", "오류가 발생했습니다: " + e.getMessage());
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 프로젝트별 최신 M-BOM 조회
|
|
*/
|
|
@RequestMapping("/productionplanning/getLatestMbomByProjectId.do")
|
|
@ResponseBody
|
|
public Map<String, Object> getLatestMbomByProjectId(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
String projectObjId = CommonUtils.checkNull((String)paramMap.get("projectObjId"));
|
|
paramMap.put("projectObjId", projectObjId);
|
|
|
|
// MBOM_HEADER에서 해당 프로젝트의 최신 M-BOM 조회
|
|
Map<String, Object> savedMbom = commonService.selectOne("productionplanning.getLatestMbomByProjectId", request, paramMap);
|
|
|
|
if(savedMbom != null && !savedMbom.isEmpty()) {
|
|
resultMap = (Map<String, Object>) CommonUtils.toUpperCaseMapKey(savedMbom);
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("error", "오류가 발생했습니다: " + e.getMessage());
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* M-BOM 저장
|
|
* 최초 저장 시: M-BOM 품번 생성 + 데이터 저장
|
|
* 수정 저장 시: 동일 품번으로 업데이트 + 이력 저장
|
|
*/
|
|
@RequestMapping("/productionplanning/saveMbom.do")
|
|
@ResponseBody
|
|
public Map<String, Object> saveMbom(HttpServletRequest request, @RequestBody Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
try {
|
|
System.out.println("========== saveMbom ==========");
|
|
|
|
String projectObjId = CommonUtils.checkNull((String)paramMap.get("projectObjId"));
|
|
String mbomPartNo = CommonUtils.checkNull((String)paramMap.get("mbomPartNo"));
|
|
boolean isUpdate = "true".equals(String.valueOf(paramMap.get("isUpdate")));
|
|
|
|
System.out.println("projectObjId: " + projectObjId);
|
|
System.out.println("mbomPartNo: " + mbomPartNo);
|
|
System.out.println("isUpdate: " + isUpdate);
|
|
|
|
// PROJECT_MGMT에서 할당 정보 조회
|
|
Map<String, Object> assignment = (Map<String, Object>) commonService.selectOne("productionplanning.getMbomAssignment", request, paramMap);
|
|
|
|
if(assignment == null || assignment.isEmpty()) {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "프로젝트 정보를 찾을 수 없습니다.");
|
|
return resultMap;
|
|
}
|
|
|
|
String sourceBomType = CommonUtils.checkNull(assignment.get("SOURCE_BOM_TYPE"));
|
|
String sourceBomObjId = "";
|
|
String baseBomPartNo = "";
|
|
String productCode = CommonUtils.checkNull(assignment.get("PRODUCT_CODE"));
|
|
String partNo = CommonUtils.checkNull(assignment.get("PART_NO"));
|
|
|
|
if("EBOM".equals(sourceBomType)) {
|
|
sourceBomObjId = CommonUtils.checkNull(assignment.get("SOURCE_EBOM_OBJID"));
|
|
baseBomPartNo = CommonUtils.checkNull(assignment.get("EBOM_PART_NO"));
|
|
} else if("MBOM".equals(sourceBomType)) {
|
|
sourceBomObjId = CommonUtils.checkNull(assignment.get("SOURCE_MBOM_OBJID"));
|
|
baseBomPartNo = CommonUtils.checkNull(assignment.get("MBOM_NO"));
|
|
} else {
|
|
// 할당 정보가 없는 경우 - Machine 이외 제품은 템플릿 기반 저장 허용
|
|
if(!"0000928".equals(productCode) && !"".equals(partNo)) {
|
|
System.out.println("Machine 이외 제품 - 템플릿 기반 저장 허용");
|
|
sourceBomType = "TEMPLATE"; // 템플릿 기반 저장 표시
|
|
baseBomPartNo = partNo;
|
|
} else {
|
|
// Machine 제품이거나 품번이 없으면 할당 필요
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "M-BOM 기준 정보가 없습니다. BOM 복사 팝업에서 먼저 기준을 설정해주세요.");
|
|
return resultMap;
|
|
}
|
|
}
|
|
|
|
// M-BOM 품번 생성 또는 사용
|
|
String finalMbomNo = "";
|
|
|
|
if(!isUpdate || mbomPartNo.isEmpty()) {
|
|
// 최초 저장: M-BOM 품번 생성
|
|
finalMbomNo = productionPlanningService.generateMbomNo(request, sourceBomType, baseBomPartNo);
|
|
System.out.println("생성된 M-BOM 품번: " + finalMbomNo);
|
|
} else {
|
|
// 수정 저장: 기존 품번 사용
|
|
finalMbomNo = mbomPartNo;
|
|
System.out.println("기존 M-BOM 품번 사용: " + finalMbomNo);
|
|
}
|
|
|
|
paramMap.put("mbomNo", finalMbomNo);
|
|
paramMap.put("sourceBomType", sourceBomType);
|
|
paramMap.put("sourceBomObjId", sourceBomObjId);
|
|
paramMap.put("isUpdate", isUpdate);
|
|
|
|
// M-BOM 저장
|
|
boolean saveResult = productionPlanningService.saveMbom(request, paramMap);
|
|
|
|
if(saveResult) {
|
|
resultMap.put("result", "success");
|
|
resultMap.put("message", isUpdate ? "M-BOM이 수정되었습니다." : "M-BOM이 생성되었습니다.");
|
|
resultMap.put("mbomNo", finalMbomNo);
|
|
} else {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "M-BOM 저장에 실패했습니다.");
|
|
}
|
|
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "error");
|
|
resultMap.put("message", "오류가 발생했습니다: " + e.getMessage());
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* M-BOM 이력 팝업
|
|
*/
|
|
@RequestMapping("/productionplanning/mBomHistoryPopup.do")
|
|
public String mBomHistoryPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
try {
|
|
String mbomHeaderObjid = CommonUtils.checkNull(paramMap.get("mbomHeaderObjid"));
|
|
|
|
if(!"".equals(mbomHeaderObjid)) {
|
|
// M-BOM 헤더 정보 조회
|
|
paramMap.put("mbomHeaderObjid", mbomHeaderObjid);
|
|
Map<String, Object> mbomHeader = commonService.selectOne("productionplanning.getMbomHeaderByObjid", request, paramMap);
|
|
request.setAttribute("mbomHeader", mbomHeader);
|
|
|
|
// M-BOM 이력 조회
|
|
List<Map<String, Object>> historyList = commonService.selectList("productionplanning.getMbomHistoryList", request, paramMap);
|
|
request.setAttribute("historyList", historyList);
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/mBomHistoryPopup";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 생산계획&실적관리 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/prodPlanResultMgmtList.do")
|
|
public String prodPlanResultMgmtList(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("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product_code")), "common.getCodeselect"));
|
|
|
|
// 주문유형
|
|
code_map.put("category_cd", commonService.bizMakeOptionList("0000167", CommonUtils.nullToEmpty((String)paramMap.get("category_code")), "common.getCodeselect"));
|
|
|
|
// 생산유형
|
|
code_map.put("production_type_cd", commonService.bizMakeOptionList("0001832", CommonUtils.nullToEmpty((String)paramMap.get("production_type")), "common.getCodeselect"));
|
|
|
|
// 고객사 (SUPPLY_MNG + CLIENT_MNG 통합)
|
|
code_map.put("customer_cd", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")), "common.getsupplyselect"));
|
|
|
|
request.setAttribute("code_map", code_map);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/prodPlanResultMgmtList";
|
|
}
|
|
|
|
/**
|
|
* 생산관리 -> 생산계획&실적관리 그리드 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/prodPlanResultMgmtGridList.do")
|
|
public Map prodPlanResultMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
// 프로젝트번호 multiple select 처리 (Java 7 호환)
|
|
String[] projectNos = request.getParameterValues("search_project_no");
|
|
if(projectNos != null && projectNos.length > 0) {
|
|
StringBuilder sb = new StringBuilder();
|
|
for(int i = 0; i < projectNos.length; i++) {
|
|
if(i > 0) sb.append(",");
|
|
sb.append(projectNos[i]);
|
|
}
|
|
paramMap.put("search_project_nos", sb.toString());
|
|
}
|
|
|
|
commonService.selectListPagingNew("productionplanning.prodPlanResultMgmtGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* 생산계획 생성 팝업
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/productionplanning/prodPlanFormPopup.do")
|
|
public String prodPlanFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map code_map = new HashMap();
|
|
try {
|
|
String projectObjid = CommonUtils.nullToEmpty((String)paramMap.get("projectObjid"));
|
|
String prodPlanObjid = CommonUtils.nullToEmpty((String)paramMap.get("prodPlanObjid"));
|
|
|
|
// 프로젝트번호
|
|
code_map.put("project_no", commonService.bizMakeOptionList("", projectObjid, "common.getCusProjectNoList"));
|
|
|
|
// 제품구분
|
|
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", "", "common.getCodeselect"));
|
|
|
|
// 주문유형
|
|
code_map.put("category_cd", commonService.bizMakeOptionList("0000167", "", "common.getCodeselect"));
|
|
|
|
// 생산유형
|
|
code_map.put("production_type_cd", commonService.bizMakeOptionList("0001832", "", "common.getCodeselect"));
|
|
|
|
// 고객사
|
|
code_map.put("customer_cd", commonService.bizMakeOptionList("", "", "common.getClientMngSupplySelect"));
|
|
|
|
request.setAttribute("code_map", code_map);
|
|
request.setAttribute("projectObjid", projectObjid);
|
|
|
|
// 수정 모드일 경우 기존 데이터 조회
|
|
if(!"".equals(prodPlanObjid)) {
|
|
Map resultMap = productionPlanningService.getProdPlanInfo(prodPlanObjid);
|
|
request.setAttribute("resultMap", resultMap);
|
|
request.setAttribute("actionType", "modify");
|
|
} else {
|
|
request.setAttribute("actionType", "regist");
|
|
}
|
|
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/prodPlanFormPopup";
|
|
}
|
|
|
|
/**
|
|
* 프로젝트 정보 조회 (생산계획 폼용)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/getProdPlanProjectInfo.do")
|
|
public Map getProdPlanProjectInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
try {
|
|
Map info = productionPlanningService.getProdPlanProjectInfo(paramMap);
|
|
resultMap.put("result", "success");
|
|
resultMap.put("info", info);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("msg", "프로젝트 정보 조회 실패");
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 생산계획 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/saveProdPlan.do")
|
|
public Map saveProdPlan(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
try {
|
|
HttpSession session = request.getSession();
|
|
PersonBean person = (PersonBean) session.getAttribute(Constants.PERSON_BEAN);
|
|
paramMap.put("userId", person.getUserId());
|
|
|
|
boolean success = productionPlanningService.saveProdPlan(paramMap);
|
|
if(success) {
|
|
resultMap.put("result", "success");
|
|
resultMap.put("msg", "저장되었습니다.");
|
|
} else {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("msg", "저장에 실패했습니다.");
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("msg", "저장 중 오류가 발생했습니다.");
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 생산실적 등록/수정 팝업
|
|
*/
|
|
@RequestMapping("/productionplanning/prodResultFormPopup.do")
|
|
public String prodResultFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
return "/productionplanning/prodResultFormPopup";
|
|
}
|
|
|
|
/**
|
|
* 생산실적 목록 조회
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/productionplanning/getProdResultList.do")
|
|
public Map getProdResultList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
try {
|
|
List list = productionPlanningService.getProdResultList(paramMap);
|
|
resultMap.put("result", "success");
|
|
resultMap.put("list", list);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("msg", "조회 실패");
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 생산실적 저장 (JSON)
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping(value="/productionplanning/saveProdResultList.do", produces="application/json;charset=UTF-8")
|
|
public Map saveProdResultList(HttpServletRequest request, @RequestBody Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
try {
|
|
HttpSession session = request.getSession();
|
|
PersonBean person = (PersonBean) session.getAttribute(Constants.PERSON_BEAN);
|
|
paramMap.put("userId", person.getUserId());
|
|
paramMap.put("userName", person.getUserName());
|
|
|
|
boolean success = productionPlanningService.saveProdResultList(paramMap);
|
|
if(success) {
|
|
resultMap.put("result", "success");
|
|
resultMap.put("msg", "저장되었습니다.");
|
|
} else {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("msg", "저장에 실패했습니다.");
|
|
}
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("msg", "저장 중 오류가 발생했습니다.");
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 반제품소요량 조회 화면
|
|
*/
|
|
@RequestMapping("/productionplanning/semiProductRequirementList.do")
|
|
public String semiProductRequirementList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map code_map = new HashMap();
|
|
try {
|
|
// M-BOM 목록 (셀렉트박스용)
|
|
code_map.put("mbom_list", commonService.bizMakeOptionList("", "", "productionplanning.getMbomListForSelect2"));
|
|
|
|
request.setAttribute("code_map", code_map);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/semiProductRequirementList";
|
|
}
|
|
|
|
/**
|
|
* M-BOM 기준 반제품 소요량 조회
|
|
* @param request
|
|
* @param paramMap - mbomItems: [{mbomObjid, qty}, ...]
|
|
* @return 품번별 합산된 소요량 목록
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping(value="/productionplanning/getSemiProductRequirementList.do", produces="application/json;charset=UTF-8")
|
|
public Map getSemiProductRequirementList(HttpServletRequest request, @RequestBody Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
try {
|
|
List list = productionPlanningService.getSemiProductRequirementList(paramMap);
|
|
resultMap.put("result", "success");
|
|
resultMap.put("list", list);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("msg", "조회 실패: " + e.getMessage());
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 원자재소요량 조회 화면
|
|
*/
|
|
@RequestMapping("/productionplanning/rawMaterialRequirementList.do")
|
|
public String rawMaterialRequirementList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
|
Map code_map = new HashMap();
|
|
try {
|
|
// M-BOM 목록 (셀렉트박스용)
|
|
code_map.put("mbom_list", commonService.bizMakeOptionList("", "", "productionplanning.getMbomListForSelect2"));
|
|
|
|
request.setAttribute("code_map", code_map);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return "/productionplanning/rawMaterialRequirementList";
|
|
}
|
|
|
|
/**
|
|
* M-BOM 기준 원자재(구매품) 소요량 조회
|
|
* @param request
|
|
* @param paramMap - mbomItems: [{mbomObjid, qty}, ...]
|
|
* @return 품번별 합산된 소요량 목록
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping(value="/productionplanning/getRawMaterialRequirementList.do", produces="application/json;charset=UTF-8")
|
|
public Map getRawMaterialRequirementList(HttpServletRequest request, @RequestBody Map<String, Object> paramMap) {
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
try {
|
|
List list = productionPlanningService.getRawMaterialRequirementList(paramMap);
|
|
resultMap.put("result", "success");
|
|
resultMap.put("list", list);
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("msg", "조회 실패: " + e.getMessage());
|
|
}
|
|
return resultMap;
|
|
}
|
|
|
|
}
|