diff --git a/src/com/pms/mapper/partMng.xml b/src/com/pms/mapper/partMng.xml index 3bf462b..c389df4 100644 --- a/src/com/pms/mapper/partMng.xml +++ b/src/com/pms/mapper/partMng.xml @@ -8368,46 +8368,54 @@ SELECT PM.OBJID \ No newline at end of file diff --git a/src/com/pms/service/BatchService.java b/src/com/pms/service/BatchService.java index 8c49553..778f20a 100644 --- a/src/com/pms/service/BatchService.java +++ b/src/com/pms/service/BatchService.java @@ -1508,9 +1508,9 @@ public class BatchService extends BaseService { // 회사코드 고정값 String coCd = "1000"; - // DB에서 가져온 ERP 연동 필드 - String unitDc = CommonUtils.checkNull(part.get("unit_dc")); - String unitmangDc = CommonUtils.checkNull(part.get("unitmang_dc")); + // DB에서 가져온 ERP 연동 필드 (code_name으로 변환된 값 사용) + String unitDc = CommonUtils.checkNull(part.get("unit_dc_nm")); + String unitmangDc = CommonUtils.checkNull(part.get("unitmang_dc_nm")); String unitchngNbStr = CommonUtils.checkNull(part.get("unitchng_nb")); int unitchngNb = 0; try { @@ -1540,7 +1540,7 @@ public class BatchService extends BaseService { } // ERP로 전송 - String response = partErpClient.sendPartToErp(baseUrl, coCd, itemCd, itemNm,itemDc, + String response = partErpClient.sendPartToErp(baseUrl, coCd, itemCd, itemNm, itemDc, acctFg, odrFg, unitDc, unitmangDc, unitchngNb, lotFg, qcFg, reqFg, setitemFg, useYn); // 응답 확인 @@ -1616,9 +1616,9 @@ public class BatchService extends BaseService { // 회사코드 고정값 String coCd = "1000"; - // DB에서 가져온 ERP 연동 필드 - String unitDc = CommonUtils.checkNull(part.get("unit_dc")); - String unitmangDc = CommonUtils.checkNull(part.get("unitmang_dc")); + // DB에서 가져온 ERP 연동 필드 (code_name으로 변환된 값 사용) + String unitDc = CommonUtils.checkNull(part.get("unit_dc_nm")); + String unitmangDc = CommonUtils.checkNull(part.get("unitmang_dc_nm")); String unitchngNbStr = CommonUtils.checkNull(part.get("unitchng_nb")); int unitchngNb = 0; try { @@ -1804,31 +1804,54 @@ public class BatchService extends BaseService { return result; } - // DB에서 가져온 값 + // DB에서 가져온 값 String itemCd = CommonUtils.checkNull(part.get("part_no")); String itemNm = CommonUtils.checkNull(part.get("part_name")); String acctFg = CommonUtils.checkNull(part.get("acctfg")); String odrFg = CommonUtils.checkNull(part.get("odrfg")); String itemDc = CommonUtils.checkNull(part.get("spec")); - - // 하드코딩 고정값 - String coCd = "1000"; // 회사코드 - String unitDc = "1"; // 단위 - String unitmangDc = "1"; // 단위관리 - int unitchngNb = 1; // 단위변환 - String lotFg = "0"; // LOT구분 - String qcFg = "0"; // 검사구분 - String reqFg = "0"; // 청구구분 - String setitemFg = "0"; // 세트품목구분 - String useYn = "1"; // 사용여부 - + + String coCd = "1000"; + // DB에서 가져온 ERP 연동 필드 (code_name으로 변환된 값 사용) + String unitDc = CommonUtils.checkNull(part.get("unit_dc_nm")); + String unitmangDc = CommonUtils.checkNull(part.get("unitmang_dc_nm")); + String unitchngNbStr = CommonUtils.checkNull(part.get("unitchng_nb")); + int unitchngNb = 0; + try { + if (!unitchngNbStr.isEmpty()) { + unitchngNb = (int) Double.parseDouble(unitchngNbStr); + } + } catch (Exception e) { + // 변환 실패 시 0 유지 + } + String lotFg = CommonUtils.checkNull(part.get("lot_fg")); + String qcFg = CommonUtils.checkNull(part.get("qc_fg")); + String reqFg = CommonUtils.checkNull(part.get("req_fg")); + String setitemFg = CommonUtils.checkNull(part.get("setitem_fg")); + String useYn = CommonUtils.checkNull(part.get("use_yn")); + // 필수값 체크 if (itemCd.isEmpty() || itemNm.isEmpty()) { result.put("success", false); result.put("message", "품번 또는 품명이 없습니다."); return result; } - + if (acctFg.isEmpty() || odrFg.isEmpty()) { + result.put("success", false); + result.put("message", "계정구분 또는 조달구분이 없습니다."); + return result; + } + if (unitDc.isEmpty() || unitmangDc.isEmpty() || unitchngNb == 0) { + result.put("success", false); + result.put("message", "재고단위, 관리단위, 환산수량이 없습니다."); + return result; + } + if (lotFg.isEmpty() || qcFg.isEmpty() || reqFg.isEmpty() || setitemFg.isEmpty() || useYn.isEmpty()) { + result.put("success", false); + result.put("message", "LOT구분, 검사여부, 의뢰여부, SET품여부, 사용여부가 없습니다."); + return result; + } + // ERP로 수정 전송 PartErpUpdateApiClient updateClient = new PartErpUpdateApiClient(); String response = updateClient.updatePartToErp(baseUrl, coCd, itemCd, itemNm, itemDc, @@ -1887,16 +1910,7 @@ public class BatchService extends BaseService { int failCount = 0; StringBuilder errorMessages = new StringBuilder(); - // 하드코딩 고정값 - String coCd = "1000"; - String unitDc = "1"; - String unitmangDc = "1"; - int unitchngNb = 1; - String lotFg = "0"; - String qcFg = "0"; - String reqFg = "0"; - String setitemFg = "0"; - String useYn = "1"; + String coCd = "1000"; PartErpUpdateApiClient updateClient = new PartErpUpdateApiClient(); @@ -1910,6 +1924,23 @@ public class BatchService extends BaseService { String acctFg = CommonUtils.checkNull(part.get("acctfg")); String odrFg = CommonUtils.checkNull(part.get("odrfg")); String itemDc = CommonUtils.checkNull(part.get("spec")); + // DB에서 가져온 ERP 연동 필드 (code_name으로 변환된 값 사용) + String unitDc = CommonUtils.checkNull(part.get("unit_dc_nm")); + String unitmangDc = CommonUtils.checkNull(part.get("unitmang_dc_nm")); + String unitchngNbStr = CommonUtils.checkNull(part.get("unitchng_nb")); + int unitchngNb = 0; + try { + if (!unitchngNbStr.isEmpty()) { + unitchngNb = (int) Double.parseDouble(unitchngNbStr); + } + } catch (Exception ex) { + // 변환 실패 시 0 유지 + } + String lotFg = CommonUtils.checkNull(part.get("lot_fg")); + String qcFg = CommonUtils.checkNull(part.get("qc_fg")); + String reqFg = CommonUtils.checkNull(part.get("req_fg")); + String setitemFg = CommonUtils.checkNull(part.get("setitem_fg")); + String useYn = CommonUtils.checkNull(part.get("use_yn")); // 100건마다 진행 상황 출력 if ((i + 1) % 100 == 0) { @@ -1917,14 +1948,16 @@ public class BatchService extends BaseService { } // 필수값 체크 - if (itemCd.isEmpty() || itemNm.isEmpty()) { + if (itemCd.isEmpty() || itemNm.isEmpty() || acctFg.isEmpty() || odrFg.isEmpty() || + unitDc.isEmpty() || unitmangDc.isEmpty() || unitchngNb == 0 || + lotFg.isEmpty() || qcFg.isEmpty() || reqFg.isEmpty() || setitemFg.isEmpty() || useYn.isEmpty()) { failCount++; if (failCount <= 5) { - errorMessages.append(itemCd).append(": 품번 또는 품명이 없습니다.\n"); + errorMessages.append(itemCd).append(": 필수값이 없습니다.\n"); } continue; } - + // ERP로 수정 전송 String response = updateClient.updatePartToErp(baseUrl, coCd, itemCd, itemNm, itemDc, acctFg, odrFg, unitDc, unitmangDc, unitchngNb, lotFg, qcFg, reqFg, setitemFg, useYn);