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