m-bom 수정

This commit is contained in:
2025-11-25 15:15:20 +09:00
parent 9a2bd56d09
commit 884dc44dd1
9 changed files with 161 additions and 39 deletions

View File

@@ -1016,9 +1016,45 @@ public class ProductionPlanningService {
boolean result = false;
try {
sqlSession = SqlMapConfig.getInstance().getSqlSession();
sqlSession = SqlMapConfig.getInstance().getSqlSession(false); // 수동 커밋
String projectObjId = CommonUtils.checkNull(paramMap.get("projectObjId"));
// 1. 기존 M-BOM 데이터 비활성화 (새로운 BOM 할당 시 초기화)
if(!"".equals(projectObjId)) {
// 해당 프로젝트의 기존 활성 M-BOM HEADER 조회
Map<String, Object> queryParam = new HashMap<>();
queryParam.put("projectObjId", projectObjId);
List<Map<String, Object>> existingMboms = sqlSession.selectList("productionplanning.getActiveMbomsByProjectId", queryParam);
if(existingMboms != null && !existingMboms.isEmpty()) {
System.out.println("========== 기존 M-BOM 비활성화 ==========");
System.out.println("Project OBJID: " + projectObjId);
System.out.println("비활성화할 M-BOM 개수: " + existingMboms.size());
for(Map<String, Object> mbom : existingMboms) {
String mbomHeaderObjid = CommonUtils.checkNull(mbom.get("OBJID"));
if(!"".equals(mbomHeaderObjid)) {
Map<String, Object> inactivateParam = new HashMap<>();
inactivateParam.put("mbomHeaderObjid", mbomHeaderObjid);
// M-BOM DETAIL 비활성화
sqlSession.update("productionplanning.inactivateMbomDetail", inactivateParam);
// M-BOM HEADER 비활성화
sqlSession.update("productionplanning.inactivateMbomHeader", inactivateParam);
System.out.println("M-BOM 비활성화 완료: " + mbomHeaderObjid);
}
}
}
}
// 2. PROJECT_MGMT 업데이트 (새로운 BOM 할당 정보)
int updateCount = sqlSession.update("productionplanning.saveBomAssignment", paramMap);
result = (updateCount > 0);
sqlSession.commit();
} catch(Exception e) {
if(sqlSession != null) {