ソースを参照

出入库上传成功记录日志,销售订单下载并处理

luhg 8 年 前
コミット
101abad5a8

+ 31 - 0
src/main/java/com/uas/eis/controller/TestController.java

@@ -63,4 +63,35 @@ public class TestController {
         res.put("data",data);
         res.put("data",data);
         return res;
         return res;
     }
     }
+
+    @PostMapping(value = "/test/getoutstorage")
+    public Map<String,Object> getOutStorage(@RequestBody String str){
+        System.out.println("request body:" + str);
+
+        Map<String,Object> res = new HashMap<>();
+
+        List<Map<String,Object>> data = new LinkedList<>();
+
+        List<Map<String,Object>> detail = new LinkedList<>();
+        Map<String,Object> detailMap = new HashMap<>();
+        detailMap.put("spec_no","A.BA00002");
+        detailMap.put("goods_count",123);
+        detailMap.put("sell_price",100);
+        detail.add(detailMap);
+
+        Map<String,Object> code1 = new HashMap<>();
+        code1.put("order_no","abc123");
+        code1.put("consign_time","2015-07-01 16:39:35");
+        code1.put("customer_no","2017070003");
+        code1.put("customer_name","创趣-华米分销商");
+        code1.put("stockout_list",detail);
+
+        data.add(code1);
+
+        res.put("code",0);
+        res.put("message","test");
+        res.put("total_count",100);
+        res.put("stockout_list",data);
+        return res;
+    }
 }
 }

+ 13 - 0
src/main/java/com/uas/eis/dao/SaleDao.java

@@ -0,0 +1,13 @@
+package com.uas.eis.dao;
+
+import com.uas.eis.entity.Sale;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Created by luhg on 2018/4/26.
+ * 销售订单Dao
+ */
+@Repository
+public interface SaleDao extends JpaRepository<Sale,Long> {
+}

+ 12 - 0
src/main/java/com/uas/eis/dao/SaleDetailDao.java

@@ -0,0 +1,12 @@
+package com.uas.eis.dao;
+
+import com.uas.eis.entity.Sale;
+import com.uas.eis.entity.SaleDetail;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ * Created by luhg on 2018/4/26.
+ * 销售订单明细
+ */
+public interface SaleDetailDao extends JpaRepository<SaleDetail,Long> {
+}

+ 32 - 27
src/main/java/com/uas/eis/entity/Sale.java

@@ -1,5 +1,8 @@
 package com.uas.eis.entity;
 package com.uas.eis.entity;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 import javax.persistence.*;
 import javax.persistence.*;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
@@ -16,28 +19,30 @@ public class Sale  implements Serializable {
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
     @Id
     @Id
-    @GeneratedValue
+    @SequenceGenerator(name="EDI_SALE_SEQUENCE_GENERATOR", sequenceName="EDI_SALE_SEQ", allocationSize=1)
+    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="EDI_SALE_SEQUENCE_GENERATOR")
     @Column(name = "id_")
     @Column(name = "id_")
     private Long id;
     private Long id;
 
 
     @Column(name = "order_no")
     @Column(name = "order_no")
-    private String orderNo;
+    private String order_no;
 
 
     @Column(name = "consign_time")
     @Column(name = "consign_time")
-    private Date signTime;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date consign_time;
 
 
     @Column(name = "customer_no")
     @Column(name = "customer_no")
-    private String customerCode;
+    private String customer_no;
 
 
     @Column(name = "customer_name")
     @Column(name = "customer_name")
-    private String customerName;
+    private String customer_name;
 
 
     /**
     /**
-     * 发票明细.
+     * 销售订单明细.
      */
      */
     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
     @JoinColumn(name = "mainid_")
     @JoinColumn(name = "mainid_")
-    private List<SaleDetail> details;
+    private List<SaleDetail> stockout_list;
 
 
     public Sale(){
     public Sale(){
     }
     }
@@ -50,43 +55,43 @@ public class Sale  implements Serializable {
         this.id = id;
         this.id = id;
     }
     }
 
 
-    public String getOrderNo() {
-        return orderNo;
+    public String getOrder_no() {
+        return order_no;
     }
     }
 
 
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
+    public void setOrder_no(String order_no) {
+        this.order_no = order_no;
     }
     }
 
 
-    public Date getSignTime() {
-        return signTime;
+    public Date getConsign_time() {
+        return consign_time;
     }
     }
 
 
-    public void setSignTime(Date signTime) {
-        this.signTime = signTime;
+    public void setConsign_time(Date consign_time) {
+        this.consign_time = consign_time;
     }
     }
 
 
-    public String getCustomerCode() {
-        return customerCode;
+    public String getCustomer_no() {
+        return customer_no;
     }
     }
 
 
-    public void setCustomerCode(String customerCode) {
-        this.customerCode = customerCode;
+    public void setCustomer_no(String customer_no) {
+        this.customer_no = customer_no;
     }
     }
 
 
-    public String getCustomerName() {
-        return customerName;
+    public String getCustomer_name() {
+        return customer_name;
     }
     }
 
 
-    public void setCustomerName(String customerName) {
-        this.customerName = customerName;
+    public void setCustomer_name(String customer_name) {
+        this.customer_name = customer_name;
     }
     }
 
 
-    public List<SaleDetail> getDetails() {
-        return details;
+    public List<SaleDetail> getStockout_list() {
+        return stockout_list;
     }
     }
 
 
-    public void setDetails(List<SaleDetail> details) {
-        this.details = details;
+    public void setStockout_list(List<SaleDetail> stockout_list) {
+        this.stockout_list = stockout_list;
     }
     }
 }
 }

+ 17 - 16
src/main/java/com/uas/eis/entity/SaleDetail.java

@@ -13,18 +13,19 @@ public class SaleDetail implements Serializable {
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
     @Id
     @Id
-    @GeneratedValue
+    @SequenceGenerator(name="EDI_SALE_DETAIL_SEQUENCE_GENERATOR", sequenceName="EDI_SALE_DETAIL_SEQ", allocationSize=1)
+    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="EDI_SALE_DETAIL_SEQUENCE_GENERATOR")
     @Column(name = "id_")
     @Column(name = "id_")
     private Long id;
     private Long id;
 
 
     @Column(name = "spec_no")
     @Column(name = "spec_no")
-    private String specNo;
+    private String spec_no;
 
 
     @Column(name = "goods_count")
     @Column(name = "goods_count")
-    private Long goodsCount;
+    private Long goods_count;
 
 
     @Column(name = "sell_price")
     @Column(name = "sell_price")
-    private Double sellPrice;
+    private Double sell_price;
 
 
     public SaleDetail(){
     public SaleDetail(){
     }
     }
@@ -37,27 +38,27 @@ public class SaleDetail implements Serializable {
         this.id = id;
         this.id = id;
     }
     }
 
 
-    public String getSpecNo() {
-        return specNo;
+    public String getSpec_no() {
+        return spec_no;
     }
     }
 
 
-    public void setSpecNo(String specNo) {
-        this.specNo = specNo;
+    public void setSpec_no(String spec_no) {
+        this.spec_no = spec_no;
     }
     }
 
 
-    public Long getGoodsCount() {
-        return goodsCount;
+    public Long getGoods_count() {
+        return goods_count;
     }
     }
 
 
-    public void setGoodsCount(Long goodsCount) {
-        this.goodsCount = goodsCount;
+    public void setGoods_count(Long goods_count) {
+        this.goods_count = goods_count;
     }
     }
 
 
-    public Double getSellPrice() {
-        return sellPrice;
+    public Double getSell_price() {
+        return sell_price;
     }
     }
 
 
-    public void setSellPrice(Double sellPrice) {
-        this.sellPrice = sellPrice;
+    public void setSell_price(Double sell_price) {
+        this.sell_price = sell_price;
     }
     }
 }
 }

+ 9 - 0
src/main/java/com/uas/eis/service/SaleService.java

@@ -0,0 +1,9 @@
+package com.uas.eis.service;
+
+/**
+ * Created by luhg on 2018/4/26.
+ * 销售订单
+ */
+public interface SaleService {
+    void getSale();
+}

+ 106 - 0
src/main/java/com/uas/eis/serviceImpl/SaleServiceImpl.java

@@ -0,0 +1,106 @@
+package com.uas.eis.serviceImpl;
+
+import com.uas.eis.dao.BaseDao;
+import com.uas.eis.dao.EdiLogDao;
+import com.uas.eis.dao.EdiPostLogDao;
+import com.uas.eis.dao.SaleDao;
+import com.uas.eis.entity.EdiPostLog;
+import com.uas.eis.entity.Sale;
+import com.uas.eis.service.SaleService;
+import com.uas.eis.utils.Constant;
+import com.uas.eis.utils.HttpUtil;
+import com.uas.eis.utils.JacksonUtil;
+import com.uas.eis.utils.LogUtil;
+import org.apache.commons.logging.Log;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by luhg on 2018/4/26.
+ * 销售订单
+ */
+@Service
+public class SaleServiceImpl implements SaleService{
+    public static final String getSaleFromYundingUrl = "http://dc.oclean.com/getoutstorage";
+    //public static final String getSaleFromYundingUrl = "http://127.0.0.1:8008/test/getoutstorage";
+
+    @Autowired
+    BaseDao baseDao;
+    @Autowired
+    EdiLogDao ediLogDao;
+    @Autowired
+    SaleDao saleDao;
+
+    @Override
+    public void getSale() {
+        String timestamp = String.valueOf(System.currentTimeMillis()/1000);
+
+        Map<String,Object> postMapData = new HashMap<>();
+        postMapData.put("app_key", Constant.yundingAppKey);
+        postMapData.put("time_stamp",timestamp);
+        postMapData.put("start_time","1970-01-01 00:00:00");
+        postMapData.put("end_time","2099-01-01 00:00:00");
+        postMapData.put("page_size",100);
+        postMapData.put("page_index",0);
+
+        String jsonData = JacksonUtil.toSortJson(postMapData);
+        String responseText = null;
+        try {
+            HttpUtil.Response response = HttpUtil.doPostToYunding(getSaleFromYundingUrl,jsonData,timestamp);
+
+            System.out.println("responseText:" + response.getResponseText());
+
+            if(response.getStatusCode()!=200){
+                responseText = "yunding server error";
+                throw new RuntimeException(response.getResponseText());
+            }
+
+            responseText = response.getResponseText();
+            Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
+
+            if(!"0".equals(String.valueOf(responseMap.get("code")))){
+                ediLogDao.save(LogUtil.getRequestFailLog(responseText));
+                return;
+            }
+
+            if(responseMap.get("stockout_list")==null){
+                return;
+            }
+
+            List<Map<String,Object>> datas = (List<Map<String,Object>>) responseMap.get("stockout_list");
+            if(datas.size()>0){
+                execCreateSaleProcedure(datas,responseText);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            ediLogDao.save(LogUtil.getSaleFailLog(responseText,e.getMessage()));
+        }
+    }
+
+    public void execCreateSaleProcedure(List<Map<String,Object>> datas,String responseText){
+        String code = null;
+        String out = null;
+        for(Map<String,Object> data:datas){
+            code = String.valueOf(data.get("order_no"));
+            try {
+                Sale sale = JacksonUtil.fromJson(data, Sale.class);
+                sale = saleDao.save(sale);
+                System.out.println("saleid:" + sale.getId());
+
+                out = baseDao.callProcedure("SP_YUNDING_SALERECEIVE",new Object[]{sale.getId()});
+                if (out!=null){
+                    ediLogDao.save(LogUtil.getSaleFailLog(code,responseText,out));
+                }else{
+                    ediLogDao.save(LogUtil.getSaleSuccessLog(code,responseText));
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+                ediLogDao.save(LogUtil.getSaleFailLog(code,responseText,e.getMessage()));
+            }
+        }
+    }
+}

+ 26 - 77
src/main/java/com/uas/eis/serviceImpl/StockServiceImpl.java

@@ -7,10 +7,7 @@ import com.uas.eis.dao.SqlRowList;
 import com.uas.eis.entity.EdiLog;
 import com.uas.eis.entity.EdiLog;
 import com.uas.eis.entity.EdiPostLog;
 import com.uas.eis.entity.EdiPostLog;
 import com.uas.eis.service.StockService;
 import com.uas.eis.service.StockService;
-import com.uas.eis.utils.BaseUtil;
-import com.uas.eis.utils.Constant;
-import com.uas.eis.utils.HttpUtil;
-import com.uas.eis.utils.JacksonUtil;
+import com.uas.eis.utils.*;
 import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.collections.map.HashedMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.support.rowset.SqlRowSet;
 import org.springframework.jdbc.support.rowset.SqlRowSet;
@@ -34,7 +31,6 @@ public class StockServiceImpl implements StockService{
 
 
     @Autowired
     @Autowired
     BaseDao baseDao;
     BaseDao baseDao;
-
     @Autowired
     @Autowired
     EdiLogDao ediLogDao;
     EdiLogDao ediLogDao;
     @Autowired
     @Autowired
@@ -67,7 +63,7 @@ public class StockServiceImpl implements StockService{
             System.out.println("responseText:" + responseText);
             System.out.println("responseText:" + responseText);
             System.out.println("responseCode:" + response.getStatusCode());
             System.out.println("responseCode:" + response.getStatusCode());
             if(response.getStatusCode()!=200){
             if(response.getStatusCode()!=200){
-                throw new RuntimeException("yunding server error");
+                throw new RuntimeException("yunding server error:" + responseText);
             }
             }
 
 
             Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
             Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
@@ -80,7 +76,7 @@ public class StockServiceImpl implements StockService{
                 List<String> successCodes = (List<String>)msgJson.get("s_no");
                 List<String> successCodes = (List<String>)msgJson.get("s_no");
                 if(successCodes.contains(outerNo)){
                 if(successCodes.contains(outerNo)){
                     res.put("success",true);
                     res.put("success",true);
-                    sendSuccessLog(outerNo,jsonData,"send success");
+                    ediLogDao.save(LogUtil.getSendSuccessLog(outerNo,jsonData,"send success"));
                 }else{
                 }else{
                     res.put("success",false);
                     res.put("success",false);
                     res.put("remark","云顶处理失败!");
                     res.put("remark","云顶处理失败!");
@@ -114,6 +110,7 @@ public class StockServiceImpl implements StockService{
 
 
             if(response.getStatusCode()!=200){
             if(response.getStatusCode()!=200){
                 responseText = "yunding server error";
                 responseText = "yunding server error";
+                throw new RuntimeException(response.getResponseText());
             }
             }
 
 
             responseText = response.getResponseText();
             responseText = response.getResponseText();
@@ -123,7 +120,7 @@ public class StockServiceImpl implements StockService{
             Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
             Map<String,Object> responseMap = JacksonUtil.fromJson(response.getResponseText());
 
 
             if(!"0".equals(String.valueOf(responseMap.get("code")))){
             if(!"0".equals(String.valueOf(responseMap.get("code")))){
-                requestFailLog(responseText);
+                ediLogDao.save(LogUtil.getRequestFailLog(responseText));
                 return;
                 return;
             }
             }
 
 
@@ -132,40 +129,41 @@ public class StockServiceImpl implements StockService{
             }
             }
 
 
             List<Map<String,Object>> datas = (List<Map<String,Object>>) responseMap.get("data");
             List<Map<String,Object>> datas = (List<Map<String,Object>>) responseMap.get("data");
-            execPostProcedure(datas,responseText);
-
+            if(datas.size()>0){
+                execPostProcedure(datas,responseText);
+            }
         }catch (Exception e){
         }catch (Exception e){
             e.printStackTrace();
             e.printStackTrace();
-            postFailLog(responseText,e.getMessage());
+            ediLogDao.save(LogUtil.getPostFailLog(responseText,e.getMessage()));
         }
         }
-
     }
     }
 
 
     public void execPostProcedure(List<Map<String,Object>> datas,String responseText){
     public void execPostProcedure(List<Map<String,Object>> datas,String responseText){
+        String code = null;
+        String piClass = null;
+        EdiPostLog postHist = null;
         for(Map<String,Object> data:datas){
         for(Map<String,Object> data:datas){
-            String code = String.valueOf(data.get("outer_no"));
-            String piClass = String.valueOf(data.get("src_order_type"));
-            EdiPostLog postHist = null;
+            code = String.valueOf(data.get("outer_no"));
+            piClass = String.valueOf(data.get("src_order_type"));
+            postHist = null;
             try {
             try {
                 postHist = ediPostLogDao.findByCodeAndPiClass(code,piClass);
                 postHist = ediPostLogDao.findByCodeAndPiClass(code,piClass);
                 if(postHist!=null){ //说明之前已经过账成功
                 if(postHist!=null){ //说明之前已经过账成功
                     postConfirmToYunding(code,1);
                     postConfirmToYunding(code,1);
                 }else{ //没有记录,说明没有过账成功
                 }else{ //没有记录,说明没有过账成功
-                    System.out.println("code:" + code);
-                    System.out.println("piClass:" + piClass);
                     String out = baseDao.callProcedure("SP_YUNDING_STOCKPOST",new Object[]{code,piClass});
                     String out = baseDao.callProcedure("SP_YUNDING_STOCKPOST",new Object[]{code,piClass});
                     if (out!=null){
                     if (out!=null){
-                        postFailLog(responseText,out);
+                        ediLogDao.save(LogUtil.getPostFailLog(code,responseText,out));
                     }else{
                     }else{
-                        postSuccessLog(responseText);
-                        logToAvoidRepeatPost(code,piClass);  //记录到edi_post_log,防止调用接口失败,下次重复过账
+                        ediLogDao.save(LogUtil.getPostSuccessLog(code,responseText));
+                        ediPostLogDao.save(LogUtil.getLogToAvoidRepeatPost(code,piClass));  //记录到edi_post_log,防止调用接口失败,下次重复过账
                         postConfirmToYunding(code,1);
                         postConfirmToYunding(code,1);
                     }
                     }
                 }
                 }
 
 
             }catch (Exception e){
             }catch (Exception e){
                 e.printStackTrace();
                 e.printStackTrace();
-                postFailLog(responseText,e.getMessage());
+                ediLogDao.save(LogUtil.getPostFailLog(code,responseText,e.getMessage()));
             }
             }
 
 
         }
         }
@@ -189,77 +187,28 @@ public class StockServiceImpl implements StockService{
         }
         }
     }
     }
 
 
-    private EdiPostLog logToAvoidRepeatPost(String code,String piClass){
-        EdiPostLog ediPostLog = new EdiPostLog();
-        ediPostLog.setCode(code);
-        ediPostLog.setPiClass(piClass);
-        ediPostLogDao.save(ediPostLog);
-        return ediPostLog;
-    }
-
-    private EdiLog postSuccessLog(String responseText){
-        EdiLog ediLog = new EdiLog();
-        ediLog.setData(responseText);
-        ediLog.setStatus("success");
-        ediLog.setType("post");
-        ediLogDao.save(ediLog);
-        return ediLog;
-    }
-
-    private EdiLog sendSuccessLog(String outerNo,String data,String type){
-        EdiLog ediLog = new EdiLog();
-        ediLog.setKeyValue(outerNo);
-        ediLog.setData(data);
-        ediLog.setStatus("success");
-        ediLog.setType(type);
-        ediLogDao.save(ediLog);
-        return ediLog;
-    }
-
-    private EdiLog postFailLog(String responseText,String errMsg){
-        EdiLog ediLog = new EdiLog();
-        ediLog.setData(responseText);
-        ediLog.setErrorMsg(errMsg);
-        ediLog.setErrorCode("uas post fail");
-        ediLog.setStatus("fail");
-        ediLog.setType("post fail");
-        ediLogDao.save(ediLog);
-        return ediLog;
-    }
-
-    private EdiLog requestFailLog(String responseText){
-        Map<String,Object> responseMap = JacksonUtil.fromJson(responseText);
-        EdiLog ediLog = new EdiLog();
-        ediLog.setData(responseText);
-        ediLog.setErrorCode(String.valueOf(responseMap.get("code")));
-        ediLog.setErrorMsg(String.valueOf(responseMap.get("message")));
-        ediLog.setStatus("fail");
-        ediLog.setType("request fail");
-        ediLogDao.save(ediLog);
-        return ediLog;
-    }
-
     private Map<String,Object> getMainData(Integer id){
     private Map<String,Object> getMainData(Integer id){
         Map<String,Object> data = new HashMap<>();
         Map<String,Object> data = new HashMap<>();
         SqlRowSet rs = baseDao.getJdbcTemplate().queryForRowSet("select pi_id,pi_class,pi_inoutno,pi_whcode,pi_purpose,pi_remark from prodinout where pi_id=" + id);
         SqlRowSet rs = baseDao.getJdbcTemplate().queryForRowSet("select pi_id,pi_class,pi_inoutno,pi_whcode,pi_purpose,pi_remark from prodinout where pi_id=" + id);
+        String piClass = null;
         if(rs.next()){
         if(rs.next()){
+            piClass = rs.getString("pi_class");
             data.put("outer_no",rs.getString("pi_inoutno"));
             data.put("outer_no",rs.getString("pi_inoutno"));
-            data.put("warehouse_no",getWarehouseCode(rs.getString("pi_class"),rs.getString("pi_whcode"),rs.getString("pi_purpose")));
+            data.put("warehouse_no",getWarehouseCode(piClass,rs.getString("pi_whcode"),rs.getString("pi_purpose")));
             data.put("out_warehouse_no",rs.getString("pi_whcode"));
             data.put("out_warehouse_no",rs.getString("pi_whcode"));
             data.put("remark",rs.getString("pi_remark"));
             data.put("remark",rs.getString("pi_remark"));
-            data.put("order_type",getOrderType(rs.getString("pi_class")));
-            data.put("src_order_type",rs.getString("pi_class"));
+            data.put("order_type",getOrderType(piClass));
+            data.put("src_order_type",piClass);
             data.put("details_list",getDetailData(id));
             data.put("details_list",getDetailData(id));
         }
         }
         return data;
         return data;
     }
     }
 
 
     private String getWarehouseCode(String piClass,String piWhCode,String piPurpose){
     private String getWarehouseCode(String piClass,String piWhCode,String piPurpose){
-        String whCode = piWhCode;
         if("拨出单".equals(piClass)){
         if("拨出单".equals(piClass)){
-            whCode = piPurpose;
+            return piPurpose;
         }
         }
-        return whCode;
+        return piWhCode;
     }
     }
 
 
     private List<Map<String,Object>> getDetailData(Integer id){
     private List<Map<String,Object>> getDetailData(Integer id){

+ 22 - 0
src/main/java/com/uas/eis/task/SaleTask.java

@@ -0,0 +1,22 @@
+package com.uas.eis.task;
+
+import com.uas.eis.service.SaleService;
+import com.uas.eis.service.StockService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by luhg on 2018/4/26.
+ * 销售订单
+ */
+@Component
+public class SaleTask {
+    @Autowired
+    SaleService saleService;
+
+    @Scheduled(cron = "0 0/5 * * * ?")
+    public void getSale() {
+        saleService.getSale();
+    }
+}

+ 35 - 0
src/main/java/com/uas/eis/utils/JacksonUtil.java

@@ -3,6 +3,7 @@ package com.uas.eis.utils;
 import java.io.IOException;
 import java.io.IOException;
 import java.util.*;
 import java.util.*;
 
 
+import com.uas.eis.model.Key;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.JsonParseException;
 import org.codehaus.jackson.JsonParseException;
 import org.codehaus.jackson.JsonParser.Feature;
 import org.codehaus.jackson.JsonParser.Feature;
@@ -17,6 +18,8 @@ import org.codehaus.jackson.map.ObjectMapper;
  * 
  * 
  */
  */
 public class JacksonUtil {
 public class JacksonUtil {
+	private static com.fasterxml.jackson.databind.ObjectMapper objectMapper;
+
 	@SuppressWarnings("unchecked")
 	@SuppressWarnings("unchecked")
 	public static <T> List<T> fromJsonArray(String json) {
 	public static <T> List<T> fromJsonArray(String json) {
 		ObjectMapper mapper = getObjectMapper();
 		ObjectMapper mapper = getObjectMapper();
@@ -121,4 +124,36 @@ public class JacksonUtil {
 		}
 		}
 		return null;
 		return null;
 	}
 	}
+
+	/**
+	 * 把JSON文本parse为JavaBean.
+	 */
+	public static <T> T fromJson(String text, Class<T> clazz) {
+		if (objectMapper == null) {
+			objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
+		}
+
+		try {
+			return objectMapper.readValue(text, clazz);
+		} catch (IOException e) {
+			throw new RuntimeException("转换Java对象失败", e);
+		}
+	}
+
+	/**
+	 * 把JSON文本parse为JavaBean.
+	 */
+	public static <T> T fromJson(Map<?,?> map, Class<T> clazz) {
+		String text = toJson(map);
+		if (objectMapper == null) {
+			objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
+		}
+
+		try {
+			return objectMapper.readValue(text, clazz);
+		} catch (IOException e) {
+			e.printStackTrace();
+			throw new RuntimeException("转换Java对象失败", e);
+		}
+	}
 }
 }

+ 103 - 0
src/main/java/com/uas/eis/utils/LogUtil.java

@@ -0,0 +1,103 @@
+package com.uas.eis.utils;
+
+import com.uas.eis.dao.EdiLogDao;
+import com.uas.eis.dao.EdiPostLogDao;
+import com.uas.eis.entity.EdiLog;
+import com.uas.eis.entity.EdiPostLog;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Map;
+
+/**
+ * Created by luhg on 2018/4/26.
+ * 日志记录工具类
+ */
+public class LogUtil {
+
+    public static EdiPostLog getLogToAvoidRepeatPost(String code, String piClass){
+        EdiPostLog ediPostLog = new EdiPostLog();
+        ediPostLog.setCode(code);
+        ediPostLog.setPiClass(piClass);
+        return ediPostLog;
+    }
+
+    public static EdiLog getPostSuccessLog(String code,String responseText){
+        EdiLog ediLog = new EdiLog();
+        ediLog.setKeyValue(code);
+        ediLog.setData(responseText);
+        ediLog.setStatus("success");
+        ediLog.setType("post");
+        return ediLog;
+    }
+
+    public static EdiLog getSendSuccessLog(String outerNo,String data,String type){
+        EdiLog ediLog = new EdiLog();
+        ediLog.setKeyValue(outerNo);
+        ediLog.setData(data);
+        ediLog.setStatus("success");
+        ediLog.setType(type);
+        return ediLog;
+    }
+
+    public static EdiLog getPostFailLog(String code,String responseText,String errMsg){
+        EdiLog ediLog = new EdiLog();
+        ediLog.setKeyValue(code);
+        ediLog.setData(responseText);
+        ediLog.setErrorMsg(errMsg);
+        ediLog.setErrorCode("uas post fail");
+        ediLog.setStatus("fail");
+        ediLog.setType("post");
+        return ediLog;
+    }
+
+    public static EdiLog getSaleFailLog(String code,String responseText,String errMsg){
+        EdiLog ediLog = new EdiLog();
+        ediLog.setKeyValue(code);
+        ediLog.setData(responseText);
+        ediLog.setErrorMsg(errMsg);
+        ediLog.setErrorCode("uas create sale fail");
+        ediLog.setStatus("fail");
+        ediLog.setType("sale");
+        return ediLog;
+    }
+
+    public static EdiLog getSaleSuccessLog(String code,String responseText){
+        EdiLog ediLog = new EdiLog();
+        ediLog.setKeyValue(code);
+        ediLog.setData(responseText);
+        ediLog.setStatus("success");
+        ediLog.setType("sale");
+        return ediLog;
+    }
+
+    public static EdiLog getPostFailLog(String responseText,String errMsg){
+        EdiLog ediLog = new EdiLog();
+        ediLog.setData(responseText);
+        ediLog.setErrorMsg(errMsg);
+        ediLog.setErrorCode("uas post fail");
+        ediLog.setStatus("fail");
+        ediLog.setType("post fail");
+        return ediLog;
+    }
+
+    public static EdiLog getSaleFailLog(String responseText,String errMsg){
+        EdiLog ediLog = new EdiLog();
+        ediLog.setData(responseText);
+        ediLog.setErrorMsg(errMsg);
+        ediLog.setErrorCode("uas create sale fail");
+        ediLog.setStatus("fail");
+        ediLog.setType("sale fail");
+        return ediLog;
+    }
+
+    public static EdiLog getRequestFailLog(String responseText){
+        Map<String,Object> responseMap = JacksonUtil.fromJson(responseText);
+        EdiLog ediLog = new EdiLog();
+        ediLog.setData(responseText);
+        ediLog.setErrorCode(String.valueOf(responseMap.get("code")));
+        ediLog.setErrorMsg(String.valueOf(responseMap.get("message")));
+        ediLog.setStatus("fail");
+        ediLog.setType("request");
+        return ediLog;
+    }
+}