m-bom 수정
This commit is contained in:
@@ -941,7 +941,7 @@ public class PartMngController {
|
||||
}
|
||||
|
||||
Map code_map = new HashMap();
|
||||
code_map.put("rev", commonService.bizMakeOptionList("", "", "common.getRevNoselect"));
|
||||
//code_map.put("rev", commonService.bizMakeOptionList("", "", "common.getRevNoselect"));
|
||||
code_map.put("product_code", commonService.bizMakeOptionList("", "", "common.getProductNoselect"));
|
||||
|
||||
// E-BOM 목록 (기존 getActiveBomList 사용)
|
||||
|
||||
@@ -2533,7 +2533,7 @@ SELECT option_objid::VARCHAR AS CODE
|
||||
<select id="getRevNoselect" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
T.OBJID::varchar AS CODE
|
||||
,COALESCE(T.REVISION, T.REV, '1.0') AS NAME
|
||||
,COALESCE(T.REVISION, '1.0') AS NAME
|
||||
,T1.PRODUCT_CODE AS CODE_CD
|
||||
,'' AS STATUS
|
||||
,T.spec_name AS ID
|
||||
@@ -2541,7 +2541,7 @@ SELECT option_objid::VARCHAR AS CODE
|
||||
FROM PART_BOM_REPORT T,PRODUCT_MGMT T1
|
||||
WHERE T.PRODUCT_MGMT_OBJID = T1.OBJID
|
||||
AND T1.OBJID = #{code}::numeric
|
||||
ORDER BY COALESCE(T.REVISION, T.REV, '1.0')
|
||||
ORDER BY COALESCE(T.REVISION, '1.0')
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
@@ -3493,6 +3493,30 @@
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 프로젝트의 활성 M-BOM 목록 조회 -->
|
||||
<select id="getActiveMbomsByProjectId" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
SELECT * FROM MBOM_HEADER
|
||||
WHERE PROJECT_OBJID = #{projectObjId}
|
||||
AND (STATUS = 'Y' OR STATUS = 'ACTIVE')
|
||||
ORDER BY REGDATE DESC
|
||||
</select>
|
||||
|
||||
<!-- M-BOM HEADER 비활성화 -->
|
||||
<update id="inactivateMbomHeader" parameterType="map">
|
||||
UPDATE MBOM_HEADER
|
||||
SET STATUS = 'INACTIVE',
|
||||
EDIT_DATE = NOW()
|
||||
WHERE OBJID = #{mbomHeaderObjid}
|
||||
</update>
|
||||
|
||||
<!-- M-BOM DETAIL 비활성화 -->
|
||||
<update id="inactivateMbomDetail" parameterType="map">
|
||||
UPDATE MBOM_DETAIL
|
||||
SET STATUS = 'INACTIVE',
|
||||
EDIT_DATE = NOW()
|
||||
WHERE MBOM_HEADER_OBJID = #{mbomHeaderObjid}
|
||||
</update>
|
||||
|
||||
<!-- MBOM_HEADER 삽입 -->
|
||||
<insert id="insertMbomHeader" parameterType="map">
|
||||
INSERT INTO MBOM_HEADER (
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user