zx 2 年之前
父节点
当前提交
5f0a01bdb4

+ 16 - 0
pom.xml

@@ -66,6 +66,13 @@
             <version>3.4.2</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpmime</artifactId>
+            <version>4.5</version>
+        </dependency>
+
+
         <!--swagger-->
         <dependency>
             <groupId>io.springfox</groupId>
@@ -101,6 +108,15 @@
             <artifactId>openapi-sdk</artifactId>
             <version>6.0</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpmime</artifactId>
+            <version>4.5.10</version>
+        </dependency>
+
+
+
+
 
     </dependencies>
     <build>

+ 2 - 1
src/main/java/com/steerinfo/dil/controller/OmstrainOrderController.java

@@ -11,6 +11,7 @@ import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Map;
@@ -26,7 +27,7 @@ public class OmstrainOrderController extends BaseRESTfulController {
 
     @ApiOperation(value = "生成火运订单")
     @PostMapping("/generateOmstrain")
-    public int generateOmstrain(@RequestBody(required = false) Map<String,Object> map){
+    public int generateOmstrain(@RequestBody(required = false) Map<String,Object> map) throws IOException {
         int i = omstrainOrderService.generateOmstrain(map);
         return i;
     }

+ 10 - 3
src/main/java/com/steerinfo/dil/controller/OmstruckOrderController.java

@@ -1212,7 +1212,7 @@ public class OmstruckOrderController extends BaseRESTfulController {
 
     @ApiOperation(value = "通过运输订单Id查询订单信息给司机")
     @PostMapping("/getMessageToApp")
-    public Map<String, Object> getMessageToApp(@RequestBody(required = false) Map<String,Object> mapvalue) {
+    public Map<String, Object> getMessageToApp(@RequestBody(required = false) Map<String,Object> mapvalue) throws Exception {
         if(mapvalue.get("orderId") == null && mapvalue.get("orderNumber") == null){
             return null;
         }
@@ -1225,12 +1225,19 @@ public class OmstruckOrderController extends BaseRESTfulController {
             Integer id = omstruckOrderMapper.getOrderIdByOrderNumber(orderNumber);
             mapvalue.put("orderId", id);
         }
-        return omstruckOrderService.getMessageToApp(mapvalue);
+        Map<String, Object> messageToApp=null;
+        try {
+             messageToApp = omstruckOrderService.getMessageToApp(mapvalue);
+        }catch (Exception e){
+            System.out.println("有多个实绩");
+            return  null;
+        }
+        return  messageToApp;
     }
 
     @ApiOperation(value = "通过车牌号查询所有已下发未接收的订单信息")
     @PostMapping("/getAllOrderMessagesByCapacityNum")
-    public List<Map<String, Object>> getAllOrderMessagesByCapacityNum(@RequestBody(required = false) Map<String,Object> mapvalue) {
+    public List<Map<String, Object>> getAllOrderMessagesByCapacityNum(@RequestBody(required = false) Map<String,Object> mapvalue) throws Exception {
         return omstruckOrderService.getAllOrderMessagesByCapacityNum(mapvalue);
     }
 

+ 6 - 0
src/main/java/com/steerinfo/dil/feign/JoinFeign.java

@@ -37,4 +37,10 @@ public interface JoinFeign {
     // 减少物资件数同步金蝶接口
     @PostMapping("/api/v1/join/wsface/downMaterialNumber")
     Map<String,Object> downMaterialNumber(@RequestBody Map<String, Object> map);
+
+
+    // 查询车牌号和金蝶分录
+    @PostMapping("/api/v1/join/amssaleorder/selectSaleSteelOrder")
+    Map<String,Object> selectSaleSteelOrder(@RequestBody Map<String,Object> map);
+
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/OmstrainOrderMapper.java

@@ -23,4 +23,6 @@ public interface OmstrainOrderMapper extends IBaseMapper<OmstrainOrder, BigDecim
 
     List<Map<String, Object>> getWagonShippingDetails(Map<String, Object> map);
 
+    String getInwardWarehouse(BigDecimal orderId);
+
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -316,7 +316,7 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     Map<String, Object> getInwardOrderMessageToApp(Map<String, Object> map);
 
     //计时订单
-    Map<String, Object> getInwardTimeOrderMessageToApp(Map<String, Object> map);
+    Map<String, Object> getInwardTimeOrderMessageToApp(Map<String, Object> map) throws Exception ;
     //根据运输订单号查找需要用车时长
     Map<String,Object>  selectInwardTimeByOrderId(BigDecimal orderId);
 

+ 4 - 1
src/main/java/com/steerinfo/dil/service/IOmstrainOrderService.java

@@ -1,12 +1,15 @@
 package com.steerinfo.dil.service;
 
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
 public interface IOmstrainOrderService {
-    int generateOmstrain(Map<String, Object> map);
+    int generateOmstrain(Map<String, Object> map) throws IOException;
 
     List<Map<String, Object>> getOrderTrainMes(Integer orderId);
 
     List<Map<String, Object>> getWagonShippingDetails(Map<String, Object> map);
+
+
 }

+ 2 - 2
src/main/java/com/steerinfo/dil/service/IOmstruckOrderService.java

@@ -178,10 +178,10 @@ public interface IOmstruckOrderService {
     boolean getDriverConfirmation(Map<String, Object> map);
 
     //通过运输订单号查询订单信息给司机
-    Map<String, Object> getMessageToApp(Map<String, Object> map);
+    Map<String, Object> getMessageToApp(Map<String, Object> map) throws Exception;
 
     //通过车牌号查询所有已下发未接收的订单信息
-    List<Map<String, Object>> getAllOrderMessagesByCapacityNum(Map<String, Object> map);
+    List<Map<String, Object>> getAllOrderMessagesByCapacityNum(Map<String, Object> map) throws Exception;
 
     // 新增采购进口矿订单
     int addInputOrder(Map<String, Object> mapValue);

+ 195 - 4
src/main/java/com/steerinfo/dil/service/impl/OmstrainOrderServiceImpl.java

@@ -1,35 +1,78 @@
 package com.steerinfo.dil.service.impl;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.ctrip.framework.apollo.util.http.HttpUtil;
+import com.steerinfo.dil.feign.JoinFeign;
 import com.steerinfo.dil.mapper.OmstrainOrderMapper;
 import com.steerinfo.dil.mapper.TmsttOrderMapper;
 import com.steerinfo.dil.model.OmstrainOrder;
 import com.steerinfo.dil.model.TmsttOrder;
 import com.steerinfo.dil.service.IOmstrainOrderService;
 import com.steerinfo.dil.util.DataChange;
+import com.steerinfo.dil.util.HTTPRequestUtils;
+import com.steerinfo.dil.util.getRequestUtils;
+import org.apache.commons.lang3.AnnotationUtils;
+import org.apache.http.HttpEntity;
+import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.HttpHeaders;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+import org.apache.http.message.BasicNameValuePair;
 import org.apache.tools.ant.taskdefs.Get;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
 
+import org.springframework.web.client.RestTemplate;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestClientException;
+import org.springframework.web.client.RestTemplate;
+
+
+import java.io.IOException;
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.sql.Wrapper;
+import java.util.*;
 
 @Service
 public class OmstrainOrderServiceImpl implements IOmstrainOrderService {
 
 
+
+    @Autowired
+    private RestTemplate restTemplate;
+
     @Autowired
     OmstrainOrderMapper omstrainOrderMapper;
 
     @Autowired
     TmsttOrderMapper tmsttOrderMapper;
 
+    @Autowired
+    JoinFeign joinFeign;
+
+    private  String guoYuanUrl="http://113.204.217.110:9810/dagang/receiving";
+    //城嘉库登录访问接口
+    private  String chengJiaLoginUrl="http://122.112.226.137:8083/dagon/login";
+    //城嘉库推送数据接口
+    private  String chengJiaSendUrl="http://122.112.226.137:8083/dagon/selectSaleSteelOrder";
+
+    @Bean
+    @LoadBalanced
+    private RestTemplate getRestTemplate() {
+        return new RestTemplate();
+    }
     @Override
     @Transactional
-    public int generateOmstrain(Map<String, Object> map) {
+    public int generateOmstrain(Map<String, Object> map) throws IOException {
         //需要做的事,
         int i;
         //1.生成火运订单,
@@ -92,9 +135,157 @@ public class OmstrainOrderServiceImpl implements IOmstrainOrderService {
         }else{
             i =+ omstrainOrderMapper.insertSelective(omstrainOrder);
         }
+        //调用join接口推送数据(面向异地库)
+        Map<String, Object> RemoteMap = joinFeign.selectSaleSteelOrder(map);
+        List<Map<String,Object>> data =(List<Map<String, Object>>) RemoteMap.get("data");
+        //根据汽运订单查找分属于哪个异地库。
+        String inwardWarehouse = omstrainOrderMapper.getInwardWarehouse(orderId);
+        if (inwardWarehouse!=null) {
+            if (inwardWarehouse.equals("重庆金田库")) {
+                for (Map<String,Object> jitianMap:data) {
+                    Map<String, Object> orchardStorehouse = new HashMap<>();
+                    List<Map<String, Object>> orchardStorehouseList = new ArrayList<>();
+                    Object sendTime = jitianMap.get("sendTime");
+                    String transportType = (String) jitianMap.get("transportType");
+                    //发送时间
+                    orchardStorehouse.put("sendTime", sendTime);
+                    //系统代码
+                    orchardStorehouse.put("sysCode", "DGXT");
+                    //仓库代码
+                    orchardStorehouse.put("warehouseCode", "LJJT");
+                    //运输方式
+                    orchardStorehouse.put("transportType", transportType);
+                    //去掉sendTime
+                    jitianMap.remove("sendTime");
+                    jitianMap.remove("transportType");
+
+                    orchardStorehouseList.add(jitianMap);
+                    orchardStorehouse.put("details", orchardStorehouseList);
+                    //调用果园库接口
+                    sendMesToGuoyuan(orchardStorehouse);
+                }
+            } else if (inwardWarehouse.equals("成都城嘉库")) {
+                //调用城嘉库登录接口获取token
+                //调用城嘉库推送接口
+                String token = DagonloginChenJiaku();
+                if (token != null) {
+                    for (Map<String,Object> map1:data) {
+                        map1.put("token", token);
+                        sendMesToChengJia(map1);
+                    }
+                } else {
+                    System.out.println("登录城嘉库失败");
+                }
+
+            }
+        }
         return i;
     }
 
+
+
+
+    /**
+     * 访问城嘉库接口方法
+     * @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;
+    }
+
+    /**
+     * 访问重庆果园库接口方法
+     * @param map
+     * @return
+     */
+    public int sendMesToGuoyuan(Map<String, Object> map){
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.putAll(map);
+        String jsonData = null;
+        try {
+            jsonData = HTTPRequestUtils.send(guoYuanUrl, jsonObject, "utf-8");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        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;
+    }
+
     @Override
     public List<Map<String, Object>> getOrderTrainMes(Integer orderId) {
         List<Map<String,Object>>mapList = omstrainOrderMapper.getOrderTrainMes(orderId);

+ 3 - 3
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -2015,7 +2015,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
      * @param map
      * @return
      */
-    public Map<String, Object> getMessageToApp(Map<String, Object> map){
+    public Map<String, Object> getMessageToApp(Map<String, Object> map) throws Exception {
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         Integer orderType;
         //获取订单类型
@@ -2080,7 +2080,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 mesMap.put("inwardType", "内转计重");
                 break;
             case 21:
-                mesMap = omstruckOrderMapper.getInwardTimeOrderMessageToApp(map);
+                mesMap =omstruckOrderMapper.getInwardTimeOrderMessageToApp(map);
                 mesMap.put("inwardType", "内转计时");
                 break;
             case 12:
@@ -2103,7 +2103,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
      * @param map
      * @return
      */
-    public List<Map<String, Object>> getAllOrderMessagesByCapacityNum(Map<String, Object> map){
+    public List<Map<String, Object>> getAllOrderMessagesByCapacityNum(Map<String, Object> map) throws Exception {
         String capacityNumber = (String) map.get("capacityNumber");
         //通过车牌号查询所有未下发的订单ID
         List<Map<String, Object>> orderMesList = omstruckOrderMapper.getOrderIdListByCapacityNumber(capacityNumber);

+ 174 - 0
src/main/java/com/steerinfo/dil/util/HTTPRequestUtils.java

@@ -0,0 +1,174 @@
+package com.steerinfo.dil.util;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.http.HttpEntity;
+import org.apache.http.ParseException;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicHeader;
+import org.apache.http.protocol.HTTP;
+import org.apache.http.util.EntityUtils;
+import org.springframework.util.MultiValueMap;
+
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Map;
+
+public class HTTPRequestUtils {
+    /**
+     * 发送post请求
+     * @param url  路径
+     * @param json  参数(json类型)
+     * @param encoding 编码格式
+     * @return
+     * @throws ParseException
+     * @throws IOException
+     */
+    public static String send(String url, JSONObject json, String encoding) throws ParseException, IOException {
+        String body = "";
+
+        //创建httpclient对象
+        CloseableHttpClient client = HttpClients.createDefault();
+        //创建post方式请求对象
+        HttpPost httpPost = new HttpPost(url);
+
+        //装填参数
+        StringEntity s = new StringEntity(json.toString(), "utf-8");
+        s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json"));
+        //设置参数到请求对象中
+        httpPost.setEntity(s);
+        System.out.println("请求地址:" + url);
+        System.out.println(json);
+//        System.out.println("请求参数:"+nvps.toString());
+
+        //设置header信息
+        //指定报文头【Content-type】、【User-Agent】
+//        httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");
+        httpPost.setHeader("Content-type", "application/json");
+        httpPost.setHeader("-UserAgent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
+
+        //执行请求操作,并拿到结果(同步阻塞)
+        CloseableHttpResponse response = client.execute(httpPost);
+        System.out.println(response);
+        //获取结果实体
+        HttpEntity entity = response.getEntity();
+        System.out.println(entity);
+        if (entity != null) {
+            //按指定编码转换结果实体为String类型
+            body = EntityUtils.toString(entity, encoding);
+        }
+        EntityUtils.consume(entity);
+        //释放链接
+        response.close();
+        return body;
+    }
+
+
+    public static String sendFormData(String url, JSONObject json, String encoding,String hearder) throws ParseException, IOException {
+        String body = "";
+
+        //创建httpclient对象
+        CloseableHttpClient client = HttpClients.createDefault();
+        //创建post方式请求对象
+        HttpPost httpPost = new HttpPost(url);
+
+        //装填参数
+        StringEntity s = new StringEntity(json.toString(), "utf-8");
+        s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json"));
+        //设置参数到请求对象中
+        httpPost.setEntity(s);
+        System.out.println("请求地址:" + url);
+        System.out.println(json);
+//        System.out.println("请求参数:"+nvps.toString());
+
+        //设置header信息
+        //指定报文头【Content-type】、【User-Agent】
+//        httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");
+        httpPost.setHeader("Content-type", "application/json");
+        httpPost.setHeader("X-Access-Token",hearder);
+        httpPost.setHeader("-UserAgent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
+
+        //执行请求操作,并拿到结果(同步阻塞)
+        CloseableHttpResponse response = client.execute(httpPost);
+        System.out.println(response);
+        //获取结果实体
+        HttpEntity entity = response.getEntity();
+        System.out.println(entity);
+        if (entity != null) {
+            //按指定编码转换结果实体为String类型
+            body = EntityUtils.toString(entity, encoding);
+        }
+        EntityUtils.consume(entity);
+        //释放链接
+        response.close();
+        return body;
+    }
+
+
+    public static String getJsonData(JSONObject jsonParam,String urls) {
+        StringBuffer sb=new StringBuffer();
+        try {
+            // 创建url资源
+            URL url = new URL(urls);
+            // 建立http连接
+            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+            // 设置允许输出
+            conn.setDoOutput(true);
+            // 设置允许输入
+            conn.setDoInput(true);
+            // 设置不用缓存
+            conn.setUseCaches(false);
+            // 设置传递方式
+            conn.setRequestMethod("POST");
+            // 设置维持长连接
+            conn.setRequestProperty("Connection", "Keep-Alive");
+            // 设置文件字符集:
+            conn.setRequestProperty("Charset", "UTF-8");
+            // 转换为字节数组
+            byte[] data = (jsonParam.toString()).getBytes();
+            // 设置文件长度
+            conn.setRequestProperty("Content-Length", String.valueOf(data.length));
+            // 设置文件类型:
+            conn.setRequestProperty("contentType", "application/json");
+            // 开始连接请求
+            conn.connect();
+            OutputStream out = new DataOutputStream(conn.getOutputStream()) ;
+            // 写入请求的字符串
+            out.write((jsonParam.toString()).getBytes());
+            out.flush();
+            out.close();
+            System.out.println(conn.getResponseCode());
+
+            // 请求返回的状态
+            if (HttpURLConnection.HTTP_OK == conn.getResponseCode()){
+                System.out.println("连接成功");
+                // 请求返回的数据
+                InputStream in1 = conn.getInputStream();
+                try {
+                    String readLine = new String();
+                    BufferedReader responseReader=new BufferedReader(new InputStreamReader(in1,"UTF-8"));
+                    while((readLine=responseReader.readLine())!=null){
+                        sb.append(readLine).append("\n");
+                    }
+                    responseReader.close();
+                    System.out.println(sb.toString());
+
+                } catch (Exception e1) {
+                    e1.printStackTrace();
+                }
+            } else {
+                System.out.println("error++");
+            }
+        } catch (Exception e) {
+
+        }
+        return sb.toString();
+
+    }
+
+
+}

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

@@ -1,9 +1,33 @@
 package com.steerinfo.dil.util;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpHeaders;
+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.entity.ContentType;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+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.*;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
+
+
 /**
  * @author zx
  * @Description:
@@ -11,89 +35,83 @@ import java.util.Map;
  * @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

+ 17 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstrainOrderMapper.xml

@@ -512,6 +512,23 @@
     WHERE
     OO.ORDER_ID = #{orderId}
   </select>
+
+ <!-- 根据运输订单id查找调入仓库 -->
+  <select id="getInwardWarehouse" resultType="java.lang.String" parameterType="java.math.BigDecimal">
+    SELECT
+          distinct RISW.INWARD_WAREHOUSE_NAME "inwardWarehouseName"
+    FROM
+      OMSTRUCK_ORDER OO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+        LEFT JOIN AMS_SALE_ORDER ASO ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+        left join AMS_SALE_MATERIAL ASM  ON ASO.SALE_ORDER_ID = ASM.SALE_ORDER_ID
+        LEFT JOIN RMS_INWARD_STEEL_WAREHOUSE RISW  ON ASM.TRANSFER_IN_OF_WAREHOUSE = RISW.INWARD_WAREHOUSE_CODE
+    WHERE
+      OO.ORDER_ID = #{orderId}
+  </select>
+
+
+
   <select id="getMaterialList" resultType="java.util.Map" parameterType="java.util.Map">
     SELECT RM.MATERIAL_ID "materialId",
            RM.MATERIAL_NAME||'-'||RM.MATERIAL_SPECIFICATION||'('||RM.MATERIAL_SPECIFICATION||')'||'-'||OOM.ORDER_MATERIAL_NUMBER||'件' "materialName"