Parcourir la source

库存同步、订单同步

zhaoy il y a 7 ans
Parent
commit
73886e31b1
30 fichiers modifiés avec 3185 ajouts et 6 suppressions
  1. 57 0
      src/main/java/com/uas/erp/schedular/diymall/domain/DeployReconciliation.java
  2. 28 0
      src/main/java/com/uas/erp/schedular/diymall/domain/DeployReconciliationDetail.java
  3. 31 0
      src/main/java/com/uas/erp/schedular/diymall/domain/GetOrdersByPage.java
  4. 77 0
      src/main/java/com/uas/erp/schedular/diymall/domain/LoggingOrder.java
  5. 336 0
      src/main/java/com/uas/erp/schedular/diymall/domain/Order.java
  6. 91 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderDeliveryAddr.java
  7. 64 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderExpress.java
  8. 109 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderInvoice.java
  9. 91 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderInvoiceAddr.java
  10. 93 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderPackage.java
  11. 91 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderPackageDetail.java
  12. 256 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderProduct.java
  13. 219 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderSellerOffer.java
  14. 168 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderSellerProduct.java
  15. 46 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderTimeAxis.java
  16. 37 0
      src/main/java/com/uas/erp/schedular/diymall/domain/OrderTypeList.java
  17. 193 0
      src/main/java/com/uas/erp/schedular/diymall/domain/Reconciliation.java
  18. 127 0
      src/main/java/com/uas/erp/schedular/diymall/domain/ReconciliationDetail.java
  19. 153 0
      src/main/java/com/uas/erp/schedular/diymall/domain/ReconciliationSimple.java
  20. 37 0
      src/main/java/com/uas/erp/schedular/diymall/domain/SellerDueBank.java
  21. 84 0
      src/main/java/com/uas/erp/schedular/diymall/domain/SellerEnterprise.java
  22. 143 5
      src/main/java/com/uas/erp/schedular/diymall/task/DiymallApplyTask.java
  23. 37 0
      src/main/java/com/uas/erp/schedular/mall/domain/LadderOffer.java
  24. 46 0
      src/main/java/com/uas/erp/schedular/mall/domain/PagingInfo.java
  25. 55 0
      src/main/java/com/uas/erp/schedular/mall/domain/PagingQuery.java
  26. 257 0
      src/main/java/com/uas/erp/schedular/mall/domain/Product.java
  27. 51 0
      src/main/java/com/uas/erp/schedular/mall/domain/ProductAvailableQty.java
  28. 41 0
      src/main/java/com/uas/erp/schedular/mall/domain/Stock.java
  29. 106 1
      src/main/java/com/uas/erp/schedular/mall/task/ProductTask.java
  30. 61 0
      src/test/java/com/uas/erp/test/TestProduct.java

+ 57 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/DeployReconciliation.java

@@ -0,0 +1,57 @@
+package com.uas.erp.schedular.diymall.domain;
+
+import java.util.List;
+
+/**
+ * 上传对账单信息
+ * @author zhaoy
+ * @create 2019-05-08 17:21
+ */
+public class DeployReconciliation {
+
+    String orderCode;//订单编号
+    double sumMoney; //总金额
+    String remark; //备注
+    String receiveTime; //收货时间
+    List<DeployReconciliationDetail> reconciliationDetail;
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public double getSumMoney() {
+        return sumMoney;
+    }
+
+    public void setSumMoney(double sumMoney) {
+        this.sumMoney = sumMoney;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getReceiveTime() {
+        return receiveTime;
+    }
+
+    public void setReceiveTime(String receiveTime) {
+        this.receiveTime = receiveTime;
+    }
+
+    public List<DeployReconciliationDetail> getReconciliationDetail() {
+        return reconciliationDetail;
+    }
+
+    public void setReconciliationDetail(List<DeployReconciliationDetail> reconciliationDetail) {
+        this.reconciliationDetail = reconciliationDetail;
+    }
+}

+ 28 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/DeployReconciliationDetail.java

@@ -0,0 +1,28 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 上传对账单明细
+ * @author zhaoy
+ * @create 2019-05-08 17:23
+ */
+public class DeployReconciliationDetail {
+
+    String orderDetailCode; // 订单明细快照编号
+    Integer actualQty; //实收数量
+
+    public String getOrderDetailCode() {
+        return orderDetailCode;
+    }
+
+    public void setOrderDetailCode(String orderDetailCode) {
+        this.orderDetailCode = orderDetailCode;
+    }
+
+    public Integer getActualQty() {
+        return actualQty;
+    }
+
+    public void setActualQty(Integer actualQty) {
+        this.actualQty = actualQty;
+    }
+}

+ 31 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/GetOrdersByPage.java

@@ -0,0 +1,31 @@
+package com.uas.erp.schedular.diymall.domain;
+
+import com.uas.erp.schedular.mall.domain.PagingInfo;
+
+import java.util.List;
+
+/**
+ * @author zhaoy
+ * @create 2019-05-09 9:49
+ */
+public class GetOrdersByPage {
+
+    private PagingInfo pagingInfo; // 分页信息
+    private List<Order> order; // 订单列表
+
+    public PagingInfo getPagingInfo() {
+        return pagingInfo;
+    }
+
+    public void setPagingInfo(PagingInfo pagingInfo) {
+        this.pagingInfo = pagingInfo;
+    }
+
+    public List<Order> getOrder() {
+        return order;
+    }
+
+    public void setOrder(List<Order> order) {
+        this.order = order;
+    }
+}

+ 77 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/LoggingOrder.java

@@ -0,0 +1,77 @@
+package com.uas.erp.schedular.diymall.domain;
+
+
+/**
+ * @author zhaoy
+ * @create 2019-05-09 14:37
+ */
+public class LoggingOrder {
+
+    private Integer loId;//编号
+    private String orderCode;//客户订单号
+    private String status;// 状态	‘成功’、‘失败’
+    private String salesTime;// 日期	执行生成销售订单的日期
+    private String orderNumber;// 销售订单号	已经生成销售订单的订单号,如果失败则为空
+    private String remark;//备注
+
+
+    public LoggingOrder() {
+    }
+
+    public LoggingOrder(Integer loId, String orderCode, String status, String salesTime, String orderNumber, String remark) {
+        this.loId = loId;
+        this.orderCode = orderCode;
+        this.status = status;
+        this.salesTime = salesTime;
+        this.orderNumber = orderNumber;
+        this.remark = remark;
+    }
+
+    public Integer getLoId() {
+        return loId;
+    }
+
+    public void setLoId(Integer loId) {
+        this.loId = loId;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getSalesTime() {
+        return salesTime;
+    }
+
+    public void setSalesTime(String salesTime) {
+        this.salesTime = salesTime;
+    }
+
+    public String getOrderNumber() {
+        return orderNumber;
+    }
+
+    public void setOrderNumber(String orderNumber) {
+        this.orderNumber = orderNumber;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

+ 336 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/Order.java

@@ -0,0 +1,336 @@
+package com.uas.erp.schedular.diymall.domain;
+
+import java.util.List;
+
+/**
+ * 订单
+ * @author zhaoy
+ * @create 2019-05-08 16:39
+ */
+public class Order {
+
+    String code; // 编号
+    Integer enuu; // 买家企业uu
+    Integer uu; // 买家uu
+    Integer sellerEnuu; //enuu
+    String buyerName; //买家姓名
+    String buyerEnName; //买家企业姓名
+    String buyerMobile; //买家电话
+    String buyerEmail;//   买家email
+    String sellerName; //  卖家企业名
+    String sellerTelephone;// 卖家固定电话
+    String sellerBusinesscode;// 卖家营业执照号
+    String sellerAdmName;//  卖家管理员姓名
+    Integer sellerAdmUu;//  卖家管理员uu
+    String sellerAdmEmail;// 卖家管理员邮箱
+    String sellerAdmMobile; //卖家管理员手机
+    Integer status;//  状态(141000 :初始状态,141010:待支付,141020:待收款,141030:待发货,141040:待收货,141050:交易成功, 141090: 已取消)
+    double sumMoney;// 总金额
+    String currency; //币别
+    Integer invoiceStatus;// 开票状态
+    String payFileUrl; //订单支付凭证文件链接
+    String remark;//  备注
+    String createdTime;// 订单创建时间
+    String paidTime; // 订单支付时间
+    String ensurePayTime; // 确认收款时间
+    String deliverTime; // 发货时间
+    String receiveTime; // 收货时间
+    Integer orderType; //141100 :产品订单, 141110: 报价订单
+    String settlementTime; //账期
+    String reconciliateTime; //对账时间
+    List<OrderProduct> orderProduct; // 订单产品快照列表
+    OrderDeliveryAddr orderDeliveryAddr; // 订单收货地址
+    OrderInvoice orderInvoice; // 订单发票
+    OrderInvoiceAddr orderInvoiceAddr; // 订单发票寄送地址
+    OrderExpress orderExpress; // 订单物流信息
+    List<OrderTimeAxis> orderTimeAxis; //订单时间轴
+    SellerDueBank sellerDueBank; // 商家收款信息
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Integer getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Integer enuu) {
+        this.enuu = enuu;
+    }
+
+    public Integer getUu() {
+        return uu;
+    }
+
+    public void setUu(Integer uu) {
+        this.uu = uu;
+    }
+
+    public Integer getSellerEnuu() {
+        return sellerEnuu;
+    }
+
+    public void setSellerEnuu(Integer sellerEnuu) {
+        this.sellerEnuu = sellerEnuu;
+    }
+
+    public String getBuyerName() {
+        return buyerName;
+    }
+
+    public void setBuyerName(String buyerName) {
+        this.buyerName = buyerName;
+    }
+
+    public String getBuyerEnName() {
+        return buyerEnName;
+    }
+
+    public void setBuyerEnName(String buyerEnName) {
+        this.buyerEnName = buyerEnName;
+    }
+
+    public String getBuyerMobile() {
+        return buyerMobile;
+    }
+
+    public void setBuyerMobile(String buyerMobile) {
+        this.buyerMobile = buyerMobile;
+    }
+
+    public String getBuyerEmail() {
+        return buyerEmail;
+    }
+
+    public void setBuyerEmail(String buyerEmail) {
+        this.buyerEmail = buyerEmail;
+    }
+
+    public String getSellerName() {
+        return sellerName;
+    }
+
+    public void setSellerName(String sellerName) {
+        this.sellerName = sellerName;
+    }
+
+    public String getSellerTelephone() {
+        return sellerTelephone;
+    }
+
+    public void setSellerTelephone(String sellerTelephone) {
+        this.sellerTelephone = sellerTelephone;
+    }
+
+    public String getSellerBusinesscode() {
+        return sellerBusinesscode;
+    }
+
+    public void setSellerBusinesscode(String sellerBusinesscode) {
+        this.sellerBusinesscode = sellerBusinesscode;
+    }
+
+    public String getSellerAdmName() {
+        return sellerAdmName;
+    }
+
+    public void setSellerAdmName(String sellerAdmName) {
+        this.sellerAdmName = sellerAdmName;
+    }
+
+    public Integer getSellerAdmUu() {
+        return sellerAdmUu;
+    }
+
+    public void setSellerAdmUu(Integer sellerAdmUu) {
+        this.sellerAdmUu = sellerAdmUu;
+    }
+
+    public String getSellerAdmEmail() {
+        return sellerAdmEmail;
+    }
+
+    public void setSellerAdmEmail(String sellerAdmEmail) {
+        this.sellerAdmEmail = sellerAdmEmail;
+    }
+
+    public String getSellerAdmMobile() {
+        return sellerAdmMobile;
+    }
+
+    public void setSellerAdmMobile(String sellerAdmMobile) {
+        this.sellerAdmMobile = sellerAdmMobile;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public double getSumMoney() {
+        return sumMoney;
+    }
+
+    public void setSumMoney(double sumMoney) {
+        this.sumMoney = sumMoney;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Integer getInvoiceStatus() {
+        return invoiceStatus;
+    }
+
+    public void setInvoiceStatus(Integer invoiceStatus) {
+        this.invoiceStatus = invoiceStatus;
+    }
+
+    public String getPayFileUrl() {
+        return payFileUrl;
+    }
+
+    public void setPayFileUrl(String payFileUrl) {
+        this.payFileUrl = payFileUrl;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(String createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    public String getPaidTime() {
+        return paidTime;
+    }
+
+    public void setPaidTime(String paidTime) {
+        this.paidTime = paidTime;
+    }
+
+    public String getEnsurePayTime() {
+        return ensurePayTime;
+    }
+
+    public void setEnsurePayTime(String ensurePayTime) {
+        this.ensurePayTime = ensurePayTime;
+    }
+
+    public String getDeliverTime() {
+        return deliverTime;
+    }
+
+    public void setDeliverTime(String deliverTime) {
+        this.deliverTime = deliverTime;
+    }
+
+    public String getReceiveTime() {
+        return receiveTime;
+    }
+
+    public void setReceiveTime(String receiveTime) {
+        this.receiveTime = receiveTime;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public String getSettlementTime() {
+        return settlementTime;
+    }
+
+    public void setSettlementTime(String settlementTime) {
+        this.settlementTime = settlementTime;
+    }
+
+    public String getReconciliateTime() {
+        return reconciliateTime;
+    }
+
+    public void setReconciliateTime(String reconciliateTime) {
+        this.reconciliateTime = reconciliateTime;
+    }
+
+    public List<OrderProduct> getOrderProduct() {
+        return orderProduct;
+    }
+
+    public void setOrderProduct(List<OrderProduct> orderProduct) {
+        this.orderProduct = orderProduct;
+    }
+
+    public OrderDeliveryAddr getOrderDeliveryAddr() {
+        return orderDeliveryAddr;
+    }
+
+    public void setOrderDeliveryAddr(OrderDeliveryAddr orderDeliveryAddr) {
+        this.orderDeliveryAddr = orderDeliveryAddr;
+    }
+
+    public OrderInvoice getOrderInvoice() {
+        return orderInvoice;
+    }
+
+    public void setOrderInvoice(OrderInvoice orderInvoice) {
+        this.orderInvoice = orderInvoice;
+    }
+
+    public OrderInvoiceAddr getOrderInvoiceAddr() {
+        return orderInvoiceAddr;
+    }
+
+    public void setOrderInvoiceAddr(OrderInvoiceAddr orderInvoiceAddr) {
+        this.orderInvoiceAddr = orderInvoiceAddr;
+    }
+
+    public OrderExpress getOrderExpress() {
+        return orderExpress;
+    }
+
+    public void setOrderExpress(OrderExpress orderExpress) {
+        this.orderExpress = orderExpress;
+    }
+
+    public List<OrderTimeAxis> getOrderTimeAxis() {
+        return orderTimeAxis;
+    }
+
+    public void setOrderTimeAxis(List<OrderTimeAxis> orderTimeAxis) {
+        this.orderTimeAxis = orderTimeAxis;
+    }
+
+    public SellerDueBank getSellerDueBank() {
+        return sellerDueBank;
+    }
+
+    public void setSellerDueBank(SellerDueBank sellerDueBank) {
+        this.sellerDueBank = sellerDueBank;
+    }
+}

+ 91 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderDeliveryAddr.java

@@ -0,0 +1,91 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 订单收货地址
+ * @author zhaoy
+ * @create 2019-05-08 16:53
+ */
+public class OrderDeliveryAddr {
+
+    String code;//编号
+    String orderCode;//订单编号
+    String deliveryAddrCode;//收货地址编号
+    String province;//省
+    String city;//市
+    String district;//区
+    String addr;//地址
+    String buyerName;//收货人姓名
+    String phone;//电话
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getDeliveryAddrCode() {
+        return deliveryAddrCode;
+    }
+
+    public void setDeliveryAddrCode(String deliveryAddrCode) {
+        this.deliveryAddrCode = deliveryAddrCode;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district;
+    }
+
+    public String getAddr() {
+        return addr;
+    }
+
+    public void setAddr(String addr) {
+        this.addr = addr;
+    }
+
+    public String getBuyerName() {
+        return buyerName;
+    }
+
+    public void setBuyerName(String buyerName) {
+        this.buyerName = buyerName;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+}

+ 64 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderExpress.java

@@ -0,0 +1,64 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 订单物流信息
+ * @author zhaoy
+ * @create 2019-05-08 17:16
+ */
+public class OrderExpress {
+
+    String code;//编号
+    String orderCode;//订单编号
+    String expressInc;//物流公司
+    String expressCode;//物流编号
+    String contact;//联系人
+    String phone;//电话
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getExpressInc() {
+        return expressInc;
+    }
+
+    public void setExpressInc(String expressInc) {
+        this.expressInc = expressInc;
+    }
+
+    public String getExpressCode() {
+        return expressCode;
+    }
+
+    public void setExpressCode(String expressCode) {
+        this.expressCode = expressCode;
+    }
+
+    public String getContact() {
+        return contact;
+    }
+
+    public void setContact(String contact) {
+        this.contact = contact;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+}

+ 109 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderInvoice.java

@@ -0,0 +1,109 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 订单发票
+ * @author zhaoy
+ * @create 2019-05-08 16:58
+ */
+public class OrderInvoice {
+
+    String code;//编号
+    String order_code;//订单编号
+    String invoiceCode;//发票编号
+    Integer type;//142000 : 增值税普票 , 142010 : 增值税专票
+    Integer buyerType;//142020 : 个人身份开票 , 142030 : 企业身份开票
+    String name;//名称
+    String identityNum;//纳税人识别号
+    String banker;//开户银行
+    String account;//开户银行账号
+    String tel;//注册固定电话
+    String addr;//企业注册地址
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrder_code() {
+        return order_code;
+    }
+
+    public void setOrder_code(String order_code) {
+        this.order_code = order_code;
+    }
+
+    public String getInvoiceCode() {
+        return invoiceCode;
+    }
+
+    public void setInvoiceCode(String invoiceCode) {
+        this.invoiceCode = invoiceCode;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getBuyerType() {
+        return buyerType;
+    }
+
+    public void setBuyerType(Integer buyerType) {
+        this.buyerType = buyerType;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getIdentityNum() {
+        return identityNum;
+    }
+
+    public void setIdentityNum(String identityNum) {
+        this.identityNum = identityNum;
+    }
+
+    public String getBanker() {
+        return banker;
+    }
+
+    public void setBanker(String banker) {
+        this.banker = banker;
+    }
+
+    public String getAccount() {
+        return account;
+    }
+
+    public void setAccount(String account) {
+        this.account = account;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getAddr() {
+        return addr;
+    }
+
+    public void setAddr(String addr) {
+        this.addr = addr;
+    }
+}

+ 91 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderInvoiceAddr.java

@@ -0,0 +1,91 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 订单发票寄送地址
+ * @author zhaoy
+ * @create 2019-05-08 17:01
+ */
+public class OrderInvoiceAddr {
+
+    String code;//编号
+    String orderCode;//订单编号
+    String invoiceAddrCode;//发票寄送地址编号
+    String province;//省
+    String city;//市
+    String district;//区
+    String addr;//地址
+    String buyerName;//收票人
+    String phone;//电话
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getInvoiceAddrCode() {
+        return invoiceAddrCode;
+    }
+
+    public void setInvoiceAddrCode(String invoiceAddrCode) {
+        this.invoiceAddrCode = invoiceAddrCode;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district;
+    }
+
+    public String getAddr() {
+        return addr;
+    }
+
+    public void setAddr(String addr) {
+        this.addr = addr;
+    }
+
+    public String getBuyerName() {
+        return buyerName;
+    }
+
+    public void setBuyerName(String buyerName) {
+        this.buyerName = buyerName;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+}

+ 93 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderPackage.java

@@ -0,0 +1,93 @@
+package com.uas.erp.schedular.diymall.domain;
+
+import java.util.List;
+
+/**
+ * 订单包裹
+ * @author zhaoy
+ * @create 2019-05-08 19:18
+ */
+public class OrderPackage {
+
+    String code;//编号
+    String orderCode;//订单编号
+    String expressInc;//物流公司
+    String expressCode;//物流编号
+    String contact;//联系人
+    String phone;//电话
+    Integer number;//序号
+    Integer uu ;//操作人uu
+    List<OrderPackageDetail> orderPackageDetail;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getExpressInc() {
+        return expressInc;
+    }
+
+    public void setExpressInc(String expressInc) {
+        this.expressInc = expressInc;
+    }
+
+    public String getExpressCode() {
+        return expressCode;
+    }
+
+    public void setExpressCode(String expressCode) {
+        this.expressCode = expressCode;
+    }
+
+    public String getContact() {
+        return contact;
+    }
+
+    public void setContact(String contact) {
+        this.contact = contact;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public Integer getNumber() {
+        return number;
+    }
+
+    public void setNumber(Integer number) {
+        this.number = number;
+    }
+
+    public Integer getUu() {
+        return uu;
+    }
+
+    public void setUu(Integer uu) {
+        this.uu = uu;
+    }
+
+    public List<OrderPackageDetail> getOrderPackageDetail() {
+        return orderPackageDetail;
+    }
+
+    public void setOrderPackageDetail(List<OrderPackageDetail> orderPackageDetail) {
+        this.orderPackageDetail = orderPackageDetail;
+    }
+}

+ 91 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderPackageDetail.java

@@ -0,0 +1,91 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 订单包裹明细
+ * @author zhaoy
+ * @create 2019-05-08 19:22
+ */
+public class OrderPackageDetail {
+
+    String code;
+    String orderCode;
+    String orderPackageCode;
+    String orderProductCode;
+    String orderOfferCode;
+    Integer amount;//购买数量
+    String model; // 型号
+    String brand; // 品牌
+    String spec; // 规格
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getOrderPackageCode() {
+        return orderPackageCode;
+    }
+
+    public void setOrderPackageCode(String orderPackageCode) {
+        this.orderPackageCode = orderPackageCode;
+    }
+
+    public String getOrderProductCode() {
+        return orderProductCode;
+    }
+
+    public void setOrderProductCode(String orderProductCode) {
+        this.orderProductCode = orderProductCode;
+    }
+
+    public String getOrderOfferCode() {
+        return orderOfferCode;
+    }
+
+    public void setOrderOfferCode(String orderOfferCode) {
+        this.orderOfferCode = orderOfferCode;
+    }
+
+    public Integer getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Integer amount) {
+        this.amount = amount;
+    }
+
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+}

+ 256 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderProduct.java

@@ -0,0 +1,256 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 订单产品快照
+ * @author zhaoy
+ * @create 2019-05-08 16:44
+ */
+public class OrderProduct {
+
+    String code;//编号
+    String orderCode;//订单编号
+    String materialCod;//产品code
+    double price;//小计金额
+    Integer amount;//购买数量
+    String remark;//备注
+    double unitPrice;//单价
+
+    // 产品信息
+    String model; // 型号
+    String brand; // 品牌
+    String spec; // 规格
+    Integer enuu; // 企业uu
+    Integer uu; // 录入人uu
+    String createDate; // 创建时间
+    Integer status; // 状态(131010.未上架,131020.已上架)
+    String packing; // 包装方式
+    Integer mpq; // 最小包装数量
+    Integer moq; // 最小起订量
+    Integer reserve; // 库存数量
+    Integer frozenQty; // 冻结库存数量
+    boolean detachable; // 是否可拆卖
+    String ladderOffer; // 阶梯价格
+    String unit; // 单位
+    String currency; // 币别
+    Integer minDelivery; // 最小交期
+    Integer maxDelivery; // 最大交期
+    Integer bePackage;// 0:不展示,1:已发货,2:未发货
+
+    String materialCode; // uas物料编号
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getMaterialCod() {
+        return materialCod;
+    }
+
+    public void setMaterialCod(String materialCod) {
+        this.materialCod = materialCod;
+    }
+
+    public double getPrice() {
+        return price;
+    }
+
+    public void setPrice(double price) {
+        this.price = price;
+    }
+
+    public Integer getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Integer amount) {
+        this.amount = amount;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public double getUnitPrice() {
+        return unitPrice;
+    }
+
+    public void setUnitPrice(double unitPrice) {
+        this.unitPrice = unitPrice;
+    }
+
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public Integer getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Integer enuu) {
+        this.enuu = enuu;
+    }
+
+    public Integer getUu() {
+        return uu;
+    }
+
+    public void setUu(Integer uu) {
+        this.uu = uu;
+    }
+
+    public String getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(String createDate) {
+        this.createDate = createDate;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getPacking() {
+        return packing;
+    }
+
+    public void setPacking(String packing) {
+        this.packing = packing;
+    }
+
+    public Integer getMpq() {
+        return mpq;
+    }
+
+    public void setMpq(Integer mpq) {
+        this.mpq = mpq;
+    }
+
+    public Integer getMoq() {
+        return moq;
+    }
+
+    public void setMoq(Integer moq) {
+        this.moq = moq;
+    }
+
+    public Integer getReserve() {
+        return reserve;
+    }
+
+    public void setReserve(Integer reserve) {
+        this.reserve = reserve;
+    }
+
+    public Integer getFrozenQty() {
+        return frozenQty;
+    }
+
+    public void setFrozenQty(Integer frozenQty) {
+        this.frozenQty = frozenQty;
+    }
+
+    public boolean isDetachable() {
+        return detachable;
+    }
+
+    public void setDetachable(boolean detachable) {
+        this.detachable = detachable;
+    }
+
+    public String getLadderOffer() {
+        return ladderOffer;
+    }
+
+    public void setLadderOffer(String ladderOffer) {
+        this.ladderOffer = ladderOffer;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Integer getMinDelivery() {
+        return minDelivery;
+    }
+
+    public void setMinDelivery(Integer minDelivery) {
+        this.minDelivery = minDelivery;
+    }
+
+    public Integer getMaxDelivery() {
+        return maxDelivery;
+    }
+
+    public void setMaxDelivery(Integer maxDelivery) {
+        this.maxDelivery = maxDelivery;
+    }
+
+    public Integer getBePackage() {
+        return bePackage;
+    }
+
+    public void setBePackage(Integer bePackage) {
+        this.bePackage = bePackage;
+    }
+
+    public String getMaterialCode() {
+        return materialCode;
+    }
+
+    public void setMaterialCode(String materialCode) {
+        this.materialCode = materialCode;
+    }
+}

+ 219 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderSellerOffer.java

@@ -0,0 +1,219 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 结算页报价信息(按商家分)
+ * @author zhaoy
+ * @create 2019-05-08 17:10
+ */
+public class OrderSellerOffer {
+
+    String code;// '编号',
+    String orderCode;// '订单编号',
+    String offerCode;// '编号',
+    String demandCode;// '需求编号',
+    Integer enuu;// '卖家enuu',
+    Integer uu;// '卖家uu',
+    double price;// '单价',
+    Integer leastDelivery;// '最短交期',
+    Integer lastDelivery ;// '最长交期',
+    String offerTime;//'报价时间',
+
+    String model;//'规格',
+    String brand;//'品牌',
+    String spec;// '规格',
+    Integer amount;// '需求数量',
+    double demandPrice;// '预算单价',
+    Integer demandLeastDelivery;// '预计最短交期',
+    Integer demandLastDelivery;// '预计最长交期',
+    String deadlineDate;// '截至日期',
+    String remark; //备注
+
+    String enName;// 报价方企业名
+    String admMobile; //报价方企业管理员手机
+    double money; //小计
+    SellerEnterprise sellerEnterprise;// 卖家信息
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getOfferCode() {
+        return offerCode;
+    }
+
+    public void setOfferCode(String offerCode) {
+        this.offerCode = offerCode;
+    }
+
+    public String getDemandCode() {
+        return demandCode;
+    }
+
+    public void setDemandCode(String demandCode) {
+        this.demandCode = demandCode;
+    }
+
+    public Integer getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Integer enuu) {
+        this.enuu = enuu;
+    }
+
+    public Integer getUu() {
+        return uu;
+    }
+
+    public void setUu(Integer uu) {
+        this.uu = uu;
+    }
+
+    public double getPrice() {
+        return price;
+    }
+
+    public void setPrice(double price) {
+        this.price = price;
+    }
+
+    public Integer getLeastDelivery() {
+        return leastDelivery;
+    }
+
+    public void setLeastDelivery(Integer leastDelivery) {
+        this.leastDelivery = leastDelivery;
+    }
+
+    public Integer getLastDelivery() {
+        return lastDelivery;
+    }
+
+    public void setLastDelivery(Integer lastDelivery) {
+        this.lastDelivery = lastDelivery;
+    }
+
+    public String getOfferTime() {
+        return offerTime;
+    }
+
+    public void setOfferTime(String offerTime) {
+        this.offerTime = offerTime;
+    }
+
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public Integer getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Integer amount) {
+        this.amount = amount;
+    }
+
+    public double getDemandPrice() {
+        return demandPrice;
+    }
+
+    public void setDemandPrice(double demandPrice) {
+        this.demandPrice = demandPrice;
+    }
+
+    public Integer getDemandLeastDelivery() {
+        return demandLeastDelivery;
+    }
+
+    public void setDemandLeastDelivery(Integer demandLeastDelivery) {
+        this.demandLeastDelivery = demandLeastDelivery;
+    }
+
+    public Integer getDemandLastDelivery() {
+        return demandLastDelivery;
+    }
+
+    public void setDemandLastDelivery(Integer demandLastDelivery) {
+        this.demandLastDelivery = demandLastDelivery;
+    }
+
+    public String getDeadlineDate() {
+        return deadlineDate;
+    }
+
+    public void setDeadlineDate(String deadlineDate) {
+        this.deadlineDate = deadlineDate;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public String getAdmMobile() {
+        return admMobile;
+    }
+
+    public void setAdmMobile(String admMobile) {
+        this.admMobile = admMobile;
+    }
+
+    public double getMoney() {
+        return money;
+    }
+
+    public void setMoney(double money) {
+        this.money = money;
+    }
+
+    public SellerEnterprise getSellerEnterprise() {
+        return sellerEnterprise;
+    }
+
+    public void setSellerEnterprise(SellerEnterprise sellerEnterprise) {
+        this.sellerEnterprise = sellerEnterprise;
+    }
+}

+ 168 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderSellerProduct.java

@@ -0,0 +1,168 @@
+package com.uas.erp.schedular.diymall.domain;
+
+import java.util.List;
+
+/**
+ * 结算页产品信息(按商家分)
+ * @author zhaoy
+ * @create 2019-05-08 17:03
+ */
+public class OrderSellerProduct {
+
+    List<Product> product;
+    SellerEnterprise sellerEnterprise;// 卖家信息
+
+    class Product{
+        String code; // 产品编号
+        String model; // 型号
+        String brand; // 品牌
+        String spec; //规格
+        String packing; // 包装方式
+        Integer mpq; // 最小包装数量
+        Integer moq; // 最小起订量
+        boolean detachable; // 是否可拆卖
+        Integer minDelivery; // 最小交期
+        Integer maxDelivery; // 最大交期
+        String unit; // 单位
+        String currency; // 币别
+        double unitPrice;//单价
+        double price;//小计金额
+        Integer amount;//购买数量
+
+        public String getCode() {
+            return code;
+        }
+
+        public void setCode(String code) {
+            this.code = code;
+        }
+
+        public String getModel() {
+            return model;
+        }
+
+        public void setModel(String model) {
+            this.model = model;
+        }
+
+        public String getBrand() {
+            return brand;
+        }
+
+        public void setBrand(String brand) {
+            this.brand = brand;
+        }
+
+        public String getSpec() {
+            return spec;
+        }
+
+        public void setSpec(String spec) {
+            this.spec = spec;
+        }
+
+        public String getPacking() {
+            return packing;
+        }
+
+        public void setPacking(String packing) {
+            this.packing = packing;
+        }
+
+        public Integer getMpq() {
+            return mpq;
+        }
+
+        public void setMpq(Integer mpq) {
+            this.mpq = mpq;
+        }
+
+        public Integer getMoq() {
+            return moq;
+        }
+
+        public void setMoq(Integer moq) {
+            this.moq = moq;
+        }
+
+        public boolean isDetachable() {
+            return detachable;
+        }
+
+        public void setDetachable(boolean detachable) {
+            this.detachable = detachable;
+        }
+
+        public Integer getMinDelivery() {
+            return minDelivery;
+        }
+
+        public void setMinDelivery(Integer minDelivery) {
+            this.minDelivery = minDelivery;
+        }
+
+        public Integer getMaxDelivery() {
+            return maxDelivery;
+        }
+
+        public void setMaxDelivery(Integer maxDelivery) {
+            this.maxDelivery = maxDelivery;
+        }
+
+        public String getUnit() {
+            return unit;
+        }
+
+        public void setUnit(String unit) {
+            this.unit = unit;
+        }
+
+        public String getCurrency() {
+            return currency;
+        }
+
+        public void setCurrency(String currency) {
+            this.currency = currency;
+        }
+
+        public double getUnitPrice() {
+            return unitPrice;
+        }
+
+        public void setUnitPrice(double unitPrice) {
+            this.unitPrice = unitPrice;
+        }
+
+        public double getPrice() {
+            return price;
+        }
+
+        public void setPrice(double price) {
+            this.price = price;
+        }
+
+        public Integer getAmount() {
+            return amount;
+        }
+
+        public void setAmount(Integer amount) {
+            this.amount = amount;
+        }
+    }
+
+    public List<Product> getProduct() {
+        return product;
+    }
+
+    public void setProduct(List<Product> product) {
+        this.product = product;
+    }
+
+    public SellerEnterprise getSellerEnterprise() {
+        return sellerEnterprise;
+    }
+
+    public void setSellerEnterprise(SellerEnterprise sellerEnterprise) {
+        this.sellerEnterprise = sellerEnterprise;
+    }
+}

+ 46 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderTimeAxis.java

@@ -0,0 +1,46 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 订单时间轴
+ * @author zhaoy
+ * @create 2019-05-08 17:42
+ */
+public class OrderTimeAxis {
+
+    Integer status; //状态
+    String name; //描述
+    String time; //完成时间
+    Integer type; //1:已完成, 0:未完成 2:进行中
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+}

+ 37 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/OrderTypeList.java

@@ -0,0 +1,37 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 订单类型统计
+ * @author zhaoy
+ * @create 2019-05-08 17:35
+ */
+public class OrderTypeList {
+
+    String name; //类型名称
+    Integer amount; //类型数量
+    Integer code; //类型代码
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Integer amount) {
+        this.amount = amount;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+}

+ 193 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/Reconciliation.java

@@ -0,0 +1,193 @@
+package com.uas.erp.schedular.diymall.domain;
+
+import java.util.List;
+
+/**
+ * 对账单信息
+ * @author zhaoy
+ * @create 2019-05-08 17:24
+ */
+public class Reconciliation {
+
+    String code;//编号
+    String orderCode;//订单编号
+    Integer orderType; //141100 :产品订单, 141110: 报价订单
+    double sumMoney; //总金额
+    String currency; //币别
+    String remark; //备注
+    String receiveTime; //收货时间
+
+    Integer buyerUu;// 对账买方uu
+    Integer buyerEnuu;// 对账买方enuu
+    String buyerName; // 对账买方姓名
+    String buyerTel; // 对账买方联系方式
+    String buyerEnName;//对账买家企业名称
+    Integer sellerUu; //对账卖家uu
+    Integer sellerEnuu; //对账卖家enuu
+    String sellerName; // 对账卖家姓名
+    String sellerTel; // 对账卖家联系方式
+    String sellerEnName; //对账卖家企业名称
+    List<ReconciliationDetail> reconciliationDetail;
+    Integer status; //对账状态:141050 待对账,141010已对账
+    Order order; // 订单信息
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public double getSumMoney() {
+        return sumMoney;
+    }
+
+    public void setSumMoney(double sumMoney) {
+        this.sumMoney = sumMoney;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getReceiveTime() {
+        return receiveTime;
+    }
+
+    public void setReceiveTime(String receiveTime) {
+        this.receiveTime = receiveTime;
+    }
+
+    public Integer getBuyerUu() {
+        return buyerUu;
+    }
+
+    public void setBuyerUu(Integer buyerUu) {
+        this.buyerUu = buyerUu;
+    }
+
+    public Integer getBuyerEnuu() {
+        return buyerEnuu;
+    }
+
+    public void setBuyerEnuu(Integer buyerEnuu) {
+        this.buyerEnuu = buyerEnuu;
+    }
+
+    public String getBuyerName() {
+        return buyerName;
+    }
+
+    public void setBuyerName(String buyerName) {
+        this.buyerName = buyerName;
+    }
+
+    public String getBuyerTel() {
+        return buyerTel;
+    }
+
+    public void setBuyerTel(String buyerTel) {
+        this.buyerTel = buyerTel;
+    }
+
+    public String getBuyerEnName() {
+        return buyerEnName;
+    }
+
+    public void setBuyerEnName(String buyerEnName) {
+        this.buyerEnName = buyerEnName;
+    }
+
+    public Integer getSellerUu() {
+        return sellerUu;
+    }
+
+    public void setSellerUu(Integer sellerUu) {
+        this.sellerUu = sellerUu;
+    }
+
+    public Integer getSellerEnuu() {
+        return sellerEnuu;
+    }
+
+    public void setSellerEnuu(Integer sellerEnuu) {
+        this.sellerEnuu = sellerEnuu;
+    }
+
+    public String getSellerName() {
+        return sellerName;
+    }
+
+    public void setSellerName(String sellerName) {
+        this.sellerName = sellerName;
+    }
+
+    public String getSellerTel() {
+        return sellerTel;
+    }
+
+    public void setSellerTel(String sellerTel) {
+        this.sellerTel = sellerTel;
+    }
+
+    public String getSellerEnName() {
+        return sellerEnName;
+    }
+
+    public void setSellerEnName(String sellerEnName) {
+        this.sellerEnName = sellerEnName;
+    }
+
+    public List<ReconciliationDetail> getReconciliationDetail() {
+        return reconciliationDetail;
+    }
+
+    public void setReconciliationDetail(List<ReconciliationDetail> reconciliationDetail) {
+        this.reconciliationDetail = reconciliationDetail;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Order getOrder() {
+        return order;
+    }
+
+    public void setOrder(Order order) {
+        this.order = order;
+    }
+}

+ 127 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/ReconciliationDetail.java

@@ -0,0 +1,127 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 对账单明细
+ * @author zhaoy
+ * @create 2019-05-08 17:30
+ */
+public class ReconciliationDetail {
+
+    String code;//编号
+    String reconciliationCode;// 对账单编号
+    String orderDetailCode; // 订单明细快照编号
+    String brand; // 品牌
+    String model; // 型号
+    double unitPrice; // 单价
+    String unit; // 单位
+    Integer reciveableQty; // 应收数量
+    Integer actualQty; //实收数量
+    double pric; //小计
+    String remark; // 产品备注
+    Integer differQty; // 差异数量
+    String spec; // 产品规格
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getReconciliationCode() {
+        return reconciliationCode;
+    }
+
+    public void setReconciliationCode(String reconciliationCode) {
+        this.reconciliationCode = reconciliationCode;
+    }
+
+    public String getOrderDetailCode() {
+        return orderDetailCode;
+    }
+
+    public void setOrderDetailCode(String orderDetailCode) {
+        this.orderDetailCode = orderDetailCode;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public double getUnitPrice() {
+        return unitPrice;
+    }
+
+    public void setUnitPrice(double unitPrice) {
+        this.unitPrice = unitPrice;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public Integer getReciveableQty() {
+        return reciveableQty;
+    }
+
+    public void setReciveableQty(Integer reciveableQty) {
+        this.reciveableQty = reciveableQty;
+    }
+
+    public Integer getActualQty() {
+        return actualQty;
+    }
+
+    public void setActualQty(Integer actualQty) {
+        this.actualQty = actualQty;
+    }
+
+    public double getPric() {
+        return pric;
+    }
+
+    public void setPric(double pric) {
+        this.pric = pric;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getDifferQty() {
+        return differQty;
+    }
+
+    public void setDifferQty(Integer differQty) {
+        this.differQty = differQty;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+}

+ 153 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/ReconciliationSimple.java

@@ -0,0 +1,153 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 对账单简要信息
+ * @author zhaoy
+ * @create 2019-05-08 17:33
+ */
+public class ReconciliationSimple {
+    String code;// 验收单号
+    String orderCode;//订单编号
+    String currency; //币别
+    String receiveTime; //收货时间
+    String buyerName; // 买方姓名
+    String buyerEnName;//买家企业名称
+    String sellerName; // 卖家管理员姓名
+    String sellerEnName; //卖家企业名称
+    Integer status; //对账状态:141050 待对账,141010已对账
+    Integer reciveableQty; // 应收总数量
+    Integer actualQty; // 实收总数量
+    Integer differQty; // 差异数量
+    Integer selleruu; // 卖家管理员uu
+    Integer sellerenuu; // 卖家企业uu
+    Integer buyeruu;// 买家下单人uu
+    Integer buyerenuu; // 买家企业uu
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public String getReceiveTime() {
+        return receiveTime;
+    }
+
+    public void setReceiveTime(String receiveTime) {
+        this.receiveTime = receiveTime;
+    }
+
+    public String getBuyerName() {
+        return buyerName;
+    }
+
+    public void setBuyerName(String buyerName) {
+        this.buyerName = buyerName;
+    }
+
+    public String getBuyerEnName() {
+        return buyerEnName;
+    }
+
+    public void setBuyerEnName(String buyerEnName) {
+        this.buyerEnName = buyerEnName;
+    }
+
+    public String getSellerName() {
+        return sellerName;
+    }
+
+    public void setSellerName(String sellerName) {
+        this.sellerName = sellerName;
+    }
+
+    public String getSellerEnName() {
+        return sellerEnName;
+    }
+
+    public void setSellerEnName(String sellerEnName) {
+        this.sellerEnName = sellerEnName;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getReciveableQty() {
+        return reciveableQty;
+    }
+
+    public void setReciveableQty(Integer reciveableQty) {
+        this.reciveableQty = reciveableQty;
+    }
+
+    public Integer getActualQty() {
+        return actualQty;
+    }
+
+    public void setActualQty(Integer actualQty) {
+        this.actualQty = actualQty;
+    }
+
+    public Integer getDifferQty() {
+        return differQty;
+    }
+
+    public void setDifferQty(Integer differQty) {
+        this.differQty = differQty;
+    }
+
+    public Integer getSelleruu() {
+        return selleruu;
+    }
+
+    public void setSelleruu(Integer selleruu) {
+        this.selleruu = selleruu;
+    }
+
+    public Integer getSellerenuu() {
+        return sellerenuu;
+    }
+
+    public void setSellerenuu(Integer sellerenuu) {
+        this.sellerenuu = sellerenuu;
+    }
+
+    public Integer getBuyeruu() {
+        return buyeruu;
+    }
+
+    public void setBuyeruu(Integer buyeruu) {
+        this.buyeruu = buyeruu;
+    }
+
+    public Integer getBuyerenuu() {
+        return buyerenuu;
+    }
+
+    public void setBuyerenuu(Integer buyerenuu) {
+        this.buyerenuu = buyerenuu;
+    }
+}

+ 37 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/SellerDueBank.java

@@ -0,0 +1,37 @@
+package com.uas.erp.schedular.diymall.domain;
+
+/**
+ * 商家收款信息
+ * @author zhaoy
+ * @create 2019-05-08 17:19
+ */
+public class SellerDueBank {
+
+    String name; // 开户名称
+    String accountNumber; // 账号s
+    String bank; // 开户行
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAccountNumber() {
+        return accountNumber;
+    }
+
+    public void setAccountNumber(String accountNumber) {
+        this.accountNumber = accountNumber;
+    }
+
+    public String getBank() {
+        return bank;
+    }
+
+    public void setBank(String bank) {
+        this.bank = bank;
+    }
+}

+ 84 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/SellerEnterprise.java

@@ -0,0 +1,84 @@
+package com.uas.erp.schedular.diymall.domain;
+
+import java.util.List;
+
+/**
+ * 企业信息
+ * @author zhaoy
+ * @create 2019-05-08 17:13
+ */
+public class SellerEnterprise {
+
+    Integer enuu;
+    String name;
+    String adminName;
+    String adminMobile;
+    String telphone;
+    double price; //企业价格小计
+    List<String> area;//不支持的配送区域
+    List<String> settlementTime; // 支持结算方式
+
+    public Integer getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Integer enuu) {
+        this.enuu = enuu;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAdminName() {
+        return adminName;
+    }
+
+    public void setAdminName(String adminName) {
+        this.adminName = adminName;
+    }
+
+    public String getAdminMobile() {
+        return adminMobile;
+    }
+
+    public void setAdminMobile(String adminMobile) {
+        this.adminMobile = adminMobile;
+    }
+
+    public String getTelphone() {
+        return telphone;
+    }
+
+    public void setTelphone(String telphone) {
+        this.telphone = telphone;
+    }
+
+    public double getPrice() {
+        return price;
+    }
+
+    public void setPrice(double price) {
+        this.price = price;
+    }
+
+    public List<String> getArea() {
+        return area;
+    }
+
+    public void setArea(List<String> area) {
+        this.area = area;
+    }
+
+    public List<String> getSettlementTime() {
+        return settlementTime;
+    }
+
+    public void setSettlementTime(List<String> settlementTime) {
+        this.settlementTime = settlementTime;
+    }
+}

+ 143 - 5
src/main/java/com/uas/erp/schedular/diymall/task/DiymallApplyTask.java

@@ -1,19 +1,27 @@
 package com.uas.erp.schedular.diymall.task;
 
-import com.uas.erp.schedular.diymall.domain.DiymallOrder;
-import com.uas.erp.schedular.diymall.domain.DiymallOrderItem;
+import com.sun.deploy.net.URLEncoder;
+import com.uas.erp.schedular.b2b.domain.Customer;
+import com.uas.erp.schedular.diymall.domain.*;
+import com.uas.erp.schedular.finance.mq.HttpsClientRequestFactory;
+import com.uas.erp.schedular.publicproduct.domain.Prod;
 import com.uas.erp.schedular.task.support.Method;
 import com.uas.erp.schedular.task.support.Role;
 import com.uas.erp.schedular.task.support.TaskMapping;
 import com.uas.erp.schedular.util.CollectionUtil;
 import com.uas.erp.schedular.util.ContextHolder;
+import com.usoft.security.utils.OpenApiSignUtil;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.DefaultUriTemplateHandler;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
+import java.io.UnsupportedEncodingException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.*;
 
 /**
  * Created by huangct on 2017/12/26.
@@ -117,4 +125,134 @@ public class DiymallApplyTask extends AbstractTask {
         });
         post("/erp/loan/back", dataWrap(idStr));
     }
+
+    private final static String SECRETKEY = "c910666dcf0f4ff8a0398aa68adc5bf3";
+    private final static String SECRETUU = "10044423";
+    private final static String BASEPATH = "https://dev.uuzcc.cn/malltraderest";
+    /**
+     * 客户在商城店铺对怡海能达下订单,订单信息直接同步至怡海能达系统
+     */
+    @TaskMapping(title = "订单同步", cron = "0 0 3 * * ?")
+    public void getOrdersByPage() throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
+
+        String url = BASEPATH + "/openapi/trade/order/page/get?";
+        String materialCod = ""; // 物料编号
+        Long updateTime = new Date().getTime()-24*60*60*1000; // 数据修改时间 时间戳
+        Integer pageSize = 10;  // 每页条数
+        Integer pageNumber = 1; // 当前页码
+
+        if(materialCod != ""){
+            return;
+        }
+
+        // 查询出数据总条数
+        Integer totalCount = gstOrderList(url,materialCod,updateTime,pageSize,pageNumber).getPagingInfo().getTotalCount();
+
+        // 按页数拿数据
+        GetOrdersByPage getOrdersByPage = null;
+        List<Order> orders = null;
+        tag:
+        for(int i = 1 ; i < totalCount/pageSize ; i ++ ){
+            getOrdersByPage = gstOrderList(url,materialCod,updateTime,pageSize,i);
+            orders = getOrdersByPage.getOrder();
+
+            if(StringUtils.isEmpty(orders)) {
+
+                continue ;
+            }
+
+            for(int j = 0 ; j < orders.size() ; j ++){
+
+                Order order = orders.get(j);
+                order.getEnuu();
+
+                //customer  cu_uu cu_name
+                Customer customer = jdbcTemplate.queryForBean("select * from CUSTOMER where CU_UU = ? and CU_AUDITSTATUS = '已审核'",
+                        Customer.class, order.getEnuu());
+
+                // 取销售id 和销售编号
+                int saleId = jdbcTemplate.getInt("select sale_seq.nextval from sale");
+                String code = jdbcTemplate.generateCode("sale",2);
+
+                Map<String, Object> payment = jdbcTemplate.queryForMap("select pa_code,pa_name from customer  left join payments on CU_PAYMENTID = pa_id where cu_code = 'C18060102'");
+
+                String sql = "insert into SALE (SA_ID , SA_CODE , SA_DATE , SA_ORDERTYPE , SA_CURRENCY , SA_RATE , SA_CUSTCODE , SA_CUSTNAME , SA_APCUSTCODE , SA_APCUSTNAME ," +
+                        "SA_PAYMENTSCODE , SA_PAYMENTS , SA_SELLER , SA_DEPARTMENTCODE , SA_DEPARTMENTNAME , SA_TOPLACE , SA_POCODE , SA_SENDSTATUS , SA_EMNAME , SA_RECORDDATE ," +
+                        "SA_AUDITMAN , SA_AUDITDATE , SA_UPDATEMAN , SA_UPDATEDATE , sa_need1 , sa_need2) values ('" + saleId + "','"+ code + "',sysdate,'" + "商城订单" + "','RMB','1','" + customer.getCu_code() + "','" + customer.getCu_name() + "','" + "C18060102" + "','" + "深圳优软商城科技有限公司" + "','" + payment.get("PA_CODE") + "','" + payment.get("PA_NAME") +
+                        "','" + "周连军" + "','" + "1202" + "','" + "研发二部" + "','" + order.getOrderDeliveryAddr() + "','" + order.getCode() + "','已审核','ADMIN',sysdate,'ADMIN',sysdate,'ADMIN',sysdate,'" + order.getBuyerName() + "','" + order.getBuyerMobile() + "')";
+
+                LoggingOrder loggingOrder = new LoggingOrder();
+
+                List<OrderProduct> orderProductList = order.getOrderProduct();
+                List<String> detailList = new ArrayList<>();
+                for(int n = 0, len = orderProductList.size() ; n < len ; n ++){
+                    OrderProduct orderProduct = orderProductList.get(n);
+
+                    String productSql = "select * from prodcut where pr_code = '" + orderProduct.getCode() + "'";
+                    Prod product = jdbcTemplate.queryForBean(productSql, Prod.class);
+                    if (!ObjectUtils.isEmpty(product)) {
+                        String DetailSql = "Insert into saleDetail( sd_id , sd_said , SD_PRODID , SD_PRODCODE , SD_QTY , SD_PRICE , SD_TAXRATE , SD_DELIVERY) " +
+                                "values(saleDetail_seq.nextval, " + saleId + ", " + product.getPr_id() + ", " + product.getPr_code() + ", " + orderProduct.getAmount() +", " +  orderProduct.getUnitPrice() +", " +  "13%" +", " +  "sysdate" + orderProduct.getMaxDelivery() + ")";
+                        detailList.add(DetailSql);
+                    }
+                }
+
+                String logOrderSql = "Insert into LOGORDER( ORDERCODE , STATUS , SALESTIME , ORDERNUMBER , REMARK)" +
+                        "values(" + ", " + order.getCode() + ", " + loggingOrder.getStatus() + ", " + ",sysdate," + loggingOrder.getOrderNumber() + ", "  + loggingOrder.getRemark() + ")";
+
+                boolean exists=!StringUtils.isEmpty(customer);
+
+                if(!exists){
+                    Customer customerName = jdbcTemplate.queryForBean("select * from CUSTOMER where CU_NAME = ? and CU_AUDITSTATUS = '已审核'",
+                            Customer.class, order.getBuyerEnName());
+                    if(!StringUtils.isEmpty(customerName)){
+                        exists=true;
+                    }
+                }
+
+                if(exists){
+                    jdbcTemplate.execute(sql);
+                    jdbcTemplate.batchExecute(detailList);
+
+                    loggingOrder.setStatus("成功");
+                    loggingOrder.setOrderNumber(code);
+                    loggingOrder.setRemark("销售订单生成成功");
+                    jdbcTemplate.execute(logOrderSql);
+                    break tag;
+                }else {
+                    loggingOrder.setStatus("失败");
+                    loggingOrder.setOrderNumber("");
+                    loggingOrder.setRemark("客户资料不存在或者状态不等于已审核");
+                    jdbcTemplate.execute(logOrderSql);
+                    break tag;
+                }
+
+            }
+
+
+
+        }
+
+    }
+
+
+    private GetOrdersByPage gstOrderList(String requestURL, String materialCode, Long updateTime, Integer pageSize, Integer pageNumber) throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
+        String paramStr = "secretId=" + SECRETUU + "&"+ "materialCode=" + materialCode + "&" + "updateTime=" + updateTime + "&" + "pageSize=" + pageSize +"&" + "pageNumber=" + pageNumber;
+        //进行签名
+        String signatureValue = OpenApiSignUtil.sign(paramStr,SECRETKEY);
+        signatureValue = URLEncoder.encode(signatureValue, "UTF-8");
+        String signatureKV = OpenApiSignUtil.SIGNATURE_KEY + "=" + signatureValue;
+        paramStr += "&" + signatureKV;
+        requestURL = requestURL + paramStr;
+
+        DefaultUriTemplateHandler uriTemplateHandler = new DefaultUriTemplateHandler();
+        uriTemplateHandler.setStrictEncoding(true);
+
+        RestTemplate restTemp = new RestTemplate(new HttpsClientRequestFactory());
+        restTemp.setUriTemplateHandler(uriTemplateHandler);
+        GetOrdersByPage result = restTemp.getForObject(requestURL, GetOrdersByPage.class);
+        //String result1 = restTemp.getForObject(requestURL, String.class);
+        return result;
+    }
+
 }

+ 37 - 0
src/main/java/com/uas/erp/schedular/mall/domain/LadderOffer.java

@@ -0,0 +1,37 @@
+package com.uas.erp.schedular.mall.domain;
+
+/**
+ * 阶梯价格
+ * @author zhaoy
+ * @create 2019-05-07 18:01
+ */
+public class LadderOffer {
+
+    Integer start; // 分段数量起始值
+    Integer end; // 分段数量截止值
+    double price; // 分段单价
+
+    public Integer getStart() {
+        return start;
+    }
+
+    public void setStart(Integer start) {
+        this.start = start;
+    }
+
+    public Integer getEnd() {
+        return end;
+    }
+
+    public void setEnd(Integer end) {
+        this.end = end;
+    }
+
+    public double getPrice() {
+        return price;
+    }
+
+    public void setPrice(double price) {
+        this.price = price;
+    }
+}

+ 46 - 0
src/main/java/com/uas/erp/schedular/mall/domain/PagingInfo.java

@@ -0,0 +1,46 @@
+package com.uas.erp.schedular.mall.domain;
+
+/**
+ * 分页信息
+ * @author zhaoy
+ * @create 2019-05-07 18:00
+ */
+public class PagingInfo {
+
+    Integer totalPage; // 总页数
+    Integer totalCount; // 总条数
+    Integer pageSize; // 每页条数
+    Integer pageNumber; // 当前页码
+
+    public Integer getTotalPage() {
+        return totalPage;
+    }
+
+    public void setTotalPage(Integer totalPage) {
+        this.totalPage = totalPage;
+    }
+
+    public Integer getTotalCount() {
+        return totalCount;
+    }
+
+    public void setTotalCount(Integer totalCount) {
+        this.totalCount = totalCount;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public Integer getPageNumber() {
+        return pageNumber;
+    }
+
+    public void setPageNumber(Integer pageNumber) {
+        this.pageNumber = pageNumber;
+    }
+}

+ 55 - 0
src/main/java/com/uas/erp/schedular/mall/domain/PagingQuery.java

@@ -0,0 +1,55 @@
+package com.uas.erp.schedular.mall.domain;
+
+
+import com.uas.erp.schedular.finance.domain.ERPRespHeader;
+
+import java.util.List;
+
+/**
+ * @author zhaoy
+ * @create 2019-05-07 17:50
+ */
+public class PagingQuery {
+
+    private PagingInfo pagingInfo; // 分页信息
+    private List<Product> product; // 产品列表
+
+    private ERPRespHeader respHeader;
+    // private double saleprice;//销售价格
+
+    public PagingQuery() {
+        super();
+    }
+
+    public PagingInfo getPagingInfo() {
+        return pagingInfo;
+    }
+
+    public void setPagingInfo(PagingInfo pagingInfo) {
+        this.pagingInfo = pagingInfo;
+    }
+
+    public List<Product> getProduct() {
+        return product;
+    }
+
+    public void setProduct(List<Product> product) {
+        this.product = product;
+    }
+
+    public ERPRespHeader getRespHeader() {
+        return respHeader;
+    }
+
+    public void setRespHeader(ERPRespHeader respHeader) {
+        this.respHeader = respHeader;
+    }
+
+    /* public double getSaleprice() {
+        return saleprice;
+    }
+
+    public void setSaleprice(double saleprice) {
+        this.saleprice = saleprice;
+    }*/
+}

+ 257 - 0
src/main/java/com/uas/erp/schedular/mall/domain/Product.java

@@ -0,0 +1,257 @@
+package com.uas.erp.schedular.mall.domain;
+
+import com.uas.erp.schedular.publicinquiry.domain.Enterprise;
+
+import java.util.List;
+
+/**
+ * 产品信息
+ * @author zhaoy
+ * @create 2019-05-07 17:52
+ */
+public class Product {
+
+    String code; // 产品编号
+    String model; // 型号
+    String brand; // 品牌
+    String spec; // 规格
+    Integer collectStatus; // 收藏状态(134010:已收藏、134020:未收藏)
+    Integer status; // 状态(131010.已下架,131020.已上架)
+    String packing; // 包装方式
+    Integer mpq; // 最小包装数量
+    Integer moq; // 最小起订量
+    Integer reserve; // 库存数量
+    Integer frozenQty; // 冻结库存数量
+    boolean detachable; // 是否可拆卖(可拆卖:true,不可拆卖:false)
+    List<LadderOffer> ladderOffer; // 阶梯价格
+    String unit; // 单位
+    String currency; // 币别
+    Integer minDelivery; // 最小交期
+    Integer maxDelivery; // 最大交期
+    boolean deleted; // 是否删除
+    Enterprise enterprise; // 企业信息
+    Integer buyAble; // 可购买状态(可购买:132010,库存不足:132011,信息不足:132012)
+    Integer perAmount; // 每次购买变更数量
+    double sum; // 小计金额
+    Integer availableQty; // 剩余库存
+    Integer sampleStatus; // 样品状态(134040:有样品、134041:无样品)
+    String hlModel; // 高亮关键词型号
+    Integer enuu; // 企业uu
+    String materialCode; // 物料编号
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public Integer getCollectStatus() {
+        return collectStatus;
+    }
+
+    public void setCollectStatus(Integer collectStatus) {
+        this.collectStatus = collectStatus;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getPacking() {
+        return packing;
+    }
+
+    public void setPacking(String packing) {
+        this.packing = packing;
+    }
+
+    public Integer getMpq() {
+        return mpq;
+    }
+
+    public void setMpq(Integer mpq) {
+        this.mpq = mpq;
+    }
+
+    public Integer getMoq() {
+        return moq;
+    }
+
+    public void setMoq(Integer moq) {
+        this.moq = moq;
+    }
+
+    public Integer getReserve() {
+        return reserve;
+    }
+
+    public void setReserve(Integer reserve) {
+        this.reserve = reserve;
+    }
+
+    public Integer getFrozenQty() {
+        return frozenQty;
+    }
+
+    public void setFrozenQty(Integer frozenQty) {
+        this.frozenQty = frozenQty;
+    }
+
+    public boolean isDetachable() {
+        return detachable;
+    }
+
+    public void setDetachable(boolean detachable) {
+        this.detachable = detachable;
+    }
+
+    public List<LadderOffer> getLadderOffer() {
+        return ladderOffer;
+    }
+
+    public void setLadderOffer(List<LadderOffer> ladderOffer) {
+        this.ladderOffer = ladderOffer;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Integer getMinDelivery() {
+        return minDelivery;
+    }
+
+    public void setMinDelivery(Integer minDelivery) {
+        this.minDelivery = minDelivery;
+    }
+
+    public Integer getMaxDelivery() {
+        return maxDelivery;
+    }
+
+    public void setMaxDelivery(Integer maxDelivery) {
+        this.maxDelivery = maxDelivery;
+    }
+
+    public boolean isDeleted() {
+        return deleted;
+    }
+
+    public void setDeleted(boolean deleted) {
+        this.deleted = deleted;
+    }
+
+    public Enterprise getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(Enterprise enterprise) {
+        this.enterprise = enterprise;
+    }
+
+    public Integer getBuyAble() {
+        return buyAble;
+    }
+
+    public void setBuyAble(Integer buyAble) {
+        this.buyAble = buyAble;
+    }
+
+    public Integer getPerAmount() {
+        return perAmount;
+    }
+
+    public void setPerAmount(Integer perAmount) {
+        this.perAmount = perAmount;
+    }
+
+    public double getSum() {
+        return sum;
+    }
+
+    public void setSum(double sum) {
+        this.sum = sum;
+    }
+
+    public Integer getAvailableQty() {
+        return availableQty;
+    }
+
+    public void setAvailableQty(Integer availableQty) {
+        this.availableQty = availableQty;
+    }
+
+    public Integer getSampleStatus() {
+        return sampleStatus;
+    }
+
+    public void setSampleStatus(Integer sampleStatus) {
+        this.sampleStatus = sampleStatus;
+    }
+
+    public String getHlModel() {
+        return hlModel;
+    }
+
+    public void setHlModel(String hlModel) {
+        this.hlModel = hlModel;
+    }
+
+    public Integer getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Integer enuu) {
+        this.enuu = enuu;
+    }
+
+    public String getMaterialCode() {
+        return materialCode;
+    }
+
+    public void setMaterialCode(String materialCode) {
+        this.materialCode = materialCode;
+    }
+}

+ 51 - 0
src/main/java/com/uas/erp/schedular/mall/domain/ProductAvailableQty.java

@@ -0,0 +1,51 @@
+package com.uas.erp.schedular.mall.domain;
+
+import java.util.Objects;
+
+/**
+ * 产品库存列表
+ * @author zhaoy
+ * @create 2019-05-07 18:10
+ */
+public class ProductAvailableQty {
+
+    private String materialCode; // 物料编号
+    private Integer availableQty; // 剩余库存
+
+    public String getMaterialCode() {
+        return materialCode;
+    }
+
+    public void setMaterialCode(String materialCode) {
+        this.materialCode = materialCode;
+    }
+
+    public Integer getAvailableQty() {
+        return availableQty;
+    }
+
+    public void setAvailableQty(Integer availableQty) {
+        this.availableQty = availableQty;
+    }
+
+    public ProductAvailableQty(String materialCode, Integer availableQty) {
+        this.materialCode = materialCode;
+        this.availableQty = availableQty;
+    }
+
+    public ProductAvailableQty() {
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        ProductAvailableQty that = (ProductAvailableQty) o;
+        return materialCode.equals(that.materialCode);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(materialCode);
+    }
+}

+ 41 - 0
src/main/java/com/uas/erp/schedular/mall/domain/Stock.java

@@ -0,0 +1,41 @@
+package com.uas.erp.schedular.mall.domain;
+
+import java.util.Date;
+
+/**
+ * 中间表
+ * @author zhaoy
+ * @create 2019-05-06 10:40
+ */
+public class Stock {
+
+    private String tss_prodcode;    //物料编号
+    private Integer tss_amount;     //库存数量
+    private Date tss_date;          //生成时间
+
+    public String getTss_prodcode() {
+        return tss_prodcode;
+    }
+
+    public void setTss_prodcode(String tss_prodcode) {
+        this.tss_prodcode = tss_prodcode;
+    }
+
+    public Integer getTss_amount() {
+        return tss_amount;
+    }
+
+    public void setTss_amount(Integer tss_amount) {
+        this.tss_amount = tss_amount;
+    }
+
+    public Date getTss_date() {
+        return tss_date;
+    }
+
+    public void setTss_date(Date tss_date) {
+        this.tss_date = tss_date;
+    }
+
+
+}

+ 106 - 1
src/main/java/com/uas/erp/schedular/mall/task/ProductTask.java

@@ -1,17 +1,29 @@
 package com.uas.erp.schedular.mall.task;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.sun.deploy.net.URLEncoder;
 import com.uas.api.b2c_erp.baisc.service.ComponentService;
 import com.uas.api.b2c_erp.seller.model.Prod;
 import com.uas.api.b2c_erp.seller.service.ProdService;
+import com.uas.erp.schedular.finance.mq.HttpsClientRequestFactory;
 import com.uas.erp.schedular.mall.constant.StringConstant;
+import com.uas.erp.schedular.mall.domain.*;
 import com.uas.erp.schedular.task.support.Method;
 import com.uas.erp.schedular.task.support.TaskMapping;
+import com.usoft.security.utils.OpenApiSignUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.DefaultUriTemplateHandler;
 
+import java.io.UnsupportedEncodingException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,6 +42,8 @@ public class ProductTask extends AbstractTask {
     @Autowired
     private ComponentService componentService;
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(ProductTask.class);
+
     @TaskMapping(title = "将平台物料信息复制商城物料库", cron = "0 0 12 * * ?", method = Method.DOWNLOAD)
     public void importMallProductToErpProduct() {
         int i = 1;
@@ -244,4 +258,95 @@ public class ProductTask extends AbstractTask {
         }
         return list;
     }
+
+    private final static String SECRETKEY = "c910666dcf0f4ff8a0398aa68adc5bf3";
+    private final static String SECRETUU = "10044423";
+    private final static String BASEPATH = "https://dev.uuzcc.cn/mallproductrest";
+    //private final static String BASEPATH = "http://127.0.0.1:8080";
+
+    /**
+     * 每天定时计算库存,并按照商城提供的物料清单将对应的库存数据递给商城,商城再去更新对应的产品库存
+     * 默认每天2:00触发
+     */
+    @TaskMapping(title = "库存同步", cron = "0 0 2 * * ?")
+    public void getMallProductToErpProduct() throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
+        // 1.初始数据准备
+        // 1.1查询oracle数据库中的中间表数据
+        List<Stock> stock = jdbcTemplate.queryForBeanList("select * from TT_SHOP_STOCK",
+                Stock.class);
+        String jsons = JSON.toJSONString(stock);
+
+        if (!CollectionUtils.isEmpty(stock)) {
+            // 2.整理数据
+            // 2.1.1 第一次预取10,拿到商城物料总条数
+            String url = BASEPATH + "/openapi/product/page/get?";
+            Integer pageSize = 10;
+            Integer pageNumber = 1;
+            PagingQuery paging = getProductList(url,pageSize,pageNumber);
+
+            if(paging.getRespHeader() != null){
+                if(paging.getRespHeader().getCode() > 0){
+                    LOGGER.error("签名错误, Msg={}",paging.getRespHeader().getMsg());
+                    return;
+                }
+            }
+            Integer totalCount = paging.getPagingInfo().getTotalCount();
+
+            // 2.1.2 取处所有物料数据
+            PagingQuery pagingQuery = getProductList(url,totalCount,1);
+
+
+            //2.2 取交集
+            List<ProductAvailableQty> productAvailableQty1 = new ArrayList<>();
+            List<ProductAvailableQty> productAvailableQty2 = new ArrayList<>();
+            for (int i = 0, len = stock.size(); i < len; i += 1) {
+                productAvailableQty1.add(new ProductAvailableQty(stock.get(i).getTss_prodcode(),stock.get(i).getTss_amount()));
+            }
+            List<Product> productList = pagingQuery.getProduct();
+            for (int i = 0, len = productList.size(); i < len; i += 1) {
+                productAvailableQty2.add(new ProductAvailableQty(productList.get(i).getCode(), 0));
+            }
+
+            productAvailableQty1.retainAll(productAvailableQty2);
+            System.out.println(productAvailableQty1);
+
+            JSONObject json = new JSONObject();
+            json.put("secretId",SECRETUU);
+            json.put("signature", "");
+            json.put("productAvailableQty", JSON.toJSONString(productAvailableQty1));
+            String signatureValues = OpenApiSignUtil.sign(JSON.toJSONString(json), SECRETKEY);
+            json.put("signature",signatureValues);
+
+            RestTemplate restTemp = new RestTemplate(new HttpsClientRequestFactory());
+            DefaultUriTemplateHandler uriTemplateHandler = new DefaultUriTemplateHandler();
+            uriTemplateHandler.setStrictEncoding(true);
+            restTemp.setUriTemplateHandler(uriTemplateHandler);
+
+            String result = restTemp.postForObject(BASEPATH + "/openapi/product/batch/update", json.toString(), String.class);
+            JSONObject response = (JSONObject) JSONObject.parse(result);
+            System.out.println(response);
+        }
+    }
+
+    private PagingQuery getProductList(String requestURL, Integer pageSize, Integer pageNumber) throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
+        String paramStr = "secretId=" + SECRETUU + "&"+ "pageSize=" + pageSize +"&" + "pageNumber=" + pageNumber;
+        //进行签名
+        String signatureValue = OpenApiSignUtil.sign(paramStr,SECRETKEY);
+        signatureValue = URLEncoder.encode(signatureValue, "UTF-8");
+        String signatureKV = OpenApiSignUtil.SIGNATURE_KEY + "=" + signatureValue;
+        paramStr += "&" + signatureKV;
+        requestURL = requestURL + paramStr;
+
+        DefaultUriTemplateHandler uriTemplateHandler = new DefaultUriTemplateHandler();
+        uriTemplateHandler.setStrictEncoding(true);
+
+        RestTemplate restTemp = new RestTemplate(new HttpsClientRequestFactory());
+        restTemp.setUriTemplateHandler(uriTemplateHandler);
+
+        PagingQuery result = restTemp.getForObject(requestURL, PagingQuery.class);
+
+        return result;
+
+    }
+
 }

+ 61 - 0
src/test/java/com/uas/erp/test/TestProduct.java

@@ -0,0 +1,61 @@
+package com.uas.erp.test;
+
+import com.uas.erp.schedular.UasSchedulingApplication;
+import com.uas.erp.schedular.diymall.task.DiymallApplyTask;
+import com.uas.erp.schedular.entity.Master;
+import com.uas.erp.schedular.mall.task.ProductTask;
+import com.uas.erp.schedular.util.ContextHolder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import java.io.UnsupportedEncodingException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * @author zhaoy
+ * @create 2019-05-10 16:41
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = UasSchedulingApplication.class)
+public class TestProduct {
+
+    @Autowired
+    private ProductTask productTask;
+
+    @Autowired
+    private DiymallApplyTask diymallApplyTask;
+
+    @Test
+    public void testProduct() throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
+
+        Master master = new Master();
+        master.setMa_user("T_YHND_HK");
+        master.setMa_uu(10044423L);
+        master.setMa_accesssecret("c910666dcf0f4ff8a0398aa68adc5bf3");
+        master.setMa_env("test");
+        master.setMa_name("T_YHND_HK");
+
+        ContextHolder.setMaster(master);
+        productTask.getMallProductToErpProduct();
+
+    }
+
+    @Test
+    public void testOrders() throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
+
+        Master master = new Master();
+        master.setMa_user("T_YHND_HK");
+        master.setMa_uu(10044423L);
+        master.setMa_accesssecret("c910666dcf0f4ff8a0398aa68adc5bf3");
+        master.setMa_env("test");
+        master.setMa_name("T_YHND_HK");
+
+        ContextHolder.setMaster(master);
+        diymallApplyTask.getOrdersByPage();
+
+    }
+}