소스 검색

b2b应收对账

chenw 7 년 전
부모
커밋
31ea935fdf
16개의 변경된 파일3472개의 추가작업 그리고 0개의 파일을 삭제
  1. 49 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckAmount.java
  2. 102 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckAmountDetail.java
  3. 360 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckInfo.java
  4. 126 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckProdIO.java
  5. 528 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckProdIODetail.java
  6. 152 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/CustApcheckData.java
  7. 725 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/Enterprise.java
  8. 103 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ProductIoGroup.java
  9. 363 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/PurchaseApCheck.java
  10. 429 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/PurchaseApCheckItem.java
  11. 120 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/SaveOperationData.java
  12. 200 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/SaveOperationDataDetail.java
  13. 128 0
      applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/UserBaseInfo.java
  14. 49 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/controller/SaleController.java
  15. 14 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/SaleService.java
  16. 24 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java

+ 49 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckAmount.java

@@ -0,0 +1,49 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/28
+ */
+public class ApCheckAmount implements Serializable {
+
+    /**
+     * 币别
+     */
+    private String currency;
+
+    /**
+     * 金额(字符串: 防止科学计数法)
+     */
+    private String amount;
+
+    /**
+     * 金额
+     */
+    private Double count;
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public String getAmount() {
+        return amount;
+    }
+
+    public void setAmount(String amount) {
+        this.amount = amount;
+    }
+
+    public Double getCount() {
+        return count;
+    }
+
+    public void setCount(Double count) {
+        this.count = count;
+    }
+}

+ 102 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckAmountDetail.java

@@ -0,0 +1,102 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+
+/**
+ * @Description 客户列表中ApCheckAmountDetail
+ * @Author chenwei
+ * @Date 2019/01/27
+ */
+public class ApCheckAmountDetail implements Serializable {
+
+    /**
+     * 币别
+     */
+    private String currency;
+
+    /**
+     * 本期应收
+     */
+    private String thisPeriodAmount;
+
+    /**
+     * 本期发货
+     */
+    private String thisPeriodSendQty;
+
+    /**
+     * 本期未对
+     */
+    private String thisPeriodTodoAmount;
+
+    /**
+     * 本期已对
+     */
+    private String thisPeriodDoneAmount;
+
+    /**
+     * 本期收款
+     */
+    private String thisPeriodReceipt;
+
+    /**
+     * 应收总额
+     */
+    private String totalAmount;
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public String getThisPeriodAmount() {
+        return thisPeriodAmount;
+    }
+
+    public void setThisPeriodAmount(String thisPeriodAmount) {
+        this.thisPeriodAmount = thisPeriodAmount;
+    }
+
+    public String getThisPeriodSendQty() {
+        return thisPeriodSendQty;
+    }
+
+    public void setThisPeriodSendQty(String thisPeriodSendQty) {
+        this.thisPeriodSendQty = thisPeriodSendQty;
+    }
+
+    public String getThisPeriodTodoAmount() {
+        return thisPeriodTodoAmount;
+    }
+
+    public void setThisPeriodTodoAmount(String thisPeriodTodoAmount) {
+        this.thisPeriodTodoAmount = thisPeriodTodoAmount;
+    }
+
+    public String getThisPeriodDoneAmount() {
+        return thisPeriodDoneAmount;
+    }
+
+    public void setThisPeriodDoneAmount(String thisPeriodDoneAmount) {
+        this.thisPeriodDoneAmount = thisPeriodDoneAmount;
+    }
+
+    public String getThisPeriodReceipt() {
+        return thisPeriodReceipt;
+    }
+
+    public void setThisPeriodReceipt(String thisPeriodReceipt) {
+        this.thisPeriodReceipt = thisPeriodReceipt;
+    }
+
+    public String getTotalAmount() {
+        return totalAmount;
+    }
+
+    public void setTotalAmount(String totalAmount) {
+        this.totalAmount = totalAmount;
+    }
+}

+ 360 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckInfo.java

@@ -0,0 +1,360 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/27
+ */
+public class ApCheckInfo implements Serializable {
+
+    private Long id;
+
+    /**
+     * 对账起始日期
+     */
+    private Date beginDate;
+
+    /**
+     * 对账截止日期
+     */
+    private Date endDate;
+
+    /**
+     * 录单日期
+     */
+    private Date recordDate;
+
+    /**
+     * 录单人
+     */
+    private String recorder;
+
+    /**
+     * 录单人UU
+     */
+    private Long recorderUU;
+
+    /**
+     * 应收日期
+     */
+    private Date apDate;
+
+    /**
+     * 对账状态
+     */
+    private String checkStatus;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 提交日期
+     */
+    private Date commitDate;
+
+    /**
+     * 作废日期
+     */
+    private Date resDate;
+
+    /**
+     * 作废人
+     */
+    private String resMan;
+
+    /**
+     * 上传状态
+     */
+    private Short status;
+
+    /**
+     * 对账总额
+     */
+    private Double checkAmount;
+
+    /**
+     * 币别
+     */
+    private String currency;
+
+    /**
+     * 汇率
+     */
+    private Double taxrate;
+
+    /**
+     * 汇率
+     */
+    private Double rate;
+
+    /**
+     * 收款方式
+     */
+    private String payments;
+
+    /**
+     * 客户UU
+     */
+    private Long custUu;
+
+    /**
+     * 客户名称
+     */
+    private String custName;
+
+    /**
+     * 供应商UU
+     */
+    private Long enUu;
+
+    /**
+     * 供应商名称
+     */
+    private String vendorName;
+
+    /**
+     * 单据编号
+     */
+    private String code;
+
+    /**
+     * 客户回复原因
+     */
+    private String custreply;
+
+    /**
+     * 打印次数
+     */
+    private Short print;
+
+    /**
+     * 不同意原因
+     */
+    private String reason;
+
+    /**
+     * 对账单明细行
+     */
+    private Set<PurchaseApCheckItem> items;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Date getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Date beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Date getRecordDate() {
+        return recordDate;
+    }
+
+    public void setRecordDate(Date recordDate) {
+        this.recordDate = recordDate;
+    }
+
+    public String getRecorder() {
+        return recorder;
+    }
+
+    public void setRecorder(String recorder) {
+        this.recorder = recorder;
+    }
+
+    public Long getRecorderUU() {
+        return recorderUU;
+    }
+
+    public void setRecorderUU(Long recorderUU) {
+        this.recorderUU = recorderUU;
+    }
+
+    public Date getApDate() {
+        return apDate;
+    }
+
+    public void setApDate(Date apDate) {
+        this.apDate = apDate;
+    }
+
+    public String getCheckStatus() {
+        return checkStatus;
+    }
+
+    public void setCheckStatus(String checkStatus) {
+        this.checkStatus = checkStatus;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Date getCommitDate() {
+        return commitDate;
+    }
+
+    public void setCommitDate(Date commitDate) {
+        this.commitDate = commitDate;
+    }
+
+    public Date getResDate() {
+        return resDate;
+    }
+
+    public void setResDate(Date resDate) {
+        this.resDate = resDate;
+    }
+
+    public String getResMan() {
+        return resMan;
+    }
+
+    public void setResMan(String resMan) {
+        this.resMan = resMan;
+    }
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+
+    public Double getCheckAmount() {
+        return checkAmount;
+    }
+
+    public void setCheckAmount(Double checkAmount) {
+        this.checkAmount = checkAmount;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Double getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Double taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public Double getRate() {
+        return rate;
+    }
+
+    public void setRate(Double rate) {
+        this.rate = rate;
+    }
+
+    public String getPayments() {
+        return payments;
+    }
+
+    public void setPayments(String payments) {
+        this.payments = payments;
+    }
+
+    public Long getCustUu() {
+        return custUu;
+    }
+
+    public void setCustUu(Long custUu) {
+        this.custUu = custUu;
+    }
+
+    public String getCustName() {
+        return custName;
+    }
+
+    public void setCustName(String custName) {
+        this.custName = custName;
+    }
+
+    public Long getEnUu() {
+        return enUu;
+    }
+
+    public void setEnUu(Long enUu) {
+        this.enUu = enUu;
+    }
+
+    public String getVendorName() {
+        return vendorName;
+    }
+
+    public void setVendorName(String vendorName) {
+        this.vendorName = vendorName;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getCustreply() {
+        return custreply;
+    }
+
+    public void setCustreply(String custreply) {
+        this.custreply = custreply;
+    }
+
+    public Short getPrint() {
+        return print;
+    }
+
+    public void setPrint(Short print) {
+        this.print = print;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public Set<PurchaseApCheckItem> getItems() {
+        return items;
+    }
+
+    public void setItems(Set<PurchaseApCheckItem> items) {
+        this.items = items;
+    }
+}

+ 126 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckProdIO.java

@@ -0,0 +1,126 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 对账的出入库单
+ * @Date 2019/01/28
+ */
+public class ApCheckProdIO implements Serializable {
+
+    private List<ApCheckProdIODetail> details = new ArrayList<ApCheckProdIODetail>();
+
+    /**
+     * 本期应收(前端传入指定月份)
+     */
+    private List<ApCheckAmount> thisMonthCount;
+
+    /**
+     * 本期已对账(前端传入指定月份)
+     */
+    private List<ApCheckAmount> thisMonthDoneCount;
+
+    /**
+     * 本期未对账(前端传入指定月份)
+     */
+    private List<ApCheckAmount> thisMonthTodoCount;
+
+    /**
+     * 应收总额
+     */
+    private List<ApCheckAmount> totalCount;
+
+    /**
+     * 供应商名称
+     */
+    private String vendorName;
+
+    /**
+     * 应收对账单数据(下方列表数据,按code分组聚合)
+     */
+    List<ProductIoGroup> groupList;
+
+    /**
+     * 本期发货(ERP数据)
+     */
+    List<ApCheckAmount> thisPeriodSendAmount;
+
+    /**
+     * 本期已收(ERP数据)
+     */
+    List<ApCheckAmount> thisPeriodDoneAmount;
+
+    public List<ApCheckProdIODetail> getDetails() {
+        return details;
+    }
+
+    public void setDetails(List<ApCheckProdIODetail> details) {
+        this.details = details;
+    }
+
+    public List<ApCheckAmount> getThisMonthCount() {
+        return thisMonthCount;
+    }
+
+    public void setThisMonthCount(List<ApCheckAmount> thisMonthCount) {
+        this.thisMonthCount = thisMonthCount;
+    }
+
+    public List<ApCheckAmount> getThisMonthDoneCount() {
+        return thisMonthDoneCount;
+    }
+
+    public void setThisMonthDoneCount(List<ApCheckAmount> thisMonthDoneCount) {
+        this.thisMonthDoneCount = thisMonthDoneCount;
+    }
+
+    public List<ApCheckAmount> getThisMonthTodoCount() {
+        return thisMonthTodoCount;
+    }
+
+    public void setThisMonthTodoCount(List<ApCheckAmount> thisMonthTodoCount) {
+        this.thisMonthTodoCount = thisMonthTodoCount;
+    }
+
+    public List<ApCheckAmount> getTotalCount() {
+        return totalCount;
+    }
+
+    public void setTotalCount(List<ApCheckAmount> totalCount) {
+        this.totalCount = totalCount;
+    }
+
+    public String getVendorName() {
+        return vendorName;
+    }
+
+    public void setVendorName(String vendorName) {
+        this.vendorName = vendorName;
+    }
+
+    public List<ProductIoGroup> getGroupList() {
+        return groupList;
+    }
+
+    public void setGroupList(List<ProductIoGroup> groupList) {
+        this.groupList = groupList;
+    }
+
+    public List<ApCheckAmount> getThisPeriodSendAmount() {
+        return thisPeriodSendAmount;
+    }
+
+    public void setThisPeriodSendAmount(List<ApCheckAmount> thisPeriodSendAmount) {
+        this.thisPeriodSendAmount = thisPeriodSendAmount;
+    }
+
+    public List<ApCheckAmount> getThisPeriodDoneAmount() {
+        return thisPeriodDoneAmount;
+    }
+
+    public void setThisPeriodDoneAmount(List<ApCheckAmount> thisPeriodDoneAmount) {
+        this.thisPeriodDoneAmount = thisPeriodDoneAmount;
+    }
+}

+ 528 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ApCheckProdIODetail.java

@@ -0,0 +1,528 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/28
+ */
+public class ApCheckProdIODetail implements Serializable {
+
+    private String id;
+
+    /**
+     * 出入库单号
+     */
+    private String inoutno;
+
+    /**
+     * 出出入库单序号
+     */
+    private Long detno;
+
+    /**
+     * 单据类型
+     */
+    private String piclass;
+
+    /**
+     * 客户采购编号
+     */
+    private String ordercode;
+
+    /**
+     * 客户采购序号
+     */
+    private Long orderdetno;
+
+    /**
+     * 客户采购料号
+     */
+    private String prodcode;
+
+    /**
+     * 客户采购规格
+     */
+    private String prodspec;
+
+    /**
+     * 客户物料描述
+     */
+    private String prodtitle;
+
+    /**
+     * 客户物料描述
+     */
+    private String produnit;
+
+    /**
+     * 客户验收数量
+     */
+    private Double qty;
+
+    /**
+     * 单价
+     */
+    private Double orderprice;
+
+    /**
+     * 币别
+     */
+    private String currency;
+
+    /**
+     * 税率
+     */
+    private Double taxrate;
+
+    /**
+     * 已对账数
+     */
+    private Double ycheckqty;
+
+    /**
+     * 本次对账数
+     */
+    private Double thischeckqty;
+
+    /**
+     * 客户名称
+     */
+    private String custname;
+
+    /**
+     * 客户UU
+     */
+    private Long custuu;
+
+    /**
+     * 客户用户UU
+     */
+    private Long custuseruu;
+
+    /**
+     * sourceid
+     */
+    private Long sourceid;
+
+    /**
+     * 单据来源表
+     */
+    private String sourcetable;
+
+    /**
+     * 单据来源时间
+     */
+    private Date sourceDate;
+
+    /**
+     * 企业UU
+     */
+    private Long enuu;
+
+    /**
+     * 日期
+     */
+    private Date pidate;
+
+    /**
+     * 汇率
+     */
+    private Double rate;
+
+    /**
+     * 应付供应商编号
+     */
+    private String receivecode;
+
+    /**
+     * 应付供应商名称
+     */
+    private String receivename;
+
+    /**
+     * 金额
+     */
+    private Double money;
+
+    /**
+     * 本次对账金额
+     */
+    private Double nowmoney;
+
+    /**
+     * 送货工厂
+     */
+    private String factory;
+
+    /**
+     * 送货单号
+     */
+    private String sendcode;
+
+    /**
+     * 送货单明细id
+     */
+    private Long sendId;
+
+    /**
+     * 发货数量
+     */
+    private Double sendQty;
+
+    /**
+     * 发货价格
+     */
+    private Double sendPrice;
+
+    /**
+     * 仓库
+     */
+    private String whname;
+
+    /**
+     * 对账记录人
+     */
+    private String recorder;
+
+    /**
+     * 对账日期
+     */
+    private Date apCheckDate;
+
+    /**
+     * 是否已对账
+     */
+    private Short haveChecked = 0;
+
+    /**
+     * 对账主表id
+     */
+    private Long apCheckId;
+
+    /**
+     * 付款金额
+     */
+    private Double payment;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getInoutno() {
+        return inoutno;
+    }
+
+    public void setInoutno(String inoutno) {
+        this.inoutno = inoutno;
+    }
+
+    public Long getDetno() {
+        return detno;
+    }
+
+    public void setDetno(Long detno) {
+        this.detno = detno;
+    }
+
+    public String getPiclass() {
+        return piclass;
+    }
+
+    public void setPiclass(String piclass) {
+        this.piclass = piclass;
+    }
+
+    public String getOrdercode() {
+        return ordercode;
+    }
+
+    public void setOrdercode(String ordercode) {
+        this.ordercode = ordercode;
+    }
+
+    public Long getOrderdetno() {
+        return orderdetno;
+    }
+
+    public void setOrderdetno(Long orderdetno) {
+        this.orderdetno = orderdetno;
+    }
+
+    public String getProdcode() {
+        return prodcode;
+    }
+
+    public void setProdcode(String prodcode) {
+        this.prodcode = prodcode;
+    }
+
+    public String getProdspec() {
+        return prodspec;
+    }
+
+    public void setProdspec(String prodspec) {
+        this.prodspec = prodspec;
+    }
+
+    public String getProdtitle() {
+        return prodtitle;
+    }
+
+    public void setProdtitle(String prodtitle) {
+        this.prodtitle = prodtitle;
+    }
+
+    public String getProdunit() {
+        return produnit;
+    }
+
+    public void setProdunit(String produnit) {
+        this.produnit = produnit;
+    }
+
+    public Double getQty() {
+        return qty;
+    }
+
+    public void setQty(Double qty) {
+        this.qty = qty;
+    }
+
+    public Double getOrderprice() {
+        return orderprice;
+    }
+
+    public void setOrderprice(Double orderprice) {
+        this.orderprice = orderprice;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Double getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Double taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public Double getYcheckqty() {
+        return ycheckqty;
+    }
+
+    public void setYcheckqty(Double ycheckqty) {
+        this.ycheckqty = ycheckqty;
+    }
+
+    public Double getThischeckqty() {
+        return thischeckqty;
+    }
+
+    public void setThischeckqty(Double thischeckqty) {
+        this.thischeckqty = thischeckqty;
+    }
+
+    public String getCustname() {
+        return custname;
+    }
+
+    public void setCustname(String custname) {
+        this.custname = custname;
+    }
+
+    public Long getCustuu() {
+        return custuu;
+    }
+
+    public void setCustuu(Long custuu) {
+        this.custuu = custuu;
+    }
+
+    public Long getCustuseruu() {
+        return custuseruu;
+    }
+
+    public void setCustuseruu(Long custuseruu) {
+        this.custuseruu = custuseruu;
+    }
+
+    public Long getSourceid() {
+        return sourceid;
+    }
+
+    public void setSourceid(Long sourceid) {
+        this.sourceid = sourceid;
+    }
+
+    public String getSourcetable() {
+        return sourcetable;
+    }
+
+    public void setSourcetable(String sourcetable) {
+        this.sourcetable = sourcetable;
+    }
+
+    public Date getSourceDate() {
+        return sourceDate;
+    }
+
+    public void setSourceDate(Date sourceDate) {
+        this.sourceDate = sourceDate;
+    }
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public Date getPidate() {
+        return pidate;
+    }
+
+    public void setPidate(Date pidate) {
+        this.pidate = pidate;
+    }
+
+    public Double getRate() {
+        return rate;
+    }
+
+    public void setRate(Double rate) {
+        this.rate = rate;
+    }
+
+    public String getReceivecode() {
+        return receivecode;
+    }
+
+    public void setReceivecode(String receivecode) {
+        this.receivecode = receivecode;
+    }
+
+    public String getReceivename() {
+        return receivename;
+    }
+
+    public void setReceivename(String receivename) {
+        this.receivename = receivename;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Double getNowmoney() {
+        return nowmoney;
+    }
+
+    public void setNowmoney(Double nowmoney) {
+        this.nowmoney = nowmoney;
+    }
+
+    public String getFactory() {
+        return factory;
+    }
+
+    public void setFactory(String factory) {
+        this.factory = factory;
+    }
+
+    public String getSendcode() {
+        return sendcode;
+    }
+
+    public void setSendcode(String sendcode) {
+        this.sendcode = sendcode;
+    }
+
+    public Long getSendId() {
+        return sendId;
+    }
+
+    public void setSendId(Long sendId) {
+        this.sendId = sendId;
+    }
+
+    public Double getSendQty() {
+        return sendQty;
+    }
+
+    public void setSendQty(Double sendQty) {
+        this.sendQty = sendQty;
+    }
+
+    public Double getSendPrice() {
+        return sendPrice;
+    }
+
+    public void setSendPrice(Double sendPrice) {
+        this.sendPrice = sendPrice;
+    }
+
+    public String getWhname() {
+        return whname;
+    }
+
+    public void setWhname(String whname) {
+        this.whname = whname;
+    }
+
+    public String getRecorder() {
+        return recorder;
+    }
+
+    public void setRecorder(String recorder) {
+        this.recorder = recorder;
+    }
+
+    public Date getApCheckDate() {
+        return apCheckDate;
+    }
+
+    public void setApCheckDate(Date apCheckDate) {
+        this.apCheckDate = apCheckDate;
+    }
+
+    public Short getHaveChecked() {
+        return haveChecked;
+    }
+
+    public void setHaveChecked(Short haveChecked) {
+        this.haveChecked = haveChecked;
+    }
+
+    public Long getApCheckId() {
+        return apCheckId;
+    }
+
+    public void setApCheckId(Long apCheckId) {
+        this.apCheckId = apCheckId;
+    }
+
+    public Double getPayment() {
+        return payment;
+    }
+
+    public void setPayment(Double payment) {
+        this.payment = payment;
+    }
+}

+ 152 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/CustApcheckData.java

@@ -0,0 +1,152 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 客户列表数据
+ * @Author chenwei
+ * @Date 2019/01/27
+ */
+public class CustApcheckData implements Serializable {
+
+    private Long id;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 我的企业UU
+     */
+    private Long myEnUU;
+
+    /**
+     * 我的企业
+     */
+    private Enterprise myEnterprise;
+
+    /**
+     * 我的UU
+     */
+    private Long myUserUU;
+
+    /**
+     * 我方联系人
+     */
+    private UserBaseInfo myUser;
+
+    /**
+     * 供应商的企业UU
+     */
+    private Long vendEnUU;
+
+    /**
+     * 供应商的企业
+     */
+    private Enterprise vendorEnterprise;
+
+    /**
+     * 供应商联系人UU
+     */
+    private Long vendUserUU;
+
+    /**
+     * 供应商联系人
+     */
+    private UserBaseInfo vendorUser;
+
+    /**
+     * 对账金额详情
+     */
+    private List<ApCheckAmountDetail> amountDetailList;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Long getMyEnUU() {
+        return myEnUU;
+    }
+
+    public void setMyEnUU(Long myEnUU) {
+        this.myEnUU = myEnUU;
+    }
+
+    public Enterprise getMyEnterprise() {
+        return myEnterprise;
+    }
+
+    public void setMyEnterprise(Enterprise myEnterprise) {
+        this.myEnterprise = myEnterprise;
+    }
+
+    public Long getMyUserUU() {
+        return myUserUU;
+    }
+
+    public void setMyUserUU(Long myUserUU) {
+        this.myUserUU = myUserUU;
+    }
+
+    public UserBaseInfo getMyUser() {
+        return myUser;
+    }
+
+    public void setMyUser(UserBaseInfo myUser) {
+        this.myUser = myUser;
+    }
+
+    public Long getVendEnUU() {
+        return vendEnUU;
+    }
+
+    public void setVendEnUU(Long vendEnUU) {
+        this.vendEnUU = vendEnUU;
+    }
+
+    public Enterprise getVendorEnterprise() {
+        return vendorEnterprise;
+    }
+
+    public void setVendorEnterprise(Enterprise vendorEnterprise) {
+        this.vendorEnterprise = vendorEnterprise;
+    }
+
+    public Long getVendUserUU() {
+        return vendUserUU;
+    }
+
+    public void setVendUserUU(Long vendUserUU) {
+        this.vendUserUU = vendUserUU;
+    }
+
+    public UserBaseInfo getVendorUser() {
+        return vendorUser;
+    }
+
+    public void setVendorUser(UserBaseInfo vendorUser) {
+        this.vendorUser = vendorUser;
+    }
+
+    public List<ApCheckAmountDetail> getAmountDetailList() {
+        return amountDetailList;
+    }
+
+    public void setAmountDetailList(List<ApCheckAmountDetail> amountDetailList) {
+        this.amountDetailList = amountDetailList;
+    }
+}

+ 725 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/Enterprise.java

@@ -0,0 +1,725 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 企业信息
+ *
+ * @author yingp
+ */
+public class Enterprise implements Serializable {
+
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    private Long uu;
+
+    /**
+     * 公司名称
+     */
+    private String enName;
+
+    /**
+     * 简称
+     */
+    private String enShortname;
+
+    /**
+     * 公司类型
+     */
+    private String enType;
+
+    /**
+     * 企业注册地区
+     */
+    private String enArea;
+
+    /**
+     * 状态
+     */
+    private Short enStatus;
+
+    /**
+     * 传输到管理平台的状态
+     */
+    private Short enSendStatus;
+
+    /**
+     * 注册地址
+     */
+    private String enAddress;
+
+    /**
+     * 默认送货地址
+     */
+    private String enDeliverAddr;
+
+    /**
+     * 公司电话
+     */
+    private String enTel;
+
+    /**
+     * 传真
+     */
+    private String enFax;
+
+    /**
+     * 公司邮箱
+     */
+    private String enEmail;
+
+    /**
+     * 员工人数
+     */
+    private Integer emcount;
+
+    /**
+     * 开户银行
+     */
+    private String enbank;
+
+    /**
+     * 公司法人
+     */
+    private String enCorporation;
+
+    /**
+     * 商业登记证号
+     */
+    private String enBussinessCode;
+
+    /**
+     * 营业执照号服务器路径,账户中心同步时同步过来
+     */
+    private String businesscodeimg;
+
+    /**
+     * 纳税人识别号
+     */
+    private String enTaxcode;
+
+    /**
+     * 注册资本
+     */
+    private String enRegistercapital;
+
+    /**
+     * 公司主页地址
+     */
+    private String enUrl;
+
+    /**
+     * 注册时间
+     */
+    private Date enDate;
+
+    /**
+     * 管理员UU号
+     */
+    private Long enAdminuu;
+
+    /**
+     * 所属行业
+     */
+    private String enIndustry;
+
+    /**
+     * 优企云服域名
+     */
+    private String enSaasUrl;
+
+    /**
+     * 优企云服状态
+     */
+    private Short enSaasStatus;
+
+    /**
+     * 优企云服传输状态
+     */
+    private Short enSaasSendStatus;
+
+    /**
+     * enIsErp
+     */
+    private Short enIsErp;
+
+    /**
+     * log路径
+     */
+    private String logUrl;
+
+    public Short getEnIsErp() {
+        return enIsErp;
+    }
+
+    /**
+     * en_management 经营模式
+     */
+    private String enManagement;
+
+    /**
+     * en_brands 主营品牌(多个用逗号分隔)
+     */
+    private String enBrands;
+
+    /**
+     * en_products 主营产品
+     */
+    private String enProducts;
+
+    /**
+     * 记录产品的销售状态<br>
+     * 1. 开启<br>
+     * 0. 关闭
+     */
+    private Short prodsale;
+
+    /**
+     * 记录物料的采购状态<br>
+     * 1. 开启<br>
+     * 0. 关闭
+     *
+     * @return
+     */
+    private Short prodpurc;
+
+    /**
+     * 行业
+     */
+    private String profession;
+
+    /**
+     * 主营业务
+     */
+    private String tags;
+
+    /**
+     * 联系人
+     */
+    private String contactMan;
+
+    /**
+     * 联系人电话
+     */
+    private String contactTel;
+
+    /**
+     * 联系人邮箱
+     */
+    private String contactEmail;
+
+    /**
+     * 企业权重 (用于供应商资源库排序) -- 2018年3月29日 17:59:00
+     */
+    private Integer weight;
+
+    /**
+     * 邀请企业UU
+     */
+    private Long inviteUU;
+
+    /**
+     * 邀请用户UU
+     */
+    private Long inviteUserUU;
+
+    /**
+     * 邀请时间
+     */
+    private Long inviteTime;
+
+    /**
+     * 邀请来源
+     */
+    private String inviteSource;
+
+    public String getEnManagement() {
+        return enManagement;
+    }
+
+    public void setEnManagement(String enManagement) {
+        this.enManagement = enManagement;
+    }
+
+    public String getEnProducts() {
+        return enProducts;
+    }
+
+    public void setEnProducts(String enProducts) {
+        this.enProducts = enProducts;
+    }
+
+    public String getEnInfo() {
+        return enInfo;
+    }
+
+    public void setEnInfo(String enInfo) {
+        this.enInfo = enInfo;
+    }
+
+    /**
+     * en_info 公司简介
+     */
+    private String enInfo;
+
+    public void setEnIsErp(Short enIsErp) {
+        this.enIsErp = enIsErp;
+    }
+
+    /**
+     * 管理员密码
+     */
+    private String enAdminPassword;
+
+    private Long enBussinesscodeImg;// 营业执照号附件id(转化传到管理平台)
+
+    private String enAdminName;// 管理员名字(转化传到管理平台)
+
+    private String enAdminTel;// 管理员手机号(转化传到管理平台)
+
+    private String enAdminEmail;// 管理员邮箱(转化传到管理平台)
+
+    private String enAuditRemark;// 审核(从管理平台传过来)
+
+    /**
+     * 私钥
+     */
+    private String accessSecret;
+
+    /**
+     * en_masterId 企业对应管理系统ID
+     */
+    private Long enMasterId;
+
+    public Long getEnMasterId() {
+        return enMasterId;
+    }
+
+    public void setEnMasterId(Long enMasterId) {
+        this.enMasterId = enMasterId;
+    }
+
+    public String getEnAuditRemark() {
+        return enAuditRemark;
+    }
+
+    public void setEnAuditRemark(String enAuditRemark) {
+        this.enAuditRemark = enAuditRemark;
+    }
+
+    public Long getEnAdminuu() {
+        return enAdminuu;
+    }
+
+    public void setEnAdminuu(Long enAdminuu) {
+        this.enAdminuu = enAdminuu;
+    }
+
+    private Short enable;
+
+    public Long getUu() {
+        return uu;
+    }
+
+    public void setUu(Long uu) {
+        this.uu = uu;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public String getEnShortname() {
+        return enShortname;
+    }
+
+    public void setEnShortname(String enShortname) {
+        this.enShortname = enShortname;
+    }
+
+    public String getEnType() {
+        return enType;
+    }
+
+    public void setEnType(String enType) {
+        this.enType = enType;
+    }
+
+    public Short getEnStatus() {
+        return enStatus;
+    }
+
+    public void setEnStatus(Short enStatus) {
+        this.enStatus = enStatus;
+    }
+
+    public String getEnAddress() {
+        return enAddress;
+    }
+
+    public void setEnAddress(String enAddress) {
+        this.enAddress = enAddress;
+    }
+
+    public String getEnDeliverAddr() {
+        return enDeliverAddr;
+    }
+
+    public void setEnDeliverAddr(String enDeliverAddr) {
+        this.enDeliverAddr = enDeliverAddr;
+    }
+
+    public String getEnTel() {
+        return enTel;
+    }
+
+    public void setEnTel(String enTel) {
+        this.enTel = enTel;
+    }
+
+    public String getEnFax() {
+        return enFax;
+    }
+
+    public void setEnFax(String enFax) {
+        this.enFax = enFax;
+    }
+
+    public String getEnCorporation() {
+        return enCorporation;
+    }
+
+    public void setEnCorporation(String enCorporation) {
+        this.enCorporation = enCorporation;
+    }
+
+    public String getEnBussinessCode() {
+        return enBussinessCode;
+    }
+
+    public void setEnBussinessCode(String enBussinessCode) {
+        this.enBussinessCode = enBussinessCode;
+    }
+
+    public String getEnBrands() {
+        return enBrands;
+    }
+
+    public void setEnBrands(String enBrands) {
+        this.enBrands = enBrands;
+    }
+
+    public String getEnTaxcode() {
+        return enTaxcode;
+    }
+
+    public void setEnTaxcode(String enTaxcode) {
+        this.enTaxcode = enTaxcode;
+    }
+
+    public String getEnRegistercapital() {
+        return enRegistercapital;
+    }
+
+    public void setEnRegistercapital(String enRegistercapital) {
+        this.enRegistercapital = enRegistercapital;
+    }
+
+    public String getEnUrl() {
+        return enUrl;
+    }
+
+    public void setEnUrl(String enUrl) {
+        this.enUrl = enUrl;
+    }
+
+    public Date getEnDate() {
+        return enDate;
+    }
+
+    public void setEnDate(Date enDate) {
+        this.enDate = enDate;
+    }
+
+    public Short getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Short enable) {
+        this.enable = enable;
+    }
+
+    public String getEnEmail() {
+        return enEmail;
+    }
+
+    public void setEnEmail(String enEmail) {
+        this.enEmail = enEmail;
+    }
+
+    public String getEnAdminTel() {
+        return enAdminTel;
+    }
+
+    public void setEnAdminTel(String enAdminTel) {
+        this.enAdminTel = enAdminTel;
+    }
+
+    public String getEnAdminEmail() {
+        return enAdminEmail;
+    }
+
+    public void setEnAdminEmail(String enAdminEmail) {
+        this.enAdminEmail = enAdminEmail;
+    }
+
+    public Long getEnBussinesscodeImg() {
+        return enBussinesscodeImg;
+    }
+
+    public void setEnBussinesscodeImg(Long enBussinesscodeImg) {
+        this.enBussinesscodeImg = enBussinesscodeImg;
+    }
+
+    public Short getEnSendStatus() {
+        return enSendStatus;
+    }
+
+    public void setEnSendStatus(Short enSendStatus) {
+        this.enSendStatus = enSendStatus;
+    }
+
+    public String getEnArea() {
+        return enArea;
+    }
+
+    public void setEnArea(String enArea) {
+        this.enArea = enArea;
+    }
+
+    public String getEnAdminName() {
+        return enAdminName;
+    }
+
+    public void setEnAdminName(String enAdminName) {
+        this.enAdminName = enAdminName;
+    }
+
+    public String getEnIndustry() {
+        return enIndustry;
+    }
+
+    public void setEnIndustry(String enIndustry) {
+        this.enIndustry = enIndustry;
+    }
+
+    public String getEnSaasUrl() {
+        return enSaasUrl;
+    }
+
+    public void setEnSaasUrl(String enSaasUrl) {
+        this.enSaasUrl = enSaasUrl;
+    }
+
+    public Short getEnSaasStatus() {
+        return enSaasStatus;
+    }
+
+    public void setEnSaasStatus(Short enSaasStatus) {
+        this.enSaasStatus = enSaasStatus;
+    }
+
+    public Short getEnSaasSendStatus() {
+        return enSaasSendStatus;
+    }
+
+    public void setEnSaasSendStatus(Short enSaasSendStatus) {
+        this.enSaasSendStatus = enSaasSendStatus;
+    }
+
+    public String getEnAdminPassword() {
+        return enAdminPassword;
+    }
+
+    public void setEnAdminPassword(String enAdminPassword) {
+        this.enAdminPassword = enAdminPassword;
+    }
+
+    public String getAccessSecret() {
+        return accessSecret;
+    }
+
+    public void setAccessSecret(String accessSecret) {
+        this.accessSecret = accessSecret;
+    }
+
+    public boolean isEnabled() {
+        return this.getEnable() != null && this.getEnable() == 1;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((uu == null) ? 0 : uu.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        Enterprise other = (Enterprise) obj;
+        if (uu == null) {
+            if (other.uu != null) {
+                return false;
+            }
+        } else if (!uu.equals(other.uu)) {
+            return false;
+        }
+        return true;
+    }
+
+    public String getLogUrl() {
+        return logUrl;
+    }
+
+    public void setLogUrl(String logUrl) {
+        this.logUrl = logUrl;
+    }
+
+    public Integer getEmcount() {
+        return emcount;
+    }
+
+    public void setEmcount(Integer emcount) {
+        this.emcount = emcount;
+    }
+
+    public String getEnbank() {
+        return enbank;
+    }
+
+    public void setEnbank(String enbank) {
+        this.enbank = enbank;
+    }
+
+    public Short getProdsale() {
+        return prodsale;
+    }
+
+    public void setProdsale(Short prodsale) {
+        this.prodsale = prodsale;
+    }
+
+    public Short getProdpurc() {
+        return prodpurc;
+    }
+
+    public void setProdpurc(Short prodpurc) {
+        this.prodpurc = prodpurc;
+    }
+
+    public String getBusinesscodeimg() {
+        return businesscodeimg;
+    }
+
+    public void setBusinesscodeimg(String businesscodeimg) {
+        this.businesscodeimg = businesscodeimg;
+    }
+
+    public String getProfession() {
+        return profession;
+    }
+
+    public void setProfession(String profession) {
+        this.profession = profession;
+    }
+
+    public String getTags() {
+        return tags;
+    }
+
+    public void setTags(String tags) {
+        this.tags = tags;
+    }
+
+    public String getContactMan() {
+        return contactMan;
+    }
+
+    public void setContactMan(String contactMan) {
+        this.contactMan = contactMan;
+    }
+
+    public String getContactTel() {
+        return contactTel;
+    }
+
+    public void setContactTel(String contactTel) {
+        this.contactTel = contactTel;
+    }
+
+    public String getContactEmail() {
+        return contactEmail;
+    }
+
+    public void setContactEmail(String contactEmail) {
+        this.contactEmail = contactEmail;
+    }
+
+    public Integer getWeight() {
+        return weight;
+    }
+
+    public void setWeight(Integer weight) {
+        this.weight = weight;
+    }
+
+    public Long getInviteUU() {
+        return inviteUU;
+    }
+
+    public void setInviteUU(Long inviteUU) {
+        this.inviteUU = inviteUU;
+    }
+
+    public Long getInviteUserUU() {
+        return inviteUserUU;
+    }
+
+    public void setInviteUserUU(Long inviteUserUU) {
+        this.inviteUserUU = inviteUserUU;
+    }
+
+    public Long getInviteTime() {
+        return inviteTime;
+    }
+
+    public void setInviteTime(Long inviteTime) {
+        this.inviteTime = inviteTime;
+    }
+
+    public String getInviteSource() {
+        return inviteSource;
+    }
+
+    public void setInviteSource(String inviteSource) {
+        this.inviteSource = inviteSource;
+    }
+}

+ 103 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/ProductIoGroup.java

@@ -0,0 +1,103 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/28
+ */
+public class ProductIoGroup implements Serializable {
+
+    /**
+     * 采购单号
+     */
+    private String orderCode;
+
+    /**
+     * 发货数量
+     */
+    private Double sendQty;
+
+    /**
+     * 对账数量(页面验收数量)
+     */
+    private Double checkQty;
+
+    /**
+     * 应收金额
+     */
+    private List<ApCheckAmount> checkAmountList;
+
+    /**
+     * 发货金额
+     */
+    private List<ApCheckAmount> sendAmountList;
+
+    /**
+     * 明细
+     */
+    private List<ApCheckProdIODetail> details = new ArrayList<ApCheckProdIODetail>();
+
+    /**
+     * 明细是否全对账(1: 是 0:不是)
+     */
+    private Short allChecked = 1;
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public Double getSendQty() {
+        return sendQty;
+    }
+
+    public void setSendQty(Double sendQty) {
+        this.sendQty = sendQty;
+    }
+
+    public Double getCheckQty() {
+        return checkQty;
+    }
+
+    public void setCheckQty(Double checkQty) {
+        this.checkQty = checkQty;
+    }
+
+    public List<ApCheckAmount> getCheckAmountList() {
+        return checkAmountList;
+    }
+
+    public void setCheckAmountList(List<ApCheckAmount> checkAmountList) {
+        this.checkAmountList = checkAmountList;
+    }
+
+    public List<ApCheckAmount> getSendAmountList() {
+        return sendAmountList;
+    }
+
+    public void setSendAmountList(List<ApCheckAmount> sendAmountList) {
+        this.sendAmountList = sendAmountList;
+    }
+
+    public List<ApCheckProdIODetail> getDetails() {
+        return details;
+    }
+
+    public void setDetails(List<ApCheckProdIODetail> details) {
+        this.details = details;
+    }
+
+    public Short getAllChecked() {
+        return allChecked;
+    }
+
+    public void setAllChecked(Short allChecked) {
+        this.allChecked = allChecked;
+    }
+}

+ 363 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/PurchaseApCheck.java

@@ -0,0 +1,363 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/28
+ */
+public class PurchaseApCheck implements Serializable {
+
+    /**
+     * ID
+     */
+    private Long id;
+
+    /**
+     * 对账起始日期
+     */
+    private Date beginDate;
+
+    /**
+     * 对账截止日期
+     */
+    private Date endDate;
+
+    /**
+     * 录单日期
+     */
+    private Date recordDate;
+
+    /**
+     * 录单人
+     */
+    private String recorder;
+
+    /**
+     * 录单人UU
+     */
+    private Long recorderUU;
+
+    /**
+     * 应收日期
+     */
+    private Date apDate;
+
+    /**
+     * 对账状态
+     */
+    private String checkStatus;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 提交日期
+     */
+    private Date commitDate;
+
+    /**
+     * 作废日期
+     */
+    private Date resDate;
+
+    /**
+     * 作废人
+     */
+    private String resMan;
+
+    /**
+     * 上传状态
+     */
+    private Short status;
+
+    /**
+     * 对账总额
+     */
+    private Double checkAmount;
+
+    /**
+     * 币别
+     */
+    private String currency;
+
+    /**
+     * 汇率
+     */
+    private Double taxrate;
+
+    /**
+     * 汇率
+     */
+    private Double rate;
+
+    /**
+     * 收款方式
+     */
+    private String payments;
+
+    /**
+     * 客户UU
+     */
+    private Long custUu;
+
+    /**
+     * 客户名称
+     */
+    private String custName;
+
+    /**
+     * 供应商UU
+     */
+    private Long enUu;
+
+    /**
+     * 供应商名称
+     */
+    private String vendorName;
+
+    /**
+     * 单据编号
+     */
+    private String code;
+
+    /**
+     * 客户回复原因
+     */
+    private String custreply;
+
+    /**
+     * 打印次数
+     */
+    private Short print;
+
+    /**
+     * 不同意原因
+     */
+    private String reason;
+
+    /**
+     * 对账单明细行
+     */
+    private Set<PurchaseApCheckItem> items;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Date getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Date beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Date getRecordDate() {
+        return recordDate;
+    }
+
+    public void setRecordDate(Date recordDate) {
+        this.recordDate = recordDate;
+    }
+
+    public String getRecorder() {
+        return recorder;
+    }
+
+    public void setRecorder(String recorder) {
+        this.recorder = recorder;
+    }
+
+    public Long getRecorderUU() {
+        return recorderUU;
+    }
+
+    public void setRecorderUU(Long recorderUU) {
+        this.recorderUU = recorderUU;
+    }
+
+    public Date getApDate() {
+        return apDate;
+    }
+
+    public void setApDate(Date apDate) {
+        this.apDate = apDate;
+    }
+
+    public String getCheckStatus() {
+        return checkStatus;
+    }
+
+    public void setCheckStatus(String checkStatus) {
+        this.checkStatus = checkStatus;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Date getCommitDate() {
+        return commitDate;
+    }
+
+    public void setCommitDate(Date commitDate) {
+        this.commitDate = commitDate;
+    }
+
+    public Date getResDate() {
+        return resDate;
+    }
+
+    public void setResDate(Date resDate) {
+        this.resDate = resDate;
+    }
+
+    public String getResMan() {
+        return resMan;
+    }
+
+    public void setResMan(String resMan) {
+        this.resMan = resMan;
+    }
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+
+    public Double getCheckAmount() {
+        return checkAmount;
+    }
+
+    public void setCheckAmount(Double checkAmount) {
+        this.checkAmount = checkAmount;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Double getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Double taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public Double getRate() {
+        return rate;
+    }
+
+    public void setRate(Double rate) {
+        this.rate = rate;
+    }
+
+    public String getPayments() {
+        return payments;
+    }
+
+    public void setPayments(String payments) {
+        this.payments = payments;
+    }
+
+    public Long getCustUu() {
+        return custUu;
+    }
+
+    public void setCustUu(Long custUu) {
+        this.custUu = custUu;
+    }
+
+    public String getCustName() {
+        return custName;
+    }
+
+    public void setCustName(String custName) {
+        this.custName = custName;
+    }
+
+    public Long getEnUu() {
+        return enUu;
+    }
+
+    public void setEnUu(Long enUu) {
+        this.enUu = enUu;
+    }
+
+    public String getVendorName() {
+        return vendorName;
+    }
+
+    public void setVendorName(String vendorName) {
+        this.vendorName = vendorName;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getCustreply() {
+        return custreply;
+    }
+
+    public void setCustreply(String custreply) {
+        this.custreply = custreply;
+    }
+
+    public Short getPrint() {
+        return print;
+    }
+
+    public void setPrint(Short print) {
+        this.print = print;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public Set<PurchaseApCheckItem> getItems() {
+        return items;
+    }
+
+    public void setItems(Set<PurchaseApCheckItem> items) {
+        this.items = items;
+    }
+}

+ 429 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/PurchaseApCheckItem.java

@@ -0,0 +1,429 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/27
+ */
+public class PurchaseApCheckItem implements Serializable {
+
+    private Long id;
+
+    /**
+     * 行号
+     */
+    private Short number;
+
+    /**
+     * 客户用户UU号
+     */
+    private Long custUserUU;
+
+    /**
+     * 客户物料ID
+     */
+    private Long prid;
+
+    /**
+     * 客户订单单号
+     */
+    private String orderCode;
+
+    /**
+     * 客户出入库类型
+     */
+    private String orderClass;
+
+    /**
+     * 客户订单序号
+     */
+    private Long orderDetno;
+
+    /**
+     * 客户出入库单号
+     */
+    private String inoutno;
+
+    /**
+     * 出入库单序号
+     */
+    private Long inoutnodetno;
+
+    /**
+     * 客户料号
+     */
+    private String prodCode;
+
+    /**
+     * 物料名称
+     */
+    private String prodTitle;
+
+    /**
+     * 物料规格
+     */
+    private String prodSpec;
+
+    /**
+     * 物料单位
+     */
+    private String prodUnit;
+
+    /**
+     * 单价
+     */
+    private Double price;
+
+    /**
+     * 税率
+     */
+    private Double taxrate;
+
+    /**
+     * 对账数量
+     */
+    private Double checkQty;
+
+    /**
+     * 对账金额
+     */
+    private Double amount;
+
+    /**
+     * 客户确认数量
+     */
+    private Double custCheckQty;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 对账状态
+     */
+    private Integer status;
+
+    /**
+     * 明细行数据来源表
+     */
+    private String sourceTable;
+
+    /**
+     * 明细行数据来源对应ID
+     */
+    private Long sourceId;
+
+    /**
+     * 明细行数据来源对应时间
+     */
+    private Date sourceDate;
+
+    /**
+     * 此次转账之前的已对账数(用于删除应收对账单时)
+    @Column(name = "pai_oldycheckqty")
+    private Double oldYCheckQty;
+
+    /**
+     * 应付供应商编号
+     */
+    private String receiveCode;
+
+    /**
+     * 应付供应商名称
+     */
+    private String receiveName;
+
+    /**
+     * 送货单号
+     */
+    private String sendcode;
+
+    /**
+     * 送货单明细id
+     */
+    private Long sendId;
+
+    /**
+     * 送货数量
+     */
+    private Double sendQty;
+
+    /**
+     * 送货价格
+     */
+    private Double sendPrice;
+
+    /**
+     * 仓库
+     */
+    private String whname;
+
+    /**
+     * 已开票数量
+     */
+    private Double billed;
+
+    /**
+     * 付款金额
+     */
+    private Double payment;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Short getNumber() {
+        return number;
+    }
+
+    public void setNumber(Short number) {
+        this.number = number;
+    }
+
+    public Long getCustUserUU() {
+        return custUserUU;
+    }
+
+    public void setCustUserUU(Long custUserUU) {
+        this.custUserUU = custUserUU;
+    }
+
+    public Long getPrid() {
+        return prid;
+    }
+
+    public void setPrid(Long prid) {
+        this.prid = prid;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getOrderClass() {
+        return orderClass;
+    }
+
+    public void setOrderClass(String orderClass) {
+        this.orderClass = orderClass;
+    }
+
+    public Long getOrderDetno() {
+        return orderDetno;
+    }
+
+    public void setOrderDetno(Long orderDetno) {
+        this.orderDetno = orderDetno;
+    }
+
+    public String getInoutno() {
+        return inoutno;
+    }
+
+    public void setInoutno(String inoutno) {
+        this.inoutno = inoutno;
+    }
+
+    public Long getInoutnodetno() {
+        return inoutnodetno;
+    }
+
+    public void setInoutnodetno(Long inoutnodetno) {
+        this.inoutnodetno = inoutnodetno;
+    }
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public String getProdTitle() {
+        return prodTitle;
+    }
+
+    public void setProdTitle(String prodTitle) {
+        this.prodTitle = prodTitle;
+    }
+
+    public String getProdSpec() {
+        return prodSpec;
+    }
+
+    public void setProdSpec(String prodSpec) {
+        this.prodSpec = prodSpec;
+    }
+
+    public String getProdUnit() {
+        return prodUnit;
+    }
+
+    public void setProdUnit(String prodUnit) {
+        this.prodUnit = prodUnit;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public Double getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Double taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public Double getCheckQty() {
+        return checkQty;
+    }
+
+    public void setCheckQty(Double checkQty) {
+        this.checkQty = checkQty;
+    }
+
+    public Double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
+
+    public Double getCustCheckQty() {
+        return custCheckQty;
+    }
+
+    public void setCustCheckQty(Double custCheckQty) {
+        this.custCheckQty = custCheckQty;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getSourceTable() {
+        return sourceTable;
+    }
+
+    public void setSourceTable(String sourceTable) {
+        this.sourceTable = sourceTable;
+    }
+
+    public Long getSourceId() {
+        return sourceId;
+    }
+
+    public void setSourceId(Long sourceId) {
+        this.sourceId = sourceId;
+    }
+
+    public Date getSourceDate() {
+        return sourceDate;
+    }
+
+    public void setSourceDate(Date sourceDate) {
+        this.sourceDate = sourceDate;
+    }
+
+    public String getReceiveCode() {
+        return receiveCode;
+    }
+
+    public void setReceiveCode(String receiveCode) {
+        this.receiveCode = receiveCode;
+    }
+
+    public String getReceiveName() {
+        return receiveName;
+    }
+
+    public void setReceiveName(String receiveName) {
+        this.receiveName = receiveName;
+    }
+
+    public String getSendcode() {
+        return sendcode;
+    }
+
+    public void setSendcode(String sendcode) {
+        this.sendcode = sendcode;
+    }
+
+    public Long getSendId() {
+        return sendId;
+    }
+
+    public void setSendId(Long sendId) {
+        this.sendId = sendId;
+    }
+
+    public Double getSendQty() {
+        return sendQty;
+    }
+
+    public void setSendQty(Double sendQty) {
+        this.sendQty = sendQty;
+    }
+
+    public Double getSendPrice() {
+        return sendPrice;
+    }
+
+    public void setSendPrice(Double sendPrice) {
+        this.sendPrice = sendPrice;
+    }
+
+    public String getWhname() {
+        return whname;
+    }
+
+    public void setWhname(String whname) {
+        this.whname = whname;
+    }
+
+    public Double getBilled() {
+        return billed;
+    }
+
+    public void setBilled(Double billed) {
+        this.billed = billed;
+    }
+
+    public Double getPayment() {
+        return payment;
+    }
+
+    public void setPayment(Double payment) {
+        this.payment = payment;
+    }
+}

+ 120 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/SaveOperationData.java

@@ -0,0 +1,120 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/27
+ */
+public class SaveOperationData implements Serializable {
+
+    private Long custUu;
+    private String custName;
+    private Long enUu;
+    private Long apDate;
+    private Long beginDate;
+    private Long endDate;
+    private String checkStatus;
+    private Double checkAmount;
+    private String currency;
+    private Double rate;
+    private String taxrate;
+    private List<SaveOperationDataDetail> items;
+
+    public Long getCustUu() {
+        return custUu;
+    }
+
+    public void setCustUu(Long custUu) {
+        this.custUu = custUu;
+    }
+
+    public String getCustName() {
+        return custName;
+    }
+
+    public void setCustName(String custName) {
+        this.custName = custName;
+    }
+
+    public Long getEnUu() {
+        return enUu;
+    }
+
+    public void setEnUu(Long enUu) {
+        this.enUu = enUu;
+    }
+
+    public Long getApDate() {
+        return apDate;
+    }
+
+    public void setApDate(Long apDate) {
+        this.apDate = apDate;
+    }
+
+    public Long getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Long beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public Long getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Long endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getCheckStatus() {
+        return checkStatus;
+    }
+
+    public void setCheckStatus(String checkStatus) {
+        this.checkStatus = checkStatus;
+    }
+
+    public Double getCheckAmount() {
+        return checkAmount;
+    }
+
+    public void setCheckAmount(Double checkAmount) {
+        this.checkAmount = checkAmount;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Double getRate() {
+        return rate;
+    }
+
+    public void setRate(Double rate) {
+        this.rate = rate;
+    }
+
+    public String getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(String taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public List<SaveOperationDataDetail> getItems() {
+        return items;
+    }
+
+    public void setItems(List<SaveOperationDataDetail> items) {
+        this.items = items;
+    }
+}

+ 200 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/SaveOperationDataDetail.java

@@ -0,0 +1,200 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+
+/**
+ * @Author chenwei
+ * @Date 2019/01/27
+ */
+public class SaveOperationDataDetail implements Serializable {
+
+    private String inoutno;
+    private Long inoutnodetno;
+    private String orderClass;
+    private Long orderDetno;
+    private Double checkQty;
+    private Double amount;
+    private Long sourceId;
+    private String sourceTable;
+    private Short status;
+    private String receiveCode;
+    private String receiveName;
+    private String prodCode;
+    private String prodTitle;
+    private String prodUnit;
+    private String prodSpec;
+    private Double taxrate;
+    private String sendcode;
+    private String whname;
+    private Long custUserUU;
+    private Long pidate;
+    private Long sourceDate;
+
+    public String getInoutno() {
+        return inoutno;
+    }
+
+    public void setInoutno(String inoutno) {
+        this.inoutno = inoutno;
+    }
+
+    public Long getInoutnodetno() {
+        return inoutnodetno;
+    }
+
+    public void setInoutnodetno(Long inoutnodetno) {
+        this.inoutnodetno = inoutnodetno;
+    }
+
+    public String getOrderClass() {
+        return orderClass;
+    }
+
+    public void setOrderClass(String orderClass) {
+        this.orderClass = orderClass;
+    }
+
+    public Long getOrderDetno() {
+        return orderDetno;
+    }
+
+    public void setOrderDetno(Long orderDetno) {
+        this.orderDetno = orderDetno;
+    }
+
+    public Double getCheckQty() {
+        return checkQty;
+    }
+
+    public void setCheckQty(Double checkQty) {
+        this.checkQty = checkQty;
+    }
+
+    public Double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
+
+    public Long getSourceId() {
+        return sourceId;
+    }
+
+    public void setSourceId(Long sourceId) {
+        this.sourceId = sourceId;
+    }
+
+    public String getSourceTable() {
+        return sourceTable;
+    }
+
+    public void setSourceTable(String sourceTable) {
+        this.sourceTable = sourceTable;
+    }
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+
+    public String getReceiveCode() {
+        return receiveCode;
+    }
+
+    public void setReceiveCode(String receiveCode) {
+        this.receiveCode = receiveCode;
+    }
+
+    public String getReceiveName() {
+        return receiveName;
+    }
+
+    public void setReceiveName(String receiveName) {
+        this.receiveName = receiveName;
+    }
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public String getProdTitle() {
+        return prodTitle;
+    }
+
+    public void setProdTitle(String prodTitle) {
+        this.prodTitle = prodTitle;
+    }
+
+    public String getProdUnit() {
+        return prodUnit;
+    }
+
+    public void setProdUnit(String prodUnit) {
+        this.prodUnit = prodUnit;
+    }
+
+    public String getProdSpec() {
+        return prodSpec;
+    }
+
+    public void setProdSpec(String prodSpec) {
+        this.prodSpec = prodSpec;
+    }
+
+    public Double getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Double taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public String getSendcode() {
+        return sendcode;
+    }
+
+    public void setSendcode(String sendcode) {
+        this.sendcode = sendcode;
+    }
+
+    public String getWhname() {
+        return whname;
+    }
+
+    public void setWhname(String whname) {
+        this.whname = whname;
+    }
+
+    public Long getCustUserUU() {
+        return custUserUU;
+    }
+
+    public void setCustUserUU(Long custUserUU) {
+        this.custUserUU = custUserUU;
+    }
+
+    public Long getPidate() {
+        return pidate;
+    }
+
+    public void setPidate(Long pidate) {
+        this.pidate = pidate;
+    }
+
+    public Long getSourceDate() {
+        return sourceDate;
+    }
+
+    public void setSourceDate(Long sourceDate) {
+        this.sourceDate = sourceDate;
+    }
+}

+ 128 - 0
applications/sale/sale-dto/src/main/java/com/usoftchina/saas/sale/dto/apcheck/UserBaseInfo.java

@@ -0,0 +1,128 @@
+package com.usoftchina.saas.sale.dto.apcheck;
+
+import java.io.Serializable;
+
+/**
+ * @Description 只包含最基本的信息,用与跟单据关联展现
+ * @Author chenwei
+ * @Date 2019/01/27
+ */
+public class UserBaseInfo implements Serializable {
+
+    /**
+     * 用户UU
+     */
+    private Long userUU;
+
+    /**
+     * 用户姓名
+     */
+    private String userName;
+
+    /**
+     * 密码
+     */
+    private String userPwd;
+
+    /**
+     * 邮箱
+     */
+    private String userEmail;
+
+    /**
+     * 电话
+     */
+    private String userTel;
+
+    /**
+     * 性别
+     */
+    private String userSex;
+
+    /**
+     * imid
+     */
+    private Long userIMId;
+
+    /**
+     * 判断是否被分配
+     */
+    private boolean distribute;
+
+    /**
+     * 判断是否被转移权限
+     */
+    private boolean transfer;
+
+    public Long getUserUU() {
+        return userUU;
+    }
+
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserPwd() {
+        return userPwd;
+    }
+
+    public void setUserPwd(String userPwd) {
+        this.userPwd = userPwd;
+    }
+
+    public String getUserEmail() {
+        return userEmail;
+    }
+
+    public void setUserEmail(String userEmail) {
+        this.userEmail = userEmail;
+    }
+
+    public String getUserTel() {
+        return userTel;
+    }
+
+    public void setUserTel(String userTel) {
+        this.userTel = userTel;
+    }
+
+    public String getUserSex() {
+        return userSex;
+    }
+
+    public void setUserSex(String userSex) {
+        this.userSex = userSex;
+    }
+
+    public Long getUserIMId() {
+        return userIMId;
+    }
+
+    public void setUserIMId(Long userIMId) {
+        this.userIMId = userIMId;
+    }
+
+    public boolean isDistribute() {
+        return distribute;
+    }
+
+    public void setDistribute(boolean distribute) {
+        this.distribute = distribute;
+    }
+
+    public boolean isTransfer() {
+        return transfer;
+    }
+
+    public void setTransfer(boolean transfer) {
+        this.transfer = transfer;
+    }
+}

+ 49 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/controller/SaleController.java

@@ -11,6 +11,7 @@ import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.sale.dto.RemindReqDTO;
 import com.usoftchina.saas.sale.dto.RemindRspDTO;
 import com.usoftchina.saas.sale.dto.SaleFormDTO;
+import com.usoftchina.saas.sale.dto.apcheck.SaveOperationData;
 import com.usoftchina.saas.sale.po.SaleList;
 import com.usoftchina.saas.sale.service.SaleService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -226,4 +227,52 @@ public class SaleController {
     public Result saveQuote(@RequestBody PublicInquiryItem publicInquiryItem){
         return Result.success(saleService.saveQuote(publicInquiryItem));
     }
+
+    /**
+     * 获取应收对账单客户列表
+     * @return
+     */
+    @GetMapping("/apCheck/customer")
+    public Result custApcheck(int count, int page, String searchFilter, String sorting){
+        return Result.success(saleService.getCustApcheck(count, page, searchFilter, sorting));
+    }
+
+    /**
+     * 获取单个客户对账明细(客户列表点击明细按钮)
+     * @param fromDate
+     * @param endDate
+     * @param customerUU
+     * @param taxRate
+     * @param factory
+     * @param prodTitle
+     * @param suuorname
+     * @param prodSpec
+     * @return
+     */
+    @GetMapping("/apCheck/getAllByKeywords")
+    public Result getAllByKeywords(Long fromDate, Long endDate, Long customerUU, Double taxRate, String factory,
+                                   String prodTitle, String suuorname, String prodSpec){
+        return Result.success(saleService.getAllByKeywords(fromDate, endDate, customerUU, taxRate, factory, prodTitle, suuorname, prodSpec));
+    }
+
+    /**
+     * 生成对账
+     * @param saveOperationData
+     * @return
+     */
+    @PostMapping("/apCheck/operation/save")
+    public Result operationSave(@RequestBody SaveOperationData saveOperationData){
+        return Result.success(saleService.operationSave(saveOperationData));
+    }
+
+    /**
+     * 某张对账单明细:
+     * @param id
+     * @return
+     */
+    @GetMapping("/apCheck/{id}/info")
+    public Result apCheckInfo(@PathVariable("id") Long id){
+        saleService.apCheckInfo(id);
+        return Result.success();
+    }
 }

+ 14 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/SaleService.java

@@ -7,10 +7,15 @@ import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.page.PageRequest;
+import com.usoftchina.saas.sale.dto.apcheck.ApCheckProdIO;
+import com.usoftchina.saas.sale.dto.apcheck.CustApcheckData;
 import com.usoftchina.saas.sale.dto.RemindReqDTO;
 import com.usoftchina.saas.sale.dto.RemindRspDTO;
 import com.usoftchina.saas.sale.dto.SaleFormDTO;
+import com.usoftchina.saas.sale.dto.apcheck.PurchaseApCheck;
+import com.usoftchina.saas.sale.dto.apcheck.SaveOperationData;
 import com.usoftchina.saas.sale.po.SaleList;
+import org.springframework.ui.ModelMap;
 
 /**
  * @author: guq
@@ -55,4 +60,13 @@ public interface SaleService {
     IPage<RemindRspDTO> findRemindByUserInfo(RemindReqDTO remindReqDTO);
 
     String saveQuote(PublicInquiryItem publicInquiryItem);
+
+    CustApcheckData getCustApcheck(int count, int page, String searchFilter, String sorting);
+
+    ApCheckProdIO getAllByKeywords(Long fromDate, Long endDate, Long customerUU, Double taxRate, String factory,
+                                   String prodTitle, String suuorname, String prodSpec);
+
+    ModelMap operationSave(SaveOperationData saveOperationData);
+
+    PurchaseApCheck apCheckInfo(Long id);
 }

+ 24 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java

@@ -23,6 +23,10 @@ import com.usoftchina.saas.page.PageDefault;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.purchase.api.PurchaseApi;
 import com.usoftchina.saas.sale.dto.*;
+import com.usoftchina.saas.sale.dto.apcheck.ApCheckProdIO;
+import com.usoftchina.saas.sale.dto.apcheck.CustApcheckData;
+import com.usoftchina.saas.sale.dto.apcheck.PurchaseApCheck;
+import com.usoftchina.saas.sale.dto.apcheck.SaveOperationData;
 import com.usoftchina.saas.sale.mapper.*;
 import com.usoftchina.saas.sale.po.Sale;
 import com.usoftchina.saas.sale.po.SaleDetail;
@@ -743,6 +747,26 @@ public class SaleServiceImpl implements SaleService{
         return null;
     }
 
+    @Override
+    public CustApcheckData getCustApcheck(int count, int page, String searchFilter, String sorting) {
+        return null;
+    }
+
+    @Override
+    public ApCheckProdIO getAllByKeywords(Long fromDate, Long endDate, Long customerUU, Double taxRate, String factory, String prodTitle, String suuorname, String prodSpec) {
+        return null;
+    }
+
+    @Override
+    public ModelMap operationSave(SaveOperationData saveOperationData) {
+        return null;
+    }
+
+    @Override
+    public PurchaseApCheck apCheckInfo(Long id) {
+        return null;
+    }
+
     /**
      * 将平台返回的结果集转成SAAS的传输对象
      * @param data