Browse Source

Merge branch 'master' of https://git.steerinfo.com/DAL-DAZHOU1/DAL-TMS-TRUCK-API

luobang 3 years ago
parent
commit
80bccc653a

+ 81 - 6
src/main/java/com/steerinfo/dil/controller/OffSiteTransportationController.java

@@ -105,12 +105,83 @@ public class OffSiteTransportationController extends BaseRESTfulController {
                                                     @RequestParam(required = false,defaultValue = "20",name = "pageSize")Integer pageSize
                                                     )
     {
+        if(mapValue.containsKey("startTime")&&mapValue.containsKey("endTime")){
+            Date  startDate=new Date(Long.parseLong(mapValue.get("startTime").toString())) ;
+            Date  endDate=new Date(Long.parseLong(mapValue.get("endTime").toString())) ;
+            Calendar ca = Calendar.getInstance();
+            ca.setTime(endDate);
+            ca.add(Calendar.DATE,1);
+            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
+            String startTime1=simpleDateFormat.format(startDate);
+            String endTime1=simpleDateFormat.format(ca.getTime());
+            mapValue.replace("startTime",startTime1);
+            mapValue.replace("endTime",endTime1);
+        }else {
+            Date  startDate=new Date() ;
+            Date  endDate=new Date() ;
+            Calendar ca = Calendar.getInstance();
+            ca.setTime(endDate);
+            ca.add(Calendar.DATE,1);
+            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
+            String startTime1=simpleDateFormat.format(startDate);
+            String endTime1=simpleDateFormat.format(ca.getTime());
+            mapValue.replace("startTime",startTime1);
+            mapValue.replace("endTime",endTime1);
+        }
         List<Map<String,Object>> filter= offSiteTransportationService.getInTransitTransportation(mapValue);
         PageHelper.startPage(pageNum, pageSize);
         List<Map<String,Object>> list= offSiteTransportationService.getInTransitTransportation(mapValue);
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId, filter,list);
         return success(pageList);
-    }//headers = "content-type=multipart/form-data"
+    }
+
+
+
+    @ApiOperation("查询在途运输")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId", value = "动态表头", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer")
+    })
+    @PostMapping("/getFinishTruckOrderInfo")
+    public RESTfulResult getFinishTruckOrderInfo(@RequestBody Map<String,Object> mapValue,
+                                                    @RequestParam(required = true,defaultValue = "468",name = "apiId")Integer apiId,
+                                                    @RequestParam(required = false,defaultValue = "1",name = "pageNum")Integer pageNum,
+                                                    @RequestParam(required = false,defaultValue = "20",name = "pageSize")Integer pageSize
+    )
+    {
+        if(mapValue.containsKey("startTime")&&mapValue.containsKey("endTime")){
+            Date  startDate=new Date(Long.parseLong(mapValue.get("startTime").toString())) ;
+            Date  endDate=new Date(Long.parseLong(mapValue.get("endTime").toString())) ;
+            Calendar ca = Calendar.getInstance();
+            ca.setTime(endDate);
+            ca.add(Calendar.DATE,1);
+            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
+            String startTime1=simpleDateFormat.format(startDate);
+            String endTime1=simpleDateFormat.format(ca.getTime());
+            mapValue.replace("startTime",startTime1);
+            mapValue.replace("endTime",endTime1);
+        }else {
+            Date  startDate=new Date() ;
+            Date  endDate=new Date() ;
+            Calendar ca = Calendar.getInstance();
+            ca.setTime(endDate);
+            ca.add(Calendar.DATE,1);
+            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
+            String startTime1=simpleDateFormat.format(startDate);
+            String endTime1=simpleDateFormat.format(ca.getTime());
+            mapValue.replace("startTime",startTime1);
+            mapValue.replace("endTime",endTime1);
+        }
+        //已经完成
+        mapValue.put("orderStatus",2);
+        List<Map<String,Object>> filter= offSiteTransportationService.getInTransitTransportation(mapValue);
+        PageHelper.startPage(pageNum, pageSize);
+        List<Map<String,Object>> list= offSiteTransportationService.getInTransitTransportation(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, filter,list);
+        return success(pageList);
+    }
 
     @PostMapping(value = "/addTmstruckReceiptResult" )
     public synchronized RESTfulResult addTmstruckReceiptResult(@RequestBody Map<String,Object>  value , Integer num, String orderNumber, String resultArrivalAddress, Integer imgcount3, Integer imgcount4) throws Exception {
@@ -119,10 +190,12 @@ public class OffSiteTransportationController extends BaseRESTfulController {
         map.put("orderNumber",orderNumber);
         map.put("resultArrivalAddress",resultArrivalAddress);
         Integer orderStatus = offSiteTransportationService.getOrderStatus(map);
+        //判断是否已经结束
         if (orderStatus!=null&&orderStatus==2){
-            return failed();
+            return failed(-3);
         }
         map.putAll(value);
+        //添加入库实绩
         Integer resTfulResult = offSiteTransportationService.addTmstruckReceiptResult(map);
         if (!resTfulResult.equals("4")){
             //保存路线
@@ -158,7 +231,7 @@ public class OffSiteTransportationController extends BaseRESTfulController {
                     }
                 }
             }
-
+            //设置运输距离,并且结束订单
             if (to!=null&&to.getResult()!=null&&to.getResult().getRunDistance()!=null){
                 Map<String,Object> ordermap=new HashMap<>();
                 ordermap.put("orderNumber",orderNumber);
@@ -185,10 +258,12 @@ public class OffSiteTransportationController extends BaseRESTfulController {
                 }
 
             }
+            //关闭运输订单
+            offSiteTransportationService.orderClose(orderNumber);
         }
 
 
-        return null;
+        return success(1);
     }
 
     //如果内容丢失重新获得
@@ -198,9 +273,9 @@ public class OffSiteTransportationController extends BaseRESTfulController {
         String netValidationResult = zhongJiaoXingLu.netValidation(capacityNumber);
         Map netValidationMap = (Map) JSONObject.parse(netValidationResult);
         if (Integer.parseInt(netValidationMap.get("status").toString())==1001&&netValidationMap.get("result").toString().equals("yes")){
-            String searchPointJson = HTTPRequestUtils.sendGet("https://apis.map.qq.com/ws/geocoder/v1/", "address="+ URLEncoder.encode("安钢集团信阳钢铁有限责任公司","utf-8")+"&key=WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y");
+            String searchPointJson = HTTPRequestUtils.sendGet("https://apis.map.qq.com/ws/geocoder/v1/", "address="+ URLEncoder.encode("四川省达州钢铁集团有限责任公司","utf-8")+"&key=WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y");
             SearchPoint searchPoint= (SearchPoint) DataConversionTool.jsonToBean(searchPointJson, SearchPoint.class);
-            String searchPointJson2 = HTTPRequestUtils.sendGet("https://apis.map.qq.com/ws/geocoder/v1/", "address="+URLEncoder.encode("河南省平桥区","utf-8")+"&key=WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y");
+            String searchPointJson2 = HTTPRequestUtils.sendGet("https://apis.map.qq.com/ws/geocoder/v1/", "address="+URLEncoder.encode("四川省达州钢铁集团有限责任公司","utf-8")+"&key=WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y");
             SearchPoint searchPoint2= (SearchPoint) DataConversionTool.jsonToBean(searchPointJson2, SearchPoint.class);
             //运单生成之后保存
             HashMap<String,String> redisMap=new HashMap<>();

+ 33 - 21
src/main/java/com/steerinfo/dil/controller/TmstruckReceiptResultController.java

@@ -5,9 +5,11 @@ import com.steerinfo.dil.model.TmstruckReceiptResult;
 import com.steerinfo.dil.service.ITmstruckReceiptResultService;
 import com.steerinfo.dil.util.BaseRESTfulController;
 import com.steerinfo.dil.util.ColumnDataUtil;
+import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.dil.util.PageListAdd;
 import com.steerinfo.framework.controller.RESTfulResult;
 import com.steerinfo.framework.service.pagehelper.PageHelper;
+import com.steerinfo.route.config.ImageFileUtils;
 import com.steerinfo.route.mapper.TmstruckArrivalResultMapper;
 import com.steerinfo.route.model.TmstruckReceiptResultChild;
 import com.steerinfo.route.service.impl.TmstruckReceiptResultChildServiceImpl;
@@ -15,10 +17,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
@@ -57,6 +56,13 @@ public class TmstruckReceiptResultController extends BaseRESTfulController {
     @Autowired
     ColumnDataUtil columnDataUtil;
 
+    @Autowired
+    ImageFileUtils imageFileUtils;
+
+    private final SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
+
+    private final SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
     @ApiOperation(value="查询收货实绩")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
@@ -151,30 +157,36 @@ public class TmstruckReceiptResultController extends BaseRESTfulController {
 
     @ApiOperation(value="展示收货实绩信息")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "apiId(137)", value = "表头", required = false, dataType = "Interger")
+            @ApiImplicitParam(name = "apiId(470)", value = "表头", required = false, dataType = "Interger")
     })
     @PostMapping("/getReceiptResult")
     public RESTfulResult getReceiptResult(@RequestBody(required=false) Map<String, Object> mapValue,
                                           Integer apiId,
                                           Integer pageNum,
-                                          Integer pageSize){
-
-        if(mapValue.containsKey("startTime")&&mapValue.containsKey("endTime")){
-            Date startDate=new Date(Long.parseLong(mapValue.get("startTime").toString())) ;
-            Date endDate=new Date(Long.parseLong(mapValue.get("endTime").toString())) ;
-            Calendar ca = Calendar.getInstance();
-            ca.setTime(endDate);
-            ca.add(Calendar.DATE,1);
-            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
-            String startTime1=simpleDateFormat.format(startDate);
-            String endTime1=simpleDateFormat.format(ca.getTime());
-            mapValue.replace("startTime",startTime1);
-            mapValue.replace("endTime",endTime1);
+                                          Integer pageSize,
+                                          String startTime,
+                                          String endTime,
+                                          String con){
+        if(con!=null) {
+            mapValue.put("con", con);
         }
-        List<Map<String, Object>> receiptResultInfo = tmstruckReceiptResultService.getReceiptResultInfo(mapValue);
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);
         PageHelper.startPage(pageNum,pageSize);
-        List<Map<String, Object>> receiptResultInfo1 = tmstruckReceiptResultService.getReceiptResultInfo(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId,receiptResultInfo,receiptResultInfo1);
+        List<Map<String, Object>> receiptResultInfo = tmstruckReceiptResultService.getReceiptResultInfo(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId,null,receiptResultInfo);
         return success(pageList);
     }
+
+    @ApiOperation(value = "获取抵达作业照片")
+    @PostMapping("/getReceiptPhoto")
+    public RESTfulResult getReceiptPhoto(@RequestParam String orderNumber){
+        String receiptPhoto = tmstruckReceiptResultService.getReceiptPhoto(orderNumber);
+        String photo =null;
+        try {
+            photo = imageFileUtils.downloadFile(receiptPhoto).toString();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return success(photo);
+    }
 }

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

@@ -32,4 +32,6 @@ public interface TmstruckReceiptResultMapper extends IBaseMapper<TmstruckReceipt
 
     //获取收货实绩信息
     List<Map<String, Object>> getReceiptResultInfo(Map<String, Object> map);
+
+    String getReceiptPhoto(String orderNumber);
 }

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

@@ -33,5 +33,6 @@ public interface ITmstruckReceiptResultService{
     BigDecimal addTmstruckReceiptResult(String orderNumber, TmstruckReceiptResult tmstruckReceiptResult);
     //获取收货实绩信息
     List<Map<String, Object>> getReceiptResultInfo(Map<String, Object> map);
-
+    //获取抵达作业照片
+    String getReceiptPhoto(String orderNumber);
 }

+ 1 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -177,6 +177,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         }
         map.putAll(mesMap);
         map.putAll(selectMap);
+        map.remove("Sqe");
         //判断委托是否发送成功
         int checkMeasureCommission = 0;
         switch (orderType){

+ 1 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -202,6 +202,7 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         }
         map.putAll(mesMap);
         map.putAll(selectMap);
+        map.remove("Sqe");
         map.put("orderNumber", orderNumber);
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         i += updateLeaveResultByPDA(map); //更新出厂实绩

+ 6 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckReceiptResultServiceImpl.java

@@ -70,6 +70,12 @@ public class TmstruckReceiptResultServiceImpl implements ITmstruckReceiptResultS
     public List<Map<String, Object>> getReceiptResultInfo(Map<String, Object> map) {
         return tmstruckReceiptResultMapper.getReceiptResultInfo(map);
     }
+
+    @Override
+    public String getReceiptPhoto(String orderNumber) {
+        return tmstruckReceiptResultMapper.getReceiptPhoto(orderNumber);
+    }
+
     /**
      * 查询所有收货实绩
      * @param map

+ 0 - 1
src/main/java/com/steerinfo/dil/util/MD5Util.java

@@ -1,6 +1,5 @@
 package com.steerinfo.dil.util;
 
-import sun.applet.Main;
 
 import java.security.MessageDigest;
 import java.text.SimpleDateFormat;

+ 3 - 2
src/main/java/com/steerinfo/route/service/impl/RouteServiceImpl.java

@@ -432,10 +432,10 @@ public class RouteServiceImpl implements RouteService {
                 String netValidationResult = zhongJiaoXingLu.netValidation(resultMap.get("capacityNumber").toString());
                 Map netValidationMap = (Map) JSONObject.parse(netValidationResult);
                 if (Integer.parseInt(netValidationMap.get("status").toString())==1001&&netValidationMap.get("result").toString().equals("yes")){
-                    String searchPointJson = HTTPRequestUtils.sendGet("https://apis.map.qq.com/ws/geocoder/v1/", "address="+URLEncoder.encode("安钢集团信阳钢铁有限责任公司","utf-8")+"&key=WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y");
+                    String searchPointJson = HTTPRequestUtils.sendGet("https://apis.map.qq.com/ws/geocoder/v1/", "address="+URLEncoder.encode("四川省达州钢铁集团有限责任公司","utf-8")+"&key=WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y");
                     SearchPoint searchPoint= (SearchPoint) DataConversionTool.jsonToBean(searchPointJson, SearchPoint.class);
 
-                    String searchPointJson2 = HTTPRequestUtils.sendGet("https://apis.map.qq.com/ws/geocoder/v1/", "address="+URLEncoder.encode(mapValue.get("receiveAddress")==null||"".equals(String.valueOf(mapValue.get("receiveAddress")))?"长沙市":resultMap.get("addressDeliveryAddress").toString(),"utf-8")+"&key=WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y");
+                    String searchPointJson2 = HTTPRequestUtils.sendGet("https://apis.map.qq.com/ws/geocoder/v1/", "address="+URLEncoder.encode(resultMap.get("receiveAddress")==null||"".equals(String.valueOf(resultMap.get("receiveAddress")))?"长沙市":resultMap.get("receiveAddress").toString(),"utf-8")+"&key=WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y");
                     SearchPoint searchPoint2= (SearchPoint) DataConversionTool.jsonToBean(searchPointJson2, SearchPoint.class);
                     //运单生成之后保存
                     HashMap<String,String> redisMap=new HashMap<>();
@@ -478,6 +478,7 @@ public class RouteServiceImpl implements RouteService {
                         String redisStr=JSON.toJSONString(redisMap);
                         json = zhongJiaoXingLu.visualRoute(redisMap);
                         redisTemplate.opsForValue().set(orderUrl, redisStr, saveTime<0?1000:saveTime, TimeUnit.SECONDS);
+                        redisTemplate.opsForValue().set(orderUrl+suffix, redisStr);
 
                     }else {
 

+ 6 - 2
src/main/java/com/steerinfo/route/threeRequest/ZhongJiaoXingLu.java

@@ -75,6 +75,7 @@ public class ZhongJiaoXingLu {
 
             // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
             String res = des.postHttps(url, map);
+            System.out.println("visualRoute"+res);
             JSONObject jsonObject = JSONObject.parseObject(res);
             if (jsonObject.get("status").toString().equals(1016+"")){
                 login();
@@ -150,6 +151,7 @@ public class ZhongJiaoXingLu {
 
             // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
             String res = des.postHttps(url, map);
+            System.out.println("subAbnormalLineWarnV2"+res);
             JSONObject jsonObject = JSONObject.parseObject(res);
             if (jsonObject.get("status").toString().equals(1016+"")){
                 login();
@@ -178,12 +180,13 @@ public class ZhongJiaoXingLu {
             map.put("token", token);
             map.put("cid", cid);
             map.put("srt", srt);
-            map.put("vclN", vclN);
-            String url = "https://openapi.sinoiov.cn/save/apis/checkTruckExist";
+            map.put("vclN", vclN+"_2");
+            String url = "https://openapi.sinoiov.cn/save/apis/checkTruckExistV2";
             DataExchangeService des = new DataExchangeService(5000, 8000);
 
             // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
             String res = des.postHttps(url, map);
+            System.out.println("netValidation"+res);
             JSONObject jsonObject = JSONObject.parseObject(res);
             if (jsonObject.get("status").toString().equals(1016+"")){
                 login();
@@ -206,6 +209,7 @@ public class ZhongJiaoXingLu {
             DataExchangeService des = new DataExchangeService(5000, 8000);
             // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
             String res = des.postHttps(url, map);
+            System.out.println("login"+res);
             JSONObject jsonObject = JSONObject.parseObject(res);
             this.token=jsonObject.get("result").toString();
             //System.out.println("返回:"+ res);

+ 21 - 13
src/main/java/com/steerinfo/route/util/DataConversionTool.java

@@ -10,6 +10,7 @@ import java.lang.reflect.Type;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.logging.SimpleFormatter;
 
 //@Auther Tiroble
 //@meil 2439003195@qq.com
@@ -30,7 +31,8 @@ public class DataConversionTool {
             if (json instanceof String){
                 //将json转为JSONOject
                 jsonObject= JSONObject.parseObject(json.toString());
-            }else {
+            }
+            else {
                 jsonObject= (JSONObject) json;
             }
             //获得Class对象
@@ -53,17 +55,20 @@ public class DataConversionTool {
                     //判断jsonObject的item是否是String或者Integer,是简单类型直接赋值
                     if ((objectValue instanceof Long)||(objectValue instanceof String)||(objectValue instanceof Integer)||(objectValue instanceof Boolean)||(objectValue instanceof BigDecimal)){
                         //进行数据判断
-                        if (field.getType()== BigDecimal.class){
+                        if (field.getType()==BigDecimal.class){
                             field.set(classObject,new BigDecimal(objectValue.toString()));
-                        } else if (field.getType()== Short.class){
-                            field.set(classObject, Short.parseShort(objectValue.toString()));
-                        }else if (field.getType()== Date.class){
+                        } else if (field.getType()==Short.class){
+                            field.set(classObject,Short.parseShort(objectValue.toString()));
+                        }else if (field.getType()==Date.class){
                             SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                             Date time = formatter.parse(objectValue.toString());
                             field.set(classObject,time);
                         }
                         else {
-                            field.set(classObject,objectValue);
+                            if(field.getType()==Long.class||field.getType()==String.class||field.getType()==Integer.class||field.getType()==Boolean.class){
+                                field.set(classObject,objectValue);
+                            }
+
                         }
                     }
                     //集合类型类型
@@ -75,7 +80,7 @@ public class DataConversionTool {
                         Type genericType = field.getGenericType();
                         //如果是空的
                         if(genericType == null) {
-                            genericType= Object.class;
+                            genericType=Object.class;
                         }
                         // 如果是泛型参数的类型
                         else if(genericType instanceof ParameterizedType){
@@ -91,6 +96,9 @@ public class DataConversionTool {
                         }
                         field.set(classObject,list);
                     }
+//                    else if(field.getType()==Object.class){
+//                        field.set(classObject,objectValue);
+//                    }
                     //如果不是再判断是否是JSONOArray,复杂数据类型
                     else{
                         //如果是JSONObject需要判断是否是引用类型,如果是引用类型就还需要将值转为对应类型
@@ -117,7 +125,7 @@ public class DataConversionTool {
      * @throws IllegalAccessException
      */
     public static Map<String, Object> objectToMap(Object obj) throws IllegalAccessException {
-        Map<String, Object> map = new HashMap<String, Object>();
+        Map<String, Object> map = new HashMap<String,Object>();
         Class<?> clazz = obj.getClass();
         for (Field field : clazz.getDeclaredFields()) {
             field.setAccessible(true);
@@ -157,14 +165,14 @@ public class DataConversionTool {
                     //判断jsonObject的item是否是String或者Integer,是简单类型直接赋值
                     if ((objectValue instanceof String)||(objectValue instanceof Integer)||(objectValue instanceof Boolean)){
                         //进行数据判断
-                        if (field.getType()== BigDecimal.class){
+                        if (field.getType()==BigDecimal.class){
                             field.set(classObject,new BigDecimal(objectValue.toString()));
-                        } else if (field.getType()== Short.class){
+                        } else if (field.getType()==Short.class){
                             if(objectValue.toString()=="0.00"){
                                 field.set(classObject,0);
                             }
-                            field.set(classObject, Short.parseShort(objectValue.toString()));
-                        }else if (field.getType()== Date.class){
+                            field.set(classObject,Short.parseShort(objectValue.toString()));
+                        }else if (field.getType()==Date.class){
                             SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                             Date time = formatter.parse(objectValue.toString());
                             field.set(classObject,time);
@@ -183,7 +191,7 @@ public class DataConversionTool {
                         Type genericType = field.getGenericType();
                         //如果是空的
                         if(genericType == null) {
-                            genericType= Object.class;
+                            genericType=Object.class;
                         }
                         // 如果是泛型参数的类型
                         else if(genericType instanceof ParameterizedType){

+ 3 - 3
src/main/resources/application-dev.yml

@@ -20,8 +20,8 @@ spring:
 piction:
   # path: /usr/share/nginx/html/image
   #  path: /test/data/nginx/html/image
-  path: C:\Users\24390\Desktop\work\a
-#  path: /shared
+  #path: C:\Users\24390\Desktop\work\a
+  path: /shared
 
 #feign设置
 openfeign:
@@ -36,7 +36,7 @@ openfeign:
   WMSFeign:
     url: ${WMSFEIGN_URL:172.16.33.162:8012}
   OmsFeign:
-    url: ${OMSFEIGN_URL:localhost:8016}
+    url: ${OMSFEIGN_URL:172.16.33.162:8016}
   JoinFeign:
     url: ${JOINFEIGN_URL:172.16.33.162:8006}
   QmsFeign:

+ 1 - 1
src/main/resources/application-prod.yml

@@ -21,7 +21,7 @@ spring:
 piction:
   # path: /usr/share/nginx/html/image
   #  path: /test/data/nginx/html/image
-#  path: C:\Users\24390\Desktop\work\a
+  #path: C:\Users\24390\Desktop\work\a
   path: /shared
 #feign设置
 openfeign:

+ 4 - 4
src/main/resources/bootstrap.yml

@@ -53,10 +53,10 @@ str:
   tengxun:
     key: WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y
   ZhongJiaoXingLu:
-    cid: 72c918a9-49d7-434e-ae24-e3b36a589800
-    srt: b6549e66-e3a2-44f2-a1a3-d1f77d6c96f2
-    user: f760f293-4234-4495-90c0-fa1bf5f29bf6
-    pwd: 5T91u0h5SVg132G41440MD1jj2B77I
+    cid: 84254ac6-9f05-47c7-ba3c-1d3398590d70
+    srt: b7c4b6ee-09c8-4865-a0b7-934d42205012
+    user: 108e0bda-1795-4e43-9df9-426a446eb77f
+    pwd: cKyp9G98yFy3gHBHG21us7z85377S1
     #停车
     parkMins: 60
     #离线时长

+ 128 - 105
src/main/resources/com/steerinfo/dil/mapper/OffSiteTransportationMapper.xml

@@ -15,105 +15,119 @@
       select
            *
         from (
-                 select  distinct  OO.ORDER_NUMBER              "orderNumber", --运单订单号
-                        RC.CAPACITY_NUMBER           "capacityNumber",--车牌号
-                        TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",--计毛时间
-                        TWR.RESULT_NET_WEIGHT        "resultNetWeight",--净重
-                        TLFR.RESULT_OUT_GATE_TIME    "resultOutGateTime",--出厂时间
-                        RGOUT.GATEPOST_NAME          "outGatepostName",--出厂门禁
-                        RCR.CARRIER_NAME             "carrierName" , --承运商名称
-                        RRP.ADDRESS_DELIVERY_ADDRESS "deliveryAddress",  --详细收货地址
-                        RM.MATERIAL_NAME             "materialName" , --"物质名称"
-                        RM.MATERIAL_SPECIFICATION    "materialSpecification", -- "物质规格"
-                        RM.MATERIAL_MODEL            "materialModel", --"物质型号"
-                        RCON.CONSIGNEE_COMPANY_NAME   "receiveName"--客户名称
-                        
-                 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 RMS_CONSIGNEE RCON --收货客户
-                               on RCON.CONSIGNEE_ID = ASO.RECEIVE_ID
-                          left join TMSTRUCK_TOTAL_RESULT TTR --运输总实绩
-                               on TTR.ORDER_ID = OO.ORDER_ID
-                          left join TMSTRUCK_LOAD_RESULT TLR --汽车运输实绩表
-                               on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                          left join RMS_WAREHOUSE RW --装卸货仓库
-                               on RW.WAREHOUSE_ID = TLR.LOADING_ID
-                          
-                          left join TMSTRUCK_LEAVE_FACTORY_RESULT TLFR --离厂实绩
-                               on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                          left join RMS_GATEPOST RGOUT --门岗
-                               on RGOUT.GATEPOST_ID = TLFR.GATEPOST_ID
-                          left join RMS_CAPACITY RC --运力
-                               on RC.CAPACITY_ID = OO.CAPACITY_ID
-                               
-                               
-                          left join AMS_DISPATCH_SALE_ORDER  ADSO
-                               on ASOM.SALE_ORDER_MATERIAL_ID=ADSO.SALE_ORDER_MATERIAL_ID
-                          left join RMS_CARRIER RCR --承运单位
-                               on ADSO.CARRIER_ID=RCR.CARRIER_ID
-                               
-                               
-                          left join RMS_RECEIVE_PLACE RRP  --收货地址
-                               on ASOM.SALE_SHIPPING_ADDRESS_ID=RRP.PLACE_ID
-                          left join RMS_RECEIVE_ADDRESS REA
-                               on RRP.ADDRESS_ID=REA.ADDRESS_ID
-                               
-                          left join AMS_SALE_TRUCKNO_MATERIAL ASTM
-                               on ASOM.SALE_ORDER_MATERIAL_ID=ASTM.SALE_ORDER_MATERIAL_ID
-                        left join TMSTRUCK_WEIGHT_RESULT TWR --运输实绩计重
-                        on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID  and  ASTM.MATERIAL_ID =TWR.MATERIAL_ID
-                        left join AMS_SALE_MATERIAL ASM1
-                               on ASTM.MATERIAL_ID =ASM1.SALE_MATERIAL_ID
-                      
-                          left join RMS_MATERIAL RM
-                               on ASM1.MATERIAL_ID=RM.MATERIAL_ID
-                 where OO.ORDER_TYPE in (1) and TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
+        select  distinct
+                    OO.ORDER_STATUS               "orderStatus",
+                    OO.ORDER_NUMBER              "orderNumber", --运单订单号
+                    RC.CAPACITY_NUMBER           "capacityNumber",--车牌号
+                    TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",--计毛时间
+                    TWR.RESULT_NET_WEIGHT        "resultNetWeight",--净重
+                    TLFR.RESULT_OUT_GATE_TIME    "resultOutGateTime",--出厂时间
+                    RGOUT.GATEPOST_NAME          "outGatepostName",--出厂门禁
+                    RCR.CARRIER_NAME             "carrierName" , --承运商名称
+        CONCAT( CONCAT( CONCAT(RRA.ADDRESS_PROVINCE,RRA.ADDRESS_DISTRICT),RRA.Address_Town),RRP.ADDRESS_DELIVERY_ADDRESS) "deliveryAddress",  --详细收货地址
+                    RM.MATERIAL_NAME             "materialName" , --"物质名称"
+                    RM.MATERIAL_SPECIFICATION    "materialSpecification", -- "物质规格"
+                    RM.MATERIAL_MODEL            "materialModel", --"物质型号"
+                    RCON.CONSIGNEE_COMPANY_NAME   "receiveName"--客户名称
+                
+                
+                    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 RMS_CONSIGNEE RCON --收货客户
+                    on RCON.CONSIGNEE_ID = ASO.RECEIVE_ID
+                    left join TMSTRUCK_TOTAL_RESULT TTR --运输总实绩
+                    on TTR.ORDER_ID = OO.ORDER_ID
+                    left join TMSTRUCK_LOAD_RESULT TLR --汽车运输实绩表
+                    on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                    left join RMS_WAREHOUSE RW --装卸货仓库
+                    on RW.WAREHOUSE_ID = TLR.LOADING_ID
+                
+                    left join TMSTRUCK_LEAVE_FACTORY_RESULT TLFR --离厂实绩
+                    on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                    left join RMS_GATEPOST RGOUT --门岗
+                    on RGOUT.GATEPOST_ID = TLFR.GATEPOST_ID
+                    left join RMS_CAPACITY RC --运力
+                    on RC.CAPACITY_ID = OO.CAPACITY_ID
+                
+                
+                    left join AMS_DISPATCH_SALE_ORDER  ADSO
+                    on ASOM.SALE_ORDER_MATERIAL_ID=ADSO.SALE_ORDER_MATERIAL_ID
+                    left join RMS_CARRIER RCR --承运单位
+                    on ADSO.CARRIER_ID=RCR.CARRIER_ID
+                
+                
+                    left join RMS_RECEIVE_PLACE RRP  --收货地址
+                    on ASOM.SALE_SHIPPING_ADDRESS_ID=RRP.PLACE_ID
+                    left join RMS_RECEIVE_ADDRESS RRA
+                    on RRP.ADDRESS_ID=RRA.ADDRESS_ID
+                
+                    left join AMS_SALE_TRUCKNO_MATERIAL ASTM
+                    on ASOM.SALE_ORDER_MATERIAL_ID=ASTM.SALE_ORDER_MATERIAL_ID
+                
+                    left join AMS_SALE_MATERIAL ASM1
+                    on ASTM.MATERIAL_ID =ASM1.SALE_MATERIAL_ID
+                
+                    left join TMSTRUCK_WEIGHT_RESULT TWR --运输实绩计重
+                    on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID  and  ASM1.MATERIAL_ID =TWR.MATERIAL_ID
+                
+                    left join RMS_MATERIAL RM
+                    on ASM1.MATERIAL_ID=RM.MATERIAL_ID
+                    where OO.ORDER_TYPE in (1) and TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
              )
              <where>
-                <if test="orderNumbers !=null">
-                    and "orderNumber" like '${orderNumbers}'
+                <if test="orderStatus !=null">
+                    and "orderStatus" ='${orderStatus}'
+                </if>
+                <if test="orderNumbers !=null and orderNumbers !=''">
+                    and "orderNumber" like '%${orderNumbers}%'
                 </if>
-                 <if test="capacityNumbers !=null">
-                     and "capacityNumber" like '${capacityNumbers}'
+                 <if test="capacityNumbers !=null and capacityNumbers !=''">
+                     and "capacityNumber" like '%${capacityNumbers}%'
+                 </if>
+                 <if test="resultGrossWeightTimes !=null and resultGrossWeightTimes !=''">
+                     and "resultGrossWeightTime" like '%${resultGrossWeightTimes}%'
                  </if>
-                 <if test="resultGrossWeightTimes !=null">
-                     and "resultGrossWeightTime" like '${resultGrossWeightTimes}'
+                 <if test="resultGrossWeightTimes !=null and resultGrossWeightTimes !=''">
+                     and "resultGrossWeightTime" like '%${resultGrossWeightTimes}%'
                  </if>
-                 <if test="resultGrossWeightTimes !=null">
-                     and "resultGrossWeightTime" like '${resultGrossWeightTimes}'
+                 <if test="resultOutGateTimes !=null and resultOutGateTimes !=''">
+                     and "resultOutGateTime" like '%${resultOutGateTimes}%'
                  </if>
-                 <if test="resultOutGateTimes !=null">
-                     and "resultOutGateTime" like '${resultOutGateTimes}'
+                 <if test="resultNetWeights !=null and resultNetWeights !=''">
+                     and "resultNetWeight" like '%${resultNetWeights}%'
                  </if>
-                 <if test="resultNetWeights !=null">
-                     and "resultNetWeight" like '${resultNetWeights}'
+                 <if test="resultOutGateTimes !=null and resultOutGateTimes !=''">
+                     and "resultOutGateTime" like '%${resultOutGateTimes}%'
                  </if>
-                 <if test="resultOutGateTimes !=null">
-                     and "resultOutGateTime" like '${resultOutGateTimes}'
+                 <if test="outGatepostNames !=null and outGatepostNames !=''">
+                     and "outGatepostName" like '%${outGatepostNames}%'
                  </if>
-                 <if test="outGatepostNames !=null">
-                     and "outGatepostName" like '${outGatepostNames}'
+                 <if test="carrierNames !=null and carrierNames !=''">
+                     and "carrierName" like '%${carrierNames}%'
                  </if>
-                 <if test="carrierNames !=null">
-                     and "carrierName" like '${carrierNames}'
+                 <if test="deliveryAddresss !=null and deliveryAddresss !=''">
+                     and "deliveryAddress" like '%${deliveryAddresss}%'
                  </if>
-                 <if test="deliveryAddresss !=null">
-                     and "deliveryAddress" like '${deliveryAddresss}'
+                 <if test="materialNames !=null and materialNames !=''">
+                     and "materialName" like '%${materialNames}%'
                  </if>
-                 <if test="materialNames !=null">
-                     and "materialName" like '${materialNames}'
+                 <if test="materialSpecifications !=null and materialSpecifications !=''">
+                     and "materialSpecification" like '%${materialSpecifications}%'
                  </if>
-                 <if test="materialSpecifications !=null">
-                     and "materialSpecification" like '${materialSpecifications}'
+                 <if test="materialModels !=null and materialModels !=''">
+                     and "materialModel" like '%${materialModels}%'
                  </if>
-                 <if test="materialModels !=null">
-                     and "materialModel" like '${materialModels}'
+                 <if test="receiveNames !=null and receiveNames!=''">
+                     and "receiveName" like '%${receiveNames}%'
                  </if>
-                 <if test="receiveNames !=null">
-                     and "receiveName" like '${receiveNames}'
+                 <if test="startTime != null">
+                     and "resultOutGateTime" &gt;= to_date('${startTime}','yyyy-mm-dd')
+                 </if>
+                 <if test="endTime != null">
+                     and "resultOutGateTime" &lt;= to_date('${endTime}','yyyy-mm-dd')
                  </if>
                  <if test="orderNumber !=null">
                      and  "orderNumber" in
@@ -251,27 +265,36 @@
         where o_order.ORDER_NUMBER = #{orderNumber}
     </select>
     <select id="getStartAndEndCapacityNumber" resultType="java.util.Map">
-         select distinct
-           r_shipper.SHIPPER_NAME "shipperName",
-           receive_address.ADDRESS_DELIVERY_ADDRESS "addressDeliveryAddress",
-           r_capacity.CAPACITY_NUMBER "capacityNumber",
-           t_leave.RESULT_OUT_GATE_TIME "resultOutGateTime"
-        from OMSTRUCK_ORDER o_torder
-               left join TMSTRUCK_TOTAL_RESULT t_total
-                         on o_torder.ORDER_ID=t_total.ORDER_ID
-               left join RMS_CAPACITY r_capacity
-                         on o_torder.CAPACITY_ID=r_capacity.CAPACITY_ID
-               left join AMS_SALE_ORDER_MATERIAL sale_material
-                         on o_torder.ORDER_PLAN_ID=sale_material.SALE_ORDER_MATERIAL_ID
-               left join RMS_RECEIVE_ADDRESS receive_address
-                         on sale_material.SALE_SHIPPING_ADDRESS_ID=receive_address.ADDRESS_ID
-               left join AMS_SALE_ORDER a_s_order
-                         on sale_material.SALE_ORDER_ID=a_s_order.SALE_ORDER_ID
-               left join RMS_SHIPPER r_shipper
-                         on a_s_order.SHIPPER_ID=r_shipper.SHIPPER_ID
-               left join TMSTRUCK_LEAVE_FACTORY_RESULT t_leave
-                         on t_total.RESULT_TOTAL_ID=t_leave.RESULT_TOTAL_ID
-        where o_torder.ORDER_NUMBER=#{orderNumber}
+                SELECT
+                    -- 出厂时间
+                    to_char(TLFR.RESULT_OUT_GATE_TIME,'yyyy-mm-dd hh24:mi:ss')  "resultOutGateTime",
+                    -- 车牌号
+                    RC.CAPACITY_NUMBER "capacityNumber",
+                    -- 收货地址
+                     CONCAT( CONCAT(RRA.ADDRESS_PROVINCE,RRA.ADDRESS_DISTRICT),RRA.Address_Town) "addressDeliveryAddress"
+                    
+                FROM
+                    -- 出厂实绩
+                    TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+                    --  总实绩
+                    LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                    -- 运输订单
+                    LEFT JOIN OMSTRUCK_ORDER OO ON TTR.ORDER_ID = OO.ORDER_ID
+                    -- 运力信息
+                    LEFT JOIN RMS_CAPACITY RC ON OO.CAPACITY_ID = RC.CAPACITY_ID
+                     -- 销售订单中间表
+                    LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON    ASOM.SALE_ORDER_MATERIAL_ID =OO.ORDER_PLAN_ID
+                    --收货地址
+                    left join RMS_RECEIVE_PLACE RRP  on ASOM.SALE_SHIPPING_ADDRESS_ID=RRP.PLACE_ID
+                    
+                    left join RMS_RECEIVE_ADDRESS RRA on RRP.ADDRESS_ID=RRA.ADDRESS_ID
+                    
+                    
+                WHERE
+                    -- 判断出厂实绩的出厂时间不为空
+                    TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
+                    --   并且订单类型等于1(销售订单),2(焦炭发运计划),3(水渣发运计划)
+                    AND OO.ORDER_TYPE =1 AND OO.ORDER_NUMBER=#{orderNumber}
     </select>
     <select id="getReceiptData" resultType="java.util.Map">
         select result_id resultId,result_total_id resultTotalId,insert_username inserUserName,insert_time insertTime,status status from TMSTRUCK_RECEIPT_RESULT

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

@@ -734,7 +734,7 @@
                     -- 销售订单号
                     ASO.SALE_NUMBER  "saleNum",
                     -- 收货地址
-                    RRA.ADDRESS_DELIVERY_ADDRESS "receiveAddress",
+                     CONCAT( CONCAT(RRA.ADDRESS_PROVINCE,RRA.ADDRESS_DISTRICT),RRA.Address_Town) "receiveAddress",
                     -- 收货单位
                     RS.SUPPLIER_NAME  "supplierName" ,
                     -- 发货单位
@@ -760,8 +760,10 @@
                     LEFT JOIN RMS_CAPACITY RC ON OO.CAPACITY_ID = RC.CAPACITY_ID
                      -- 销售订单中间表
                     LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON    ASOM.SALE_ORDER_MATERIAL_ID =OO.ORDER_PLAN_ID
-                    -- 收货地址
-                    LEFT JOIN RMS_RECEIVE_ADDRESS RRA ON    ASOM.SALE_SHIPPING_ADDRESS_ID =RRA.ADDRESS_ID
+                    --收货地址
+                    left join RMS_RECEIVE_PLACE RRP  on ASOM.SALE_SHIPPING_ADDRESS_ID=RRP.PLACE_ID
+                    
+                    left join RMS_RECEIVE_ADDRESS RRA on RRP.ADDRESS_ID=RRA.ADDRESS_ID
                     -- 收货单位
                     LEFT JOIN RMS_SHIPPER RS2 ON ASO.SHIPPER_ID = RS2.SHIPPER_ID
                     

+ 177 - 124
src/main/resources/com/steerinfo/dil/mapper/TmstruckReceiptResultMapper.xml

@@ -784,166 +784,219 @@
   <!--  </select>-->
   
   <select id="getReceiptResultInfo" parameterType="java.util.Map" resultType="java.util.LinkedHashMap">
-    select * from(
-    select distinct a_s_order.SALE_NUMBER "saleNumber",
-    o_torder.ORDER_NUMBER "orderNumber",
-    r_material.MATERIAL_NAME "materialName",
-    r_material.MATERIAL_MODEL "materialModel",
-    r_capacity.CAPACITY_NUMBER "capacityNumber",
-    r_shipper.SHIPPER_NAME "shipperName",
-    r_consignee.CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
-    t_receipt.RESULT_ARRIVAL_ADDRESS "resultReceiptAddress",
-    receive_address.ADDRESS_DELIVERY_ADDRESS "addressDeliveryAddress",
-    t_receipt.RESULT_EMPTY_CONTAINER_PHOTO "resultEmptyContainerPhoto",
-    t_arrival.RESULT_FULL_CONTAINER_PHOTO "resultFullContainerPhoto",
-    t_receipt.RESULT_SIGNED_NOTE_PHOTO "resultSignedNotePhoto",
-    t_receipt.RESULT_RECEIVE_NOTE_PHOTO "resultReceiveNotePhoto",
-    t_receiptchild.OTHER_PHOTO1 "otherPhoto1",
-    t_receiptchild.OTHER_PHOTO2 "otherPhoto2",
-    t_receiptchild.OTHER_PHOTO3 "otherPhoto3",
-    t_receipt.INSERT_TIME "receiptTime",
-    r_carrier.CARRIER_NAME "carrierName",
-    r_gatepost.GATEPOST_NAME "gatepostName"
-    from TMSTRUCK_RECEIPT_RESULT t_receipt
-    left join TMSTRUCK_TOTAL_RESULT t_total
-    on t_receipt.RESULT_TOTAL_ID=t_total.RESULT_TOTAL_ID
-    left join OMSTRUCK_ORDER o_torder
-    on t_total.ORDER_ID=o_torder.ORDER_ID
-    left join RMS_CAPACITY r_capacity
-    on o_torder.CAPACITY_ID=r_capacity.CAPACITY_ID
-    left join RMS_DRIVER_CAPACITY r_d_capacity
-    on r_capacity.CAPACITY_ID=r_d_capacity.CAPACITY_ID
-    left join RMS_CARRIER r_carrier
-    on o_torder.CARRIER_ID=r_carrier.CARRIER_ID
-    left join RMS_CAR_DRIVER r_driver
-    on r_d_capacity.DRIVER_ID=r_driver.DRIVER_ID
-    left join AMS_SALE_ORDER_MATERIAL sale_material
-    on o_torder.ORDER_PLAN_ID=sale_material.SALE_ORDER_MATERIAL_ID
-    left join RMS_RECEIVE_ADDRESS receive_address
-    on sale_material.SALE_SHIPPING_ADDRESS_ID=receive_address.ADDRESS_ID
-    left join RMS_MATERIAL r_material
-    on sale_material.MATERIAL_ID=r_material.MATERIAL_ID
-    left join AMS_SALE_ORDER a_s_order
-    on sale_material.SALE_ORDER_ID=a_s_order.SALE_ORDER_ID
-    left join RMS_SHIPPER r_shipper
-    on a_s_order.SHIPPER_ID=r_shipper.SHIPPER_ID
-    left join RMS_CONSIGNEE r_consignee
-    on a_s_order.CONSIGNEE_ID=r_consignee.CONSIGNEE_ID
-    left join TMSTRUCK_RECEIPT_RESULT_CHILD t_receiptchild
-    on t_receipt.RESULT_ID=t_receiptchild.RECEIPT_RESULT_ID
-    left join TMSTRUCK_LEAVE_FACTORY_RESULT t_leave
-    on t_total.RESULT_TOTAL_ID=t_leave.RESULT_TOTAL_ID
-    LEFT JOIN RMS_GATEPOST r_gatepost
-    ON t_leave.GATEPOST_ID = r_gatepost.GATEPOST_ID
-    left join TMSTRUCK_ARRIVAL_RESULT t_arrival
-    on t_total.RESULT_TOTAL_ID=t_arrival.RESULT_TOTAL_ID
-    order by t_receipt.INSERT_TIME desc)
+    select
+    *
+    from (
+    select  distinct  OO.ORDER_NUMBER              "orderNumber", --运单订单号
+    RC.CAPACITY_NUMBER           "capacityNumber",--车牌号
+    TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",--计毛时间
+    TWR.RESULT_NET_WEIGHT        "resultNetWeight",--净重
+    TLFR.RESULT_OUT_GATE_TIME    "resultOutGateTime",--出厂时间
+    RGOUT.GATEPOST_NAME          "outGatepostName",--出厂门禁
+    RCR.CARRIER_NAME             "carrierName" , --承运商名称
+    RRP.ADDRESS_DELIVERY_ADDRESS "deliveryAddress",  --详细收货地址
+    RM.MATERIAL_NAME             "materialName" , --"物质名称"
+    RM.MATERIAL_SPECIFICATION    "materialSpecification", -- "物质规格"
+    RM.MATERIAL_MODEL            "materialModel", --"物质型号"
+    RCON.CONSIGNEE_COMPANY_NAME   "receiveName",--客户名称
+    TAR.RESULT_ARRIVAL_ADDRESS "resultArrivalAddress",--抵达收货点的地址
+    TAR.INSERT_TIME "insertTime",--抵达作业时间
+    TAR.RESULT_FULL_CONTAINER_PHOTO "resultFullContainerPhoto" --车箱照片
+    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 RMS_CONSIGNEE RCON --收货客户
+    on RCON.CONSIGNEE_ID = ASO.RECEIVE_ID
+    left join TMSTRUCK_TOTAL_RESULT TTR --运输总实绩
+    on TTR.ORDER_ID = OO.ORDER_ID
+    left join TMSTRUCK_LOAD_RESULT TLR --汽车运输实绩表
+    on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    left join TMSTRUCK_ARRIVAL_RESULT TAR
+    on TAR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    left join RMS_WAREHOUSE RW --装卸货仓库
+    on RW.WAREHOUSE_ID = TLR.LOADING_ID
+
+    left join TMSTRUCK_LEAVE_FACTORY_RESULT TLFR --离厂实绩
+    on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    left join RMS_GATEPOST RGOUT --门岗
+    on RGOUT.GATEPOST_ID = TLFR.GATEPOST_ID
+    left join RMS_CAPACITY RC --运力
+    on RC.CAPACITY_ID = OO.CAPACITY_ID
+
+
+    left join AMS_DISPATCH_SALE_ORDER  ADSO
+    on ASOM.SALE_ORDER_MATERIAL_ID=ADSO.SALE_ORDER_MATERIAL_ID
+    left join RMS_CARRIER RCR --承运单位
+    on ADSO.CARRIER_ID=RCR.CARRIER_ID
+
+
+    left join RMS_RECEIVE_PLACE RRP  --收货地址
+    on ASOM.SALE_SHIPPING_ADDRESS_ID=RRP.PLACE_ID
+    left join RMS_RECEIVE_ADDRESS REA
+    on RRP.ADDRESS_ID=REA.ADDRESS_ID
+
+    left join AMS_SALE_TRUCKNO_MATERIAL ASTM
+    on ASOM.SALE_ORDER_MATERIAL_ID=ASTM.SALE_ORDER_MATERIAL_ID
+    left join AMS_SALE_MATERIAL ASM1
+    on ASTM.MATERIAL_ID =ASM1.SALE_MATERIAL_ID
+    left join TMSTRUCK_WEIGHT_RESULT TWR --运输实绩计重
+    on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID  and  ASM1.MATERIAL_ID =TWR.MATERIAL_ID
+    left join RMS_MATERIAL RM
+    on ASM1.MATERIAL_ID=RM.MATERIAL_ID
+    where OO.ORDER_TYPE in (1) and TAR.INSERT_TIME IS NOT NULL
+    <if test="oneDate != null">
+      and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = TAR.INSERT_TIME
+    </if>
+    <if test="startDate != null">
+      and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TAR.INSERT_TIME
+      and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TAR.INSERT_TIME
+    </if>
+    <if test="con!=null">
+      and (instr(RC.CAPACITY_NUMBER,#{con})>0 or instr(RM.MATERIAL_NAME,#{con})>0
+      or instr(RCON.CONSIGNEE_COMPANY_NAME,#{con})>0)
+    </if>
+    )
     <where>
-      <if test="productClassification != null and productClassification != '其他' and productClassification != '螺纹钢'">
-        and  "materialName" like '%${productClassification}%'
+      <if test="orderNumbers !=null">
+        and "orderNumber" like '${orderNumbers}'
       </if>
-      <if test="productClassification != null and '螺纹钢' == productClassification">
-        and ("materialName" like '%螺纹钢%' or "materialName" like '%盘螺%'
-        or  "materialName" like '%盘圆%' or "materialName" like '%非定尺材%')
+      <if test="capacityNumbers !=null">
+        and "capacityNumber" like '${capacityNumbers}'
       </if>
-      <if test="productClassification != null and '其他' == productClassification">
-        and  "materialName" not like '%带钢%' and "materialName" not like '%微粉%'
-        and  "materialName" not like '%螺纹钢%'  and  "materialName" not like '%非定尺材%' and "materialName" not like '%钢坯%'
-        and  "materialName" not like '%盘螺%' and "materialName" not like '%盘圆%'
+      <if test="resultGrossWeightTimes !=null">
+        and "resultGrossWeightTime" like '${resultGrossWeightTimes}'
       </if>
-      <if test="carrierName1 != null">
-        and "carrierName" like  '%${carrierName1}%'
+      <if test="resultGrossWeightTimes !=null">
+        and "resultGrossWeightTime" like '${resultGrossWeightTimes}'
       </if>
-      <if test="gatepostName1 !=null">
-        and "gatepostName" like '%${gatepostName1}%'
+      <if test="resultOutGateTimes !=null">
+        and "resultOutGateTime" like '${resultOutGateTimes}'
       </if>
-      <if test="capacityNumber1 != null">
-        and  "capacityNumber" like '%${capacityNumber1}%'
+      <if test="resultNetWeights !=null">
+        and "resultNetWeight" like '${resultNetWeights}'
       </if>
-      <if test="consigneeCompanyName1 != null">
-        and  "consigneeCompanyName" like '%${consigneeCompanyName1}%'
+      <if test="resultOutGateTimes !=null">
+        and "resultOutGateTime" like '${resultOutGateTimes}'
       </if>
-      <if test="startTime != null">
-        and "receiptTime" &gt;= to_date('${startTime}','yyyy-mm-dd')
+      <if test="outGatepostNames !=null">
+        and "outGatepostName" like '${outGatepostNames}'
       </if>
-      <if test="endTime != null">
-        and "receiptTime" &lt;= to_date('${endTime}','yyyy-mm-dd')
+      <if test="carrierNames !=null">
+        and "carrierName" like '${carrierNames}'
       </if>
-      
-      <if test="saleNumber != null">
-        and
-        <foreach collection="saleNumber" item="item" open="(" separator="or" close=")">
-          "saleNumber" like '%${item}%'
+      <if test="deliveryAddresss !=null">
+        and "deliveryAddress" like '${deliveryAddresss}'
+      </if>
+      <if test="materialNames !=null">
+        and "materialName" like '${materialNames}'
+      </if>
+      <if test="materialSpecifications !=null">
+        and "materialSpecification" like '${materialSpecifications}'
+      </if>
+      <if test="materialModels !=null">
+        and "materialModel" like '${materialModels}'
+      </if>
+      <if test="receiveNames !=null">
+        and "receiveName" like '${receiveNames}'
+      </if>
+      <if test="orderNumber !=null">
+        and  "orderNumber" in
+        <foreach collection="orderNumber" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="orderNumber != null">
-        and
-        <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-          "orderNumber" like '%${item}%'
+      <if test="capacityNumber !=null">
+        and  "capacityNumber" in
+        <foreach collection="capacityNumber" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="materialName != null">
-        and
-        <foreach collection="materialName" item="item" open="(" separator="or" close=")">
-          "materialName" like '%${item}%'
+      <if test="resultGrossWeightTime !=null">
+        and  "resultGrossWeightTime" in
+        <foreach collection="resultGrossWeightTime" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="materialModel != null">
-        and
-        <foreach collection="materialModel" item="item" open="(" separator="or" close=")">
-          "materialModel" like '%${item}%'
+      <if test="resultNetWeight !=null">
+        and  "resultNetWeight" in
+        <foreach collection="resultNetWeight" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="capacityNumber != null">
-        and
-        <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
-          "capacityNumber" like '%${item}%'
+      <if test="resultOutGateTime !=null">
+        and  "resultOutGateTime" in
+        <foreach collection="resultOutGateTime" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="shipperName != null">
-        and
-        <foreach collection="shipperName" item="item" open="(" separator="or" close=")">
-          "shipperName" like '%${item}%'
+      <if test="outGatepostName !=null">
+        and  "outGatepostName" in
+        <foreach collection="outGatepostName" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="consigneeCompanyName != null">
-        and
-        <foreach collection="consigneeCompanyName" item="item" open="(" separator="or" close=")">
-          "consigneeCompanyName" like '%${item}%'
+      <if test="carrierName !=null">
+        and  "carrierName" in
+        <foreach collection="carrierName" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="resultReceiptAddress != null">
-        and
-        <foreach collection="resultReceiptAddress" item="item" open="(" separator="or" close=")">
-          "resultReceiptAddress" like '%${item}%'
+      <if test="deliveryAddress !=null">
+        and  "deliveryAddress" in
+        <foreach collection="deliveryAddress" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="addressDeliveryAddress != null">
-        and
-        <foreach collection="addressDeliveryAddress" item="item" open="(" separator="or" close=")">
-          "addressDeliveryAddress" like '%${item}%'
+      <if test="materialSpecification !=null">
+        and  "materialSpecification" in
+        <foreach collection="materialSpecification" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="receiptTime != null">
-        and
-        <foreach collection="receiptTime" item="item" open="(" separator="or" close=")">
-          "receiptTime" like '%${item}%'
+      <if test="materialModel !=null">
+        and  "materialModel" in
+        <foreach collection="materialModel" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="carrierName != null">
-        and
-        <foreach collection="carrierName" item="item" open="(" separator="or" close=")">
-          "carrierName" like '%${item}%'
+      <if test="receiveName !=null">
+        and  "receiveName" in
+        <foreach collection="receiveName" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
-      <if test="gatepostName != null">
-        and
-        <foreach collection="gatepostName" item="item" open="(" separator="or" close=")">
-          "gatepostName" like '%${item}%'
+      <if test="resultArrivalAddress !=null">
+        and  "resultArrivalAddress" in
+        <foreach collection="resultArrivalAddress" separator="," open="(" close=")" item="item" >
+          #{item}
+        </foreach>
+      </if>
+      <if test="insertTime !=null">
+        and  "insertTime" in
+        <foreach collection="insertTime" separator="," open="(" close=")" item="item" >
+          #{item}
+        </foreach>
+      </if>
+      <if test="resultFullContainerPhoto !=null">
+        and  "resultFullContainerPhoto" in
+        <foreach collection="resultFullContainerPhoto" separator="," open="(" close=")" item="item" >
+          #{item}
         </foreach>
       </if>
     </where>
     <include refid="orderBy"></include>
   </select>
 
+
+  <select id="getReceiptPhoto" parameterType="java.lang.String" resultType="java.lang.String">
+    select  tar.RESULT_FULL_CONTAINER_PHOTO
+    from TMSTRUCK_ARRIVAL_RESULT tar
+    left join TMSTRUCK_TOTAL_RESULT ttr
+    on ttr.RESULT_TOTAL_ID = tar.RESULT_TOTAL_ID
+    left join OMSTRUCK_ORDER oo
+    on oo.ORDER_ID = ttr.ORDER_ID
+    where oo.ORDER_NUMBER = #{orderNumber}
+  </select>
 </mapper>