liyg 2 年之前
父节点
当前提交
7afe6b2147

+ 3 - 1
src/main/java/com/steerinfo/dil/feign/JoinFeign.java

@@ -18,5 +18,7 @@ public interface JoinFeign {
     @PostMapping("/api/v1/join/tmsTruckSms/insertSms")
     public boolean push(@RequestBody(required = false)Map<String, Object> map2) ;
 
-
+    // 查询车牌号和金蝶分录
+    @PostMapping("/api/v1/join/amssaleorder/selectSaleSteelOrder")
+    Map<String,Object> selectSaleSteelOrder(@RequestBody Map<String,Object> map);
 }

+ 115 - 4
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.steerinfo.dil.feign.*;
 import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper;
 import com.steerinfo.dil.mapper.TmstruckLeaveFactoryResultMapper;
@@ -8,10 +9,12 @@ import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
 import com.steerinfo.dil.service.ITmstruckLeaveFactoryResultService;
 import com.steerinfo.dil.util.DataChange;
+import com.steerinfo.dil.util.getRequestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
 
@@ -65,6 +68,15 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
     @Autowired
     AmsFeign amsFeign;
 
+    @Autowired
+    JoinFeign joinFeign;
+
+    private  String guoYuanUrl="http://113.204.217.110:9810/dagang/receiving";
+    //城嘉库登录访问接口
+    private  String chengJiaLoginUrl="http://116.204.73.104:8083/dagon/login";
+    //城嘉库推送数据接口
+    private  String chengJiaSendUrl="http://116.204.73.104:8083/dagon/selectSaleSteelOrder";
+
     /**
      * 查看运输线路是否为出厂
      * @param orderNumber
@@ -273,9 +285,24 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                     e.printStackTrace();
                 }
                 //判断该订单是不是异地库
-                String addressPlace = tmstruckLeaveFactoryResultMapper.getAddressPlace(orderId);
-                if (addressPlace != null && addressPlace.contains("城嘉库")) {
-                    //如果是城嘉库调用城嘉库的方法
+                try {
+                        String addressPlace = tmstruckLeaveFactoryResultMapper.getAddressPlace(orderId);
+                        if (addressPlace != null && addressPlace.contains("城嘉库")) {
+                            List<Map<String,Object>> data =getOffSiteWarehouse(orderNumber);
+                            //调用城嘉库登录接口获取token
+                            String token = DagonloginChenJiaku();
+                            if (token != null) {
+                                for (Map<String,Object> map1:data) {
+                                    map1.put("token", token);
+                                    ///调用城嘉库推送接口
+                                    sendMesToChengJia(map1);
+                                }
+                            } else {
+                                System.out.println("登录城嘉库失败");
+                            }
+                        }
+                } catch (IOException e) {
+                    e.printStackTrace();
                 }
                 try {
                     //发送短信
@@ -487,8 +514,92 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
     }
 
     public List<Map<String,Object>> getOffSiteWarehouse(String orderNumber) {
-        return tmstruckLeaveFactoryResultMapper.getOffSiteWarehouse(orderNumber);
+        List<Map<String, Object>> mapList = tmstruckLeaveFactoryResultMapper.getOffSiteWarehouse(orderNumber);
+        for (Map<String,Object> map1:mapList){
+            String materialName =(String) map1.get("materialName");
+            if (materialName.contains("盘螺")){
+                map1.put("materialType","盘螺");
+            }else if (materialName.contains("盘圆")||materialName.contains("盘元")){
+                map1.put("materialType","盘圆");
+            }else if (materialName.contains("螺纹")){
+                map1.put("materialType","螺纹钢");
+            }
+            //接口发送日期
+            map1.put("sendTime",new Date());
+        }
+        return mapList;
     }
 
+    /**
+     * 访问城嘉库接口方法
+     * @param
+     * @return
+     */
+    public String DagonloginChenJiaku() throws IOException {
+        Map<String, String> reqMap = new HashMap<>();
+        reqMap.put("username","dagon");
+        reqMap.put("password","147258");
+//        JSONObject jsonObject = new JSONObject();
+//        jsonObject.putAll(reqMap);
+//        Map<String,Object> map=new HashMap<>();
+//        map.put("username","dagon");
+//        map.put("password","147258");
+//        jsonObject.putAll(map);
+//        jsonObject.put("username","dagon");
+//        jsonObject.put("password","147258");
+        String jsonData = null;
+        jsonData = getRequestUtils.doPost(chengJiaLoginUrl,reqMap);
+        if(!"null".equals(jsonData)){
+            System.out.println(jsonData);
+            HashMap hashMap = JSON.parseObject(jsonData, HashMap.class);
+            BigDecimal code = DataChange.dataToBigDecimal( hashMap.get("code"));
+            System.out.println(hashMap.get("message"));
+            if(200==code.intValue()){
+                Map<String,Object> result =(Map<String,Object>) hashMap.get("result");
+                String token =(String) result.get("token");
+                return token;
+            }else {
+                System.out.println("推送数据失败"+hashMap.get("message"));
+            }
+        }
+        return null;
+
+
+//        String body = restTemplate.postForEntity(chengJiaLoginUrl, reqMap, String.class).getBody();
+//        System.out.println(body);
+//        return body;
 
+
+    }
+
+
+    /**
+     * 推送数据给城嘉库
+     */
+
+    /**
+     * 访问重庆果园库接口方法
+     * @param map
+     * @return
+     */
+    public int sendMesToChengJia(Map<String, Object> map){
+        String token =(String) map.get("token");
+        Map<String,Object> jsonObject = new HashMap<>();
+        jsonObject.remove(token);
+        jsonObject.putAll(map);
+        String jsonData = null;
+        jsonData = getRequestUtils.doPostAddHeader(chengJiaSendUrl, jsonObject,token);
+        if(!"null".equals(jsonData)){
+            System.out.println(jsonData);
+            HashMap hashMap = JSON.parseObject(jsonData, HashMap.class);
+            BigDecimal code = DataChange.dataToBigDecimal(hashMap.get("code"));
+            System.out.println(hashMap.get("message"));
+            if(code.intValue()==200){
+                return 1;
+            }else {
+                System.out.println("推送数据失败"+hashMap.get("message"));
+            }
+        }
+        return 0;
+    }
 }

+ 88 - 72
src/main/java/com/steerinfo/dil/util/getRequestUtils.java

@@ -1,8 +1,26 @@
 package com.steerinfo.dil.util;
-import com.alibaba.fastjson.JSON;
-import java.io.*;
+
+
+import org.apache.http.NameValuePair;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+import org.springframework.http.MediaType;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * @author zx
@@ -11,89 +29,83 @@ import java.net.URL;
  * @Version:1.0
  */
 public class getRequestUtils {
-    /**
-     * 以post方式调用对方接口方法
-     * @param pathUrl
-     */
-    public static void doPost(String pathUrl, String data){
-        OutputStreamWriter out = null;
-        BufferedReader br = null;
-        String result = "";
+    public static String doPost(String url, Map<String, String> param) {
+        // 创建Httpclient对象
+        CloseableHttpClient httpClient = HttpClients.createDefault();
+        CloseableHttpResponse response = null;
+        String resultString = "";
         try {
-            URL url = new URL(pathUrl);
-
-            //打开和url之间的连接
-            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
-
-            //设定请求的方法为"POST",默认是GET
-            //post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
-            conn.setRequestMethod("POST");
-
-            //设置30秒连接超时
-            conn.setConnectTimeout(30000);
-            //设置30秒读取超时
-            conn.setReadTimeout(30000);
-
-            // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false;
-            conn.setDoOutput(true);
-            // 设置是否从httpUrlConnection读入,默认情况下是true;
-            conn.setDoInput(true);
-
-            // Post请求不能使用缓存
-            conn.setUseCaches(false);
-
-            //设置通用的请求属性
-            conn.setRequestProperty("accept", "*/*");
-            conn.setRequestProperty("connection", "Keep-Alive");  //维持长链接
-            conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
-
-            //连接,从上述url.openConnection()至此的配置必须要在connect之前完成,
-            conn.connect();
+            // 创建Http Post请求
+            HttpPost httpPost = new HttpPost(url);
+            // 创建参数列表
+            if (param != null) {
+                List<NameValuePair> paramList = new ArrayList<>();
+                for (String key : param.keySet()) {
+                    paramList.add(new BasicNameValuePair(key, param.get(key)));
+                }
+                // 模拟表单
+                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
+                httpPost.setEntity(entity);
+            }
+            // 执行http请求
+            response = httpClient.execute(httpPost);
+            resultString = EntityUtils.toString(response.getEntity(), "utf-8");
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                response.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return resultString;
+    }
 
-            /**
-             * 下面的三句代码,就是调用第三方http接口
-             */
-            //获取URLConnection对象对应的输出流
-            //此处getOutputStream会隐含的进行connect(即:如同调用上面的connect()方法,所以在开发中不调用上述的connect()也可以)。
-            out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
-            //发送请求参数即数据
-            out.write(data);
-            //flush输出流的缓冲
-            out.flush();
 
-            /**
-             * 下面的代码相当于,获取调用第三方http接口后返回的结果
-             */
-            //获取URLConnection对象对应的输入流
-            InputStream is = conn.getInputStream();
-            //构造一个字符流缓存
-            br = new BufferedReader(new InputStreamReader(is));
-            String str = "";
-            while ((str = br.readLine()) != null){
-                result += str;
+    public static String doPostAddHeader(String url, Map<String, Object> param,String hearder) {
+        // 创建Httpclient对象
+        CloseableHttpClient httpClient = HttpClients.createDefault();
+        CloseableHttpResponse response = null;
+        String resultString = "";
+        try {
+            // 创建Http Post请求
+            HttpPost httpPost = new HttpPost(url);
+            httpPost.setHeader("X-Access-Token",hearder);
+            MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+            //  请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
+
+//            httpPost.setHeader("Content-Type", String.valueOf(type));
+            // 创建参数列表
+            if (param != null) {
+                List<NameValuePair> paramList = new ArrayList<>();
+                for (Object key : param.keySet()) {
+                    paramList.add(new BasicNameValuePair( key+"",  param.get(key)+""));
+                }
+                System.out.println(paramList);
+                // 模拟表单
+                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList,"UTF-8");
+                httpPost.setEntity(entity);
+                System.out.println("输出表单"+entity);
             }
-            System.out.println(result);
-            //关闭流
-            is.close();
-            //断开连接,disconnect是在底层tcp socket链接空闲时才切断,如果正在被其他线程使用就不切断。
-            conn.disconnect();
-
+            // 执行http请求
+            response = httpClient.execute(httpPost);
+            resultString = EntityUtils.toString(response.getEntity(), "utf-8");
         } catch (Exception e) {
             e.printStackTrace();
-        }finally {
+        } finally {
             try {
-                if (out != null){
-                    out.close();
-                }
-                if (br != null){
-                    br.close();
-                }
+                response.close();
             } catch (IOException e) {
                 e.printStackTrace();
             }
         }
+        return resultString;
     }
 
+
+
+
     /**
      * 以get方式调用对方接口方法
      * @param pathUrl
@@ -161,4 +173,8 @@ public class getRequestUtils {
         }
         return result;
     }
+
+
+
+
 }

+ 3 - 2
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -1393,6 +1393,7 @@
     <select id="getOffSiteWarehouse" resultType="java.util.Map" parameterType="java.lang.String">
         SELECT DISTINCT
             OO.ORDER_ID "orderId",
+            OO.ORDER_ISSUE_TIME "orderIssueTime",
             ASM.MATERIAL_NUMBER || '件' "materialNum",
             RC.CONSIGNEE_COMPANY_NAME "companyName",
             RS.SHIPPER_NAME "shipperName",
@@ -1401,11 +1402,11 @@
             RM.MATERIAL_NAME "materialName",
             RM.MATERIAL_MODEL "materialModel",
             RM.MATERIAL_SPECIFICATION   "materialSpecification",
-            OO.ORDER_NUMBER "orderNo",
+            OO.ORDER_NUMBER "orderNumber",
             RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT || RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS AS "addressPlace",
             TLFR.RESULT_OUT_GATE_TIME "outGateTime",
             ASO.sale_remark "saleRemark" ,
-            TWR.INSERT_UPDATE_REMARK  "wagonno",
+            TWR.INSERT_UPDATE_REMARK  "orderWagonNo",
             sysdate "sendTime",
             '汽运' "transportType",
             '四川省达州市通川区' "shipperAddress",