Browse Source

新增邮件附件转订单数据保存

hejq 8 years ago
parent
commit
17304f7503

+ 39 - 0
src/main/java/com/uas/platform/b2b/erp/controller/AutOrderController.java

@@ -0,0 +1,39 @@
+package com.uas.platform.b2b.erp.controller;
+
+import com.uas.platform.b2b.erp.model.AutOrder;
+import com.uas.platform.b2b.erp.service.AutOrderService;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.List;
+
+/**
+ * 自动生成订单接口
+ *
+ * Created by hejq on 2018-05-04.
+ */
+@RestController
+@RequestMapping("/erp/saleOrder")
+public class AutOrderController {
+
+    @Autowired
+    private AutOrderService orderService;
+    /**
+     * 保存数据
+     *
+     * @param data
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(method = RequestMethod.POST)
+    public void saveOrders(@RequestParam("data") String data) throws UnsupportedEncodingException {
+        String jsonStr = URLDecoder.decode(data, "UTF-8");
+        List<AutOrder> orderList = FlexJsonUtils.fromJsonArray(jsonStr, AutOrder.class);
+        orderService.saveOrder(orderList);
+    }
+}

+ 15 - 0
src/main/java/com/uas/platform/b2b/erp/dao/AutOrderDao.java

@@ -0,0 +1,15 @@
+package com.uas.platform.b2b.erp.dao;
+
+import com.uas.platform.b2b.erp.model.AutOrder;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 自动生成订单数据库操作
+ *
+ * Created by hejq on 2018-05-04.
+ */
+@Repository
+public interface AutOrderDao extends JpaRepository<AutOrder, Long>, JpaSpecificationExecutor<AutOrder> {
+}

+ 15 - 0
src/main/java/com/uas/platform/b2b/erp/dao/AutOrderDetailDao.java

@@ -0,0 +1,15 @@
+package com.uas.platform.b2b.erp.dao;
+
+import com.uas.platform.b2b.erp.model.AutOrderDetail;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 订单明细数据库操作
+ *
+ * Created by hejq on 2018-05-04.
+ */
+@Repository
+public interface AutOrderDetailDao extends JpaSpecificationExecutor<AutOrderDetail>, JpaRepository<AutOrderDetail, Long> {
+}

+ 2 - 3
src/main/java/com/uas/platform/b2b/erp/dao/ErpLogDao.java

@@ -1,12 +1,11 @@
 package com.uas.platform.b2b.erp.dao;
 
+import com.uas.platform.b2b.erp.model.ErpLog;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.stereotype.Repository;
 
-import com.uas.platform.b2b.erp.model.ErpLog;
-
 @Repository
-public interface ErpLogDao  extends JpaSpecificationExecutor<ErpLog>, JpaRepository<ErpLog, Long> {
+public interface ErpLogDao extends JpaSpecificationExecutor<ErpLog>, JpaRepository<ErpLog, Long> {
 
 }

+ 69 - 0
src/main/java/com/uas/platform/b2b/erp/model/AutOrder.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.erp.model;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -9,6 +10,8 @@ import java.util.List;
  *
  * Created by hejq on 2018-05-02.
  */
+@Table(name = "auto$orders")
+@Entity
 public class AutOrder implements Serializable {
 
     /**
@@ -16,78 +19,120 @@ public class AutOrder implements Serializable {
      */
     private static final long serialVersionUID = 1L;
 
+    /**
+     * id
+     */
+    @Id
+    @Column(name = "pu_id")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
 
     /**
      * 采购单号
      */
+    @Column(name = "pu_code")
     private String pu_code;
 
     /**
      * 采购日期
      */
+    @Column(name = "pu_date")
     private String pu_date;
 
     /**
      * 采购单所属采购员名称
      */
+    @Column(name = "em_name")
     private String em_name;
 
     /**
      * 采购单所属采购员联系方式
      */
+    @Column(name = "em_mobile")
     private String em_mobile;
 
     /**
      * 所属采购员邮箱
      */
+    @Column(name = "em_email")
     private String em_email;
 
     /**
      * 采购方
      */
+    @Column(name = "en_name")
     private String en_name;
 
     /**
      * 供应商
      */
+    @Column(name = "ve_name")
     private String ve_name;
 
     /**
      * 币别
      */
+    @Column(name = "pu_currency")
     private String pu_currency;
 
     /**
      * 税率
      */
+    @Column(name = "pu_rate")
     private String pu_rate;
 
     /**
      * 采购类型
      */
+    @Column(name = "pu_kind")
     private String pu_kind;
 
     /**
      * 付款方式
      */
+    @Column(name = "pu_payments")
     private String pu_payments;
 
     /**
      * 送货地址
      */
+    @Column(name = "pu_shipaddresscode")
     private String pu_shipaddresscode;
 
     /**
      * PDF文档的路径
      */
+    @Column(name = "pu_filepath")
     private String pu_filepath;
 
     /**
      * 对应的采购单详情List
      */
+    @Transient
     private List<AutOrderDetail> details;
 
+    /**
+     * 单据状态
+     * <pre>
+     *     TOBE_HANDLE(810, "未处理")
+     *     HANDLED(811, "已处理")
+     * </pre>
+     */
+    @Column(name = "pu_status")
+    private Integer status;
+
+    /**
+     * 单据录入时间
+     */
+    @Column(name = "pu_recorddate")
+    private Date date;
+
+    /**
+     * 单据转订单时间
+     */
+    @Column(name = "pu_todate")
+    private Date toDate;
+
     public Long getId() {
         return id;
     }
@@ -207,4 +252,28 @@ public class AutOrder implements Serializable {
     public void setDetails(List<AutOrderDetail> details) {
         this.details = details;
     }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Date getToDate() {
+        return toDate;
+    }
+
+    public void setToDate(Date toDate) {
+        this.toDate = toDate;
+    }
 }

+ 65 - 7
src/main/java/com/uas/platform/b2b/erp/model/AutOrderDetail.java

@@ -1,15 +1,17 @@
 package com.uas.platform.b2b.erp.model;
 
-import com.uas.platform.b2b.model.PurchaseOrderAll;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * 自动生成订单明细
  *
  * Created by hejq on 2018-05-02.
  */
+@Table(name = "auto$orderitems")
+@Entity
 public class AutOrderDetail implements Serializable {
 
     /**
@@ -20,42 +22,74 @@ public class AutOrderDetail implements Serializable {
     /**
      * id
      */
+    @Id
+    @Column(name = "pd_id")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
 
     /**
      * 物料编号
      */
+    @Column(name = "pd_prodcode")
     private String pd_prodcode;
 
     /**
      * 采购数量
      */
+    @Column(name = "pd_qty")
     private String pd_qty;
 
     /**
      * 采购价格
      */
+    @Column(name = "pd_price")
     private String pd_price;
 
     /**
      * 交期
      */
+    @Column(name = "pd_delivery")
     private String pd_delivery;
 
     /**
      * 税率税率
      */
+    @Column(name = "pd_rate")
     private String pd_rate;
 
     /**
      * 序号
      */
+    @Column(name = "pd_detno")
     private String pd_detno;
 
     /**
-     * 采购订单
+     * 采购订单id
      */
-    private AutOrder order;
+    @Column(name = "pd_puid")
+    private Long puId;
+
+    /**
+     * 单据状态
+     * <pre>
+     *     TOBE_HANDLE(810, "未处理")
+     *     HANDLED(811, "已处理")
+     * </pre>
+     */
+    @Column(name = "pd_status")
+    private Integer status;
+
+    /**
+     * 单据录入时间
+     */
+    @Column(name = "pd_date")
+    private Date date;
+
+    /**
+     * 单据转订单时间
+     */
+    @Column(name = "pd_todate")
+    private Date toDate;
 
     public Long getId() {
         return id;
@@ -113,11 +147,35 @@ public class AutOrderDetail implements Serializable {
         this.pd_detno = pd_detno;
     }
 
-    public AutOrder getOrder() {
-        return order;
+    public Long getPuId() {
+        return puId;
+    }
+
+    public void setPuId(Long puId) {
+        this.puId = puId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Date getToDate() {
+        return toDate;
     }
 
-    public void setOrder(AutOrder order) {
-        this.order = order;
+    public void setToDate(Date toDate) {
+        this.toDate = toDate;
     }
 }

+ 83 - 1
src/main/java/com/uas/platform/b2b/erp/model/KeywordAlias.java

@@ -1,10 +1,92 @@
 package com.uas.platform.b2b.erp.model;
 
 
+import javax.persistence.*;
+import java.io.Serializable;
+
 /**
  * 关键词别名
  *
  * Created by hejq on 2018-05-02.
  */
-public class KeywordAlias {
+@Table(name = "keyword$alias")
+@Entity
+public class KeywordAlias implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @Id
+    @Column(name = "ka_id")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    /**
+     * 类型
+     */
+    @Column(name = "ka_type")
+    private String type;
+
+    /**
+     * 来源
+     */
+    @Column(name = "ka_source")
+    private String source;
+
+    /**
+     * 标准名称,对应平台需要的数据
+     */
+    @Column(name = "ka_name")
+    private String name;
+
+    /**
+     * 别名,传入的数据
+     */
+    @Column(name = "ka_alias")
+    private String alias;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAlias() {
+        return alias;
+    }
+
+    public void setAlias(String alias) {
+        this.alias = alias;
+    }
 }

+ 20 - 0
src/main/java/com/uas/platform/b2b/erp/service/AutOrderService.java

@@ -0,0 +1,20 @@
+package com.uas.platform.b2b.erp.service;
+
+import com.uas.platform.b2b.erp.model.AutOrder;
+
+import java.util.List;
+
+/**
+ * 自动生成订单接口
+ *
+ * Created by hejq on 2018-05-04.
+ */
+public interface AutOrderService {
+
+    /**
+     * 保存订单信息
+     *
+     * @param orderList 订单信息
+     */
+    void saveOrder(List<AutOrder> orderList);
+}

+ 74 - 0
src/main/java/com/uas/platform/b2b/erp/service/impl/AutOrderServiceImpl.java

@@ -0,0 +1,74 @@
+package com.uas.platform.b2b.erp.service.impl;
+
+import com.uas.platform.b2b.core.util.ThreadUtils;
+import com.uas.platform.b2b.erp.dao.AutOrderDao;
+import com.uas.platform.b2b.erp.dao.AutOrderDetailDao;
+import com.uas.platform.b2b.erp.model.AutOrder;
+import com.uas.platform.b2b.erp.model.AutOrderDetail;
+import com.uas.platform.b2b.erp.service.AutOrderService;
+import com.uas.platform.core.model.Status;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 自动生成订单
+ *
+ * Created by hejq on 2018-05-04.
+ */
+@Service
+public class AutOrderServiceImpl implements AutOrderService {
+
+    @Autowired
+    private AutOrderDao autOrderDao;
+
+    @Autowired
+    private AutOrderDetailDao detailDao;
+
+    /**
+     * 保存订单信息
+     *
+     * @param orderList 订单信息
+     */
+    @Override
+    public void saveOrder(List<AutOrder> orderList) {
+        if (!CollectionUtils.isEmpty(orderList)) {
+            for (AutOrder order : orderList) {
+                order.setStatus(Status.TOBE_HANDLE.value());
+                order.setDate(new Date(System.currentTimeMillis()));
+                final AutOrder autOrder =  autOrderDao.save(order);
+                if (!CollectionUtils.isEmpty(order.getDetails())) {
+                    for (AutOrderDetail detail : order.getDetails()) {
+                        detail.setPuId(autOrder.getId());
+                        detail.setDate(new Date(System.currentTimeMillis()));
+                    }
+                    final List<AutOrderDetail> detailList = detailDao.save(order.getDetails());
+                    ThreadUtils.task(new Runnable() {
+                        @Override
+                        public void run() {
+                            try {
+                                // 转成平台的单据
+                                covertToSaleOrders(autOrder, detailList);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }).run();
+                }
+            }
+        }
+    }
+
+    /**
+     * 生成平台的单据
+     *
+     * @param autOrder 订单主表
+     * @param detailList 订单明细
+     */
+    private void covertToSaleOrders(AutOrder autOrder, List<AutOrderDetail> detailList) {
+        // TODO
+    }
+}