본문으로 건너뛰기

13. Customer 서비스

client.customer() 으로 접근합니다. 고객(Customer)의 CRUD와 사이트별 조회를 제공합니다.

13.1 메서드 일람​

메서드반환 타입HTTP엔드포인트
create(CustomerRequestV5)CustomerResponseV5 또는 nullPOST/api/v5/customer
update(customer_id, CustomerRequestV5)CustomerResponseV5 또는 nullPUT/api/v5/customer/{id}
delete(customer_id)booleanDELETE/api/v5/customer/{id}
get(customer_id)CustomerResponseV5 또는 nullGET/api/v5/customer/{id}
list()List<CustomerResponseV5>GET/api/v5/customer
listBySite(site_id)List<CustomerResponseV5>GET/api/v5/customer?site_id=...
exists(customer_id)booleanGET/api/v5/customer/{id}/exists
count()longGET/api/v5/customer/count

13.2 CustomerRequestV5 / CustomerResponseV5​

필드타입설명
customer_idString고객 ID (PK)
customer_nameString고객명
site_idString소속 사이트
descriptionString설명
manager_nameString담당자명
manager_emailString담당자 이메일
manager_phoneString담당자 전화번호
external_systemString외부 시스템 이름(50자까지, 예: SAP) — external_id 와 쌍으로 식별한다. 시스템이 빈 ID 는 식별이 아니다
external_idString그 시스템 안의 고객 ID(100자까지). 쌍으로 찾기는 GET /api/v5/customer/by-external/{system}/{external_id}
company_codeString회사 코드
addressString주소

13.3 사용 예시​

고객 생성​

import plantpulse.api.v5.dto.request.CustomerRequestV5;
import plantpulse.api.v5.dto.response.CustomerResponseV5;

CustomerRequestV5 req = new CustomerRequestV5();
req.setCustomer_id("CUST_001");
req.setCustomer_name("삼성전자");
req.setSite_id("SITE_DJ");
req.setExternal_system("ERP");
req.setExternal_id("ERP_C001");
req.setCompany_code("SEC");
req.setAddress("경기도 수원시");
req.setManager_name("홍길동");
req.setManager_email("hong@example.com");
req.setManager_phone("01012345678");

CustomerResponseV5 created = client.customer().create(req);

조회 / 존재 확인​

CustomerResponseV5 c = client.customer().get("CUST_001");
boolean exists = client.customer().exists("CUST_001");
long total = client.customer().count();

전체 / 사이트별 목록​

import java.util.List;

List<CustomerResponseV5> all = client.customer().list();
List<CustomerResponseV5> djCusts = client.customer().listBySite("SITE_DJ");

수정 / 삭제​

CustomerRequestV5 update = new CustomerRequestV5();
update.setCustomer_id("CUST_001");
update.setCustomer_name("삼성전자 DS");
update.setSite_id("SITE_DJ");
// ... 변경할 필드 ...
client.customer().update("CUST_001", update);

client.customer().delete("CUST_001");

13.4 활용 시나리오​

시나리오 — ERP 고객 마스터 동기화​

// 1) ERP에서 가져온 고객 데이터
for (ErpCustomer erp : erpData) {
CustomerRequestV5 req = new CustomerRequestV5();
req.setCustomer_id("CUST_" + erp.code);
req.setCustomer_name(erp.name);
req.setExternal_system("ERP");
req.setExternal_id(erp.id);
req.setCompany_code(erp.companyCode);

if (client.customer().exists("CUST_" + erp.code)) {
client.customer().update("CUST_" + erp.code, req);
} else {
client.customer().create(req);
}
}

다음 단계​