|
|
|
|
@ -3,12 +3,16 @@ package cokr.xit.interfaces.postplus.post;
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.FileInputStream;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
import cokr.xit.foundation.AbstractComponent;
|
|
|
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
|
import cokr.xit.foundation.data.Named;
|
|
|
|
|
import cokr.xit.interfaces.postplus.Postplus;
|
|
|
|
|
import lombok.Getter;
|
|
|
|
|
import lombok.Setter;
|
|
|
|
|
import lombok.experimental.Accessors;
|
|
|
|
|
|
|
|
|
|
/**우편제작 신청 정보
|
|
|
|
|
* @author mjkhan
|
|
|
|
|
@ -17,6 +21,9 @@ public class PstMsr extends AbstractComponent {
|
|
|
|
|
/**우편제작 신청 마스터 정보
|
|
|
|
|
* @author mjkhan
|
|
|
|
|
*/
|
|
|
|
|
@Getter
|
|
|
|
|
@Setter
|
|
|
|
|
@Accessors(chain = true)
|
|
|
|
|
public static class Master {
|
|
|
|
|
private static final List<String> cols = List.of(new String[] {
|
|
|
|
|
"버전", "테스트여부", "서비스", "연계식별키", "봉투",
|
|
|
|
|
@ -77,236 +84,21 @@ public class PstMsr extends AbstractComponent {
|
|
|
|
|
/** 발송인전화번호 */
|
|
|
|
|
private String senderPhoneNo;
|
|
|
|
|
|
|
|
|
|
/**버전을 설정한다.
|
|
|
|
|
* @param version 버전
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setVersion(String version) {
|
|
|
|
|
this.version = version;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**테스트 여부를 설정한다.
|
|
|
|
|
* @param testYN 테스트 여부
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setTestYN(String testYN) {
|
|
|
|
|
this.testYN = testYN;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**서비스를 설정한다.
|
|
|
|
|
* @param service 서비스
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setService(String service) {
|
|
|
|
|
this.service = service;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**연계식별키를 설정한다.
|
|
|
|
|
* @param intfID 연계식별키
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setIntfID(String intfID) {
|
|
|
|
|
this.intfID = intfID;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**봉투를 설정한다.
|
|
|
|
|
* @param envelop 봉투
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setEnvelop(String envelop) {
|
|
|
|
|
this.envelop = envelop;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**봉투창을 설정한다.
|
|
|
|
|
* @param envelopWindow 봉투창
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setEnvelopWindow(String envelopWindow) {
|
|
|
|
|
this.envelopWindow = envelopWindow;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**흑백칼라를 설정한다.
|
|
|
|
|
* @param bwColor 흑백칼라
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setBwColor(String bwColor) {
|
|
|
|
|
this.bwColor = bwColor;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**단면양면을 설정한다.
|
|
|
|
|
* @param faceType 단면양면
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setFaceType(String faceType) {
|
|
|
|
|
this.faceType = faceType;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**배달을 설정한다.
|
|
|
|
|
* @param delivery 배달
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setDelivery(String delivery) {
|
|
|
|
|
this.delivery = delivery;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**템플릿코드를 설정한다.
|
|
|
|
|
* @param templateCode 템플릿코드
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setTemplateCode(String templateCode) {
|
|
|
|
|
this.templateCode = templateCode;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**템플릿출력여부를 설정한다.
|
|
|
|
|
* @param templatePrint 템플릿출력여부
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setTemplatePrint(String templatePrint) {
|
|
|
|
|
this.templatePrint = templatePrint;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수취인수를 설정한다.
|
|
|
|
|
* @param recipientCount 수취인수
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setRecipientCount(String recipientCount) {
|
|
|
|
|
this.recipientCount = recipientCount;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**여백생성유무를 설정한다.
|
|
|
|
|
* @param marginYN 여백생성유무
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setMarginYN(String marginYN) {
|
|
|
|
|
this.marginYN = marginYN;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**주소페이지유무를 설정한다.
|
|
|
|
|
* @param addressPageYN 주소페이지유무
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setAddressPageYN(String addressPageYN) {
|
|
|
|
|
this.addressPageYN = addressPageYN;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**맞춤자제유무를 설정한다.
|
|
|
|
|
* @param orderYN 맞춤자제유무
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setOrderYN(String orderYN) {
|
|
|
|
|
this.orderYN = orderYN;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**메일머지유무를 설정한다.
|
|
|
|
|
* @param mailMergeYN 메일머지유무
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setMailMergeYN(String mailMergeYN) {
|
|
|
|
|
this.mailMergeYN = mailMergeYN;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**동봉물유무를 설정한다.
|
|
|
|
|
* @param enclosedYN 동봉물유무
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setEnclosedYN(String enclosedYN) {
|
|
|
|
|
this.enclosedYN = enclosedYN;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**반송여부를 설정한다.
|
|
|
|
|
* @param returnYN 반송여부
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setReturnYN(String returnYN) {
|
|
|
|
|
this.returnYN = returnYN;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**스테이플러유무를 설정한다.
|
|
|
|
|
* @param staplerYN 스테이플러유무
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setStaplerYN(String staplerYN) {
|
|
|
|
|
this.staplerYN = staplerYN;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**로고파일을 설정한다.
|
|
|
|
|
* @param logoFile 로고파일
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setLogoFile(String logoFile) {
|
|
|
|
|
this.logoFile = logoFile;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**발송인명을 설정한다.
|
|
|
|
|
* @param senderName 발송인명
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setSenderName(String senderName) {
|
|
|
|
|
this.senderName = senderName;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**발송인우편번호를 설정한다.
|
|
|
|
|
* @param senderZipcode 발송인우편번호
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setSenderZipcode(String senderZipcode) {
|
|
|
|
|
this.senderZipcode = senderZipcode;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**발송인주소를 설정한다.
|
|
|
|
|
* @param senderAddress 발송인주소
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setSenderAddress(String senderAddress) {
|
|
|
|
|
this.senderAddress = senderAddress;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**발송인상세주소를 설정한다.
|
|
|
|
|
* @param senderDetailAddress 발송인상세주소
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
/**마스터 정보를 신청 포맷으로 변환한다.
|
|
|
|
|
* @return 마스터 정보의 신청 포맷
|
|
|
|
|
*/
|
|
|
|
|
public Master setSenderDetailAddress(String senderDetailAddress) {
|
|
|
|
|
this.senderDetailAddress = senderDetailAddress;
|
|
|
|
|
return this;
|
|
|
|
|
public DataObject toRequest() {
|
|
|
|
|
return new DataObject()
|
|
|
|
|
.set("cols", toCols())
|
|
|
|
|
.set("rows", toRows());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**발송인전화번호를 설정한다.
|
|
|
|
|
* @param senderPhoneNo 발송인전화번호
|
|
|
|
|
* @return 현재 Master
|
|
|
|
|
*/
|
|
|
|
|
public Master setSenderPhoneNo(String senderPhoneNo) {
|
|
|
|
|
this.senderPhoneNo = senderPhoneNo;
|
|
|
|
|
return this;
|
|
|
|
|
protected List<String> toCols() {
|
|
|
|
|
return cols;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**마스터 정보를 신청 포맷으로 변환한다.
|
|
|
|
|
* @return 마스터 정보의 신청 포맷
|
|
|
|
|
*/
|
|
|
|
|
public DataObject toRequest() {
|
|
|
|
|
List<String> row = List.of(new String[] {
|
|
|
|
|
protected List<String> toRows() {
|
|
|
|
|
return List.of(new String[] {
|
|
|
|
|
ifEmpty(version, Postplus.get()::getVersion),
|
|
|
|
|
ifEmpty(testYN, Postplus.get()::getTest),
|
|
|
|
|
ifEmpty(service, Postplus.Service.PST::getCode),
|
|
|
|
|
@ -333,31 +125,39 @@ public class PstMsr extends AbstractComponent {
|
|
|
|
|
blankIfEmpty(senderDetailAddress),
|
|
|
|
|
blankIfEmpty(senderPhoneNo)
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return new DataObject()
|
|
|
|
|
.set("cols", cols)
|
|
|
|
|
.set("rows", row);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**우편제작 신청 상세정보
|
|
|
|
|
* @author mjkhan
|
|
|
|
|
*/
|
|
|
|
|
@Getter
|
|
|
|
|
@Setter
|
|
|
|
|
@Accessors(chain = true)
|
|
|
|
|
public static class Detail {
|
|
|
|
|
private static final List<String> cols = List.of(new String[] {
|
|
|
|
|
"순번", "이름", "우편번호", "주소", "상세주소",
|
|
|
|
|
"전화번호", "첨부파일", "가변1", "가변2", "가변3", "가변4"
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
protected List<String> toCols() {
|
|
|
|
|
return cols;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static DataObject toRequest(List<Detail> details) {
|
|
|
|
|
DataObject req = new DataObject();
|
|
|
|
|
if (isEmpty(details)) return req;
|
|
|
|
|
|
|
|
|
|
Detail first = details.get(0);
|
|
|
|
|
req.set("cols", first.toCols());
|
|
|
|
|
List<List<String>> rows = details.stream()
|
|
|
|
|
.map(Detail::toRow)
|
|
|
|
|
.toList();
|
|
|
|
|
return new DataObject()
|
|
|
|
|
.set("cols", cols)
|
|
|
|
|
.set("rows", rows);
|
|
|
|
|
return req.set("rows", rows);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 연계식별키 */
|
|
|
|
|
private String intfID;
|
|
|
|
|
/** 순번 */
|
|
|
|
|
private String seq;
|
|
|
|
|
/** 이름 */
|
|
|
|
|
@ -381,109 +181,10 @@ public class PstMsr extends AbstractComponent {
|
|
|
|
|
/** 가변4 */
|
|
|
|
|
private String variableContent4;
|
|
|
|
|
|
|
|
|
|
/**순번을 설정한다.
|
|
|
|
|
* @param seq 순번
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setSeq(String seq) {
|
|
|
|
|
this.seq = seq;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**이름을 설정한다.
|
|
|
|
|
* @param name 이름
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setName(String name) {
|
|
|
|
|
this.name = name;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**우편번호를 설정한다.
|
|
|
|
|
* @param zipcode 우편번호
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setZipcode(String zipcode) {
|
|
|
|
|
this.zipcode = zipcode;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**주소를 설정한다.
|
|
|
|
|
* @param address 주소
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setAddress(String address) {
|
|
|
|
|
this.address = address;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**상세주소를 설정한다.
|
|
|
|
|
* @param detailAddress 상세주소
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setDetailAddress(String detailAddress) {
|
|
|
|
|
this.detailAddress = detailAddress;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**전화번호를 설정한다.
|
|
|
|
|
* @param phoneNo 전화번호
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setPhoneNo(String phoneNo) {
|
|
|
|
|
this.phoneNo = phoneNo;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**첨부파일을 설정한다.
|
|
|
|
|
* @param attachment 첨부파일
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setAttachment(String attachment) {
|
|
|
|
|
this.attachment = attachment;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**가변1을 설정한다.
|
|
|
|
|
* @param variableContent1 가변1
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setVariableContent1(String variableContent1) {
|
|
|
|
|
this.variableContent1 = variableContent1;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**가변2를 설정한다.
|
|
|
|
|
* @param variableContent2 가변2
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setVariableContent2(String variableContent2) {
|
|
|
|
|
this.variableContent2 = variableContent2;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**가변3을 설정한다.
|
|
|
|
|
* @param variableContent3 가변3
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setVariableContent3(String variableContent3) {
|
|
|
|
|
this.variableContent3 = variableContent3;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**가변4를 설정한다.
|
|
|
|
|
* @param variableContent4 가변4
|
|
|
|
|
* @return 현재 Detail
|
|
|
|
|
*/
|
|
|
|
|
public Detail setVariableContent4(String variableContent4) {
|
|
|
|
|
this.variableContent4 = variableContent4;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**상세정보를 신청포맷으로 변환한다.
|
|
|
|
|
* @return 상세정보의 신청포맷
|
|
|
|
|
*/
|
|
|
|
|
public List<String> toRow() {
|
|
|
|
|
protected List<String> toRow() {
|
|
|
|
|
return List.of(new String[] {
|
|
|
|
|
blankIfEmpty(seq),
|
|
|
|
|
blankIfEmpty(name),
|
|
|
|
|
@ -516,6 +217,10 @@ public class PstMsr extends AbstractComponent {
|
|
|
|
|
private List<Detail> details;
|
|
|
|
|
private PostResponse result;
|
|
|
|
|
|
|
|
|
|
public Master getMaster() {
|
|
|
|
|
return master;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**우편제작 신청 마스터정보를 설정한다.
|
|
|
|
|
* @param master 우편제작 신청 마스터정보
|
|
|
|
|
* @return 현재 PstMsr
|
|
|
|
|
@ -525,14 +230,22 @@ public class PstMsr extends AbstractComponent {
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<Detail> getDetails() {
|
|
|
|
|
return ifEmpty(details, Collections::emptyList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**우편제작 신청 상세정보를 설정한다.
|
|
|
|
|
* @param details 우편제작 신청 상세정보
|
|
|
|
|
* @return 현재 PstMsr
|
|
|
|
|
*/
|
|
|
|
|
public PstMsr setDetails(List<Detail> details) {
|
|
|
|
|
int size = details != null ? details.size() : 0;
|
|
|
|
|
for (int i = 0; i < size; ++i)
|
|
|
|
|
details.get(i).setSeq(Integer.toString(i + 1));
|
|
|
|
|
String intfID = master.getIntfID();
|
|
|
|
|
for (int i = 0; i < size; ++i) {
|
|
|
|
|
details.get(i)
|
|
|
|
|
.setIntfID(intfID)
|
|
|
|
|
.setSeq(Integer.toString(i + 1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.details = details;
|
|
|
|
|
return this;
|
|
|
|
|
|