[1487] 동기화 배치 statCd 처리를 delete-first → merge 2단계로 분리 — 같은 키 A+D 동시 송신 시 A 가 이김 #497

Merged
ysCha merged 1 commits from dev into prd-deploy 2026-05-12 14:23:44 +09:00
Showing only changes of commit ca06b1e7e4 - Show all commits

View File

@ -116,11 +116,18 @@ public class DisplayItemService {
*/
public int setBomSyncSave(List<BomSyncResponse> bomSyncList) throws Exception {
int cnt = 0;
// 2026-05-12 같은 (PACKAGE_ITEM_ID, ITEM_ID) A/D 함께 오는 케이스 대비,
// 외부 응답 순서와 무관하게 결정적 결과(A 이김) 보장하기 위해 2단계로 처리.
// 1단계: D 먼저 전부 DELETE
for (BomSyncResponse bomSyncData : bomSyncList) {
if ("D".equals(bomSyncData.getStatCd())) {
// Bom 아이템 삭제 처리
cnt += displayItemMapper.deleteBomSync(bomSyncData);
} else {
}
}
// 2단계: D 전부 MERGE (upsert)
for (BomSyncResponse bomSyncData : bomSyncList) {
if (!"D".equals(bomSyncData.getStatCd())) {
// Bom 아이템 수정/등록 처리
cnt += displayItemMapper.setBomSyncSave(bomSyncData);
}