ERP-node/src/com/pms/controller/OrderMgmtController.java

379 lines
14 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.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.pms.common.SqlMapConfig;
import com.pms.common.bean.PersonBean;
import com.pms.common.utils.CommonUtils;
import com.pms.common.utils.Constants;
import com.pms.service.CommonService;
import com.pms.service.OrderMgmtService;
import com.pms.service.ProjectConceptService;
@Controller
public class OrderMgmtController {
ProjectConceptService service = null;
OrderMgmtService orderMgmtservice = null;
@Autowired
CommonService commonService;
@Autowired
public void setProjectConceptService(ProjectConceptService service){
this.service = service;
}
@Autowired
public void setOrderMgmtService(OrderMgmtService orderMgmtservice){
this.orderMgmtservice = orderMgmtservice;
}
/**
* 수주활동 목록(제품별 Row구성)
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/ordermgmt/ordermgmtList.do")
public String ordermgmtList(HttpServletRequest request, @RequestParam Map paramMap){
List list = orderMgmtservice.getOrderMgntList(request,paramMap);
Map code_map = new HashMap();
try{
//String bizMakeOptionList(String code_id, String selValue, String sql_id)
code_map.put("region_cd",commonService.bizMakeOptionList(Constants.REGION_H_CD, (String)paramMap.get("region_cd"),"common.getCodeselect")); //지역
code_map.put("customer_cd",commonService.bizMakeOptionList(Constants.CUSTOMER_CD, (String)paramMap.get("customer_cd"),"common.getCodeselect")); //고객사
//제품군
code_map.put("plant_cd",commonService.bizMakeOptionList("PLA10000", CommonUtils.nullToEmpty((String)paramMap.get("plant_cd")),"common.getCodeselect"));
code_map.put("orditem_cd",commonService.bizMakeOptionList("ORD10000", (String)paramMap.get("orditem_cd"),"common.getCodeselect")); //수주 ITEM
code_map.put("result_cd",commonService.bizMakeOptionList(Constants.RESULT_CD, (String)paramMap.get("result_cd"),"common.getCodeselect")); //수주결과
code_map.put("division_cd",commonService.bizMakeOptionList("PND10000", (String)paramMap.get("division_cd"),"common.getCodeselect")); //구분
code_map.put("team_cd",commonService.bizMakeOptionList("", (String)paramMap.get("team_cd"),"common.getDeptselect"));
//작성자
code_map.put("reg_id", commonService.bizMakeOptionList("", (String)paramMap.get("reg_id"),"common.getUserselect"));
request.setAttribute("code_map",code_map);
request.setAttribute("cu01_file", Constants.CUSTOMER_CODE01);
request.setAttribute("cu02_file", Constants.CUSTOMER_CODE02);
request.setAttribute("LIST", list);
}catch(Exception e){
e.printStackTrace();
}
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
String page ="/orderMgmt/orderMgmtList";
if("excel".equals(actionType)){
page ="/orderMgmt/orderMgmtListExcel";
}
return page;
}
@SuppressWarnings("unchecked")
@ResponseBody
@RequestMapping("/ordermgmt/makeCodeselect.do")
public Map<String, Object> makeCodeselect(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map result_map = new HashMap();
try {
result_map.put("RESULT", commonService.bizMakeOptionList((String)paramMap.get("codeId"), "","common.getCodeselect"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result_map;
}
/**
* Excel을 이용한 예가내역서 등록 팝업을 호출한다.
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/ordermgmt/openOrderExcelImportPopUp.do")
public String openOrderExcelImportPopUp(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
Map code_map = new HashMap();
String objid="";
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
try{
//jqGrid내에서 사용할 코드
Map param = new HashMap();
objid = CommonUtils.createObjId();
//규격(재질)
/*param.put("parentCodeId",Constants.SPEC_CD);
code_map.put("spec_cd", commonService.getJqGridSelectBoxJsonData("common.getCodeList2", param, "선택"));
//제조사
param.put("parentCodeId", "MFA90000");
code_map.put("mfa_cd", commonService.getJqGridSelectBoxJsonData("common.getCodeList2", param, "선택"));
//후처리
param.put("parentCodeId",Constants.PROCESS_CD);
code_map.put("process_cd", commonService.getJqGridSelectBoxJsonData("common.getCodeList2", param, "선택"));
//부품구분
param.put("parentCodeId",Constants.SORT_CD);
code_map.put("sort_cd", commonService.getJqGridSelectBoxJsonData("common.getCodeList2", param, "선택"));
//공급업체
param.put("parentCodeId",Constants.SORT_CD);
code_map.put("supply_cd", commonService.getJqGridSelectBoxJsonData("common.getsupplyselect", param, "선택"));
//projectNo
code_map.put("projectno",commonService.bizMakeOptionList("", (String)paramMap.get("projectno"),"common.getProjectNoselect"));*/
//request.setAttribute("code_map",code_map);
request.setAttribute("actionType", actionType);
request.setAttribute("objid",objid);
request.setAttribute("orderobjId", (String)paramMap.get("orderobjId"));
request.setAttribute("costType", (String)paramMap.get("costType"));
}catch(Exception e){
e.printStackTrace();
}
return "/orderMgmt/orderExcelImportPopUp";
}
/**
* 등록되어 있는 예가내역서를 불러온다.
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/ordermgmt/getOrderexample.do")
@ResponseBody
public HashMap<String, Object> getOrderexample(HttpServletRequest request, @RequestParam Map paramMap){
HashMap<String, Object> resMap = new HashMap<String, Object>();
try{
List list = null;
//재료비, 노무비 조건 추가
paramMap.put("laborCostArr", Constants.laborCostArr);
paramMap.put("exceptCostArr", Constants.exceptCostArr);
list = CommonUtils.keyChangeUpperList(orderMgmtservice.getOrderexample(request, paramMap));
resMap.put("records", 1);
resMap.put("page", 1);
resMap.put("total", 1);
resMap.put("rows", list);
}catch(Exception e){
e.printStackTrace();
}
return resMap;
}
/**
* 업로드된 Excel File을 통해서 데이터를 Parsing하여 목록으로 return.
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/ordermgmt/parsingExcelFile.do")
public String parsingExcelFile(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
ArrayList parsingPartList = new ArrayList();
try{
parsingPartList = (ArrayList)orderMgmtservice.parsingExcelFile(request, paramMap);
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("RESULT", CommonUtils.getJsonArray(parsingPartList));
return "/ajax/ajaxResult";
}
/**
* 예가내역서 저장
*/
@RequestMapping("/ordermgmt/orderApplySave.do")
@ResponseBody
public String orderApplySave(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
String result = "";
try{
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("CONNECTUSERID", CommonUtils.checkNull(person.getUserId()));
orderMgmtservice.orderApplySave(request, paramMap);
result = "SUCCESS";
}catch(Exception e){
e.printStackTrace();
result = "FAIL";
}
return result;
}
/**
* 수주활동 수정 Form
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/ordermgmt/ordermgmtUpdateFormPopup.do")
public String ordermgmtUpdateFormPopup(HttpSession session, HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
String objId = CommonUtils.checkNull(paramMap.get("objId"));
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
Map code_map = new HashMap();
try{
// 영업활동 조회
Map info = null;
if(paramMap.get("objId")!=null){
paramMap.put("objId",Integer.parseInt(objId));
info = CommonUtils.keyChangeUpperMap(orderMgmtservice.getProjectConceptInfo(paramMap));
//지역
code_map.put("order_cd",commonService.bizMakeOptionList(Constants.REGION_H_CD, CommonUtils.nullToEmpty((String)info.get("ORDER_CD")),"common.getCodeselect")); //지역
//거래처
code_map.put("customer_cd",commonService.bizMakeOptionList(Constants.CUSTOMER_CD, CommonUtils.nullToEmpty((String)info.get("CUSTOMER_CD")),"common.getCodeselect")); //고객사
//프로젝트 구분
code_map.put("project_division",commonService.bizMakeOptionList("PND10000", CommonUtils.nullToEmpty((String)info.get("PROJECT_DIVISION")),"common.getCodeselect")); //고객사
//제품군
code_map.put("plant_cd",commonService.bizMakeOptionList("PLA10000", CommonUtils.nullToEmpty((String)info.get("PLANT_CD")),"common.getCodeselect")); //공장
code_map.put("region_cd",commonService.bizMakeOptionList(Constants.REGION_H_CD, CommonUtils.nullToEmpty((String)info.get("REGION_CD")),"common.getCodeselect")); //지역
//PM
code_map.put("manager_pm", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("MANAGER_PM")),"common.getUserselect"));
//설계 PM
code_map.put("design_pm", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("DESIGN_PM")),"common.getUserselect"));
//구매 PM
code_map.put("se_pm", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("SE_PM")),"common.getUserselect"));
//생산 PM
code_map.put("production_pm", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("PRODUCTION_PM")),"common.getUserselect"));
//수주결과
code_map.put("result_cd",commonService.bizMakeOptionList(Constants.RESULT_CD, CommonUtils.nullToEmpty((String)info.get("RESULT_CD")),"common.getCodeselect")); //수주결과
code_map.put("project_derivation_no",commonService.bizMakeOptionList("", (String)info.get("PROJECT_DERIVATION_NO"),"common.getProjectNoselect"));
}else{
//구분
code_map.put("order_cd",commonService.bizMakeOptionList(Constants.REGION_H_CD, "","common.getCodeselect")); //지역
//거래처
code_map.put("customer_cd",commonService.bizMakeOptionList(Constants.CUSTOMER_CD, "","common.getCodeselect")); //고객사
//프로젝트 구분
code_map.put("project_division",commonService.bizMakeOptionList("PND10000", "","common.getCodeselect")); //고객사
//제품군
code_map.put("plant_cd",commonService.bizMakeOptionList("PLA10000", "","common.getCodeselect")); //공장
code_map.put("region_cd",commonService.bizMakeOptionList(Constants.REGION_H_CD, "","common.getCodeselect")); //지역
//PM
code_map.put("manager_pm", commonService.bizMakeOptionList("", "","common.getUserselect"));
//설계 PM
code_map.put("design_pm", commonService.bizMakeOptionList("", "","common.getUserselect"));
//구매 PM
code_map.put("se_pm", commonService.bizMakeOptionList("", "","common.getUserselect"));
//생산 PM
code_map.put("production_pm", commonService.bizMakeOptionList("", "","common.getUserselect"));
//수주결과
code_map.put("result_cd",commonService.bizMakeOptionList(Constants.RESULT_CD, "","common.getCodeselect")); //수주결과
code_map.put("project_derivation_no",commonService.bizMakeOptionList("", "","common.getProjectNoselect"));
}
//차종별 프로젝트 수주활동 object id
if("".equals(objId)) objId = CommonUtils.createObjId();
request.setAttribute("code_map",code_map);
request.setAttribute("info", info);
request.setAttribute("objId", objId);
request.setAttribute("actionType", actionType);
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
request.setAttribute("writer", writer);
//프로젝트에서 팝업을 열었을 때는 PM만 수정가능하도록 해야함
//권한을 위한 파라미터 값
if(paramMap.get("managerPm")!= null){
Map projectPmMap = new HashMap();
projectPmMap.put("managerPm", paramMap.get("managerPm"));
request.setAttribute("projectPmId", projectPmMap);
}
}catch(Exception e){
e.printStackTrace();
}
return "/orderMgmt/orderMgmtUpdateFormPopup";
}
/**
* 영업정보 삭제
*/
@RequestMapping("/ordermgmt/orderListDelete.do")
@ResponseBody
public String materDelete(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map result_map = new HashMap();
String result = "";
try{
result_map.put("RESULT", orderMgmtservice.delOrderMgmt(request, paramMap));
result = "SUCCESS";
}catch(Exception e){
e.printStackTrace();
result = "FAIL";
}
return result;
}
/**
* 영업활동등록 저장
* @param request
* @param paramMap
* @return
*/
@SuppressWarnings("unchecked")
@ResponseBody
@RequestMapping("/ordermgmt/saveOrderMgmtInfo.do")
public Map<String, Object> saveOrderMgmttInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map result_map = new HashMap();
try {
result_map.put("RESULT", orderMgmtservice.saveOrderMgmtInfo(request, paramMap));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result_map;
}
}