생산관리
This commit is contained in:
@@ -1078,9 +1078,23 @@ public class ProductionPlanningController extends BaseService {
|
||||
paramMap.put("objId", objId);
|
||||
Map<String, Object> projectInfo = commonService.selectOne("productionplanning.getProjectMgmtDetail", request, paramMap);
|
||||
|
||||
System.out.println("========== mBomPopupLeft ==========");
|
||||
System.out.println("objId: " + objId);
|
||||
System.out.println("projectInfo: " + projectInfo);
|
||||
|
||||
if(projectInfo != null) {
|
||||
System.out.println("BOM_REPORT_OBJID: " + projectInfo.get("BOM_REPORT_OBJID"));
|
||||
System.out.println("MBOM_STATUS: " + projectInfo.get("MBOM_STATUS"));
|
||||
|
||||
// 1. 먼저 저장된 M-BOM 데이터가 있는지 확인
|
||||
List<Map<String, Object>> mbomDetailList = commonService.selectList("productionplanning.getMbomDetailByProject", request, paramMap);
|
||||
String bomReportObjid = CommonUtils.checkNull(projectInfo.get("BOM_REPORT_OBJID"));
|
||||
if(!"".equals(bomReportObjid)) {
|
||||
Map<String, Object> bomParam = new HashMap<>();
|
||||
bomParam.put("bomReportObjId", bomReportObjid);
|
||||
bomParam.put("search_type", "working");
|
||||
|
||||
List<Map<String, Object>> mbomDetailList = commonService.selectList("partMng.getBOMTreeList", request, bomParam);
|
||||
System.out.println("mbomDetailList size: " + (mbomDetailList != null ? mbomDetailList.size() : 0));
|
||||
|
||||
if(mbomDetailList != null && !mbomDetailList.isEmpty()) {
|
||||
// 저장된 M-BOM 데이터가 있으면 이를 표시
|
||||
@@ -1090,41 +1104,25 @@ public class ProductionPlanningController extends BaseService {
|
||||
if(level != null && level > maxLevel) {
|
||||
maxLevel = level;
|
||||
}
|
||||
|
||||
// LEVEL_1, LEVEL_2, ... 필드 추가
|
||||
if(level != null) {
|
||||
for(int i = 1; i <= level; i++) {
|
||||
if(i == level) {
|
||||
item.put("LEVEL_" + i, "*");
|
||||
} else {
|
||||
item.put("LEVEL_" + i, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
request.setAttribute("MAXLEV", maxLevel);
|
||||
request.setAttribute("bomTreeListJson", gson.toJson(mbomDetailList));
|
||||
return "/productionplanning/mBomPopupLeft";
|
||||
}
|
||||
|
||||
// 저장된 M-BOM이 없으면 할당된 E-BOM 정보 조회
|
||||
String bomReportObjid = CommonUtils.checkNull(projectInfo.get("BOM_REPORT_OBJID"));
|
||||
if(!"".equals(bomReportObjid)) {
|
||||
Map<String, Object> ebomParam = new HashMap<>();
|
||||
ebomParam.put("objId", bomReportObjid);
|
||||
ebomParam.put("bomReportObjId", bomReportObjid);
|
||||
|
||||
// E-BOM 정보 조회
|
||||
Map<String, Object> ebomInfo = commonService.selectOne("partMng.getBomReportInfo", request, ebomParam);
|
||||
request.setAttribute("ebomInfo", ebomInfo);
|
||||
|
||||
// BOM 트리 데이터 조회 (레벨 정보 포함)
|
||||
List<Map<String, Object>> bomTreeList = commonService.selectList("partMng.getBOMTreeList", request, ebomParam);
|
||||
|
||||
if(bomTreeList != null && !bomTreeList.isEmpty()) {
|
||||
// MAX LEVEL 계산
|
||||
int maxLevel = 1;
|
||||
for(Map<String, Object> item : bomTreeList) {
|
||||
Integer level = (Integer) item.get("LEVEL");
|
||||
if(level != null && level > maxLevel) {
|
||||
maxLevel = level;
|
||||
}
|
||||
}
|
||||
request.setAttribute("MAXLEV", maxLevel);
|
||||
request.setAttribute("bomTreeListJson", gson.toJson(bomTreeList));
|
||||
return "/productionplanning/mBomPopupLeft";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
@@ -1213,6 +1211,8 @@ public class ProductionPlanningController extends BaseService {
|
||||
List<Map<String, Object>> mbomData = (List<Map<String, Object>>) paramMap.get("mbomData");
|
||||
String partNo = CommonUtils.checkNull(paramMap.get("partNo"));
|
||||
String partName = CommonUtils.checkNull(paramMap.get("partName"));
|
||||
String mbomPartNo = CommonUtils.checkNull(paramMap.get("mbomPartNo")); // 기존 M-BOM 품번
|
||||
boolean isUpdate = paramMap.get("isUpdate") != null && (Boolean)paramMap.get("isUpdate"); // 수정 여부
|
||||
|
||||
if(mbomData == null || mbomData.isEmpty()) {
|
||||
resultMap.put("result", "fail");
|
||||
@@ -1221,11 +1221,12 @@ public class ProductionPlanningController extends BaseService {
|
||||
}
|
||||
|
||||
// M-BOM 저장 서비스 호출
|
||||
int saveResult = productionPlanningService.saveMbom(request, mbomData, partNo, partName);
|
||||
// isUpdate가 true이면 기존 M-BOM 품번 유지, false이면 새로 생성
|
||||
int saveResult = productionPlanningService.saveMbom(request, mbomData, partNo, partName, mbomPartNo, isUpdate);
|
||||
|
||||
if(saveResult > 0) {
|
||||
resultMap.put("result", "success");
|
||||
resultMap.put("message", "M-BOM이 저장되었습니다.");
|
||||
resultMap.put("message", isUpdate ? "M-BOM이 수정되었습니다." : "M-BOM이 저장되었습니다.");
|
||||
} else {
|
||||
resultMap.put("result", "fail");
|
||||
resultMap.put("message", "저장에 실패했습니다.");
|
||||
@@ -1237,4 +1238,123 @@ public class ProductionPlanningController extends BaseService {
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 품번으로 최신 M-BOM 조회 (Machine 이외 제품용)
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/productionplanning/getLatestMbomByPartNo.do")
|
||||
public Map<String, Object> getLatestMbomByPartNo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
try {
|
||||
String partNo = CommonUtils.checkNull(paramMap.get("partNo"));
|
||||
|
||||
if("".equals(partNo)) {
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
// 최신 M-BOM 조회
|
||||
Map<String, Object> mbomInfo = commonService.selectOne("productionplanning.getLatestMbomByPartNo", request, paramMap);
|
||||
|
||||
if(mbomInfo != null) {
|
||||
resultMap.putAll(mbomInfo);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* M-BOM 이력 조회
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/productionplanning/getMbomHistory.do")
|
||||
public Map<String, Object> getMbomHistory(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
try {
|
||||
String mbomPartNo = CommonUtils.checkNull(paramMap.get("mbomPartNo"));
|
||||
|
||||
if("".equals(mbomPartNo)) {
|
||||
resultMap.put("historyList", new ArrayList<>());
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
// M-BOM 이력 조회 (PART_BOM_REPORT 테이블에서 동일 PART_NO로 조회)
|
||||
List<Map<String, Object>> historyList = commonService.selectList("productionplanning.getMbomHistory", request, paramMap);
|
||||
|
||||
resultMap.put("historyList", historyList != null ? historyList : new ArrayList<>());
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
resultMap.put("historyList", new ArrayList<>());
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* M-BOM Part 연결 (E-BOM의 relatePartInfo와 동일)
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @param rightCheckedArr
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/productionplanning/relateMbomPartInfo.do")
|
||||
public Map<String, Object> relateMbomPartInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap, @RequestParam(value = "rightCheckedArr[]") List<String> rightCheckedArr){
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
try {
|
||||
boolean result = productionPlanningService.relateMbomPartInfo(request, paramMap, rightCheckedArr);
|
||||
resultMap.put("result", result);
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
resultMap.put("result", false);
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* M-BOM Part 연결 해제 (E-BOM의 deleteStatusPartRelateInfo와 동일)
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/productionplanning/deleteMbomPartRelateInfo.do")
|
||||
public Map<String, Object> deleteMbomPartRelateInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
try {
|
||||
boolean result = productionPlanningService.deleteMbomPartRelateInfo(request, paramMap);
|
||||
resultMap.put("result", result);
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
resultMap.put("result", false);
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* M-BOM Part 변경 (E-BOM의 changeRelatePartInfo와 동일)
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/productionplanning/changeMbomPartInfo.do")
|
||||
public Map<String, Object> changeMbomPartInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
try {
|
||||
boolean result = productionPlanningService.changeMbomPartInfo(request, paramMap);
|
||||
resultMap.put("result", result);
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
resultMap.put("result", false);
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user