API 수정
This commit is contained in:
@@ -22,6 +22,8 @@ import com.pms.api.DepartmentApiClient;
|
||||
import com.pms.api.EmployeeApiClient;
|
||||
import com.pms.api.WarehouseApiClient;
|
||||
import com.pms.api.PartErpApiClient;
|
||||
import com.pms.api.PartErpDeleteApiClient;
|
||||
import com.pms.api.PartErpUpdateApiClient;
|
||||
import com.pms.common.Message;
|
||||
import com.pms.common.SqlMapConfig;
|
||||
import com.pms.common.bean.PersonBean;
|
||||
@@ -1021,6 +1023,7 @@ public class BatchService extends BaseService {
|
||||
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"; // 회사코드
|
||||
@@ -1045,7 +1048,7 @@ public class BatchService extends BaseService {
|
||||
}
|
||||
|
||||
// ERP로 전송
|
||||
String response = partErpClient.sendPartToErp(baseUrl, coCd, itemCd, itemNm,
|
||||
String response = partErpClient.sendPartToErp(baseUrl, coCd, itemCd, itemNm,itemDc,
|
||||
acctFg, odrFg, unitDc, unitmangDc, unitchngNb, lotFg, qcFg, reqFg, setitemFg, useYn);
|
||||
|
||||
// 응답 확인
|
||||
@@ -1112,34 +1115,35 @@ public class BatchService extends BaseService {
|
||||
return result;
|
||||
}
|
||||
|
||||
// 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 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"; // 사용여부
|
||||
|
||||
// 필수값 체크
|
||||
if (itemCd.isEmpty() || itemNm.isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "품번 또는 품명이 없습니다.");
|
||||
return result;
|
||||
}
|
||||
|
||||
// ERP로 전송
|
||||
PartErpApiClient partErpClient = new PartErpApiClient();
|
||||
String response = partErpClient.sendPartToErp(baseUrl, coCd, itemCd, itemNm,
|
||||
acctFg, odrFg, unitDc, unitmangDc, unitchngNb, lotFg, qcFg, reqFg, setitemFg, useYn);
|
||||
// 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"; // 사용여부
|
||||
|
||||
// 필수값 체크
|
||||
if (itemCd.isEmpty() || itemNm.isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "품번 또는 품명이 없습니다.");
|
||||
return result;
|
||||
}
|
||||
|
||||
// ERP로 전송
|
||||
PartErpApiClient partErpClient = new PartErpApiClient();
|
||||
String response = partErpClient.sendPartToErp(baseUrl, coCd, itemCd, itemNm, itemDc,
|
||||
acctFg, odrFg, unitDc, unitmangDc, unitchngNb, lotFg, qcFg, reqFg, setitemFg, useYn);
|
||||
|
||||
// 응답 확인
|
||||
if (response.contains("\"resultCode\":0") || response.contains("\"resultCode\":\"0\"")) {
|
||||
@@ -1200,6 +1204,236 @@ public class BatchService extends BaseService {
|
||||
|
||||
return "0"; // 기본값: 구매
|
||||
}
|
||||
|
||||
/*
|
||||
// ERP에서 PART 정보 삭제 (주석처리: ERP 전송된 데이터는 삭제하면 안됨)
|
||||
public Map<String, Object> deletePartFromErp(String partNo) {
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
|
||||
try {
|
||||
String baseUrl = "https://erp.rps-korea.com";
|
||||
String coCd = "1000";
|
||||
|
||||
if (partNo == null || partNo.trim().isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "품번이 없습니다.");
|
||||
return result;
|
||||
}
|
||||
|
||||
// ERP에서 삭제
|
||||
PartErpDeleteApiClient deleteClient = new PartErpDeleteApiClient();
|
||||
String response = deleteClient.deletePartFromErp(baseUrl, coCd, partNo);
|
||||
|
||||
// 응답 확인
|
||||
if (response.contains("\"resultCode\":0") || response.contains("\"resultCode\":\"0\"")) {
|
||||
result.put("success", true);
|
||||
result.put("message", "PART 정보가 ERP에서 삭제되었습니다.");
|
||||
System.out.println("ERP PART 삭제 성공: " + partNo);
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "ERP 삭제 실패: " + response);
|
||||
System.err.println("ERP PART 삭제 실패: " + partNo + " - " + response);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "PART 삭제 중 오류가 발생했습니다: " + e.getMessage());
|
||||
System.err.println("PART 삭제 오류: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* ERP에 PART 단건 수정
|
||||
* @param partObjid PART OBJID
|
||||
* @return 성공 여부 Map
|
||||
*/
|
||||
public Map<String, Object> updatePartToErp(String partObjid) {
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
||||
|
||||
try {
|
||||
String baseUrl = "https://erp.rps-korea.com";
|
||||
|
||||
// DB에서 PART 정보 조회
|
||||
Map<String, Object> paramMap = new HashMap<String, Object>();
|
||||
paramMap.put("objid", partObjid);
|
||||
Map<String, Object> part = sqlSession.selectOne("partMng.selectPartByObjid", paramMap);
|
||||
|
||||
if (part == null) {
|
||||
result.put("success", false);
|
||||
result.put("message", "PART 정보를 찾을 수 없습니다.");
|
||||
return result;
|
||||
}
|
||||
|
||||
// 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"; // 사용여부
|
||||
|
||||
// 필수값 체크
|
||||
if (itemCd.isEmpty() || itemNm.isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "품번 또는 품명이 없습니다.");
|
||||
return result;
|
||||
}
|
||||
|
||||
// ERP로 수정 전송
|
||||
PartErpUpdateApiClient updateClient = new PartErpUpdateApiClient();
|
||||
String response = updateClient.updatePartToErp(baseUrl, coCd, itemCd, itemNm, itemDc,
|
||||
acctFg, odrFg, unitDc, unitmangDc, unitchngNb, lotFg, qcFg, reqFg, setitemFg, useYn);
|
||||
|
||||
// 응답 확인
|
||||
if (response.contains("\"resultCode\":0") || response.contains("\"resultCode\":\"0\"")) {
|
||||
result.put("success", true);
|
||||
result.put("message", "PART 정보가 ERP에서 수정되었습니다.");
|
||||
System.out.println("ERP PART 단건 수정 성공: " + itemCd);
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "ERP 수정 실패: " + response);
|
||||
System.err.println("ERP PART 단건 수정 실패: " + itemCd + " - " + response);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "PART 수정 중 오류가 발생했습니다: " + e.getMessage());
|
||||
System.err.println("PART 단건 수정 오류: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* ERP에 모든 PART 전체 수정 (DB의 모든 release 상태 PART)
|
||||
* @return 성공 여부 Map
|
||||
*/
|
||||
public Map<String, Object> updateAllPartsToErp() {
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
||||
|
||||
try {
|
||||
String baseUrl = "https://erp.rps-korea.com";
|
||||
|
||||
System.out.println("====================================");
|
||||
System.out.println("전체 PART 정보 ERP 수정 시작");
|
||||
System.out.println("====================================");
|
||||
|
||||
// DB에서 모든 release 상태 PART 조회
|
||||
List<Map<String, Object>> partList = sqlSession.selectList("partMng.selectAllPartListForErp");
|
||||
|
||||
if (partList == null || partList.isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "수정할 PART가 없습니다.");
|
||||
return result;
|
||||
}
|
||||
|
||||
System.out.println("총 " + partList.size() + "건의 PART를 ERP에 수정 전송합니다.");
|
||||
|
||||
int successCount = 0;
|
||||
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";
|
||||
|
||||
PartErpUpdateApiClient updateClient = new PartErpUpdateApiClient();
|
||||
|
||||
for (int i = 0; i < partList.size(); i++) {
|
||||
Map<String, Object> part = partList.get(i);
|
||||
|
||||
try {
|
||||
// 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"));
|
||||
|
||||
// 100건마다 진행 상황 출력
|
||||
if ((i + 1) % 100 == 0) {
|
||||
System.out.println("진행 중: " + (i + 1) + "/" + partList.size() + " (성공: " + successCount + ", 실패: " + failCount + ")");
|
||||
}
|
||||
|
||||
// 필수값 체크
|
||||
if (itemCd.isEmpty() || itemNm.isEmpty()) {
|
||||
failCount++;
|
||||
if (failCount <= 5) {
|
||||
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);
|
||||
|
||||
// 응답 확인
|
||||
if (response.contains("\"resultCode\":0") || response.contains("\"resultCode\":\"0\"")) {
|
||||
successCount++;
|
||||
} else {
|
||||
failCount++;
|
||||
if (failCount <= 5) {
|
||||
errorMessages.append(itemCd).append(": ").append(response).append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
failCount++;
|
||||
if (failCount <= 5) {
|
||||
errorMessages.append(CommonUtils.checkNull(part.get("part_no"))).append(": ")
|
||||
.append(e.getMessage()).append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
result.put("success", true);
|
||||
result.put("message", "PART 전체 수정 완료 - 성공: " + successCount + "건, 실패: " + failCount + "건");
|
||||
if (errorMessages.length() > 0) {
|
||||
result.put("errors", errorMessages.toString());
|
||||
}
|
||||
|
||||
System.out.println("====================================");
|
||||
System.out.println("PART 전체 수정 완료 - 성공: " + successCount + "건, 실패: " + failCount + "건");
|
||||
System.out.println("====================================");
|
||||
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "PART 전체 수정 중 오류가 발생했습니다: " + e.getMessage());
|
||||
System.err.println("PART 전체 수정 오류: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user