2668 lines
95 KiB
Java
2668 lines
95 KiB
Java
package com.pms.controller;
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.forwardedUrl;
|
|
|
|
import java.io.File;
|
|
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.commons.lang3.StringUtils;
|
|
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.RequestMethod;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
import com.oreilly.servlet.MultipartRequest;
|
|
import com.pms.common.FileRenameClass;
|
|
import com.pms.common.JsonUtil;
|
|
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.PartMgmtService;
|
|
import com.pms.service.PartMngService;
|
|
import com.pms.service.ProductMgmtService;
|
|
import com.pms.service.ProjectConceptService;
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import java.lang.reflect.Type;
|
|
|
|
@Controller
|
|
public class PartMngController {
|
|
|
|
ProjectConceptService service = null;
|
|
|
|
@Autowired
|
|
PartMngService partMngService;
|
|
|
|
@Autowired
|
|
PartMgmtService partMgmtService;
|
|
|
|
@Autowired
|
|
ProductMgmtService productMgmtService;
|
|
|
|
@Autowired
|
|
CommonService commonService;
|
|
|
|
|
|
@Autowired
|
|
public void setProjectConceptService(ProjectConceptService service){
|
|
this.service = service;
|
|
}
|
|
|
|
/**
|
|
* PART 등록 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngTempList.do")
|
|
public String partMngTempList(HttpServletRequest request, @RequestParam Map paramMap){
|
|
String page ="/partMng/partMngTempList";
|
|
Map code_map = new HashMap();
|
|
List list = new ArrayList();
|
|
|
|
String islast = CommonUtils.checkNull(paramMap.get("IS_LAST"));
|
|
if("".equals(islast)){
|
|
paramMap.put("IS_LAST","0");
|
|
}
|
|
paramMap.put("STATUS","create");
|
|
try {
|
|
//list = CommonUtils.keyChangeUpperList(partMngService.partMngTempList(request,paramMap));
|
|
list = partMngService.partMngTempList(request,paramMap);
|
|
code_map.put("WRITER", commonService.bizMakeOptionList("", (String)paramMap.get("WRITER"), "common.getUserselect")); //구매 PM
|
|
code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect"));
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("LIST", list);
|
|
|
|
|
|
return page;
|
|
}
|
|
|
|
/**
|
|
* PART 등록 - PART 등록 목록 페이징
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/partMng/partMngTempGridList.do")
|
|
public Map getPartMngTempGridListPaging(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
String islast = CommonUtils.checkNull(paramMap.get("IS_LAST"));
|
|
if("".equals(islast)){
|
|
paramMap.put("IS_LAST","0");
|
|
}
|
|
String status_arr [] = {"create","changing"}; //release
|
|
paramMap.put("STATUS_ARR", status_arr);
|
|
// paramMap.put("STATUS","create");
|
|
commonService.selectListPagingNew("partMng.partMngTempGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* PART 배포 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngList.do")
|
|
public String partMngList(HttpServletRequest request, @RequestParam Map paramMap){
|
|
String page ="/partMng/partMngList";
|
|
Map code_map = new HashMap();
|
|
List list = new ArrayList();
|
|
String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE"));
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
try {
|
|
|
|
if("0".equals(searchRevision)){
|
|
paramMap.put("IS_LAST","");
|
|
}else if("1".equals(searchRevision)){
|
|
paramMap.put("IS_LAST",searchRevision);
|
|
}
|
|
|
|
code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect"));
|
|
//고객사
|
|
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_cd")),"common.getmatersupplyselect"));
|
|
|
|
if("Y".equals(search)){
|
|
//list = CommonUtils.keyChangeUpperList(partMngService.getPartMngList(request,paramMap));
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("LIST", list);
|
|
|
|
if("excel".equals(actionType)){
|
|
page ="/partMng/partMngListExcel";
|
|
}
|
|
return page;
|
|
}
|
|
|
|
/**
|
|
* PART 배포 목록 - PART 배포 목록 페이징
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/partMng/partMngGridList.do")
|
|
public Map getPartMngGridListPaging(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE"));
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
|
|
if("0".equals(searchRevision)){
|
|
paramMap.put("IS_LAST","");
|
|
}else if("1".equals(searchRevision)){
|
|
paramMap.put("IS_LAST",searchRevision);
|
|
}
|
|
if("Y".equals(search)){
|
|
commonService.selectListPagingNew("partMng.partMngGridList", request, paramMap);
|
|
}
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* 설계변경 PART 목록 페이징
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/partMng/partMngChangeGridListPaging.do")
|
|
public Map partMngChangeGridListPaging(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
/*
|
|
String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE"));
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
if("0".equals(searchRevision)){
|
|
paramMap.put("IS_LAST","");
|
|
}else if("1".equals(searchRevision)){
|
|
paramMap.put("IS_LAST",searchRevision);
|
|
}
|
|
*/
|
|
ArrayList<Map> resultList = commonService.selectListPagingNew("partMng.partMngChangeGridList", request, paramMap);
|
|
//설변용 part정보 신규 생성
|
|
List<Map> resultList2 = new ArrayList<Map>();
|
|
if(CommonUtils.isNotEmpty(resultList) && !resultList.isEmpty()) {
|
|
int idx = 0;
|
|
String newPartObjId = "";
|
|
String beforePartObjId = "";
|
|
for (Map map : resultList) {
|
|
if(idx == 0) { //맨 위파트만(대표)
|
|
partMngService.setChangeDesignPartInfo(request, paramMap, map);
|
|
newPartObjId = CommonUtils.checkNull(map.get("OBJID"));
|
|
beforePartObjId = CommonUtils.checkNull(map.get("OBJID_ORG")); //CommonUtils.createObjId();
|
|
}else {
|
|
//나머지는 대표 NEW OBJID로 교체
|
|
map.put("OBJID", newPartObjId);
|
|
map.put("OBJID_ORG", beforePartObjId);
|
|
}
|
|
//break; //맨 위파트만(대표)
|
|
idx++;
|
|
resultList2.add(map);
|
|
}
|
|
}
|
|
paramMap.remove("RESULTLIST");
|
|
paramMap.put("RESULTLIST", resultList2);
|
|
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* 설계변경 PART 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngChangeList.do")
|
|
public String partMngChangeList(HttpServletRequest request, @RequestParam Map paramMap){
|
|
String page ="/partMng/partMngChangeList";
|
|
Map code_map = new HashMap();
|
|
List list = new ArrayList();
|
|
String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE"));
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
try {
|
|
|
|
/*
|
|
if("0".equals(searchRevision)){
|
|
paramMap.put("IS_LAST","");
|
|
}else if("1".equals(searchRevision)){
|
|
paramMap.put("IS_LAST",searchRevision);
|
|
}
|
|
*/
|
|
|
|
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)paramMap.get("CHANGE_OPTION"),"common.getCodeselect"));
|
|
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)paramMap.get("CHANGE_TYPE"),"common.getCodeselect"));
|
|
code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect"));
|
|
if("Y".equals(search)){
|
|
//list = CommonUtils.keyChangeUpperList(partMngService.getPartMngList(request,paramMap));
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("LIST", list);
|
|
|
|
if("excel".equals(actionType)){
|
|
page ="/partMng/partMngChangeListExcel";
|
|
}
|
|
return page;
|
|
}
|
|
|
|
/**
|
|
* PART 조회 팝업 호출
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngListPopUp.do")
|
|
public String partMngListPopUp(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map code_map = new HashMap();
|
|
List list = new ArrayList();
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE"));
|
|
|
|
try {
|
|
|
|
|
|
if("0".equals(searchRevision)){
|
|
paramMap.put("IS_LAST","");
|
|
}else if("1".equals(searchRevision)){
|
|
paramMap.put("IS_LAST",searchRevision);
|
|
}
|
|
|
|
// paramMap.put("isPagingYN","N"); //no paging
|
|
code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect"));
|
|
if("Y".equals(search)){
|
|
// list = CommonUtils.keyChangeUpperList(partMngService.getPartMngList(request,paramMap));
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("code_map",code_map);
|
|
// request.setAttribute("LIST", list);
|
|
return "/partMng/partMngListPopUp";
|
|
}
|
|
|
|
/**
|
|
* 발주관리_발주관리 목록 페이징
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/partMng/partMngListPaging.do")
|
|
public Map partMngListPaging(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
//List list = commonService.selectListPaging("purchaseOrder.deliveryMngList_new", request, paramMap);
|
|
commonService.selectListPagingNew("partMng.partMngList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* PART Form PopUp
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngFormPopUp.do")
|
|
public String partMngUpdateFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = new HashMap();
|
|
Map code_map = new HashMap();
|
|
|
|
//String [] arrCHANGE_OPTION = null;
|
|
//String CHANGE_OPTION ="";
|
|
|
|
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
|
|
String actionType = CommonUtils.checkNull(paramMap.get("ACTION_TYPE"));
|
|
try{
|
|
paramMap.put("objId",objId);
|
|
|
|
if("changeDesign".equals(actionType)){
|
|
resultMap = CommonUtils.keyChangeUpperMap(partMngService.setChangeDesignPartInfo(request, paramMap));
|
|
//CHANGE_OPTION = CommonUtils.nvl((String)resultMap.get("CHANGE_OPTION"),"");
|
|
//if(!"".equals(CHANGE_OPTION)){
|
|
// arrCHANGE_OPTION = CHANGE_OPTION.split(",");
|
|
//}
|
|
//설변항목 코드
|
|
//code_map.put("CHANGE_OPTION",commonService.bizMakeCheckBoxMultiList("0000318","CHANGE_OPTION",arrCHANGE_OPTION,"common.getCodeselect"));
|
|
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)resultMap.get("CHANGE_OPTION"),"common.getCodeselect"));
|
|
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)resultMap.get("CHANGE_TYPE"),"common.getCodeselect"));
|
|
code_map.put("PARENT_PART_NO",commonService.bizMakeOptionList("", (String)resultMap.get("PARENT_PART_NO"),"common.getPartNoselect"));
|
|
|
|
String REVISION = CommonUtils.checkNull(resultMap.get("REVISION"));
|
|
|
|
if(REVISION.equals("RE")){
|
|
resultMap.put("REVISION", "A");
|
|
}else{
|
|
resultMap.put("REVISION", CommonUtils.getNextRevision(REVISION));
|
|
}
|
|
|
|
|
|
}else{
|
|
if(!"".equals(objId)){
|
|
resultMap = CommonUtils.keyChangeUpperMap(partMngService.getPartMngInfo(request,paramMap));
|
|
|
|
//CHANGE_OPTION = CommonUtils.nvl((String)resultMap.get("CHANGE_OPTION"),"");
|
|
//if(!"".equals(CHANGE_OPTION)){
|
|
// arrCHANGE_OPTION = CHANGE_OPTION.split(",");
|
|
//}
|
|
//설변항목 코드
|
|
//code_map.put("CHANGE_OPTION",commonService.bizMakeCheckBoxMultiList("0000318","CHANGE_OPTION",arrCHANGE_OPTION,"common.getCodeselect"));
|
|
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)resultMap.get("CHANGE_OPTION"),"common.getCodeselect"));
|
|
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)resultMap.get("CHANGE_TYPE"),"common.getCodeselect"));
|
|
code_map.put("PARENT_PART_NO",commonService.bizMakeOptionList("", (String)resultMap.get("PARENT_PART_NO"),"common.getPartNoselect"));
|
|
//고객사
|
|
code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)resultMap.get("SUPPLY_CODE")),"common.getmatersupplyselect"));
|
|
//code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", (String)resultMap.get("SUPPLY_CODE"),"common.getmatersupplyselect"));
|
|
}else{
|
|
|
|
objId = CommonUtils.createObjId();
|
|
|
|
//code_map.put("CHANGE_OPTION",commonService.bizMakeCheckBoxMultiList("0000318","CHANGE_OPTION",arrCHANGE_OPTION,"common.getCodeselect"));
|
|
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)resultMap.get("CHANGE_OPTION"),"common.getCodeselect"));
|
|
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)resultMap.get("CHANGE_TYPE"),"common.getCodeselect"));
|
|
code_map.put("PARENT_PART_NO",commonService.bizMakeOptionList("", (String)resultMap.get("PARENT_PART_NO"),"common.getPartNoselect"));
|
|
code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", "","common.getmatersupplyselect"));
|
|
resultMap.put("OBJID", objId);
|
|
resultMap.put("STATUS", "create");
|
|
}
|
|
}
|
|
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("code_map", code_map);
|
|
request.setAttribute("resultMap", resultMap);
|
|
|
|
return "/partMng/partMngFormPopUp";
|
|
}
|
|
|
|
/**
|
|
* PART Detail PopUp
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngDetailPopUp.do")
|
|
public String partMngDetailPopUp(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = new HashMap();
|
|
Map code_map = new HashMap();
|
|
|
|
String [] arrCHANGE_OPTION = null;
|
|
String CHANGE_OPTION ="";
|
|
|
|
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
|
|
try{
|
|
if(!"".equals(objId)){
|
|
resultMap = CommonUtils.keyChangeUpperMap(partMngService.getPartMngInfo(request,paramMap));
|
|
|
|
|
|
/* CHANGE_OPTION = CommonUtils.nvl((String)resultMap.get("CHANGE_OPTION"),"");
|
|
if(!"".equals(CHANGE_OPTION)){
|
|
arrCHANGE_OPTION = CHANGE_OPTION.split(",");
|
|
}*/
|
|
//설변항목 코드
|
|
//code_map.put("CHANGE_OPTION",commonService.bizMakeCheckBoxMultiList("0000318","CHANGE_OPTION",arrCHANGE_OPTION,"common.getCodeselect"));
|
|
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)resultMap.get("CHANGE_OPTION"),"common.getCodeselect"));
|
|
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)resultMap.get("CHANGE_TYPE"),"common.getCodeselect"));
|
|
code_map.put("PARENT_PART_NO",commonService.bizMakeOptionList("", (String)resultMap.get("PARENT_PART_NO"),"common.getPartNoselect"));
|
|
code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)resultMap.get("SUPPLY_CODE")),"common.getmatersupplyselect"));
|
|
//code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", (String)resultMap.get("SUPPLY_CODE"),"common.getmatersupplyselect"));
|
|
}else{
|
|
objId = CommonUtils.createObjId();
|
|
|
|
//설변항목 코드
|
|
//code_map.put("CHANGE_OPTION",commonService.bizMakeCheckBoxMultiList("0000318","CHANGE_OPTION",arrCHANGE_OPTION,"common.getCodeselect"));
|
|
|
|
code_map.put("PARENT_PART_NO",commonService.bizMakeOptionList("", (String)resultMap.get("PARENT_PART_NO"),"common.getPartNoselect"));
|
|
//code_map.put("CHANGE_OPTION",commonService.bizMakeCheckBoxMultiList("0000318","CHANGE_OPTION",arrCHANGE_OPTION,"common.getCodeselect"));
|
|
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)resultMap.get("CHANGE_OPTION"),"common.getCodeselect"));
|
|
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)resultMap.get("CHANGE_TYPE"),"common.getCodeselect"));
|
|
|
|
|
|
resultMap.put("OBJID", objId);
|
|
}
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("code_map", code_map);
|
|
request.setAttribute("resultMap", resultMap);
|
|
|
|
return "/partMng/partMngDetailPopUp";
|
|
}
|
|
|
|
/**
|
|
* PART Detail 수정 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/updatePartDetail.do")
|
|
@ResponseBody
|
|
public Map<String, Object> updatePartDetail(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
try{
|
|
// 품목 정보 업데이트
|
|
int result = partMngService.updatePartDetail(request, paramMap);
|
|
|
|
if(result > 0){
|
|
resultMap.put("result", "success");
|
|
resultMap.put("message", "저장되었습니다.");
|
|
}else{
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "저장에 실패했습니다.");
|
|
}
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
resultMap.put("result", "error");
|
|
resultMap.put("message", "저장 중 오류가 발생했습니다.");
|
|
}
|
|
|
|
return resultMap;
|
|
}
|
|
/**
|
|
* PART Detail PopUp
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngHisDetailPopUp.do")
|
|
public String partMngHisDetailPopUp(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = new HashMap();
|
|
Map code_map = new HashMap();
|
|
|
|
String [] arrCHANGE_OPTION = null;
|
|
String CHANGE_OPTION ="";
|
|
|
|
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
|
|
try{
|
|
if(!"".equals(objId)){
|
|
resultMap = CommonUtils.keyChangeUpperMap(partMngService.getPartMngInfo(request,paramMap));
|
|
|
|
|
|
/* CHANGE_OPTION = CommonUtils.nvl((String)resultMap.get("CHANGE_OPTION"),"");
|
|
if(!"".equals(CHANGE_OPTION)){
|
|
arrCHANGE_OPTION = CHANGE_OPTION.split(",");
|
|
}*/
|
|
//설변항목 코드
|
|
//code_map.put("CHANGE_OPTION",commonService.bizMakeCheckBoxMultiList("0000318","CHANGE_OPTION",arrCHANGE_OPTION,"common.getCodeselect"));
|
|
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)resultMap.get("CHANGE_OPTION"),"common.getCodeselect"));
|
|
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)resultMap.get("CHANGE_TYPE"),"common.getCodeselect"));
|
|
code_map.put("PARENT_PART_NO",commonService.bizMakeOptionList("", (String)resultMap.get("PARENT_PART_NO"),"common.getPartNoselect"));
|
|
|
|
}else{
|
|
objId = CommonUtils.createObjId();
|
|
|
|
//설변항목 코드
|
|
//code_map.put("CHANGE_OPTION",commonService.bizMakeCheckBoxMultiList("0000318","CHANGE_OPTION",arrCHANGE_OPTION,"common.getCodeselect"));
|
|
|
|
code_map.put("PARENT_PART_NO",commonService.bizMakeOptionList("", (String)resultMap.get("PARENT_PART_NO"),"common.getPartNoselect"));
|
|
//code_map.put("CHANGE_OPTION",commonService.bizMakeCheckBoxMultiList("0000318","CHANGE_OPTION",arrCHANGE_OPTION,"common.getCodeselect"));
|
|
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)resultMap.get("CHANGE_OPTION"),"common.getCodeselect"));
|
|
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)resultMap.get("CHANGE_TYPE"),"common.getCodeselect"));
|
|
|
|
|
|
resultMap.put("OBJID", objId);
|
|
}
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("code_map", code_map);
|
|
request.setAttribute("resultMap", resultMap);
|
|
|
|
return "/partMng/partMngHisDetailPopUp";
|
|
}
|
|
|
|
/**
|
|
* Part 중복체크
|
|
*/
|
|
@RequestMapping("/partMng/overlapPartMng.do")
|
|
public String overlapPartMngCheck(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
List list = partMngService.overlapPartMng(request, paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonArray(list));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* Part 저장
|
|
*/
|
|
@RequestMapping("/partMng/savePartMng.do")
|
|
public String savePartMng(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
resultMap = partMngService.savePartMng(request, paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* Part 저장(설계변경 PART조회)
|
|
*/
|
|
@RequestMapping("/partMng/savePartMngChangeList.do")
|
|
@ResponseBody
|
|
public Map savePartMngChangeList(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
resultMap = partMngService.savePartMngChangeList(request, paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* Part 배포
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngDeploy.do")
|
|
public String partMngDeploy(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = partMngService.partMngDeploy(request, paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* Part 삭제
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngDelete.do")
|
|
public String partMngDelete(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = partMngService.partMngDelete(request, paramMap);
|
|
|
|
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 파트조회(ajax)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
/**
|
|
* PART 목록 조회 (전체 데이터 조회 - 재귀 CTE 제거로 성능 개선)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return JSON 형태의 전체 데이터
|
|
*/
|
|
@RequestMapping("/partMng/getPartMngList_ajax.do")
|
|
@ResponseBody
|
|
public Map<String, Object> getPartList_ajax(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
paramMap.put("status", "complete");
|
|
paramMap.put("IS_LAST","1");
|
|
|
|
System.out.println("getPartList_ajax paramMap : "+paramMap);
|
|
|
|
// 전체 데이터 조회 (페이징 제거, 재귀 CTE 제거로 속도 대폭 향상)
|
|
List list = partMngService.getToConnectPartMngList(request, paramMap);
|
|
|
|
// 응답 데이터 구성
|
|
Map<String, Object> response = new HashMap<>();
|
|
response.put("data", list);
|
|
|
|
System.out.println("데이터 조회 완료 - " + list.size() + "건");
|
|
|
|
return response;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Excel을 이용한 Part 등록 팝업을 호출한다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/openPartExcelImportPopUp.do")
|
|
public String openPartExcelImportPopUp(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
SqlSession sqlSession = null;
|
|
Map code_map = new HashMap();
|
|
//Map bomContractInfo = new HashMap();
|
|
//Map bomInfo = new HashMap();
|
|
Map sqlParam = new HashMap();
|
|
//List resultList = null;
|
|
//List multiMasterList = new ArrayList();
|
|
//List regiestSameContractUnitNameBomList = new ArrayList();
|
|
String objid="";
|
|
try{
|
|
objid = CommonUtils.createObjId();
|
|
|
|
/*
|
|
code_map.put("customer_cd",commonService.bizMakeOptionList("", (String)paramMap.get("customer_cd"),"common.getsupplyselect"));
|
|
code_map.put("project_name",commonService.bizMakeOptionList("", (String)paramMap.get("project_name"),"common.getProjectNameList"));
|
|
code_map.put("unit_code",commonService.bizMakeOptionList((String)paramMap.get("unit_code"), (String)paramMap.get("unit_code"),"common.getBomCodeList"));
|
|
|
|
sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
Map sqlMap = new HashMap();
|
|
String unitCode = CommonUtils.checkNull(paramMap.get("unit_code"));
|
|
sqlMap.put("unitCode", unitCode);
|
|
Map unitInfoMap = (HashMap)sqlSession.selectOne("common.getUnitCodeList", sqlMap);
|
|
//String unitName = CommonUtils.checkNull(unitInfoMap.get("name")).replaceAll("\u00A0+", " ");
|
|
String UNIT_NAME = CommonUtils.checkNull(unitInfoMap.get("name"));
|
|
|
|
sqlParam.put("customer_cd", CommonUtils.checkNull(paramMap.get("customer_cd")));
|
|
//sqlParam.put("project_name", CommonUtils.checkNull(paramMap.get("project_name")));
|
|
sqlParam.put("unit_name_eq", UNIT_NAME);
|
|
regiestSameContractUnitNameBomList = partMngService.getBOMStandardStructureList(request, sqlParam);
|
|
*/
|
|
|
|
//paramMap.put("product_code",(String)paramMap.get("product_code"));
|
|
//info = partMngService.getBOMStructureRev(request,paramMap);
|
|
//bomContractInfo = partMngService.getBOMContractinfo(request,paramMap);
|
|
|
|
Map param = new HashMap();
|
|
param.put("parentCodeId", "0000062");
|
|
code_map.put("part_type", commonService.getJqGridSelectBoxJsonData("common.getCodeList2", param, "선택"));
|
|
code_map.put("sup_code", commonService.getJqGridSelectBoxJsonData("common.getmatersupplyselect", param, "선택"));
|
|
/*
|
|
//unit
|
|
param.put("parentCodeId", "0000059");
|
|
code_map.put("unit_cd", commonService.getJqGridSelectBoxJsonData("common.getCodeList2", param, "선택"));
|
|
code_map.put("sup_code", commonService.getJqGridSelectBoxJsonData("common.getmatersupplyselect", param, "선택"));
|
|
|
|
// bomInfo = partMngService.getBOMStructureStandardInfo(request, paramMap);
|
|
// if(bomInfo == null) bomInfo = new HashMap();
|
|
// String BOM_REPORT_OBJID = CommonUtils.checkNull(paramMap.get("BOM_REPORT_OBJID"), (String)bomInfo.get("OBJID"));
|
|
|
|
//if("".equals(BOM_REPORT_OBJID)){
|
|
//}
|
|
|
|
//if(!"".equals(BOM_REPORT_OBJID)){
|
|
if(bomInfo != null && StringUtils.isNotBlank(BOM_REPORT_OBJID)) {
|
|
//resultList = partMngService.getStructureAscendingList(request,paramMap);
|
|
sqlParam.put("OBJID", BOM_REPORT_OBJID);
|
|
resultList = partMngService.getBOMPartTreeList(sqlParam);
|
|
//partMngService.getBOMStructureStandardInfo(request, paramMap);
|
|
}else {
|
|
//신규등록일 때만 보이게
|
|
}
|
|
multiMasterList = commonService.selectList("purchaseOrder.selectPurchaseOrderMasterList", request, paramMap);
|
|
//동시발주용 정보
|
|
request.setAttribute("multiMasterList", multiMasterList);
|
|
request.setAttribute("regiestSameContractUnitNameBomList", regiestSameContractUnitNameBomList); //동일 계약에 동일유닛네임으로 저장된 bom list
|
|
*/
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("objid",objid);
|
|
//request.setAttribute("bomInfo",bomInfo);
|
|
//request.setAttribute("resultList",resultList);
|
|
//request.setAttribute("info",bomContractInfo);
|
|
//request.setAttribute("CUSTOMER_OBJID",(String)paramMap.get("customer_cd"));
|
|
//request.setAttribute("CONTRACT_OBJID",(String)paramMap.get("project_name"));
|
|
//request.setAttribute("UNIT_CODE",(String)paramMap.get("unit_code"));
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally {
|
|
//sqlSession.close();
|
|
}
|
|
return "/partMng/openPartExcelImportPopUp";
|
|
}
|
|
|
|
/**
|
|
* 업로드된 Excel File을 통해서 데이터를 Parsing하여 목록으로 return.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partParsingExcelFile.do")
|
|
@ResponseBody
|
|
public ArrayList partParsingExcelFile(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
ArrayList parsingPartList = new ArrayList();
|
|
try{
|
|
parsingPartList = (ArrayList)partMngService.partParsingExcelFile(request, paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
|
|
//resultMap.put("RESULT", CommonUtils.getJsonArray(parsingPartList));
|
|
//parsingPartList = CommonUtils.getJsonArray(parsingPartList);
|
|
//request.setAttribute("RESULT", CommonUtils.getJsonArray(parsingPartList));
|
|
//return "/ajax/ajaxResult";
|
|
return parsingPartList;
|
|
}
|
|
|
|
/**
|
|
* 파트 저장(엑셀업로드)
|
|
*/
|
|
@RequestMapping("/partMng/partUploadSave.do")
|
|
@ResponseBody
|
|
public Map partUploadSave(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
//String result = "";
|
|
try{
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
paramMap.put("CONNECTUSERID", CommonUtils.checkNull(person.getUserId()));
|
|
partMngService.savePartByExcel(request, paramMap);
|
|
CommonUtils.setReqResult(request, "", "S", null, resultMap);
|
|
//result = "SUCCESS";
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
//result = "FAIL";
|
|
CommonUtils.setReqResult(request, "", "F", e, resultMap);
|
|
}
|
|
//return result;
|
|
return resultMap;
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* 구조등록 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/searchStructureList.do")
|
|
public String getStructureList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map code_map = new HashMap();
|
|
List list = new ArrayList();
|
|
|
|
try {
|
|
list = partMngService.getBOMStandardStructureList(request, paramMap);
|
|
//code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect"));
|
|
|
|
//제품구분
|
|
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect")); //공장
|
|
|
|
//고객사
|
|
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_cd")),"common.getsupplyselect"));
|
|
|
|
//프로젝트명
|
|
code_map.put("project_name",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_name")),"common.getCusProjectNoList"));
|
|
|
|
//프로젝트명
|
|
code_map.put("unit_code",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("unit_code")),"common.getUnitCodeList"));
|
|
|
|
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
|
|
request.setAttribute("code_map", code_map);
|
|
request.setAttribute("LIST", list);
|
|
return "/partMng/structureList";
|
|
}
|
|
|
|
/**
|
|
* 구조등록 - 구조등록 목록 페이징
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/partMng/searchStructureGridList.do")
|
|
public Map getBOMStandardStructureGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("partMng.getBOMStandardStructureGridList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
/**
|
|
* 구조등록 (기본정보 선택 팝업)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/setStructureStandardFormPopup.do")
|
|
public String structureStandardFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
String product_code = CommonUtils.checkNull((String)paramMap.get("param_product_code"));
|
|
//String product_mgmt_spec = CommonUtils.checkNull((String)paramMap.get("param_product_mgmt_spec"));
|
|
//String upg_no = CommonUtils.checkNull((String)paramMap.get("param_upg_no"));
|
|
|
|
paramMap.put("product_code",product_code);
|
|
Map info = partMngService.getBOMStructureRev(request,paramMap);
|
|
request.setAttribute("info", info);
|
|
|
|
request.setAttribute("product_code", product_code);
|
|
//request.setAttribute("product_mgmt_spec", product_mgmt_spec);
|
|
//request.setAttribute("upg_no", upg_no);
|
|
return "/partMng/structureStandardFormPopup";
|
|
}
|
|
|
|
/**
|
|
* BOM COPY (기본정보 선택 팝업)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/setBomCopyFormPopup.do")
|
|
public String setBomCopyFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
String product_code = CommonUtils.checkNull((String)paramMap.get("param_product_code"));
|
|
//String product_mgmt_spec = CommonUtils.checkNull((String)paramMap.get("param_product_mgmt_spec"));
|
|
//String upg_no = CommonUtils.checkNull((String)paramMap.get("param_upg_no"));
|
|
Map code_map = new HashMap();
|
|
try{
|
|
|
|
//projectNo
|
|
code_map.put("rev",commonService.bizMakeOptionList(product_code,"","common.getRevNoselect"));
|
|
|
|
code_map.put("product_code",commonService.bizMakeOptionList(product_code,"","common.getProductNoselect"));
|
|
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("product_code", product_code);
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return "/partMng/structureBomCopyFormPopup";
|
|
}
|
|
|
|
/**
|
|
* bom copy 저장
|
|
*/
|
|
@RequestMapping("/partMng/saveBomCopy.do")
|
|
@ResponseBody
|
|
public String saveBomCopySave(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()));
|
|
|
|
partMngService.saveBomCopySave(request, paramMap);
|
|
result = "SUCCESS";
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
result = "FAIL";
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
/**
|
|
* BOM 상세정보
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/setStructurePopupMainFS.do")
|
|
public String setStructurePopupMainFS(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
|
|
paramMap.put("writer", person.getUserId());
|
|
Map info = partMngService.getBOMStructureStandardInfo(request,paramMap);
|
|
request.setAttribute("info", info);
|
|
return "/partMng/structurePopupHeaderFs";
|
|
}
|
|
|
|
@RequestMapping("/partMng/structureHeaderPopup.do")
|
|
public String structureHeaderPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map code_map = new HashMap();
|
|
try {
|
|
// 제품구분 (PART_TYPE)
|
|
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect"));
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("code_map", code_map);
|
|
return "/partMng/structurePopupTop";
|
|
}
|
|
|
|
@RequestMapping("/partMng/structureBottomPopupFS.do")
|
|
public String structureBottomPopupFS(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
return "/partMng/structurePopupFs";
|
|
}
|
|
|
|
/**
|
|
* 구조등록 하단 프레임
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/structureBtnAreaPopup.do")
|
|
public String structureBtnAreaPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
return "/partMng/structureBtnAreaPopup";
|
|
}
|
|
|
|
/**
|
|
* 구조등록 좌측 프레임
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/structurePopupLeft.do")
|
|
public String structurePopupLeft(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
|
|
int MAX_LEVEL = 0;
|
|
Map info = new HashMap();
|
|
List bomTreeList = null;
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
ArrayList list = new ArrayList();
|
|
|
|
try{
|
|
info = partMngService.getBOMStructureStandardInfo(request,paramMap);
|
|
info.put("actionType", actionType); //241206 added
|
|
bomTreeList = partMngService.getBOMPartTreeList(info);
|
|
if(null != bomTreeList && 0 < bomTreeList.size()){
|
|
HashMap LEVLMap = (HashMap)bomTreeList.get(0);
|
|
MAX_LEVEL = (Integer)LEVLMap.get("MAX_LEVEL");
|
|
}
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("MAXLEV", MAX_LEVEL);
|
|
request.setAttribute("info", info);
|
|
request.setAttribute("tree", bomTreeList);
|
|
|
|
return "/partMng/structurePopupLeft"+("excel".equals(actionType) ? "Excel" : "");
|
|
}
|
|
|
|
/**
|
|
* 구조등록 좌측 프레임 JSON 데이터
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/getStructureTreeJson.do")
|
|
@ResponseBody
|
|
public List<Map> getStructureTreeJson(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
List bomTreeList = null;
|
|
|
|
try{
|
|
Map info = partMngService.getBOMStructureStandardInfo(request,paramMap);
|
|
// search_type 파라미터를 info에 복사 (adding 상태 조회를 위해)
|
|
if(paramMap.containsKey("search_type")) {
|
|
info.put("search_type", paramMap.get("search_type"));
|
|
}
|
|
bomTreeList = partMngService.getBOMPartTreeList(info);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return bomTreeList != null ? bomTreeList : new ArrayList<Map>();
|
|
}
|
|
|
|
@RequestMapping("/partMng/structurePopupCenter.do")
|
|
public String structurePopupCenter(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
|
|
Map code_map = new HashMap();
|
|
Map info = new HashMap();;
|
|
try {
|
|
|
|
info = partMngService.getBOMStructureStandardInfo(request,paramMap);
|
|
|
|
//설변사유
|
|
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)paramMap.get("change_option"),"common.getCodeselect"));
|
|
//설변구분
|
|
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)paramMap.get("change_type"),"common.getCodeselect"));
|
|
//담당자
|
|
//code_map.put("writer_id", commonService.bizMakeOptionList("", (String)paramMap.get("writer_id"),"common.getUserselect"));
|
|
//PART구분
|
|
//code_map.put("part_type",commonService.bizMakeOptionList(Constants.PART_TYPE_CODE, (String)paramMap.get("part_type"),"common.getCodeselect"));
|
|
} catch (Exception e) {
|
|
// TODO: handle exception
|
|
e.printStackTrace();
|
|
}
|
|
|
|
request.setAttribute("info", info);
|
|
request.setAttribute("code_map",code_map);
|
|
return "/partMng/structurePopupCenter";
|
|
}
|
|
|
|
/**
|
|
* 구조등록 우측 프레임
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/structurePopupRight.do")
|
|
public String structurePopupRight(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
|
|
Map info = new HashMap();
|
|
|
|
try{
|
|
paramMap.put("SEARCH_OBJID", paramMap.get("objId"));
|
|
List list = partMngService.getBOMStandardStructureList(request, paramMap);
|
|
if(list != null && list.size()>0){
|
|
info = (Map)list.get(0);
|
|
}
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
|
|
request.setAttribute("info", info);
|
|
|
|
return "/partMng/structurePopupRight";
|
|
}
|
|
|
|
/**
|
|
* 최상위레벨에 같은 Part No가 있는지 체크.
|
|
* @param request
|
|
* @param paramMap
|
|
* @param rightCheckedArr
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/checkSameTopPartNo.do")
|
|
public String checkSameTopPartNo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap, @RequestParam(value = "rightCheckedArr[]") List<String> rightCheckedArr){
|
|
boolean result = partMngService.hasSameTopPartNo(paramMap, rightCheckedArr);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonString("result", new Boolean(result).toString()));
|
|
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 우측의 Part를 선택후, 하위정보를 포함해 삭제한다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/deletePartRelateInfo.do")
|
|
public String deletePartRelateInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
boolean result = partMngService.deletePartRelateInfo(paramMap);
|
|
//if(result) partService.deleteDummyBOMData(paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonString("result", new Boolean(result).toString()));
|
|
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 우측의 Part를 선택후, 하위정보를 포함해 삭제한다.(231211 new version)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/deleteStatusPartRelateInfo.do")
|
|
public String deleteStatusPartRelateInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
boolean result = partMngService.deleteStatusPartRelateInfo(request, paramMap);
|
|
//if(result) partService.deleteDummyBOMData(paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonString("result", new Boolean(result).toString()));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 우측의 Part를 선택후, 좌측에 선택한 Part에 연결한다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/relatePartInfo.do")
|
|
public String relatePartInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap, @RequestParam(value = "rightCheckedArr[]") List<String> rightCheckedArr){
|
|
Map info = partMngService.getBOMStructureStandardInfo(request,paramMap);
|
|
paramMap.put("regionObjId", CommonUtils.checkNull(info.get("REGION_OBJID")));
|
|
|
|
boolean result = partMngService.relatePartInfo(request, paramMap, rightCheckedArr);
|
|
//if(result) partService.deleteDummyBOMData(paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonString("result", new Boolean(result).toString()));
|
|
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 구조등록 수량 변경 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/structureQtySave.do")
|
|
public String structureQtySave(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
boolean result = partMngService.structureQtySave(request, paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonString("result", new Boolean(result).toString()));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 정전개 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/structureAscendingList.do")
|
|
public String structureAscendingList(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map code_map = new HashMap();
|
|
List resultList = null;
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
try{
|
|
//code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("search_product_mgmt_objId"),"common.getProductCodeselect"));
|
|
|
|
//고객사
|
|
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_cd")),"common.getsupplyselect"));
|
|
|
|
//프로젝트
|
|
code_map.put("project_name",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_name")),"common.getCusProjectNoList"));
|
|
|
|
//유닛명
|
|
code_map.put("unit_code",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("unit_code")),"common.getUnitCodeList"));
|
|
|
|
if("Y".equals(search)){
|
|
String searchType = CommonUtils.checkNull(paramMap.get("searchType"), "ascending");
|
|
|
|
if("descending".equals(searchType)){
|
|
// 역전개 조회
|
|
resultList = partMngService.getStructureDescendingList(request,paramMap);
|
|
}else{
|
|
// 정전개 조회 (기본값)
|
|
resultList = partMngService.getStructureAscendingList(request,paramMap);
|
|
}
|
|
}
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("List",resultList);
|
|
|
|
return "/partMng/structureAscendingList";
|
|
}
|
|
|
|
/**
|
|
* 정전개 - 정전개 목록 페이징
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/partMng/selectStructureAscendingGridList.do")
|
|
public Map getSelectStructureAscendingGridListPaging(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("partMng.selectStructureAscendingList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
@RequestMapping("/partMng/structureAscendingExcelList.do")
|
|
public String structureAscendingExcelList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
return "/partMng/structureAscendingListExcel";
|
|
}
|
|
|
|
/**
|
|
* 정전개 멀티 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping(" /partMng/structureAscendingMultiList.do")
|
|
public String structureAscendingMultiList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
return "/partMng/structureAscendingMultiList";
|
|
}
|
|
|
|
|
|
/**
|
|
* 정전개 목록을 가져온다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/getStructureAscendingMultiList.do")
|
|
public String getStructureAscendingMultiList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
List listVC = partMngService.getStructureAscendingMultiListVC(request,paramMap);
|
|
|
|
|
|
List resultList = partMngService.getStructureAscendingMultiList(request,paramMap,listVC);
|
|
|
|
String data = "[";
|
|
ArrayList<String> dataArr = CommonUtils.getJsonArray(resultList);
|
|
for(int i=0; i<dataArr.size(); i++){
|
|
if(i>0){ data += ","; }
|
|
data += dataArr.get(i);
|
|
}
|
|
data +="]";
|
|
|
|
String data_vc = "[";
|
|
ArrayList<String> dataVcArr = CommonUtils.getJsonArray(listVC);
|
|
for(int i=0; i<dataVcArr.size(); i++){
|
|
if(i>0){ data_vc += ","; }
|
|
data_vc += dataVcArr.get(i);
|
|
}
|
|
data_vc +="]";
|
|
|
|
request.setAttribute("RESULT", "{\"DATA\":"+data+", \"DATA_VC\":"+data_vc+"}");
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 정전개 목록을 가져온다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/getStructureAscendingMultiListExcel.do")
|
|
public String getStructureAscendingMultiListExcel(HttpServletRequest request, @RequestParam Map paramMap){
|
|
|
|
System.out.println("request :: " + request);
|
|
System.out.println("paramMap :: " + paramMap);
|
|
List listVC = partMngService.getStructureAscendingMultiListVC(request,paramMap);
|
|
|
|
|
|
List resultList = partMngService.getStructureAscendingMultiList(request,paramMap,listVC);
|
|
|
|
System.out.println("resultList :: " + resultList);
|
|
System.out.println("listVC :: " + listVC);
|
|
System.out.println("request :: " + request);
|
|
System.out.println("paramMap :: " + paramMap);
|
|
|
|
String data = "[";
|
|
ArrayList<String> dataArr = CommonUtils.getJsonArray(resultList);
|
|
for(int i=0; i<dataArr.size(); i++){
|
|
if(i>0){ data += ","; }
|
|
data += dataArr.get(i);
|
|
}
|
|
data +="]";
|
|
|
|
String data_vc = "[";
|
|
ArrayList<String> dataVcArr = CommonUtils.getJsonArray(listVC);
|
|
for(int i=0; i<dataVcArr.size(); i++){
|
|
if(i>0){ data_vc += ","; }
|
|
data_vc += dataVcArr.get(i);
|
|
}
|
|
data_vc +="]";
|
|
|
|
System.out.println("data ::" + data );
|
|
System.out.println("data_vc :: " + data_vc );
|
|
|
|
request.setAttribute("RESULT", "{\"DATA\":"+data+", \"DATA_VC\":"+data_vc+"}");
|
|
|
|
request.setAttribute("resultList", resultList);
|
|
request.setAttribute("listVC", listVC);
|
|
request.setAttribute("paramMap", paramMap);
|
|
|
|
return "/partMng/getStructureAscendingMultiListExcel";
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 정전개 목록을 가져온다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/getStructureAscendingList.do")
|
|
public String getStructureAscendingList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
List resultList = partMngService.getStructureAscendingList(request,paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonArray(resultList));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 정전개 목록을 가져온다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/getStructureAscendingListExcel.do")
|
|
public String getStructureAscendingListExcel(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
List resultList = partMngService.getStructureAscendingList(request,paramMap);
|
|
|
|
System.out.println("paramMap ::: "+ paramMap);
|
|
request.setAttribute("paramMap", paramMap);
|
|
request.setAttribute("resultList", resultList);
|
|
return "/partMng/getstructureAscendingListExcel";
|
|
}
|
|
|
|
/**
|
|
* 역전개 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/structureDescendingList.do")
|
|
public String structureDescendingList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
return "/partMng/structureDescendingList";
|
|
}
|
|
|
|
/**
|
|
* 정전개 목록을 가져온다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/getStructureDescendingList.do")
|
|
public String getStructureDescendingList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
List resultList = partMngService.getStructureDescendingList(request,paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonArray(resultList));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 선택된 구조등록을 삭제한다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/deleteStructure.do")
|
|
public String deleteStructure(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = partMngService.deleteStructure(request,paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 선택된 구조등록을 배포한다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/deployStructure.do")
|
|
public String deployStructure(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = partMngService.deployStructure(request,paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* BOM 배포사유 입력 popup
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/changeDesignNotePopUp.do")
|
|
public String changeDesignNotePopUp(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
try{
|
|
/*resultMap = service.getFundMgmtInfo(request,paramMap);
|
|
request.setAttribute("resultMap", resultMap);*/
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return "/partMng/changeDesignNotePopUp";
|
|
}
|
|
|
|
/**
|
|
* BOM 배포사유 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/saveChangeDesignInfo.do")
|
|
public String saveChangeDesignInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
boolean result = partMngService.saveChangeDesignInfo(paramMap);
|
|
Map resultMap = partMngService.deployStructure(request,paramMap);
|
|
request.setAttribute("RESULTMAP", CommonUtils.getJsonMap(resultMap));
|
|
request.setAttribute("RESULT", CommonUtils.getJsonString("result", new Boolean(result).toString()));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 상태변경 팝업
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/structureStatusChangePopup.do")
|
|
public String structureStatusChangePopup(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map code_map = new HashMap();
|
|
Map structureInfo = new HashMap();
|
|
|
|
try{
|
|
// 구조 정보 조회
|
|
structureInfo = partMngService.getStructureInfo(paramMap);
|
|
|
|
// 제품구분 코드 목록 (structureList와 동일하게)
|
|
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.checkNull(structureInfo.get("PRODUCT_CD")), "common.getCodeselect"));
|
|
|
|
request.setAttribute("STRUCTURE_INFO", structureInfo);
|
|
request.setAttribute("code_map", code_map);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return "/partMng/structureStatusChangePopup";
|
|
}
|
|
|
|
/**
|
|
* 상태변경 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/updateStructureStatus.do")
|
|
public String updateStructureStatus(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
|
|
try{
|
|
boolean result = partMngService.updateStructureStatus(request, paramMap);
|
|
|
|
if(result){
|
|
resultMap.put("result", "success");
|
|
resultMap.put("msg", "저장되었습니다.");
|
|
}else{
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("msg", "저장에 실패했습니다.");
|
|
}
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
resultMap.put("result", "error");
|
|
resultMap.put("msg", "오류가 발생했습니다.");
|
|
}
|
|
|
|
request.setAttribute("RESULT", CommonUtils.getJsonMap(resultMap));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 제품 사양 리스트
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/getPartBomList수정전.do")
|
|
public String getProductMgntUpgList수정전(HttpServletRequest request, @RequestParam Map paramMap){
|
|
|
|
List list = null;
|
|
List productUpgNoList = new ArrayList();
|
|
List productList = null;
|
|
List upgCodeList = new ArrayList();
|
|
List upgNoList = null;
|
|
Map code_map = new HashMap();
|
|
try{
|
|
|
|
|
|
//list = productMgmtService.getProductMgntUpgList(request,paramMap);
|
|
//리스트 상단 사양 표시
|
|
productList = productMgmtService.getProductUpgCodeList(request,paramMap);
|
|
|
|
//matrix 만들기 위해 코드 리스트 가져오기
|
|
if(!"".equals(CommonUtils.nullToEmpty((String)paramMap.get("product_code")))){
|
|
upgCodeList = productMgmtService.getProductUpgcommcodeList(request,paramMap);
|
|
}
|
|
|
|
//난중에 지울것
|
|
//productUpgNoList = productMgmtService.getUpgMatrixList(request,paramMap);
|
|
|
|
if(upgCodeList.size() > 0 ){
|
|
|
|
for(int i=0;i<upgCodeList.size();i++){
|
|
List TempList = new ArrayList();
|
|
Map temp_map = new HashMap();
|
|
|
|
HashMap codeMap = (HashMap)upgCodeList.get(i);
|
|
HashMap param = new HashMap();
|
|
param.put("code", (String)codeMap.get("UPG_CODE"));
|
|
param.put("product_code", (String)paramMap.get("product_code"));
|
|
|
|
temp_map.put("UPG_NAME", (String)codeMap.get("UPG_NAME"));
|
|
temp_map.put("UPG_CODE", (String)codeMap.get("UPG_CODE"));
|
|
temp_map.put("CODE_ID", (String)codeMap.get("CODE_ID"));
|
|
|
|
//코드값으로 하나씩가져오기
|
|
upgNoList = productMgmtService.getUpgOneMatrixList(request,param);
|
|
|
|
for(int j=0;j<upgNoList.size();j++){
|
|
HashMap upgMap = (HashMap)upgNoList.get(j);
|
|
|
|
temp_map.put("UPG_NO"+j, (String)upgMap.get("UPG_NO"));
|
|
}
|
|
System.out.println("temp_map ---->"+temp_map);
|
|
|
|
//TempList.add(temp_map);
|
|
productUpgNoList.add(temp_map);
|
|
}
|
|
|
|
}
|
|
|
|
/*int upgSize = 0;
|
|
if(!"".equals((String)paramMap.get("product_code"))){
|
|
productUpgNoList = productMgmtService.getUpgMatrixList(request,paramMap);
|
|
if(productUpgNoList.size() > 0){
|
|
upgSize = productUpgNoList.size() / productList.size();
|
|
|
|
System.out.println("upgSize -->"+upgSize);
|
|
for(int i=0;i<productUpgNoList.size();i++){
|
|
|
|
if(upgSize % (i+1) ==0){
|
|
|
|
System.out.println("123123213");
|
|
}
|
|
Map sqlmap = new HashMap();
|
|
HashMap masterMap = (HashMap)productUpgNoList.get(i);
|
|
|
|
masterMap.put("Asdasd"+"123", masterMap.get("Asdasd"));
|
|
}
|
|
|
|
}
|
|
}*/
|
|
|
|
code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect"));
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("LIST", productUpgNoList);
|
|
request.setAttribute("productList", productList);
|
|
request.setAttribute("productListCnt", productList.size());
|
|
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return "/partMng/partBomList";
|
|
}
|
|
/**
|
|
* BOM조회(정전개)
|
|
*/
|
|
@RequestMapping("/partMng/getPartBomList.do")
|
|
public String getProductMgntUpgList(HttpServletRequest request, @RequestParam Map paramMap){
|
|
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
String returnUrl = "/partmgmt/structureAscendingListNew";
|
|
Map code_map = new HashMap();
|
|
List resultList =null;
|
|
if("excel".equals(actionType)){
|
|
returnUrl = "/partmgmt/structureAscendingListNewExcel";
|
|
}
|
|
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
|
|
String status = CommonUtils.checkNull(paramMap.get("STATUS"));
|
|
String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE"));
|
|
|
|
try {
|
|
code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect"));
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
if("0".equals(searchRevision)){
|
|
paramMap.put("IS_LAST","");
|
|
paramMap.put("STATUS","release");
|
|
}else if("1".equals(searchRevision)){
|
|
paramMap.put("IS_LAST",searchRevision);
|
|
paramMap.put("STATUS","release");
|
|
}
|
|
|
|
|
|
List list = null;
|
|
if(!"".equals(actionType)){
|
|
list = CommonUtils.keyChangeUpperList(partMgmtService.structureAscendingList(request,paramMap));
|
|
}
|
|
|
|
request.setAttribute("code_map", code_map);
|
|
request.setAttribute("LIST", list);
|
|
|
|
return returnUrl;
|
|
}
|
|
|
|
/**
|
|
* Excel을 이용한BOM REPORT 등록 팝업을 호출한다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/openBomReportExcelImportPopUp.do")
|
|
public String openBomReportExcelImportPopUp(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
SqlSession sqlSession = null;
|
|
Map code_map = new HashMap();
|
|
Map bomContractInfo = new HashMap();
|
|
Map bomInfo = new HashMap();
|
|
Map sqlParam = new HashMap();
|
|
List resultList = null;
|
|
List multiMasterList = new ArrayList();
|
|
List regiestSameContractUnitNameBomList = new ArrayList();
|
|
String objid="";
|
|
try{
|
|
objid = CommonUtils.createObjId();
|
|
//code_map.put("customer_cd",commonService.bizMakeOptionList("", (String)paramMap.get("customer_cd"),"common.getsupplyselect"));
|
|
//code_map.put("project_name",commonService.bizMakeOptionList("", (String)paramMap.get("project_name"),"common.getProjectNameList"));
|
|
//code_map.put("unit_code",commonService.bizMakeOptionList((String)paramMap.get("unit_code"), (String)paramMap.get("unit_code"),"common.getBomCodeList"));
|
|
|
|
//제품구분
|
|
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product_cd")),"common.getCodeselect")); //제품구분
|
|
|
|
sqlSession = SqlMapConfig.getInstance().getSqlSession();
|
|
|
|
// 통합 템플릿으로 변경하면서 unit_code 관련 로직은 사용하지 않음
|
|
/*
|
|
// UNIT_NAME 조회 (unit_code가 유효한 경우에만)
|
|
String UNIT_NAME = "";
|
|
String unitCode = CommonUtils.checkNull(paramMap.get("unit_code"));
|
|
if(sqlSession != null && !StringUtils.isBlank(unitCode) && !"undefined".equals(unitCode)){
|
|
try {
|
|
Map sqlMap = new HashMap();
|
|
sqlMap.put("unitCode", unitCode);
|
|
Map unitInfoMap = (HashMap)sqlSession.selectOne("common.getUnitCodeList", sqlMap);
|
|
if(unitInfoMap != null){
|
|
UNIT_NAME = CommonUtils.checkNull(unitInfoMap.get("name"));
|
|
}
|
|
} catch(Exception e) {
|
|
// unit_code 조회 실패시 빈 문자열 사용
|
|
System.out.println("Failed to get UNIT_NAME for unitCode: " + unitCode);
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
sqlParam.put("customer_cd", CommonUtils.checkNull(paramMap.get("customer_cd")));
|
|
//sqlParam.put("project_name", CommonUtils.checkNull(paramMap.get("project_name")));
|
|
sqlParam.put("unit_name_eq", UNIT_NAME);
|
|
regiestSameContractUnitNameBomList = partMngService.getBOMStandardStructureList(request, sqlParam);
|
|
*/
|
|
|
|
// unit_code 없이 BOM 구조 조회
|
|
sqlParam.put("customer_cd", CommonUtils.checkNull(paramMap.get("customer_cd")));
|
|
sqlParam.put("unit_name_eq", "");
|
|
regiestSameContractUnitNameBomList = partMngService.getBOMStandardStructureList(request, sqlParam);
|
|
|
|
//paramMap.put("product_code",(String)paramMap.get("product_code"));
|
|
//info = partMngService.getBOMStructureRev(request,paramMap);
|
|
bomContractInfo = partMngService.getBOMContractinfo(request,paramMap);
|
|
|
|
// part_type 셀렉트박스 데이터 전달
|
|
Map param = new HashMap();
|
|
param.put("parentCodeId", "0000062");
|
|
code_map.put("part_type", commonService.getJqGridSelectBoxJsonData("common.getCodeList2", param, "선택"));
|
|
code_map.put("sup_code", commonService.getJqGridSelectBoxJsonData("common.getmatersupplyselect", param, "선택"));
|
|
|
|
// 활성화된 BOM 목록 전달 (복사용) - bizMakeOptionList 사용
|
|
code_map.put("bom_list", commonService.bizMakeOptionList("", "", "partMng.getActiveBomList"));
|
|
|
|
bomInfo = partMngService.getBOMStructureStandardInfo(request, paramMap);
|
|
if(bomInfo == null) bomInfo = new HashMap();
|
|
|
|
String BOM_REPORT_OBJID = CommonUtils.checkNull(paramMap.get("BOM_REPORT_OBJID"), (String)bomInfo.get("OBJID"));
|
|
//if("".equals(BOM_REPORT_OBJID)){
|
|
//}
|
|
|
|
//if(!"".equals(BOM_REPORT_OBJID)){
|
|
if(bomInfo != null && StringUtils.isNotBlank(BOM_REPORT_OBJID)) {
|
|
//resultList = partMngService.getStructureAscendingList(request,paramMap);
|
|
sqlParam.put("OBJID", BOM_REPORT_OBJID);
|
|
resultList = partMngService.getBOMPartTreeList(sqlParam);
|
|
//partMngService.getBOMStructureStandardInfo(request, paramMap);
|
|
}else {
|
|
//신규등록일 때만 보이게
|
|
}
|
|
//multiMasterList = commonService.selectList("purchaseOrder.selectPurchaseOrderMasterList", request, paramMap);
|
|
|
|
//동시발주용 정보
|
|
//request.setAttribute("multiMasterList", multiMasterList);
|
|
request.setAttribute("regiestSameContractUnitNameBomList", regiestSameContractUnitNameBomList); //동일 계약에 동일유닛네임으로 저장된 bom list
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("bomInfo",bomInfo);
|
|
request.setAttribute("resultList",resultList);
|
|
request.setAttribute("info",bomContractInfo);
|
|
request.setAttribute("objid",objid);
|
|
//request.setAttribute("CUSTOMER_OBJID",(String)paramMap.get("customer_cd"));
|
|
//request.setAttribute("CONTRACT_OBJID",(String)paramMap.get("project_name"));
|
|
//request.setAttribute("UNIT_CODE",(String)paramMap.get("unit_code"));
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}finally {
|
|
sqlSession.close();
|
|
}
|
|
return "/partMng/openBomReportExcelImportPopUp";
|
|
}
|
|
|
|
/**
|
|
* 업로드된 Excel File을 통해서 데이터를 Parsing하여 목록으로 return.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/parsingExcelFile.do")
|
|
@ResponseBody
|
|
public ArrayList parsingExcelFile(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map resultMap = new HashMap();
|
|
ArrayList parsingPartList = new ArrayList();
|
|
try{
|
|
parsingPartList = (ArrayList)partMngService.parsingExcelFile(request, paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
|
|
//resultMap.put("RESULT", CommonUtils.getJsonArray(parsingPartList));
|
|
//parsingPartList = CommonUtils.getJsonArray(parsingPartList);
|
|
//request.setAttribute("RESULT", CommonUtils.getJsonArray(parsingPartList));
|
|
//return "/ajax/ajaxResult";
|
|
return parsingPartList;
|
|
}
|
|
|
|
/**
|
|
* BOM 복사를 위한 데이터 조회 (엑셀 파싱 형식과 동일하게 반환)
|
|
*/
|
|
@RequestMapping("/partMng/getBomDataForCopy.do")
|
|
@ResponseBody
|
|
public ArrayList getBomDataForCopy(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
ArrayList bomDataList = new ArrayList();
|
|
try{
|
|
bomDataList = (ArrayList)partMngService.getBomDataForCopy(request, paramMap);
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return bomDataList;
|
|
}
|
|
|
|
/**
|
|
* BOM 파트&구조 저장
|
|
*/
|
|
@RequestMapping("/partMng/partBomApplySave.do")
|
|
@ResponseBody
|
|
public Map partBomApplySave(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map resultMap = new HashMap();
|
|
//String result = "";
|
|
try{
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
paramMap.put("CONNECTUSERID", CommonUtils.checkNull(person.getUserId()));
|
|
partMngService.savePartBomMaster(request, paramMap);
|
|
CommonUtils.setReqResult(request, "", "S", null, resultMap);
|
|
//result = "SUCCESS";
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
//result = "FAIL";
|
|
CommonUtils.setReqResult(request, "", "F", e, resultMap);
|
|
}
|
|
//return result;
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 품번 중복 체크 (PART_BOM_REPORT 테이블)
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/checkDuplicatePartNo.do")
|
|
@ResponseBody
|
|
public Map<String, Object> checkDuplicatePartNo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
|
try{
|
|
String partNo = CommonUtils.checkNull(paramMap.get("partNo"));
|
|
String bomReportObjid = CommonUtils.checkNull(paramMap.get("bomReportObjid"));
|
|
|
|
if(!"".equals(partNo)){
|
|
paramMap.put("partNo", partNo.trim());
|
|
paramMap.put("bomReportObjid", bomReportObjid);
|
|
|
|
// DB에서 중복 체크
|
|
int count = partMngService.checkDuplicatePartNo(request, paramMap);
|
|
|
|
resultMap.put("isDuplicate", count > 0);
|
|
}else{
|
|
resultMap.put("isDuplicate", false);
|
|
}
|
|
|
|
resultMap.put("result", "success");
|
|
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
resultMap.put("result", "error");
|
|
resultMap.put("message", "품번 중복 체크 중 오류가 발생했습니다.");
|
|
resultMap.put("isDuplicate", false);
|
|
}
|
|
|
|
return resultMap;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 구조등록 순번 변경 저장
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/structureSeqSave.do")
|
|
public String structureSeqSave(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
boolean result = partMngService.structureSeqSave(paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonString("result", new Boolean(result).toString()));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
|
|
/**
|
|
* PART 배포 목록
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/partMngDeployList.do")
|
|
public String partMngDeployList(HttpServletRequest request, @RequestParam Map paramMap){
|
|
String page ="/partMng/partMngDeployList";
|
|
Map code_map = new HashMap();
|
|
List list = new ArrayList();
|
|
String searchRevision = CommonUtils.checkNull(paramMap.get("SEARCH_REVISION_RELEASE"));
|
|
String actionType = CommonUtils.checkNull(paramMap.get("actionType"));
|
|
String search = CommonUtils.checkNull(paramMap.get("search"));
|
|
try {
|
|
code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect"));
|
|
if("Y".equals(search)){
|
|
list = CommonUtils.keyChangeUpperList(partMngService.partMngDeployList(request,paramMap));
|
|
}
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("LIST", list);
|
|
return page;
|
|
}
|
|
|
|
@ResponseBody
|
|
@RequestMapping("/partMng/getPartLinkedBomContractList.do")
|
|
public Map<String, Object> getPartLinkedBomContractList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
Map result_map = new HashMap();
|
|
try {
|
|
result_map.put("RESULT", partMngService.getPartLinkedBomContractList(paramMap));
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return result_map;
|
|
}
|
|
|
|
@RequestMapping("/partMng/partMngHisList.do")
|
|
public String partMngHisList(HttpServletRequest request, @RequestParam Map paramMap){
|
|
Map code_map = new HashMap();
|
|
List list = new ArrayList();
|
|
|
|
try {
|
|
//당사프로젝트번호 project_no
|
|
code_map.put("contract_objid",commonService.bizMakeOptionList("", (String)paramMap.get("contract_objid"),"common.getProjectNameList"));
|
|
//설변사유
|
|
code_map.put("change_option",commonService.bizMakeOptionList("0000318", (String)paramMap.get("change_option"),"common.getCodeselect"));
|
|
//설변구분
|
|
code_map.put("change_type",commonService.bizMakeOptionList("0001054", (String)paramMap.get("change_type"),"common.getCodeselect"));
|
|
//담당자
|
|
code_map.put("writer_id", commonService.bizMakeOptionList("", (String)paramMap.get("writer_id"),"common.getUserselect"));
|
|
//PART구분
|
|
code_map.put("part_type",commonService.bizMakeOptionList(Constants.PART_TYPE_CODE, (String)paramMap.get("part_type"),"common.getCodeselect"));
|
|
|
|
//paramMap.put("STATUS_NQ", "create");
|
|
//paramMap.put("SEARCH_TYPE", "CHANGE_LIST");
|
|
list = commonService.selectListPaging("partMng.partMngHistList", request, paramMap);
|
|
} catch (Exception e) {
|
|
// TODO: handle exception
|
|
e.printStackTrace();
|
|
}
|
|
|
|
request.setAttribute("code_map",code_map);
|
|
request.setAttribute("LIST", JsonUtil.ListToJson(list));
|
|
|
|
return "/partMng/partMngHisList";
|
|
}
|
|
|
|
/**
|
|
* 설계변경리스트 - 설계변경리스트 페이징
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@ResponseBody
|
|
@RequestMapping("/partMng/partMngHisGridList.do")
|
|
public Map getPartMngHisGridListPaging(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
commonService.selectListPagingNew("partMng.partMngHistList", request, paramMap);
|
|
return paramMap;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@RequestMapping("/partMng/deleteBomByAdmin.do")
|
|
@ResponseBody
|
|
public String deleteBomByAdmin(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
String result = "";
|
|
SqlSession sqlSession = null;
|
|
Map sqlMap = new HashMap();
|
|
try{
|
|
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
if(person != null)
|
|
paramMap.put("CONNECTUSERID", CommonUtils.checkNull(person.getUserId()));
|
|
|
|
|
|
String pObjid = (String)paramMap.get("objId");
|
|
String pCheckArr = (String)paramMap.get("checkArr");
|
|
String checkArr[] = (CommonUtils.checkNull(pCheckArr, pObjid)).split(",");
|
|
if(null == checkArr || 0 == checkArr.length){
|
|
checkArr[0] = CommonUtils.checkNull(paramMap.get("checkArr"));
|
|
}
|
|
if(null != checkArr && 0 < checkArr.length){
|
|
//Map sqlParamMap = new HashMap();
|
|
//sqlParamMap.put("checkArr",checkArr);
|
|
// for (String objid : checkArr) {
|
|
// paramMap.put("OBJID", objid);
|
|
// paramMap.put("SEARCH_BOM_OBJID", objid);
|
|
// if(StringUtils.isBlank(objid)) {
|
|
// System.out.println("objid is null");
|
|
// //return "";
|
|
// }else {
|
|
if(checkArr.length == 1) {
|
|
//sqlMap.put("OBJID", checkArr[0]);
|
|
}else {
|
|
}
|
|
sqlMap.put("checkArr", checkArr);
|
|
|
|
// Map info = partMngService.getBOMStructureStandardInfo(request,sqlMap);
|
|
// System.out.println(info);
|
|
// if(info != null && !info.isEmpty()) {
|
|
//백업
|
|
sqlSession.insert("partMng.bak_insertDelPartBom", sqlMap);
|
|
sqlSession.insert("partMng.bak_insertDelPartMng", sqlMap);
|
|
sqlSession.insert("partMng.bak_insertDelPartQty", sqlMap);
|
|
//삭제
|
|
sqlSession.delete("partMng.deletePartBom", sqlMap);
|
|
sqlSession.delete("partMng.deletePartMng", sqlMap);
|
|
sqlSession.delete("partMng.deletePartQty", sqlMap);
|
|
// }
|
|
// }
|
|
// }
|
|
}
|
|
|
|
sqlSession.commit();
|
|
result = "SUCCESS";
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
result = "FAIL";
|
|
sqlSession.rollback();
|
|
}finally {
|
|
//sqlSession.close();
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* BOM objid기준으로 대상 파트에 도면파일 붙이기
|
|
* ※ 도면 있는거는 중복으로 붙으니 주의
|
|
*/
|
|
//@RequestMapping(value="/partMng/partFileAttach.do", method=RequestMethod.POST)
|
|
@RequestMapping("/partMng/partFileAttach.do")
|
|
@ResponseBody
|
|
public String partFileAttach(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
String result = "";
|
|
SqlSession sqlSession = null;
|
|
Map sqlMap = new HashMap();
|
|
try{
|
|
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
if(person != null)
|
|
paramMap.put("CONNECTUSERID", CommonUtils.checkNull(person.getUserId()));
|
|
|
|
String objid = (String)paramMap.get("objId");
|
|
paramMap.put("OBJID", objid);
|
|
paramMap.put("SEARCH_BOM_OBJID", objid);
|
|
String qtyObjId = (String)paramMap.get("qtyObjId");
|
|
|
|
if(StringUtils.isBlank(objid)) {
|
|
System.out.println("objid is null");
|
|
return "";
|
|
}
|
|
|
|
Map info = partMngService.getBOMStructureStandardInfo(request,paramMap);
|
|
System.out.println(info);
|
|
|
|
/*
|
|
String contracObjid = CommonUtils.checkNull(paramMap.get("CONTRACT_OBJID"));
|
|
sqlMap.put("OBJID", contracObjid);
|
|
Map<String,Object> projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", sqlMap);
|
|
String projectNo = (String)projectInfo.get("project_no");
|
|
|
|
String unitCode = CommonUtils.checkNull(paramMap.get("UNIT_CODE"));
|
|
sqlMap.put("unitCode", unitCode);
|
|
Map unitInfoMap = (HashMap)sqlSession.selectOne("common.getUnitCodeList", sqlMap);
|
|
String unitName = CommonUtils.checkNull(unitInfoMap.get("name")).replaceAll("\u00A0+", " ");
|
|
*/
|
|
|
|
String projectNo = CommonUtils.checkNull(info.get("PROJECT_NO2"));
|
|
String unitName = CommonUtils.checkNull(info.get("UNIT_NAME")).replaceAll("\u00A0+", " ");
|
|
byte[] utf8Bytes = unitName.getBytes("UTF-8");
|
|
String utf8unitName = new String(utf8Bytes, "UTF-8");
|
|
|
|
String filepath = Constants.FILE_STORAGE+"\\PART_DATA\\";
|
|
String filepathFull = filepath+projectNo+File.separator+unitName+File.separator;
|
|
System.out.println("filepathFull:"+filepathFull);
|
|
|
|
ArrayList<Map> list = commonService.selectList("partMng.partMngListByBom", request, paramMap);
|
|
//List list = partMngService.getPartMngList(request, paramMap);
|
|
for (Map resultMap : list) {
|
|
System.out.println(resultMap);
|
|
|
|
//if(1==1) continue;
|
|
String part_objid = "";
|
|
String part_no = "";
|
|
if(null!=resultMap){
|
|
part_objid = CommonUtils.checkNull((String)resultMap.get("OBJID"));
|
|
part_no = CommonUtils.checkNull((String)resultMap.get("PART_NO"));
|
|
|
|
//sqlMap.put("objId", part_objid);
|
|
//Map selFileMap = commonService.getFileInfo(sqlMap);
|
|
|
|
//기등록 파일 조회(있으면 pass)
|
|
sqlMap.put("targetObjId", part_objid);
|
|
sqlMap.put("fileSizeNot0", "fileSizeNot0"); //fileSize > 0
|
|
List selFileList = commonService.getFileList(sqlMap);
|
|
if(selFileList != null && !selFileList.isEmpty()) {
|
|
System.out.println("File already exists!!!");
|
|
continue;
|
|
}
|
|
|
|
Map fileMap = new HashMap();
|
|
fileMap.put("FILE_PATH",filepathFull);
|
|
fileMap.put("WRITER", CommonUtils.checkNull((String)paramMap.get("CONNECTUSERID"), "plmAdmin"));
|
|
|
|
//dwg
|
|
fileMap.put("OBJID", CommonUtils.createObjId());
|
|
fileMap.put("TARGET_OBJID", part_objid);
|
|
fileMap.put("SAVED_FILE_NAME", part_no+".dwg");
|
|
fileMap.put("REAL_FILE_NAME",part_no+".dwg");
|
|
fileMap.put("DOC_TYPE" ,"2D_DRAWING_CAD");
|
|
fileMap.put("DOC_TYPE_NAME","2D(Drawing) CAD 첨부파일");
|
|
fileMap.put("FILE_SIZE","167941");
|
|
fileMap.put("FILE_EXT","DWG");
|
|
|
|
System.out.println("fileMap --->"+ fileMap);
|
|
System.out.println(filepathFull+part_no+".dwg");
|
|
|
|
File file = new File(filepathFull+part_no+".dwg");
|
|
System.out.println("file --->"+ file.getName());
|
|
System.out.println("checkBeforeFile(file)" +checkBeforeFile(file));
|
|
if(checkBeforeFile(file)){
|
|
//첨부저장이 존재 할때만 DWG 저장
|
|
sqlSession.insert("partMng.insertpartfileInfo", fileMap);
|
|
}
|
|
|
|
//pdf
|
|
file = new File(filepathFull+part_no+".pdf");
|
|
if(checkBeforeFile(file)){
|
|
fileMap.isEmpty();
|
|
//첨부저장이 존재 할때만 PDF 저장
|
|
fileMap.put("OBJID", CommonUtils.createObjId());
|
|
fileMap.put("TARGET_OBJID", part_no);
|
|
fileMap.put("SAVED_FILE_NAME", part_no+".pdf");
|
|
fileMap.put("REAL_FILE_NAME",part_no+".pdf");
|
|
fileMap.put("DOC_TYPE" ,"2D_PDF_CAD");
|
|
fileMap.put("DOC_TYPE_NAME","2D(PDF) CAD 첨부파일");
|
|
fileMap.put("FILE_SIZE","167941");
|
|
fileMap.put("FILE_EXT","PDF");
|
|
//첨부저장이 존재 할때만 DWG 저장
|
|
sqlSession.insert("part.insertpartfileInfo", fileMap);
|
|
}
|
|
}else{
|
|
}
|
|
}
|
|
|
|
sqlSession.commit();
|
|
result = "SUCCESS";
|
|
}catch(Exception e){
|
|
e.printStackTrace();
|
|
result = "FAIL";
|
|
}
|
|
return result;
|
|
}
|
|
|
|
static boolean checkBeforeFile(File file){
|
|
//파일이 존재하고
|
|
if(file.exists()){
|
|
//그 파일이 파일이고, 읽을 수 있다면 true를 리턴한다.
|
|
if(file.isFile() && file.canRead()){
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* 자재코드 존재확인
|
|
*/
|
|
@RequestMapping("/partMng/existPartNoCheck.do")
|
|
public String existPartNoCheck(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
|
|
List list = partMngService.existPartNoCheck(request, paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonArray(list));
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 우측의 Part를 선택후, 좌측에 선택한 Part로 변경한다.
|
|
* @param request
|
|
* @param paramMap
|
|
* @return
|
|
*/
|
|
@RequestMapping("/partMng/changeRelatePartInfo.do")
|
|
public String changeRelatePartInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
|
boolean result = partMngService.changeRelatePartInfo(request, paramMap);
|
|
request.setAttribute("RESULT", CommonUtils.getJsonString("result", new Boolean(result).toString()));
|
|
|
|
return "/ajax/ajaxResult";
|
|
}
|
|
|
|
/**
|
|
* 도면 파일 일괄 업로드
|
|
* 파일명에 품번이 포함된 경우 자동 매칭하여 업로드
|
|
* - stp 파일 -> 3D CAD 컬럼
|
|
* - dwg 파일 -> 2D Drawing CAD 컬럼
|
|
* - pdf 파일 -> 2D PDF CAD 컬럼
|
|
*
|
|
* @param request
|
|
* @param session
|
|
* @param bomObjId BOM OBJID
|
|
* @return
|
|
*/
|
|
@RequestMapping(value="/partMng/uploadDrawingFiles.do", method=RequestMethod.POST)
|
|
@ResponseBody
|
|
public Map<String, Object> uploadDrawingFiles(
|
|
HttpServletRequest request,
|
|
HttpSession session) {
|
|
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
MultipartRequest multi = null;
|
|
FileRenameClass frc = null;
|
|
|
|
try {
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
String userId = person != null ? person.getUserId() : "plmAdmin";
|
|
|
|
// MultipartRequest로 파일 업로드 처리
|
|
String storagePath = Constants.FILE_STORAGE;
|
|
int maxSize = 1024*1024*1024*9; // 9GB
|
|
|
|
File storage = new File(storagePath);
|
|
if(!storage.exists()) storage.mkdirs();
|
|
|
|
frc = new FileRenameClass();
|
|
multi = new MultipartRequest(request, storagePath, maxSize, "UTF-8", frc);
|
|
java.util.List fileList = frc.getFileList();
|
|
|
|
// MultipartRequest에서 bomObjId 파라미터 가져오기
|
|
String bomObjId = multi.getParameter("bomObjId");
|
|
|
|
if(bomObjId == null || bomObjId.isEmpty()) {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "BOM ID가 전달되지 않았습니다.");
|
|
return resultMap;
|
|
}
|
|
|
|
// BOM 정보 조회
|
|
Map<String, Object> bomParam = new HashMap<>();
|
|
bomParam.put("objId", bomObjId);
|
|
Map bomInfo = partMngService.getBOMStructureStandardInfo(request, bomParam);
|
|
|
|
if(bomInfo == null) {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "BOM 정보를 찾을 수 없습니다.");
|
|
return resultMap;
|
|
}
|
|
|
|
// 해당 BOM의 모든 파트 정보 조회
|
|
bomParam.put("SEARCH_BOM_OBJID", bomObjId);
|
|
ArrayList<Map> partList = commonService.selectList("partMng.partMngListByBom", request, bomParam);
|
|
|
|
if(partList == null || partList.isEmpty()) {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "BOM에 등록된 파트가 없습니다.");
|
|
return resultMap;
|
|
}
|
|
|
|
// 품번 기준 파트 맵 생성
|
|
Map<String, Map> partNoMap = new HashMap<>();
|
|
for(Map part : partList) {
|
|
String partNo = CommonUtils.checkNull((String)part.get("PART_NO"));
|
|
if(!partNo.isEmpty()) {
|
|
partNoMap.put(partNo, part);
|
|
}
|
|
}
|
|
|
|
int successCount = 0;
|
|
int failCount = 0;
|
|
int notFoundCount = 0;
|
|
|
|
// 업로드된 파일 처리
|
|
if(fileList != null && !fileList.isEmpty()) {
|
|
for(Object fileObj : fileList) {
|
|
Map fileInfo = (Map)fileObj;
|
|
String originalFileName = CommonUtils.checkNull((String)fileInfo.get("realFileName"));
|
|
String savedFileName = CommonUtils.checkNull((String)fileInfo.get("savedFileName"));
|
|
String fileExt = CommonUtils.checkNull((String)fileInfo.get("fileExt"));
|
|
long fileSize = Long.parseLong(CommonUtils.checkNull(fileInfo.get("fileSize"), "0"));
|
|
|
|
// 파일 크기가 0이면 실제 저장된 파일에서 다시 확인
|
|
// if(fileSize == 0) {
|
|
// try {
|
|
// File savedFile = new File(storagePath + File.separator + savedFileName);
|
|
// if(savedFile.exists()) {
|
|
// fileSize = savedFile.length();
|
|
// System.out.println("파일 크기 재확인: " + fileSize + " bytes");
|
|
// }
|
|
// } catch(Exception e) {
|
|
// System.out.println("파일 크기 재확인 실패: " + e.getMessage());
|
|
// }
|
|
// }
|
|
|
|
// 확장자 대문자 변환 (이미 점 없이 저장됨)
|
|
fileExt = fileExt.toUpperCase();
|
|
|
|
System.out.println("========== 파일 업로드 처리 ==========");
|
|
System.out.println("원본 파일명: " + originalFileName);
|
|
System.out.println("저장 파일명: " + savedFileName);
|
|
System.out.println("확장자: " + fileExt);
|
|
System.out.println("파일 크기: " + fileSize + " bytes");
|
|
System.out.println("===================================");
|
|
|
|
// 파일 확장자에 따른 문서 타입 결정
|
|
String docType = "";
|
|
String docTypeName = "";
|
|
|
|
if("STP".equals(fileExt) || "STEP".equals(fileExt)) {
|
|
docType = "3D_CAD";
|
|
docTypeName = "3D CAD 첨부파일";
|
|
} else if("DWG".equals(fileExt) || "DXF".equals(fileExt)){
|
|
docType = "2D_DRAWING_CAD";
|
|
docTypeName = "2D(Drawing) CAD 첨부파일";
|
|
} else if("PDF".equals(fileExt)) {
|
|
docType = "2D_PDF_CAD";
|
|
docTypeName = "2D(PDF) CAD 첨부파일";
|
|
} else {
|
|
// 지원하지 않는 확장자는 스킵
|
|
System.out.println("지원하지 않는 확장자: " + fileExt + ", 파일명: " + originalFileName);
|
|
continue;
|
|
}
|
|
|
|
// 품번 추출 (맨 마지막 확장자만 제거 후 하이픈 기준 추출)
|
|
String extractedPartNo = extractPartNoFromFileName(originalFileName);
|
|
|
|
// 품번과 정확히 일치하는 경우만 매칭
|
|
String matchedPartNo = null;
|
|
System.out.println("품번 매칭 시작 - 추출된 품번: " + extractedPartNo);
|
|
|
|
if(extractedPartNo != null && !extractedPartNo.isEmpty()) {
|
|
// 정확한 매칭 (추출된 품번과 DB 품번이 정확히 일치)
|
|
if(partNoMap.containsKey(extractedPartNo)) {
|
|
matchedPartNo = extractedPartNo;
|
|
System.out.println(" ✓ 품번 정확 매칭 성공: " + matchedPartNo);
|
|
}
|
|
}
|
|
|
|
if(matchedPartNo == null) {
|
|
System.out.println(" ✗ 품번 매칭 실패 - 파일명: " + originalFileName + ", 추출된 품번: " + extractedPartNo);
|
|
notFoundCount++;
|
|
continue;
|
|
}
|
|
|
|
// 해당 파트에 파일 정보 저장
|
|
Map partInfo = partNoMap.get(matchedPartNo);
|
|
String partObjId = CommonUtils.checkNull((String)partInfo.get("OBJID"));
|
|
|
|
Map<String, Object> fileMap = new HashMap<>();
|
|
fileMap.put("OBJID", CommonUtils.createObjId());
|
|
fileMap.put("TARGET_OBJID", partObjId);
|
|
fileMap.put("SAVED_FILE_NAME", savedFileName);
|
|
fileMap.put("REAL_FILE_NAME", originalFileName);
|
|
fileMap.put("DOC_TYPE", docType);
|
|
fileMap.put("DOC_TYPE_NAME", docTypeName);
|
|
fileMap.put("FILE_SIZE", String.valueOf(fileSize));
|
|
fileMap.put("FILE_EXT", fileExt);
|
|
fileMap.put("FILE_PATH", storagePath);
|
|
fileMap.put("WRITER", userId);
|
|
|
|
try {
|
|
// 파일 정보 DB 저장
|
|
partMngService.insertDrawingFile(fileMap);
|
|
successCount++;
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
failCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
resultMap.put("result", "success");
|
|
resultMap.put("successCount", successCount);
|
|
resultMap.put("failCount", failCount);
|
|
resultMap.put("notFoundCount", notFoundCount);
|
|
resultMap.put("message", "업로드가 완료되었습니다.");
|
|
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "error");
|
|
resultMap.put("message", "업로드 중 오류가 발생했습니다: " + e.getMessage());
|
|
} finally {
|
|
if(frc != null) {
|
|
frc.clear();
|
|
}
|
|
}
|
|
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* PART 목록 화면에서 도면 파일 일괄 업로드
|
|
* BOM 정보 없이 전체 파트를 대상으로 파일명 매칭
|
|
*
|
|
* @param request
|
|
* @param session
|
|
* @return
|
|
*/
|
|
@RequestMapping(value="/partMng/uploadDrawingFilesForPartList.do", method=RequestMethod.POST)
|
|
@ResponseBody
|
|
public Map<String, Object> uploadDrawingFilesForPartList(
|
|
HttpServletRequest request,
|
|
HttpSession session) {
|
|
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
MultipartRequest multi = null;
|
|
FileRenameClass frc = null;
|
|
|
|
try {
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
String userId = person != null ? person.getUserId() : "plmAdmin";
|
|
|
|
// MultipartRequest로 파일 업로드 처리
|
|
String storagePath = Constants.FILE_STORAGE;
|
|
int maxSize = 1024*1024*1024*9; // 9GB
|
|
|
|
File storage = new File(storagePath);
|
|
if(!storage.exists()) storage.mkdirs();
|
|
|
|
frc = new FileRenameClass();
|
|
multi = new MultipartRequest(request, storagePath, maxSize, "UTF-8", frc);
|
|
java.util.List fileList = frc.getFileList();
|
|
|
|
// 화면에서 전달된 품번 목록 가져오기
|
|
String partNoListJson = multi.getParameter("partNoList");
|
|
if(partNoListJson == null || partNoListJson.isEmpty()) {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "품번 목록이 전달되지 않았습니다.");
|
|
return resultMap;
|
|
}
|
|
|
|
// JSON 파싱 (Gson 사용)
|
|
Gson gson = new Gson();
|
|
Type listType = new TypeToken<ArrayList<String>>(){}.getType();
|
|
java.util.List<String> partNoList = gson.fromJson(partNoListJson, listType);
|
|
|
|
if(partNoList.isEmpty()) {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "페이지에 표시된 파트가 없습니다.");
|
|
return resultMap;
|
|
}
|
|
|
|
System.out.println("========== 화면에서 전달된 품번 목록 ==========");
|
|
System.out.println("품번 개수: " + partNoList.size());
|
|
System.out.println("품번 목록: " + partNoList);
|
|
System.out.println("==========================================");
|
|
|
|
// 전달된 품번 목록에 해당하는 파트만 조회
|
|
Map<String, Object> partParam = new HashMap<>();
|
|
partParam.put("IS_LAST", "1");
|
|
partParam.put("PART_NO_LIST", partNoList);
|
|
ArrayList<Map> partList = commonService.selectList("partMng.partMngListByPartNos", request, partParam);
|
|
|
|
if(partList == null || partList.isEmpty()) {
|
|
resultMap.put("result", "fail");
|
|
resultMap.put("message", "조회된 파트가 없습니다.");
|
|
return resultMap;
|
|
}
|
|
|
|
// 품번 기준 파트 맵 생성 (화면에 표시된 파트만)
|
|
Map<String, Map> partNoMap = new HashMap<>();
|
|
for(Map part : partList) {
|
|
String partNo = CommonUtils.checkNull((String)part.get("PART_NO"));
|
|
if(!partNo.isEmpty()) {
|
|
partNoMap.put(partNo, part);
|
|
}
|
|
}
|
|
|
|
System.out.println("매칭 가능한 품번 개수: " + partNoMap.size());
|
|
|
|
int successCount = 0;
|
|
int failCount = 0;
|
|
int notFoundCount = 0;
|
|
|
|
// 업로드된 파일 처리
|
|
if(fileList != null && !fileList.isEmpty()) {
|
|
for(Object fileObj : fileList) {
|
|
Map fileInfo = (Map)fileObj;
|
|
String originalFileName = CommonUtils.checkNull((String)fileInfo.get("realFileName"));
|
|
String savedFileName = CommonUtils.checkNull((String)fileInfo.get("savedFileName"));
|
|
String fileExt = CommonUtils.checkNull((String)fileInfo.get("fileExt"));
|
|
long fileSize = Long.parseLong(CommonUtils.checkNull(fileInfo.get("fileSize"), "0"));
|
|
|
|
// 파일 크기가 0이면 실제 저장된 파일에서 다시 확인
|
|
// if(fileSize == 0) {
|
|
// try {
|
|
// File savedFile = new File(storagePath + File.separator + savedFileName);
|
|
// if(savedFile.exists()) {
|
|
// fileSize = savedFile.length();
|
|
// System.out.println("파일 크기 재확인: " + fileSize + " bytes");
|
|
// }
|
|
// } catch(Exception e) {
|
|
// System.out.println("파일 크기 재확인 실패: " + e.getMessage());
|
|
// }
|
|
// }
|
|
|
|
// 확장자 대문자 변환
|
|
fileExt = fileExt.toUpperCase();
|
|
|
|
System.out.println("========== 파트 목록 파일 업로드 처리 ==========");
|
|
System.out.println("원본 파일명: " + originalFileName);
|
|
System.out.println("저장 파일명: " + savedFileName);
|
|
System.out.println("확장자: " + fileExt);
|
|
System.out.println("파일 크기: " + fileSize + " bytes");
|
|
System.out.println("==========================================");
|
|
|
|
// 파일 확장자에 따른 문서 타입 결정
|
|
String docType = "";
|
|
String docTypeName = "";
|
|
|
|
if("STP".equals(fileExt) || "STEP".equals(fileExt)) {
|
|
docType = "3D_CAD";
|
|
docTypeName = "3D CAD 첨부파일";
|
|
} else if("DWG".equals(fileExt) || "DXF".equals(fileExt)) {
|
|
docType = "2D_DRAWING_CAD";
|
|
docTypeName = "2D(Drawing) CAD 첨부파일";
|
|
} else if("PDF".equals(fileExt)) {
|
|
docType = "2D_PDF_CAD";
|
|
docTypeName = "2D(PDF) CAD 첨부파일";
|
|
} else {
|
|
// 지원하지 않는 확장자는 스킵
|
|
System.out.println("지원하지 않는 확장자: " + fileExt + ", 파일명: " + originalFileName);
|
|
continue;
|
|
}
|
|
|
|
// 품번 추출 (맨 마지막 확장자만 제거 후 하이픈 기준 추출)
|
|
String extractedPartNo = extractPartNoFromFileName(originalFileName);
|
|
|
|
// 품번과 정확히 일치하는 경우만 매칭
|
|
String matchedPartNo = null;
|
|
System.out.println("품번 매칭 시작 - 추출된 품번: " + extractedPartNo);
|
|
|
|
if(extractedPartNo != null && !extractedPartNo.isEmpty()) {
|
|
// 정확한 매칭 (추출된 품번과 DB 품번이 정확히 일치)
|
|
if(partNoMap.containsKey(extractedPartNo)) {
|
|
matchedPartNo = extractedPartNo;
|
|
System.out.println(" ✓ 품번 정확 매칭 성공: " + matchedPartNo);
|
|
}
|
|
}
|
|
|
|
if(matchedPartNo == null) {
|
|
System.out.println(" ✗ 품번 매칭 실패 - 파일명: " + originalFileName + ", 추출된 품번: " + extractedPartNo);
|
|
notFoundCount++;
|
|
continue;
|
|
}
|
|
|
|
// 해당 파트에 파일 정보 저장
|
|
Map partInfo = partNoMap.get(matchedPartNo);
|
|
String partObjId = CommonUtils.checkNull((String)partInfo.get("OBJID"));
|
|
|
|
Map<String, Object> fileMap = new HashMap<>();
|
|
fileMap.put("OBJID", CommonUtils.createObjId());
|
|
fileMap.put("TARGET_OBJID", partObjId);
|
|
fileMap.put("SAVED_FILE_NAME", savedFileName);
|
|
fileMap.put("REAL_FILE_NAME", originalFileName);
|
|
fileMap.put("DOC_TYPE", docType);
|
|
fileMap.put("DOC_TYPE_NAME", docTypeName);
|
|
fileMap.put("FILE_SIZE", String.valueOf(fileSize));
|
|
fileMap.put("FILE_EXT", fileExt);
|
|
fileMap.put("FILE_PATH", storagePath);
|
|
fileMap.put("WRITER", userId);
|
|
|
|
try {
|
|
// 파일 정보 DB 저장
|
|
partMngService.insertDrawingFile(fileMap);
|
|
successCount++;
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
failCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
resultMap.put("result", "success");
|
|
resultMap.put("successCount", successCount);
|
|
resultMap.put("failCount", failCount);
|
|
resultMap.put("notFoundCount", notFoundCount);
|
|
resultMap.put("message", "업로드가 완료되었습니다.");
|
|
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
resultMap.put("result", "error");
|
|
resultMap.put("message", "업로드 중 오류가 발생했습니다: " + e.getMessage());
|
|
} finally {
|
|
if(frc != null) {
|
|
frc.clear();
|
|
}
|
|
}
|
|
|
|
return resultMap;
|
|
}
|
|
|
|
/**
|
|
* 파일명에서 품번을 추출하는 헬퍼 메서드
|
|
*
|
|
* 품번 추출 규칙:
|
|
* 1. 모든 확장자 제거 (.idw.pdf → .idw도 제거)
|
|
* 2. 확장자 제거 후 첫 번째 하이픈(-) 위치 찾기
|
|
* 3. 하이픈 앞 자릿수에 따라 품번 길이 결정
|
|
* - 5자리: 하이픈 포함 10자리 추출 (예: 20002-0043)
|
|
* - 7자리: 하이픈 포함 16자리 추출 (예: 2000200-004300-01)
|
|
*
|
|
* @param fileName 원본 파일명 (예: "20002-0043.idw.pdf")
|
|
* @return 추출된 품번 (예: "20002-0043") 또는 null
|
|
*/
|
|
private String extractPartNoFromFileName(String fileName) {
|
|
if(fileName == null || fileName.isEmpty()) {
|
|
return null;
|
|
}
|
|
|
|
try {
|
|
// 1단계: 모든 확장자 제거 (이중/삼중 확장자 대응)
|
|
// 알려진 CAD 확장자 목록
|
|
String[] cadExtensions = {".idw", ".dwg", ".dxf", ".stp", ".step", ".pdf", ".chg"};
|
|
|
|
String fileNameWithoutExt = fileName;
|
|
|
|
// 반복적으로 확장자 제거 (예: file.idw.pdf → file.idw → file)
|
|
boolean extensionRemoved = true;
|
|
while(extensionRemoved) {
|
|
extensionRemoved = false;
|
|
|
|
// 마지막 점 찾기
|
|
int lastDotIndex = fileNameWithoutExt.lastIndexOf('.');
|
|
if(lastDotIndex > 0) {
|
|
String currentExt = fileNameWithoutExt.substring(lastDotIndex).toLowerCase();
|
|
|
|
// 알려진 CAD 확장자인 경우 제거
|
|
for(String ext : cadExtensions) {
|
|
if(currentExt.equals(ext)) {
|
|
fileNameWithoutExt = fileNameWithoutExt.substring(0, lastDotIndex);
|
|
extensionRemoved = true;
|
|
System.out.println("[품번 추출] 확장자 제거: " + currentExt + " → " + fileNameWithoutExt);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
System.out.println("[품번 추출] 1단계 완료 - 모든 확장자 제거: " + fileNameWithoutExt);
|
|
|
|
// 2단계: 첫 번째 하이픈 위치 찾기
|
|
int firstHyphenIndex = fileNameWithoutExt.indexOf('-');
|
|
if(firstHyphenIndex == -1) {
|
|
System.out.println("[품번 추출] 하이픈이 없음 - 추출 실패");
|
|
return null;
|
|
}
|
|
|
|
// 3단계: 하이픈 앞 자릿수 확인
|
|
String beforeHyphen = fileNameWithoutExt.substring(0, firstHyphenIndex);
|
|
int beforeHyphenLength = beforeHyphen.length();
|
|
|
|
System.out.println("[품번 추출] 2단계 - 하이픈 앞 문자열: " + beforeHyphen + " (길이: " + beforeHyphenLength + ")");
|
|
|
|
// 4단계: 자릿수에 따라 품번 추출
|
|
String extractedPartNo = null;
|
|
|
|
if(beforeHyphenLength == 5) {
|
|
// 스핀들 설계팀: 5자리 -> 하이픈 1개 (5-4 = 10자리)
|
|
// 예: 20002-0043
|
|
int targetLength = 10;
|
|
if(fileNameWithoutExt.length() >= targetLength) {
|
|
extractedPartNo = fileNameWithoutExt.substring(0, targetLength);
|
|
System.out.println("[품번 추출] 3단계 - 5자리 패턴 (10자리 추출): " + extractedPartNo);
|
|
} else {
|
|
System.out.println("[품번 추출] 5자리 패턴이지만 총 길이가 10자리 미만 - 추출 실패");
|
|
}
|
|
} else if(beforeHyphenLength == 7) {
|
|
// 장비 개발팀: 7자리 -> 하이픈이 1개 또는 2개
|
|
// 하이픈 1개: 7-9 = 17자리 (예: 2000200-004300-0)
|
|
// 하이픈 2개: 7-6-2 = 18자리 (예: 2000200-004300-02)
|
|
|
|
// 두 번째 하이픈이 있는지 확인
|
|
int secondHyphenIndex = fileNameWithoutExt.indexOf('-', firstHyphenIndex + 1);
|
|
|
|
if(secondHyphenIndex != -1) {
|
|
// 하이픈이 2개인 경우: 7-6-2 패턴 = 18자리
|
|
// 예: 2000200-004300-02
|
|
extractedPartNo = fileNameWithoutExt;
|
|
System.out.println("[품번 추출] 3단계 - 7자리 패턴 (하이픈 2개, 전체 품번): " + extractedPartNo);
|
|
} else {
|
|
// 하이픈이 1개인 경우: 7-9 패턴 = 17자리
|
|
// 예: 2000200-004300-0 (16자리만 추출)
|
|
int targetLength = 16;
|
|
if(fileNameWithoutExt.length() >= targetLength) {
|
|
extractedPartNo = fileNameWithoutExt.substring(0, targetLength);
|
|
System.out.println("[품번 추출] 3단계 - 7자리 패턴 (하이픈 1개, 16자리 추출): " + extractedPartNo);
|
|
} else {
|
|
System.out.println("[품번 추출] 7자리 패턴이지만 총 길이가 16자리 미만 - 추출 실패");
|
|
}
|
|
}
|
|
} else {
|
|
System.out.println("[품번 추출] 하이픈 앞이 5자리 또는 7자리가 아님 - 추출 실패");
|
|
}
|
|
|
|
return extractedPartNo;
|
|
|
|
} catch(Exception e) {
|
|
System.out.println("[품번 추출] 예외 발생: " + e.getMessage());
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
}
|