package foundation.ai.dao;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
|
import foundation.clean.CleanBucket;
|
import foundation.clean.CleanEngine;
|
import foundation.json.IJSONProvider;
|
import foundation.json.IJSONWriter;
|
import foundation.util.Util;
|
|
public class InvoiceVerificationDao implements IJSONProvider {
|
|
private String code;
|
private String number;
|
private String machineNo;
|
private String checkCode;
|
private String invoiceDate;
|
private String hasSellerList;
|
private String trafficFreeFlag;
|
private String typeCode;
|
private String buyerName;
|
private String buyerTaxCode;
|
private String buyerAddressPhone;
|
private String buyerBankAccount;
|
private String sellerName;
|
private String sellerTaxCode;
|
private String sellerBankAccount;
|
private String sellerAddressPhone;
|
private String sellerListTax;
|
private String amountWithTax;
|
private String amountWithoutTax;
|
private String amountTax;
|
private String bureauTax;
|
private String remark;
|
private String isAbandoned;
|
private InvoiceStatus invoiceStatus;
|
private boolean isReal;
|
private boolean isBill;
|
private boolean isDistinct;
|
private List<InvoiceVerificationDetailDao> items;
|
|
public void parse(JSONObject jsonObject) throws Exception {
|
code = jsonObject.getString("invoiceCode");
|
number = jsonObject.getString("invoiceNo");
|
machineNo = jsonObject.getString("machineNo");
|
checkCode = jsonObject.getString("checkCode");
|
invoiceDate = jsonObject.getString("invoiceDate");
|
typeCode = jsonObject.getString("invoiceType");
|
hasSellerList = jsonObject.getString("hasSellerList");
|
trafficFreeFlag = jsonObject.getString("trafficFreeFlag");
|
buyerName = jsonObject.getString("buyerName");
|
buyerTaxCode = jsonObject.getString("buyerTaxNo");
|
buyerAddressPhone = jsonObject.getString("buyerAddressPhone");
|
buyerBankAccount = jsonObject.getString("buyerAccount");
|
sellerName = jsonObject.getString("salerName");
|
sellerTaxCode = jsonObject.getString("salerTaxNo");
|
sellerBankAccount = jsonObject.getString("salerAccount");
|
sellerAddressPhone = jsonObject.getString("salerAddressPhone");
|
sellerListTax = jsonObject.getString("sellerListTax");
|
amountWithTax = jsonObject.getString("totalAmount");
|
amountWithoutTax = jsonObject.getString("amount");
|
amountTax = jsonObject.getString("taxAmount");
|
bureauTax = jsonObject.getString("bureauTax");
|
remark = jsonObject.getString("remark");
|
isDistinct = true;
|
|
isAbandoned = jsonObject.getString("cancelMark");
|
if(Util.isEmpty(isAbandoned)) {
|
isReal = false;
|
}else {
|
isReal = !Util.StringToBoolean(isAbandoned);
|
}
|
|
invoiceStatus = InvoiceStatus.parse(jsonObject.getString("invoiceStatus"));
|
String checkStatus = jsonObject.getString("checkStatus");
|
if("1".equalsIgnoreCase(checkStatus)) {
|
isBill = true;
|
}else {
|
isBill = Util.StringToBoolean(checkStatus);
|
}
|
|
|
JSONArray itemArray = jsonObject.getJSONArray("items");
|
items = new ArrayList<InvoiceVerificationDetailDao>();
|
if(itemArray == null || itemArray.size() <= 0 ) {
|
return ;
|
}
|
|
for(int i=0; i < itemArray.size(); i++){
|
JSONObject oneDetail = itemArray.getJSONObject(i);
|
InvoiceVerificationDetailDao detail = new InvoiceVerificationDetailDao();
|
detail.parse(oneDetail);
|
|
CleanBucket cleanBucket = CleanBucket.getInstance();
|
CleanEngine cleanEngine = cleanBucket.get("product_name_clean");
|
String productName = cleanEngine.modify(detail.getName());
|
if(Util.isEmpty(productName)) {
|
continue;
|
}
|
items.add(detail);
|
}
|
}
|
|
|
public InvoiceVerificationDao(InvoiceStatus invoiceStatus) {
|
super();
|
this.invoiceStatus = invoiceStatus;
|
}
|
|
|
public String getCode() {
|
return code;
|
}
|
|
|
public void setCode(String code) {
|
this.code = code;
|
}
|
|
|
public String getNumber() {
|
return number;
|
}
|
|
|
public void setNumber(String number) {
|
this.number = number;
|
}
|
|
|
public String getMachineNo() {
|
return machineNo;
|
}
|
|
|
public void setMachineNo(String machineNo) {
|
this.machineNo = machineNo;
|
}
|
|
|
public String getCheckCode() {
|
return checkCode;
|
}
|
|
|
public void setCheckCode(String checkCode) {
|
this.checkCode = checkCode;
|
}
|
|
|
public String getInvoiceDate() {
|
return invoiceDate;
|
}
|
|
|
public void setInvoiceDate(String invoiceDate) {
|
this.invoiceDate = invoiceDate;
|
}
|
|
|
public String getHasSellerList() {
|
return hasSellerList;
|
}
|
|
|
public void setHasSellerList(String hasSellerList) {
|
this.hasSellerList = hasSellerList;
|
}
|
|
|
public String getTrafficFreeFlag() {
|
return trafficFreeFlag;
|
}
|
|
|
public void setTrafficFreeFlag(String trafficFreeFlag) {
|
this.trafficFreeFlag = trafficFreeFlag;
|
}
|
|
|
public String getTypeCode() {
|
return typeCode;
|
}
|
|
|
public void setTypeCode(String typeCode) {
|
this.typeCode = typeCode;
|
}
|
|
|
public String getBuyerName() {
|
return buyerName;
|
}
|
|
|
public void setBuyerName(String buyerName) {
|
this.buyerName = buyerName;
|
}
|
|
|
public String getBuyerTaxCode() {
|
return buyerTaxCode;
|
}
|
|
|
public void setBuyerTaxCode(String buyerTaxCode) {
|
this.buyerTaxCode = buyerTaxCode;
|
}
|
|
|
public String getBuyerAddressPhone() {
|
return buyerAddressPhone;
|
}
|
|
|
public void setBuyerAddressPhone(String buyerAddressPhone) {
|
this.buyerAddressPhone = buyerAddressPhone;
|
}
|
|
|
public String getBuyerBankAccount() {
|
return buyerBankAccount;
|
}
|
|
|
public void setBuyerBankAccount(String buyerBankAccount) {
|
this.buyerBankAccount = buyerBankAccount;
|
}
|
|
|
public String getSellerName() {
|
return sellerName;
|
}
|
|
|
public void setSellerName(String sellerName) {
|
this.sellerName = sellerName;
|
}
|
|
|
public String getSellerTaxCode() {
|
return sellerTaxCode;
|
}
|
|
|
public void setSellerTaxCode(String sellerTaxCode) {
|
this.sellerTaxCode = sellerTaxCode;
|
}
|
|
|
public String getSellerBankAccount() {
|
return sellerBankAccount;
|
}
|
|
|
public void setSellerBankAccount(String sellerBankAccount) {
|
this.sellerBankAccount = sellerBankAccount;
|
}
|
|
|
public String getSellerAddressPhone() {
|
return sellerAddressPhone;
|
}
|
|
|
public void setSellerAddressPhone(String sellerAddressPhone) {
|
this.sellerAddressPhone = sellerAddressPhone;
|
}
|
|
|
public String getSellerListTax() {
|
return sellerListTax;
|
}
|
|
|
public void setSellerListTax(String sellerListTax) {
|
this.sellerListTax = sellerListTax;
|
}
|
|
|
public String getAmountWithTax() {
|
return amountWithTax;
|
}
|
|
|
public void setAmountWithTax(String amountWithTax) {
|
this.amountWithTax = amountWithTax;
|
}
|
|
|
public String getAmountWithoutTax() {
|
return amountWithoutTax;
|
}
|
|
|
public void setAmountWithoutTax(String amountWithoutTax) {
|
this.amountWithoutTax = amountWithoutTax;
|
}
|
|
|
public String getAmountTax() {
|
return amountTax;
|
}
|
|
|
public void setAmountTax(String amountTax) {
|
this.amountTax = amountTax;
|
}
|
|
|
public String getBureauTax() {
|
return bureauTax;
|
}
|
|
|
public void setBureauTax(String bureauTax) {
|
this.bureauTax = bureauTax;
|
}
|
|
|
public String getRemark() {
|
return remark;
|
}
|
|
|
public void setRemark(String remark) {
|
this.remark = remark;
|
}
|
|
|
public String getIsAbandoned() {
|
return isAbandoned;
|
}
|
|
|
public void setIsAbandoned(String isAbandoned) {
|
this.isAbandoned = isAbandoned;
|
}
|
|
public InvoiceStatus getInvoiceStatus() {
|
return invoiceStatus;
|
}
|
|
public void setInvoiceStatus(InvoiceStatus invoiceStatus) {
|
this.invoiceStatus = invoiceStatus;
|
}
|
|
public boolean isReal() {
|
return isReal;
|
}
|
|
public void setReal(boolean isReal) {
|
this.isReal = isReal;
|
}
|
|
public boolean isBill() {
|
return isBill;
|
}
|
|
public void setBill(boolean isBill) {
|
this.isBill = isBill;
|
}
|
|
public boolean isDistinct() {
|
return isDistinct;
|
}
|
|
public void setDistinct(boolean isDistinct) {
|
this.isDistinct = isDistinct;
|
}
|
|
public List<InvoiceVerificationDetailDao> getItems() {
|
return items;
|
}
|
|
public void setItems(List<InvoiceVerificationDetailDao> items) {
|
this.items = items;
|
}
|
|
@Override
|
public void writeJSON(IJSONWriter writer) {
|
writer.beginObject();
|
|
writer.write("code", code);
|
writer.write("number", number);
|
writer.write("machine_no", machineNo);
|
writer.write("check_code", checkCode);
|
writer.write("invoice_date", invoiceDate);
|
writer.write("has_seller_list", hasSellerList);
|
writer.write("traffic_free_flag", trafficFreeFlag);
|
writer.write("type_code", typeCode);
|
writer.write("buyer_name", buyerName);
|
writer.write("buyer_taxcode", buyerTaxCode);
|
writer.write("buyer_address_phone", buyerAddressPhone);
|
writer.write("buyer_bank_account", buyerBankAccount);
|
writer.write("seller_name", sellerName);
|
writer.write("seller_taxcode", sellerTaxCode);
|
writer.write("seller_address_phone", sellerAddressPhone);
|
writer.write("seller_bank_account", sellerBankAccount);
|
writer.write("seller_list_tax", sellerListTax);
|
writer.write("amount_with_tax", amountWithTax);
|
writer.write("amount_without_tax", amountWithoutTax);
|
writer.write("amount_tax", amountTax);
|
writer.write("bureau_tax", bureauTax);
|
writer.write("remark", remark);
|
writer.write("is_abandoned", isAbandoned);
|
writer.write("is_real", isReal);
|
writer.write("is_bill", isBill);
|
writer.write("invoice_status", invoiceStatus.name());
|
writer.write("is_distinct", isDistinct);
|
|
writer.beginArray("invoiceDetailList");
|
if(items != null && items.size() > 0 ) {
|
|
for (InvoiceVerificationDetailDao detail : items) {
|
detail.writeJSON(writer);
|
}
|
}
|
writer.endArray();
|
|
writer.endObject();
|
}
|
|
|
|
}
|