Tiroble 3 年 前
コミット
1a94bb61da
68 ファイル変更7049 行追加2836 行削除
  1. 36 26
      pom.xml
  2. 1 0
      src/main/java/com/steerinfo/DilApplicationMain.java
  3. 209 11
      src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java
  4. 16 32
      src/main/java/com/steerinfo/dil/controller/TmstruckEnfactoryResultController.java
  5. 31 29
      src/main/java/com/steerinfo/dil/controller/TmstruckLeaveFactoryResultController.java
  6. 49 69
      src/main/java/com/steerinfo/dil/controller/TmstruckLoadResultController.java
  7. 37 0
      src/main/java/com/steerinfo/dil/controller/TmstruckMeasureCommissionController.java
  8. 1 28
      src/main/java/com/steerinfo/dil/controller/TmstruckQualityResultController.java
  9. 1 26
      src/main/java/com/steerinfo/dil/controller/TmstruckReceiptResultController.java
  10. 1 28
      src/main/java/com/steerinfo/dil/controller/TmstruckReturnResultController.java
  11. 1 27
      src/main/java/com/steerinfo/dil/controller/TmstruckSmsRusultController.java
  12. 90 31
      src/main/java/com/steerinfo/dil/controller/TmstruckTimeTaskResultController.java
  13. 2 4
      src/main/java/com/steerinfo/dil/controller/TmstruckTotalResultController.java
  14. 22 29
      src/main/java/com/steerinfo/dil/controller/TmstruckUnloadResultController.java
  15. 20 53
      src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java
  16. 26 0
      src/main/java/com/steerinfo/dil/feign/AmsFeign.java
  17. 5 1
      src/main/java/com/steerinfo/dil/feign/BmsTruckFeign.java
  18. 24 0
      src/main/java/com/steerinfo/dil/feign/OmsFeign.java
  19. 24 2
      src/main/java/com/steerinfo/dil/mapper/StatisticalReportMapper.java
  20. 6 1
      src/main/java/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.java
  21. 10 1
      src/main/java/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.java
  22. 15 1
      src/main/java/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.java
  23. 35 3
      src/main/java/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.java
  24. 19 0
      src/main/java/com/steerinfo/dil/mapper/TmstruckTareReturnResultMapper.java
  25. 11 0
      src/main/java/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.java
  26. 11 2
      src/main/java/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.java
  27. 8 3
      src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java
  28. 59 2
      src/main/java/com/steerinfo/dil/mapper/UtilsMapper.java
  29. 67 33
      src/main/java/com/steerinfo/dil/model/TmstruckLoadResult.java
  30. 166 0
      src/main/java/com/steerinfo/dil/model/TmstruckTareReturnResult.java
  31. 15 0
      src/main/java/com/steerinfo/dil/model/TmstruckUnloadResult.java
  32. 13 0
      src/main/java/com/steerinfo/dil/service/IStatisticalReportService.java
  33. 8 5
      src/main/java/com/steerinfo/dil/service/ITmstruckLoadResultService.java
  34. 4 0
      src/main/java/com/steerinfo/dil/service/ITmstruckMeasureCommissionService.java
  35. 17 0
      src/main/java/com/steerinfo/dil/service/ITmstruckTimeTaskResultService.java
  36. 1 1
      src/main/java/com/steerinfo/dil/service/ITmstruckUnloadResultService.java
  37. 3 0
      src/main/java/com/steerinfo/dil/service/IUtilsService.java
  38. 17 10
      src/main/java/com/steerinfo/dil/service/impl/RulesServiceImpl.java
  39. 70 6
      src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java
  40. 127 102
      src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java
  41. 138 37
      src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java
  42. 211 153
      src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java
  43. 438 87
      src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java
  44. 4 3
      src/main/java/com/steerinfo/dil/service/impl/TmstruckReceiptResultServiceImpl.java
  45. 4 4
      src/main/java/com/steerinfo/dil/service/impl/TmstruckSmsRusultServiceImpl.java
  46. 240 20
      src/main/java/com/steerinfo/dil/service/impl/TmstruckTimeTaskResultServiceImpl.java
  47. 114 54
      src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java
  48. 63 49
      src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java
  49. 37 2
      src/main/java/com/steerinfo/dil/service/impl/UtilsServiceImpl.java
  50. 11 0
      src/main/java/com/steerinfo/dil/util/ColumnDataUtil.java
  51. 104 13
      src/main/java/com/steerinfo/dil/util/DataChange.java
  52. 1 1
      src/main/java/com/steerinfo/dil/util/HTTPRequestUtils.java
  53. 16 0
      src/main/java/com/steerinfo/dil/util/MD5Util.java
  54. 6 4
      src/main/resources/application-dev.yml
  55. 4 2
      src/main/resources/application-prod.yml
  56. 2 0
      src/main/resources/bootstrap.yml
  57. 1066 86
      src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml
  58. 152 43
      src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml
  59. 107 19
      src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml
  60. 1697 1524
      src/main/resources/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.xml
  61. 300 12
      src/main/resources/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.xml
  62. 1 3
      src/main/resources/com/steerinfo/dil/mapper/TmstruckQualityResultMapper.xml
  63. 335 0
      src/main/resources/com/steerinfo/dil/mapper/TmstruckTareReturnResultMapper.xml
  64. 116 55
      src/main/resources/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.xml
  65. 36 26
      src/main/resources/com/steerinfo/dil/mapper/TmstruckTotalResultMapper.xml
  66. 113 42
      src/main/resources/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.xml
  67. 252 31
      src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml
  68. 203 0
      src/main/resources/com/steerinfo/dil/mapper/UtilsMapper.xml

+ 36 - 26
pom.xml

@@ -129,36 +129,46 @@
             <artifactId>fastjson</artifactId>
             <version>1.2.75</version>
         </dependency>
-
-
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <!-- 表示开发的时候引入,发布的时候不会加载此包 -->
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
     <build>
         <plugins>
             <!--             自动生成代码文件 -->
-<!--            <plugin>-->
-<!--                <groupId>com.steerinfo</groupId>-->
-<!--                <artifactId>generator-maven-plugin</artifactId>-->
-<!--                <version>3.0</version>-->
-<!--                <configuration>-->
-<!--                    <connUrl>jdbc:oracle:thin:@172.16.33.163:1521:ilsdbpri</connUrl>-->
-<!--                    <user>dil</user>-->
-<!--                    <password>Dil123789</password>-->
-<!--                    &lt;!&ndash;包名&ndash;&gt;-->
-<!--                    <targetPackage>com.steerinfo.dil</targetPackage>-->
-<!--                    <tables>-->
-<!--                        <param></param>-->
-<!--                    </tables>-->
-<!--                </configuration>-->
-<!--                <executions>-->
-<!--                    <execution>-->
-<!--                        <phase>compile</phase>-->
-<!--                        <goals>-->
-<!--                            <goal>steerinfo</goal>-->
-<!--                        </goals>-->
-<!--                    </execution>-->
-<!--                </executions>-->
-<!--            </plugin>-->
+            <plugin>
+                <groupId>com.steerinfo</groupId>
+                <artifactId>generator-maven-plugin</artifactId>
+                <version>3.0</version>
+                <configuration>
+                    <connUrl>jdbc:oracle:thin:@172.16.33.163:1521:ilsdbpri</connUrl>
+                    <user>dagang</user>
+                    <password>root123</password>
+                    <!--包名-->
+                    <targetPackage>com.steerinfo.dil</targetPackage>
+                    <tables>
+<!--                        <param>AMS_CONTAACT_PRICE_MATERIAL</param>-->
+
+                    </tables>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>steerinfo</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>

+ 1 - 0
src/main/java/com/steerinfo/DilApplicationMain.java

@@ -4,6 +4,7 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.scheduling.annotation.EnableScheduling;

+ 209 - 11
src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java

@@ -3,6 +3,7 @@ package com.steerinfo.dil.controller;
 import com.steerinfo.dil.service.impl.StatisticalReportImpl;
 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;
@@ -15,9 +16,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * @ author    :TXF
@@ -34,6 +35,9 @@ public class StatisticalReportController extends BaseRESTfulController {
     @Autowired
     ColumnDataUtil columnDataUtil;
 
+    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"),
@@ -47,18 +51,21 @@ public class StatisticalReportController extends BaseRESTfulController {
                                                Integer apiId,
                                                Integer pageNum,
                                                Integer pageSize,
+                                               String startTime,
+                                               String endTime,
                                                Integer orderType
     ){
         mapValue.put("orderTypee", orderType);
-        List<Map<String, Object>> allReport =  statisticalReportService.getAllPurchaseFLRLReport(mapValue);
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
         PageHelper.startPage(pageNum, pageSize);
         //分页数据
         List<Map<String, Object>> report = statisticalReportService.getRLFLReport(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allReport,report);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,report);
         return success(pageList);
     }
 
-    @ApiOperation(value="查询辅料燃料统计报表")
+
+    @ApiOperation(value="查询销售统计报表")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
             @ApiImplicitParam(name = "apiId(423)", value = "动态表头", required = false, dataType = "Integer"),
@@ -71,6 +78,8 @@ public class StatisticalReportController extends BaseRESTfulController {
                                        Integer apiId,
                                        Integer pageNum,
                                        Integer pageSize,
+                                       String startTime,
+                                       String endTime,
                                        String carrierSsoId
     ){
         if(carrierSsoId != null){
@@ -78,14 +87,46 @@ public class StatisticalReportController extends BaseRESTfulController {
                 mapValue.put("carrierSsoId", carrierSsoId);
             }
         }
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
         List<Map<String, Object>> allReport =  statisticalReportService.getAllSaleReportNum(mapValue);
         PageHelper.startPage(pageNum, pageSize);
         //分页数据
         List<Map<String, Object>> report = statisticalReportService.getAllSaleReport(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allReport, report);
+        PageListAdd pageList = columnDataUtil.tableColumnData2(apiId, allReport, report);
         return success(pageList);
     }
 
+    @ApiOperation(value="查询销售统计报表筛选过后的总净重")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId(423)", value = "动态表头", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getAllSaleReportTotal")
+    public RESTfulResult getAllSaleReportTotal(@RequestBody(required=false) Map<String,Object> mapValue,
+                                          String startTime,
+                                          String endTime,
+                                          String carrierSsoId
+    ){
+        if(carrierSsoId != null){
+            if(!"null".equals(carrierSsoId)){
+                mapValue.put("carrierSsoId", carrierSsoId);
+            }
+        }
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        List<Map<String, Object>> allReport =  statisticalReportService.getAllSaleReportNum(mapValue);
+        //获取销售统计报表筛选过后的总净重
+        BigDecimal AllResultNetWeight = new BigDecimal(0);
+        for (Map<String, Object> stringObjectMap : allReport) {
+            if(stringObjectMap.get("resultNetWeight")!=null) {
+                AllResultNetWeight = AllResultNetWeight.add(new BigDecimal(stringObjectMap.get("resultNetWeight").toString()));
+            }
+        }
+        return success(AllResultNetWeight);
+    }
+
     @ApiOperation(value="查询零星物资进厂统计报表")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
@@ -99,13 +140,29 @@ public class StatisticalReportController extends BaseRESTfulController {
                                           Integer apiId,
                                           Integer pageNum,
                                           Integer pageSize,
-                                          String carrierSsoId
+                                          String startTime,
+                                          String endTime,
+                                          String carrierSsoId,
+                                          String userId, String userIds, String con, Integer orderType
     ){
-        if(carrierSsoId != null){
-            if(!"null".equals(carrierSsoId)){
+        if(carrierSsoId != null) {
+            if (!"null".equals(carrierSsoId)) {
                 mapValue.put("carrierSsoId", carrierSsoId);
             }
         }
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        if (userId!=null){
+            mapValue.put("userId",userId);
+        }
+        if (orderType!=null){
+            mapValue.put("orderType",orderType);
+        }
+        if (userIds!=null){
+            mapValue.put("userIds",userIds);
+        }
+        if (con!=null&&!con.equals("undefined")){
+            mapValue.put("con","%"+con+"%");
+        }
         List<Map<String, Object>> allReport =  statisticalReportService.getSporadicSuppliesReportNum1(mapValue);
         PageHelper.startPage(pageNum, pageSize);
         //分页数据
@@ -127,13 +184,32 @@ public class StatisticalReportController extends BaseRESTfulController {
                                                    Integer apiId,
                                                    Integer pageNum,
                                                    Integer pageSize,
-                                                   String carrierSsoId
+                                                   String startTime,
+                                                   String endTime,
+                                                   String carrierSsoId,
+                                                    String userId,
+                                                    String userIds,
+                                                    String con,
+                                                    Integer orderType
     ){
         if(carrierSsoId != null){
             if(!"null".equals(carrierSsoId)){
                 mapValue.put("carrierSsoId", carrierSsoId);
             }
         }
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        if (con!=null&&!con.equals("undefined")){
+            mapValue.put("con","%"+con+"%");
+        }
+        if (userId!=null){
+            mapValue.put("userId",userId);
+        }
+        if (orderType!=null){
+            mapValue.put("orderType",orderType);
+        }
+        if (userIds!=null){
+            mapValue.put("userIds",userIds);
+        }
         List<Map<String, Object>> allReport =  statisticalReportService.getSporadicSuppliesReportNum2(mapValue);
         PageHelper.startPage(pageNum, pageSize);
         //分页数据
@@ -141,4 +217,126 @@ public class StatisticalReportController extends BaseRESTfulController {
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allReport, report);
         return success(pageList);
     }
+
+    @ApiOperation(value="查询采购内转统计报表")
+    @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"),
+            @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getPurInwardReport")
+    public RESTfulResult getPurInwardReport(@RequestBody(required=false) Map<String,Object> mapValue,
+                                                    Integer apiId,
+                                                    Integer pageNum,
+                                                    Integer pageSize,
+                                                    String startTime,
+                                                    String endTime
+    ){
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getPurInwardReport(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, report);
+        return success(pageList);
+    }
+
+    @ApiOperation(value="查询零星内转统计报表")
+    @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"),
+            @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getLXInwardReport")
+    public RESTfulResult getLXInwardReport(@RequestBody(required=false) Map<String,Object> mapValue,
+                                            Integer apiId,
+                                            Integer pageNum,
+                                            Integer pageSize,
+                                            String startTime,
+                                            String endTime
+    ){
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getLXInwardReport(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, report);
+        return success(pageList);
+    }
+
+    @ApiOperation(value="查询内转统计报表")
+    @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"),
+            @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getInwardReport")
+    public RESTfulResult getInwardReport(@RequestBody(required=false) Map<String,Object> mapValue,
+                                            Integer apiId,
+                                            Integer pageNum,
+                                            Integer pageSize,
+                                            String startTime,
+                                            String endTime
+    ){
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue,sdfDateTime);//根据时间段查询数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getInwardReport(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, report);
+        return success(pageList);
+    }
+
+    @ApiOperation("对内转车辆装货点进行统计")
+    @PostMapping("/getLoading")
+    public RESTfulResult getLoading(@RequestBody(required=false) Map<String,Object> mapValue,
+                                    Integer apiId,
+                                    Integer pageNum,
+                                    Integer pageSize,
+                                    String startTime,
+                                    String endTime){
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getLoading(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, report);
+        return success(pageList);
+    }
+
+
+    @ApiOperation("装载机所装车辆重量统计报表")
+    @PostMapping("/getLoaderResult")
+    public RESTfulResult getLoaderResult(@RequestBody(required=false) Map<String,Object> mapValue,
+                                    Integer apiId,//apiId:463
+                                    Integer pageNum,
+                                    Integer pageSize,
+                                    String startTime,
+                                    String endTime){
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getLoaderResult(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, report);
+        return success(pageList);
+    }
+
+    @ApiOperation("对内转车辆装卸货点进行统计")
+    @PostMapping("/getUnLoading")
+    public RESTfulResult getUnLoading(@RequestBody(required=false) Map<String,Object> mapValue,
+                                    Integer apiId,
+                                    Integer pageNum,
+                                    Integer pageSize,
+                                    String startTime,
+                                    String endTime){
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDate);//根据时间段查询数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getUnLoading(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, report);
+        return success(pageList);
+    }
+
 }

+ 16 - 32
src/main/java/com/steerinfo/dil/controller/TmstruckEnfactoryResultController.java

@@ -4,6 +4,7 @@ import com.steerinfo.dil.feign.ESFeign;
 import com.steerinfo.dil.service.ITmstruckEnfactoryResultService;
 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;
@@ -13,6 +14,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.SimpleDateFormat;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -42,7 +44,7 @@ public class TmstruckEnfactoryResultController extends BaseRESTfulController {
 
     @Autowired
     ColumnDataUtil columnDataUtil;
-
+    private final SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     @ApiOperation(value="查询所有的进厂实绩")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
@@ -57,46 +59,28 @@ public class TmstruckEnfactoryResultController extends BaseRESTfulController {
                                        Integer pageNum,
                                        Integer pageSize,
                                        Integer orderType,
-                                       String con
+                                       String startTime,
+                                       String endTime,
+                                       String userId,
+                                       String userIds
                                        ){
-        mapValue.put("orderTypee", orderType);
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                //设置要查询的索引名称
-                String index="get_enfactory_list";
-                //获取查询结果
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));
-            }
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        if (userId!=null){
+            mapValue.put("userId",userId);
+        }
+        if (userIds!=null){
+            mapValue.put("userIds",userIds);
         }
-        List<Map<String, Object>> allEnFactoryResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 1){
-            //将查询结果存入索引中
-            allEnFactoryResult = tmstruckEnfactoryResultService.getAllEnFactoryResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_enfactory_list");
-            //添加id
-            map.put("indexId","enFactoryId");
-            allEnFactoryResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allEnFactoryResult);
-            //删除
-            allEnFactoryResult.remove(allEnFactoryResult.size()-1);
+        if (orderType!=null){
+            mapValue.put("orderTypee", orderType);
         }
-        if(allEnFactoryResult == null)
-            allEnFactoryResult = tmstruckEnfactoryResultService.getAllEnFactoryResult(mapValue);
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> enFactoryResult = tmstruckEnfactoryResultService.getAllEnFactoryResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allEnFactoryResult,enFactoryResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,enFactoryResult);
         return success(pageList);
     }
 
-
-
-
     @ApiOperation(value="通过PDA添加进厂实绩")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "门岗名称 运输订单号", required = false, dataType = "Map"),

+ 31 - 29
src/main/java/com/steerinfo/dil/controller/TmstruckLeaveFactoryResultController.java

@@ -5,6 +5,7 @@ import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
 import com.steerinfo.dil.service.ITmstruckLeaveFactoryResultService;
 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;
@@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.io.File;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
@@ -50,6 +52,8 @@ public class TmstruckLeaveFactoryResultController extends BaseRESTfulController
     @Autowired
     ColumnDataUtil columnDataUtil;
 
+    private final SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
     @ApiOperation(value="新增汽车出厂实绩:oms远程调用")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "总实绩ID、线路终点", required = false, dataType = "Map"),
@@ -70,41 +74,39 @@ public class TmstruckLeaveFactoryResultController extends BaseRESTfulController
     })
     @PostMapping("/getLeaveFactoryResult")
     public RESTfulResult getLeaveFactoryResult(@RequestBody(required=false) Map<String,Object> mapValue,
-                                          Integer apiId,
-                                          Integer pageNum,
-                                          Integer pageSize,
-                                          Integer orderType,
-                                          String con){
-        mapValue.put("orderTypee", orderType);
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_leavefactory_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
+                                               Integer apiId,
+                                               Integer pageNum,
+                                               Integer pageSize,
+                                               Integer orderType,
+                                               String con,
+                                               String carrierSsoId,
+                                               String userId,
+                                               String userIds,
+                                               String startTime,
+                                               String endTime){
+
+        if (userId!=null){
+            mapValue.put("userId",userId);
+        }
+        if (userIds!=null){
+            mapValue.put("userIds",userIds);
+        }
+        if (orderType!=null) {
+            mapValue.put("orderTypee", orderType);
+        }
+        if(carrierSsoId != null){
+            if(!"null".equals(carrierSsoId)){
+                mapValue.put("carrierSsoId", carrierSsoId);
             }
         }
-        List<Map<String, Object>> allLeaveFactoryResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 1){
-            //将查询结果存入索引中
-            allLeaveFactoryResult = tmstruckLeaveFactoryResultService.getLeaveFactoryResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_leavefactory_list");
-            //添加id
-            map.put("indexId","leaveFactoryId");
-            allLeaveFactoryResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allLeaveFactoryResult);
-            //删除
-            allLeaveFactoryResult.remove(allLeaveFactoryResult.size()-1);
+        if(con!=null&&con.equals("undefined")){
+            mapValue.put("con","%"+con+"%");
         }
-        if(allLeaveFactoryResult == null)
-            allLeaveFactoryResult = tmstruckLeaveFactoryResultService.getLeaveFactoryResult(mapValue);
+        DataChange.queryDataByDateTime(startTime,endTime,mapValue,sdfDateTime);
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> leaveFactoryResult = tmstruckLeaveFactoryResultService.getLeaveFactoryResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allLeaveFactoryResult,leaveFactoryResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,leaveFactoryResult);
         return success(pageList);
     }
 

+ 49 - 69
src/main/java/com/steerinfo/dil/controller/TmstruckLoadResultController.java

@@ -69,36 +69,11 @@ public class TmstruckLoadResultController extends BaseRESTfulController {
                                           Integer pageNum,
                                           Integer pageSize,
                                           String con){
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_sale_queue_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
-            }
-        }
-        //不分页筛选数据
-        List<Map<String, Object>> allQueueSaleOrder = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 0){
-            //将查询结果存入索引中
-            allQueueSaleOrder = tmstruckLoadResultService.getSaleOrderOnQueue(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_sale_queue_list");
-            //添加id
-            map.put("indexId","saleOrderQueueId");
-            allQueueSaleOrder.add(map);
-            //新建索引
-            esFeign.insertIndex(allQueueSaleOrder);
-            //删除
-            allQueueSaleOrder.remove(allQueueSaleOrder.size()-1);
-        }
-        if(allQueueSaleOrder == null)
-            allQueueSaleOrder = tmstruckLoadResultService.getSaleOrderOnQueue(mapValue);
+
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> queueSaleOrder = tmstruckLoadResultService.getSaleOrderOnQueue(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allQueueSaleOrder,queueSaleOrder);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,queueSaleOrder);
         return success(pageList);
     }
 
@@ -126,60 +101,50 @@ public class TmstruckLoadResultController extends BaseRESTfulController {
                                         Integer pageSize,
                                         Integer status,
                                         Integer orderType,
-                                        String con){
-        mapValue.put("status", status);
-        mapValue.put("orderTypee", orderType);
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_truck_load_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
-            }
+                                        String con,
+                                        String userId,
+                                        String userIds){
+
+        if (status!=null){
+            mapValue.put("status", status);
         }
-        //不分页筛选数据
-        List<Map<String, Object>> allLoadResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 2){
-            //将查询结果存入索引中
-            allLoadResult = tmstruckLoadResultService.getAllLoadResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_truck_load_list");
-            //添加id
-            map.put("indexId","truckLoadId");
-            allLoadResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allLoadResult);
-            //删除
-            allLoadResult.remove(allLoadResult.size()-1);
+        if (orderType!=null){
+            mapValue.put("orderTypee", orderType);
+        }
+        if (userId!=null){
+            mapValue.put("userId",userId);
         }
-        if(allLoadResult == null)
-            allLoadResult = tmstruckLoadResultService.getAllLoadResult(mapValue);
+        if (userIds!=null){
+            mapValue.put("userIds",userIds);
+        }
+
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> loadResult = tmstruckLoadResultService.getAllLoadResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allLoadResult,loadResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,loadResult);
         return success(pageList);
     }
 
-    @ApiOperation(value="新增CG汽车装车实绩")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "mapValue", value = "", required = false, dataType = "Map"),
-    })
-    @PostMapping("/addCGLoadResult")
-    public RESTfulResult addCGLoadResult(@RequestBody(required=false) Map<String,Object> mapValue){
-        int i = tmstruckLoadResultService.addCGLoadResult(mapValue);
-        return success(i);
-    }
-
     @ApiOperation(value="销售新增钢材装车实绩 ")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "map", value = "", required = false, dataType = "Map"),
     })
     @PostMapping("/addSaleLoadResult")
     public RESTfulResult addSaleLoadResult(@RequestBody(required=false) Map<String, Object> map){
-        int i = tmstruckLoadResultService.addXSLoadResult(map);
-        return success(i);
+        try {
+            int i = tmstruckLoadResultService.addXSLoadResult(map);
+            if(i == 1){
+                return success("装货成功");
+            }else if(i == 0){
+                return failed("委托发送失败");
+            }else if(i == -1){
+                return failed("装货失败,该订单无装货实绩");
+            }else {
+                return failed("装车失败!请联系管理员");
+            }
+        } catch (Exception e) {
+            return failed("装车失败!请联系管理员");
+        }
     }
 
     @ApiOperation(value="销售新增钢渣、水渣、危化品装车实绩 ")
@@ -188,8 +153,23 @@ public class TmstruckLoadResultController extends BaseRESTfulController {
     })
     @PostMapping("/addSale2LoadResult")
     public RESTfulResult addSale2LoadResult(@RequestBody(required=false) Map<String, Object> map){
-        int i = tmstruckLoadResultService.addXS2LoadResult(map);
-        return success(i);
+        try {
+            int i = tmstruckLoadResultService.addXS2LoadResult(map);
+            if(i > 0){
+                return success("装货成功");
+            }else if(i == -2){
+                return failed("已装过此物资");
+            }else if(i == -3) {
+                return failed("该订单没有装货作业");
+            }else if (i==-5){
+                return failed("请勿重复装车");
+            }else {
+                return failed("装货异常,请联系管理员!");
+            }
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+        }
+        return failed("装货异常,请联系管理员!");
     }
 
 

+ 37 - 0
src/main/java/com/steerinfo/dil/controller/TmstruckMeasureCommissionController.java

@@ -57,4 +57,41 @@ public class TmstruckMeasureCommissionController extends BaseRESTfulController {
         int i = tmstruckMeasureCommissionService.addMaoMeasureCommission(map);
         return success(i);
     }
+    @ApiOperation(value="发送计量委托 ")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "resultId", value = "装车作业实绩ID", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/sendMeasureCommission")
+    public RESTfulResult sendMeasureCommission(@RequestBody(required = false) Map<String, Object> map){
+        int i = tmstruckMeasureCommissionService.sendMeasureCommssion(map);
+        if(i == 0){
+            return failed("委托发送失败!请联系管理员");
+        }else if(i == 2){
+            return failed("该物资已计量!无法撤回委托");
+        }else if(i == 3){
+            return success("委托撤回成功!");
+        }else if(i == 4){
+            return failed("还有物资未计量完成!不允许继续发送委托");
+        }else if(i == 5){
+            return failed("请及时更新APP!");
+        }
+        return success("委托发送成功");
+    }
+
+    @ApiOperation(value="发送留皮计量委托(neizhuan)")
+    @GetMapping("/sendLiuPiMeasureCommission")
+    public RESTfulResult sendLiuPiMeasureCommission(String capacityNumber){
+        try {
+            Map<String, Object> map = tmstruckMeasureCommissionService.sendLiuPiMeasureCommission(capacityNumber);
+            String status = (String) map.get("status");
+            if("1".equals(status)){ //如果成功则返回编码,否则返回缘由
+                return success(map.get("purchOrder"));
+            }else {
+                return failed(map.get("mes"));
+            }
+        }catch (Exception e){
+            return failed("委托发送失败!请联系管理员");
+        }
+
+    }
 }

+ 1 - 28
src/main/java/com/steerinfo/dil/controller/TmstruckQualityResultController.java

@@ -66,38 +66,11 @@ public class TmstruckQualityResultController extends BaseRESTfulController {
                                           String con
     ){
         mapValue.put("orderTypee", orderType);
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_quality_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
-            }
-        }
-        //不分页筛选数据
-        List<Map<String, Object>> allQualityResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 0){
-            //将查询结果存入索引中
-            allQualityResult = tmstruckQualityResultService.getQualityResult(mapValue);
-            DataChange.dataTo2Number(allQualityResult, "resultDeduction");
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_quality_list");
-            //添加id
-            map.put("indexId","qualityId");
-            allQualityResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allQualityResult);
-            //删除
-            allQualityResult.remove(allQualityResult.size()-1);
-        }
-        if(allQualityResult == null)
-            allQualityResult = tmstruckQualityResultService.getQualityResult(mapValue);
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> qualityResult = tmstruckQualityResultService.getQualityResult(mapValue);
         DataChange.dataTo2Number(qualityResult, "resultDeduction");
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allQualityResult,qualityResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,qualityResult);
         return success(pageList);
     }
 

+ 1 - 26
src/main/java/com/steerinfo/dil/controller/TmstruckReceiptResultController.java

@@ -73,35 +73,10 @@ public class TmstruckReceiptResultController extends BaseRESTfulController {
                                           String con
     ){
         mapValue.put("orderTypee", orderType);
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_receivee_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
-            }
-        }
-        List<Map<String, Object>> allReceiveResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 1){
-            //将查询结果存入索引中
-            allReceiveResult = tmstruckReceiptResultService.getReceiveResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_receivee_list");
-            //添加id
-            map.put("indexId","receiveId");
-            allReceiveResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allReceiveResult);
-            //删除
-            allReceiveResult.remove(allReceiveResult.size()-1);
-        }
-        if(allReceiveResult == null)
-            allReceiveResult = tmstruckReceiptResultService.getReceiveResult(mapValue);
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> receiveResult = tmstruckReceiptResultService.getReceiveResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allReceiveResult,receiveResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,receiveResult);
         return success(pageList);
     }
 

+ 1 - 28
src/main/java/com/steerinfo/dil/controller/TmstruckReturnResultController.java

@@ -68,37 +68,10 @@ public class TmstruckReturnResultController extends BaseRESTfulController {
                                                String con
     ){
         mapValue.put("orderTypee", orderType);
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                //设置要查询的索引名称
-                String index="get_return_list";
-                //获取查询结果
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));
-            }
-        }
-        List<Map<String, Object>> AllReturnResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 1){
-            //将查询结果存入索引中
-            AllReturnResult = tmstruckReturnResultService.getAllReturnResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_return_list");
-            //添加id
-            map.put("indexId","returnId");
-            AllReturnResult.add(map);
-            //新建索引
-            esFeign.insertIndex(AllReturnResult);
-            //删除
-            AllReturnResult.remove(AllReturnResult.size()-1);
-        }
-        if(AllReturnResult == null)
-            AllReturnResult = tmstruckReturnResultService.getAllReturnResult(mapValue);
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> returnResult = tmstruckReturnResultService.getAllReturnResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, AllReturnResult,returnResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,returnResult);
         return success(pageList);
     }
 }

+ 1 - 27
src/main/java/com/steerinfo/dil/controller/TmstruckSmsRusultController.java

@@ -61,36 +61,10 @@ public class TmstruckSmsRusultController extends BaseRESTfulController{
                                                       Integer pageSize,
                                                       String con
     ){
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_sms_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
-            }
-        }
-        List<Map<String, Object>> allSmsResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 0){
-            //将查询结果存入索引中
-            allSmsResult = tmstruckSmsRusultService.getSmsResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_sms_list");
-            //添加id
-            map.put("indexId","smsId");
-            allSmsResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allSmsResult);
-            //删除
-            allSmsResult.remove(allSmsResult.size()-1);
-        }
-        if(allSmsResult == null){
-            allSmsResult = tmstruckSmsRusultService.getSmsResult(mapValue);
-        }
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> smsResult = tmstruckSmsRusultService.getSmsResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allSmsResult,smsResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,smsResult);
         return success(pageList);
     }
 

+ 90 - 31
src/main/java/com/steerinfo/dil/controller/TmstruckTimeTaskResultController.java

@@ -3,6 +3,7 @@ import com.steerinfo.dil.feign.ESFeign;
 import com.steerinfo.dil.service.ITmstruckTimeTaskResultService;
 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;
@@ -12,6 +13,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.SimpleDateFormat;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -42,6 +44,7 @@ public class TmstruckTimeTaskResultController extends BaseRESTfulController {
     @Autowired
     ColumnDataUtil columnDataUtil;
 
+    private final SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     @ApiOperation(value="司机申请开始")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "运输订单号", required = false, dataType = "Map"),
@@ -52,6 +55,66 @@ public class TmstruckTimeTaskResultController extends BaseRESTfulController {
         return success(i);
     }
 
+    @ApiOperation(value="用于计时新增")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "运输订单号", required = false, dataType = "Map"),
+    })
+    @PostMapping("/addTimeTaskResult")
+    public RESTfulResult addTimeTaskResult(@RequestBody(required=false) Map<String,Object> mapValue) throws Exception {
+        int i=0;
+        if (i==-1){
+            return failed("生成账单失败");
+        }
+        try {
+            i=tmstruckTimeTaskResultService.addTimeTaskResult(mapValue);
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        }
+        return success(i);
+    }
+
+
+    @ApiOperation(value="用于计时判断")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "运输订单号", required = false, dataType = "Map"),
+    })
+    @PostMapping("/JudgeTimeTask")
+    public RESTfulResult JudgeTimeTask(@RequestBody(required=false) Map<String,Object> mapValue) throws Exception {
+        int i=0;
+        try {
+            i=tmstruckTimeTaskResultService.JudgeTimeTask(mapValue);
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        }
+        return success(i);
+    }
+
+
+
+
+
+
+
+
+    @ApiOperation(value="用于计时暂停判断")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "运输订单号", required = false, dataType = "Map"),
+    })
+    @PostMapping("/JudgeTimeTaskPause")
+    public RESTfulResult JudgeTimeTaskPause(@RequestBody(required=false) Map<String,Object> mapValue) throws Exception {
+        int i=0;
+        try {
+            i=tmstruckTimeTaskResultService.JudgeTimeTaskPause(mapValue);
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        }
+        return success(i);
+    }
+
+
+
+
+
     @ApiOperation(value="用车单位确认开始")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "运输订单号", required = false, dataType = "Map"),
@@ -72,7 +135,7 @@ public class TmstruckTimeTaskResultController extends BaseRESTfulController {
         return success(i);
     }
 
-    @ApiOperation(value="用车单位确认暂停申请开始")
+    @ApiOperation(value="暂停计时")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "运输订单号", required = false, dataType = "Map"),
     })
@@ -112,6 +175,17 @@ public class TmstruckTimeTaskResultController extends BaseRESTfulController {
         return success(i);
     }
 
+//
+//    @ApiOperation(value="计时修改")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "mapValue", value = "运输订单号", required = false, dataType = "Map"),
+//    })
+//    @PostMapping("/updateTimeTaskResult")
+//    public RESTfulResult updateTimeTaskResult(@RequestBody(required=false) Map<String,Object> mapValue){
+//        int i = tmstruckTimeTaskResultService.updateTimeTaskResult(mapValue);
+//        return success(i);
+//    }
+
     @ApiOperation(value="用车单位确认结束")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "运输订单号", required = false, dataType = "Map"),
@@ -122,10 +196,10 @@ public class TmstruckTimeTaskResultController extends BaseRESTfulController {
         return success(i);
     }
 
-    @ApiOperation(value="查询计皮实绩")
+    @ApiOperation(value="查询计时作业")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
-            @ApiImplicitParam(name = "apiId(363)", value = "动态表头", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId(456)", value = "动态表头", required = false, dataType = "Integer"),
             @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
             @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
             @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
@@ -135,41 +209,26 @@ public class TmstruckTimeTaskResultController extends BaseRESTfulController {
                                           Integer apiId,
                                           Integer pageNum,
                                           Integer pageSize,
-                                          String con
+                                          String con,
+                                          String userId,
+                                          String startTime,
+                                          String endTime
     ){
-
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_time_task_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
-            }
-        }
-        //不分页筛选数据
-        List<Map<String, Object>> allResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 1){
-            //将查询结果存入索引中
-            allResult = tmstruckTimeTaskResultService.getAllTimeTaskResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_time_task_list");
-            //添加id
-            map.put("indexId","timeTaskId");
-            allResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allResult);
-            //删除
-            allResult.remove(allResult.size()-1);
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        if (con!=null&&!con.equals("undifined")&&!con.equals("")){
+            mapValue.put("con","%" + con + "%");
         }
-        if(allResult == null){
-            allResult = tmstruckTimeTaskResultService.getAllTimeTaskResult(mapValue);
+        if (userId!=null&&!userId.equals("undifined")&&!con.equals("")){
+            mapValue.put("userId",userId);
         }
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> result = tmstruckTimeTaskResultService.getAllTimeTaskResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allResult,result);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,result);
         return success(pageList);
     }
 
+
+
+
 }

+ 2 - 4
src/main/java/com/steerinfo/dil/controller/TmstruckTotalResultController.java

@@ -63,11 +63,10 @@ public class TmstruckTotalResultController extends BaseRESTfulController {
                                         Integer pageSize
     ){
         //不分页筛选数据
-        List<Map<String, Object>> allCountList = tmstruckTotalResultService.selectCountList(mapValue);
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> countList = tmstruckTotalResultService.selectCountList(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allCountList,countList);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,countList);
         return success(pageList);
     }
 
@@ -86,11 +85,10 @@ public class TmstruckTotalResultController extends BaseRESTfulController {
                                                 Integer pageSize
     ){
         //不分页筛选数据
-        List<Map<String, Object>> allQualityResult = tmstruckTotalResultService.getTmstruckMonthResult(mapValue);
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> qualityResult = tmstruckTotalResultService.getTmstruckMonthResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allQualityResult,qualityResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,qualityResult);
         return success(pageList);
     }
 }

+ 22 - 29
src/main/java/com/steerinfo/dil/controller/TmstruckUnloadResultController.java

@@ -57,40 +57,25 @@ public class TmstruckUnloadResultController extends BaseRESTfulController {
                                            Integer apiId,
                                            Integer pageNum,
                                            Integer pageSize,
-                                           Integer orderType,String con
+                                           Integer orderType,
+                                           String con,
+                                           String userId,
+                                           String  userIds
     ){
-        mapValue.put("orderTypee", orderType);
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_truck_unload_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
-            }
+
+        if (orderType!=null){
+            mapValue.put("orderTypee", orderType);
         }
-        //不分页筛选数据
-        List<Map<String, Object>> allUnloadResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 1){
-            //将查询结果存入索引中
-            allUnloadResult = tmstruckUnloadResultService.getUnloadResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_truck_unload_list");
-            //添加id
-            map.put("indexId","truckUnloadId");
-            allUnloadResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allUnloadResult);
-            //删除
-            allUnloadResult.remove(allUnloadResult.size()-1);
+        if (userId!=null){
+            mapValue.put("userId",userId);
         }
-        if(allUnloadResult == null){
-            allUnloadResult = tmstruckUnloadResultService.getUnloadResult(mapValue);
+        if (userIds!=null){
+            mapValue.put("userIds",userIds);
         }
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> unloadResult = tmstruckUnloadResultService.getUnloadResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allUnloadResult,unloadResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,unloadResult);
         return success(pageList);
     }
 
@@ -100,9 +85,17 @@ public class TmstruckUnloadResultController extends BaseRESTfulController {
             @ApiImplicitParam(name = "resultId", value = "装车作业实绩ID", required = false, dataType = "Integer"),
     })
     @PostMapping("/updateUnloadResult")
-    public RESTfulResult updateUnloadResult(@RequestBody Map<String, Object> mapValue){
+    public RESTfulResult updateUnloadResult(@RequestBody Map<String, Object> mapValue) throws Exception {
         int i = tmstruckUnloadResultService.updateUnloadResult(mapValue);
-        return success(i);
+        if(i > 0){
+            return success("卸货成功!");
+        }else if(i == -2){
+            return failed("已卸过此物资");
+        }else if(i == -3){
+            return failed("该订单没有卸货作业");
+        } else{
+            return failed("卸货失败,请联系管理员!");
+        }
     }
 
 

+ 20 - 53
src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java

@@ -71,39 +71,23 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
                                                Integer pageNum,
                                                Integer pageSize,
                                                Integer orderType,
-                                               String con
+                                               String con,
+                                               String userId,
+                                               String usersId
     ){
-        mapValue.put("orderTypee", orderType);
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_jimao_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
-            }
+        if (orderType!=null) {
+            mapValue.put("orderTypee", orderType);
         }
-        List<Map<String, Object>> allJiMaoResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 1){
-            //将查询结果存入索引中
-            allJiMaoResult = tmstruckWeightResultService.getAllJiMaoResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_jimao_list");
-            //添加id
-            map.put("indexId","jiMaoId");
-            allJiMaoResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allJiMaoResult);
-            //删除
-            allJiMaoResult.remove(allJiMaoResult.size()-1);
+        if (userId!=null){
+            mapValue.put("userId",userId);
         }
-        if(allJiMaoResult == null){
-            allJiMaoResult = tmstruckWeightResultService.getAllJiMaoResult(mapValue);
+        if (usersId!=null){
+            mapValue.put("usersId",usersId);
         }
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> jiMaoResult = tmstruckWeightResultService.getAllJiMaoResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allJiMaoResult,jiMaoResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,jiMaoResult);
         return success(pageList);
     }
 
@@ -122,41 +106,24 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
                                            Integer pageNum,
                                            Integer pageSize,
                                            Integer orderType,
-                                           String con
+                                           String con,
+                                           String userId,
+                                           String userIds
     ){
 
-        mapValue.put("orderTypee", orderType);
-        //框计算
-        if(con != null){
-            if(!"undefined".equals(con)){
-                String index="get_jipi_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
-            }
+        if (orderType!=null) {
+            mapValue.put("orderTypee", orderType);
         }
-        //不分页筛选数据
-        List<Map<String, Object>> allJiPiResult = null;
-        //如果有条件查询则跳过初始化,和创建索引
-        if(mapValue.size() == 1){
-            //将查询结果存入索引中
-            allJiPiResult = tmstruckWeightResultService.getAllJiPiResult(mapValue);
-            Map<String, Object> map = new HashMap<>();
-            //添加索引
-            map.put("index","get_jipi_list");
-            //添加id
-            map.put("indexId","jiPiId");
-            allJiPiResult.add(map);
-            //新建索引
-            esFeign.insertIndex(allJiPiResult);
-            //删除
-            allJiPiResult.remove(allJiPiResult.size()-1);
+        if (userId!=null) {
+            mapValue.put("userId",userId);
         }
-        if(allJiPiResult == null){
-            allJiPiResult = tmstruckWeightResultService.getAllJiPiResult(mapValue);
+        if (userIds!=null) {
+            mapValue.put("usersId", userIds);
         }
         PageHelper.startPage(pageNum,pageSize);
         //分页数据
         List<Map<String, Object>> jiPiResult = tmstruckWeightResultService.getAllJiPiResult(mapValue);
-        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allJiPiResult,jiPiResult);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,jiPiResult);
         return success(pageList);
     }
 

+ 26 - 0
src/main/java/com/steerinfo/dil/feign/AmsFeign.java

@@ -0,0 +1,26 @@
+package com.steerinfo.dil.feign;
+
+import com.steerinfo.framework.controller.RESTfulResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Map;
+
+/**
+ * @ author    :HJG
+ * @ time      :2022/1/10 14:16
+ */
+
+@FeignClient(value = "dil-ams-api", url = "${openfeign.AmsFeign.url}")
+public interface AmsFeign {
+
+    //销售焦炭自动派单
+    @PostMapping("api/v1/ams/amssaleordermaterials/dispatchTruckOrderByCarrier")
+    RESTfulResult dispatchTruckOrderByCarrier(@RequestBody Map<String, Object> mapValue);
+
+    //根据物资查询运输物资单价
+    @PostMapping(value = "/api/v1/ams/amscontracttruckprices/getInwardPriceBy")
+    Map<String,Object> getInwardPriceBy(Map<String, Object> priceMap);
+
+}

+ 5 - 1
src/main/java/com/steerinfo/dil/feign/BmsTruckFeign.java

@@ -6,6 +6,7 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 
 import java.math.BigDecimal;
+import java.util.Map;
 
 /**
  * @ author    :TXF
@@ -16,5 +17,8 @@ import java.math.BigDecimal;
 public interface BmsTruckFeign {
 
     @PostMapping("api/v1/bmstruck/bmstruckdetailsorder/addDetailsOrder/{orderId}")
-    public RESTfulResult addDetailsOrder(@PathVariable("orderId") BigDecimal orderId) throws Exception ;
+    public RESTfulResult addDetailsOrder(@PathVariable("orderId") BigDecimal orderId);
+
+    @PostMapping("api/v1/bmstruck/bmstruckdetailsorder/addInwardDetailsOrder")
+    Map<String,Object> addInwardDetailsOrder(Map<String,Object> map);
 }

+ 24 - 0
src/main/java/com/steerinfo/dil/feign/OmsFeign.java

@@ -4,7 +4,9 @@ import com.steerinfo.framework.controller.RESTfulResult;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
+import java.math.BigDecimal;
 import java.util.Map;
 
 /**
@@ -29,6 +31,28 @@ public interface OmsFeign {
     //远程调用推送websocket
     @PostMapping("api/v1/oms/omstruckorderseparates/pushMesToWebsocket")
     RESTfulResult pushMesToWebsocket(@RequestBody(required = false) Map<String, Object> map);
+
     @PostMapping("api/v1/oms/omstruckorders/pushMessageToDriver")
     public RESTfulResult pushMessageToDriver(@RequestBody Map<String,Object> mapValue);
+
+    // 远程调用查询销售订单所有信息
+    @PostMapping("api/v1/oms/omstruckorderseparates/getSaleAllMessages")
+    Map<String,Object> getSaleAllMessages(@RequestParam Integer orderId);
+
+    //跨服务调用新增采购订单接口(一车多趟)
+    @PostMapping("api/v1/oms/omstruckorderseparates/addNewTransportOrder")
+    Map<String,Object> addNewTransportOrder(@RequestParam Integer orderId);
+
+    @PostMapping("api/v1/oms/utilscontroller/addPurInwardOrder")
+    Map<String,Object> addPurInwardOrder(@RequestParam BigDecimal orderId);
+
+
+    @PostMapping("api/v1/oms/omstruckorderseparates/addNewTransportOrder")
+    Map<String,Object> addNewTransportOrder(@RequestParam BigDecimal orderId);
+
+    @PostMapping("api/v1/oms/omstruckorderseparates/closeInwardOrder")
+    Map<String,Object> closeInwardOrder(@RequestParam("orderId") Integer orderId,
+                                        @RequestParam("sqe") Integer sqe,
+                                        @RequestParam("resultNetWeight") String resultNetWeight);
+
 }

+ 24 - 2
src/main/java/com/steerinfo/dil/mapper/StatisticalReportMapper.java

@@ -2,6 +2,7 @@ package com.steerinfo.dil.mapper;
 
 import org.apache.ibatis.annotations.Mapper;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -12,15 +13,36 @@ import java.util.Map;
  */
 @Mapper
 public interface StatisticalReportMapper {
-    //查询采购统计报表 (辅料、燃料、内转)
+    //查询采购统计报表 (辅料、燃料、内转、化工材料)
     List<Map<String, Object>> getAllPurchaseFLRLReport(Map<String, Object> map);
 
+    //查询采购辅料统计报表
+    List<Map<String, Object>> getFuPurchaseFLRLReport(Map<String, Object> map);
+
+
     //查询销售统计报表
     List<Map<String, Object>> getAllSaleReport(Map<String, Object> map);
 
 //    查询零星物资进厂统计报表
     List<Map<String, Object>> getSporadicSuppliesReport1(Map<String, Object> mapValue);
 
-    //    查询零星物资厂统计报表
+    //    查询零星物资厂统计报表
     List<Map<String, Object>> getSporadicSuppliesReport2(Map<String, Object> mapValue);
+
+    // 查询采购内转统计报表
+    List<Map<String, Object>> getTotalResultList();
+
+    List<Map<String, Object>> getInwardReportResult(Map<String,Object> mapValue);
+
+    //查看内转统计报表
+    List<Map<String, Object>> getInwardReport(Map<String, Object> mapValue);
+    //查看装货点统计表
+    List<Map<String, Object>> getLoading(Map<String, Object> mapValue);
+
+    List<Map<String, Object>> getUnLoading(Map<String, Object> mapValue);
+
+    List<Map<String, Object>> getLXReportResult(Map<String, Object> mapValue);
+
+    //获取装机统计报表
+    List<Map<String,Object>> getLoaderResult(Map<String,Object> map);
 }

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

@@ -40,7 +40,7 @@ public interface TmstruckEnfactoryResultMapper extends IBaseMapper<TmstruckEnfac
     Integer selectGatepostIdByGatepostName(String gatepostName);
 
     //根据orderNumber获取实绩id  总实绩Id 订单id  订单类型 orderTypee
-    Map<String, Object> selectEnFactoryResultId(String orderNumber);
+    Map<String, Object> selectEnFactoryResultId(BigDecimal resultTotalId);
 
     //查找排队序号
     Integer selectNodeNumber(String orderNumber);
@@ -61,8 +61,13 @@ public interface TmstruckEnfactoryResultMapper extends IBaseMapper<TmstruckEnfac
      //通过运输订单获取零星物资进厂实绩
     List<Map<String, Object>> getSporadicSuppliesEnFactoryResult(Map<String, Object> map);
 
+    //获取采购内转进厂实绩
     List<Map<String, Object>> getCGNZEnFactory(Map<String, Object> map);
 
     List<Map<String, Object>> getCgNzOutFactory(Map<String, Object> map);
 
+
+    //辅料查询 有几次进厂 并进了几次厂
+    Integer selectEnFactoryNumber(BigDecimal resultTotalId);
+    Integer selectAllEnFactoryNum(BigDecimal resultTotalId);
 }

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

@@ -25,7 +25,7 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
     Map<String,Object> selectCnAndGnByOrderNumber(String orderNumber);
 
     //根据订单号获取实绩id
-    Map<String, Object> selectResultId(String orderNumber);
+    Map<String, Object> selectResultId(BigDecimal resultTotalId);
 
     //销售物流查询所有的出厂实绩
     List<Map<String,Object>> selectAllLeaveFacatoryForSale(Map<String,Object> map);
@@ -51,6 +51,15 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
     Map<String, Object> getDeliveryOrder(String orderNumber);
 
     List<Map<String,Object>> getDeliveryOrderMaterial(String orderNumber);
+
     // 查询零星物资出厂列表
     List<Map<String,Object>> getSporadicLeaveFactory(Map<String, Object> mapValue);
+
+    //根据采购订单ID查询是否为一车多趟
+    Integer getIsMoreTripsStatus(BigDecimal orderId);
+
+    int getPlanEnable(BigDecimal orderId);
+
+    Integer getSeq(BigDecimal orderId);
+
 }

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

@@ -87,7 +87,7 @@ public interface TmstruckLoadResultMapper extends IBaseMapper<TmstruckLoadResult
     TangXiaoFeng
      */
     //通过物资ID和总实绩Id查询唯一的装车实绩Id
-    Map<String, Object> getLoadResultIdByMIdAndTotalId(@Param("resultTotalId") Integer resultTotalId, @Param("materialId") Integer materialId);
+    Map<String, Object> getLoadResultIdByMIdAndTotalId(Map<String, Object> map);
 
     //通过物资ID和订单Id查询唯一的装车实绩Id
     Integer getLoadIdByOrderIdAndMId(Map<String, Object> map);
@@ -114,4 +114,18 @@ public interface TmstruckLoadResultMapper extends IBaseMapper<TmstruckLoadResult
    //获取达州钢铁内转实绩
     List<Map<String, Object>> getCgNzLoadingResult(Map<String, Object> mapVal);
 
+    //获取装货实绩备注
+    Map<String,Object> getInsertUpdateRemark(BigDecimal resultTotalId);
+
+    //查找当前订单共有几次出
+    List<Integer> allOutFactoryNum(BigDecimal orderId);
+
+    //修改装货路段顺序号
+    int updateSqe(@Param("orderId")BigDecimal orderId);
+
+    //查询这个物资是否已经装过了
+    Integer checkMaterialIdLoad(@Param("resultTotalId") BigDecimal resultTotalId,@Param("materialId") BigDecimal materialId);
+
+    //通过钢材运输订单号查询装车实绩
+    Map<String, Object> getSteelLoadResult(Map<String, Object> map);
 }

+ 35 - 3
src/main/java/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.java

@@ -28,11 +28,11 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
     //通过总实绩ID查询没有净重的计量实绩
     Integer selectNoNetWeightResult(BigDecimal resultTotalId);
 
-    //通过订单ID查询收货单位ID
+    //通过订单ID查询组织对单位ID
     Integer getReceiveIdByOrderId(BigDecimal orderId);
 
     //通过订单ID查询发货单位ID
-    Integer getShipperIdByOrderId(BigDecimal orderId);
+    Map<String, Object> getShipperIdByOrderId(BigDecimal orderId);
 
     //销售查询计毛
     Map<String, Object> selectMakesureGrossForSaleByOrderNumber(Map<String, Object> map);
@@ -55,6 +55,9 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
     //采购计量委托
     Map<String, Object> purchaseMeasure(Map<String, Object> map);
 
+    //发送销售委托(达钢)
+    Map<String,Object> selectXsMeasuresion(Map<String,Object> map);
+
     //采购计量委托(达兴)
     Map<String, Object> purchaseDXMeasure(Map<String, Object> map);
 
@@ -67,6 +70,14 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
     //零星物资进厂计量委托
     Map<String, Object> sporadicDXMeasure(Map<String, Object> map);
 
+    //零星计量委托(老厂区)
+    Map<String,Object> sproadicMeasure(Map<String,Object> map);
+
+    //内转计量委托(老厂区)
+    Map<String,Object> purchaseXqCgNzMeasure(Map<String,Object> map);
+
+    //纯内转发送计量委托
+    Map<String,Object> purchaseNzMeasure(Map<String,Object> map);
     //内转
     Integer getReceiveIdByRequirementOrderId(Object orderId);
 
@@ -75,7 +86,7 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
     //通过订单ID获取零星订单父级收货单位
     Integer getLxRealReceiveIdByOrderId(BigDecimal orderId);
 
-    //通过订单ID获取零星订单父级发货单位
+    //通过订单ID获取零星订单父级发货单位
     Integer getLxRealSendUnitIdByOrderId(BigDecimal orderId);
 
     //查询零星订单收货单位ID
@@ -83,4 +94,25 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
 
     //查询零星订单发货单位ID
     Integer getPtLxSendUnitIdByOrderId(BigDecimal orderId);
+
+    //查找未计量完成的物资
+    List<Map<String,Object>> getMaterialIdAndCalculateId(Map<String,Object> map);
+
+    //修改订单子表
+    int updateOmsTruckMaterial(Map<String, Object> map);
+
+    //通过订单号和物资ID查询计量实绩是否有数据
+    List<Integer> checkoutWeightCommission(Map<String, Object> map);
+
+    //查询已经发送过委托的物资Id
+    Integer getAlreadySentMaterialId(Map<String, Object> map);
+
+    //查询最后一个发委托的物资 通过这个物资查询是否含有净重 或者是没有计量实绩
+    Map<String, Object> checkoutWeightCommission2(Map<String, Object> map);
+
+    //查询钢材委托
+    Map<String, Object> getSteelMeasureCommission(Map<String, Object> map);
+
+    //查询还没计重的物资
+    Integer getAlreadyWeightMaterialNum(BigDecimal orderId);
 }

+ 19 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckTareReturnResultMapper.java

@@ -0,0 +1,19 @@
+package com.steerinfo.dil.mapper;
+
+import com.steerinfo.dil.model.TmstruckTareReturnResult;
+import com.steerinfo.framework.mapper.IBaseMapper;
+import java.math.*;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+@Mapper
+public interface TmstruckTareReturnResultMapper extends IBaseMapper<TmstruckTareReturnResult, BigDecimal> {
+    //查询最大ID
+    @Select("select seq_tare_return_result.nextval from dual")
+    BigDecimal selectMaxId();
+
+    //通过车牌号查询委托信息
+    Map<String, Object> getMesByCapacityNum(String capacityNumber);
+}

+ 11 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.java

@@ -22,6 +22,9 @@ public interface TmstruckTimeTaskResultMapper extends IBaseMapper<TmstruckTimeTa
     //查询上一次用车单位确认暂停结束时间
     Map<String, Object> getLastTimeout(BigDecimal resultTotalId);
 
+    //查询上一次用车单位确认暂停 确认结束时间
+    Map<String, Object> getLastTimeEnd(BigDecimal resultTotalId);
+
     //查询用车单位确认开始时间
     Map<String, Object> getStartTime(BigDecimal resultTotalId);
 
@@ -31,4 +34,12 @@ public interface TmstruckTimeTaskResultMapper extends IBaseMapper<TmstruckTimeTa
     //查询计时作业
     List<Map<String, Object>> getAllTimeTaskResult(Map<String, Object> map);
 
+    //根据运输订单号查找需要用车时长
+    Map<String,Object>  selectInwardDueTimeByOrderId(BigDecimal orderId);
+
+    //根据运输订单id查找实绩中是否含有已经计时结束的实绩
+    int CountTimeTaskByOrderId(BigDecimal orderId);
+
+    Map<String,Object> getRequirementInfo(BigDecimal orderId1);
+
 }

+ 11 - 2
src/main/java/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.java

@@ -3,6 +3,7 @@ package com.steerinfo.dil.mapper;
 import com.steerinfo.dil.model.TmstruckUnloadResult;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.math.BigDecimal;
@@ -31,7 +32,7 @@ public interface TmstruckUnloadResultMapper extends IBaseMapper<TmstruckUnloadRe
     BigDecimal getResultIdByTotalId(BigDecimal totalId);
 
     //通过运输订单号查询 实绩Id 和总实绩Id
-    Map<String, Object> selectTotalIdByOrderNo(String orderNumber);
+    Map<String, Object> selectUnloadMesByOrderNo(Map<String, Object> map);
 
     //通过卸货地点查询仓库Id
     BigDecimal getWarehouseIdByWName(String warehouseName);
@@ -41,7 +42,8 @@ public interface TmstruckUnloadResultMapper extends IBaseMapper<TmstruckUnloadRe
 
     //通过总实绩ID查询卸货点
     BigDecimal getUnloadPointId(Map<String, Object> map);
-//    通过运输订单id查询卸车实绩
+
+    // 通过运输订单id查询卸车实绩(零星物资)
     List<Map<String, Object>> getSporadicSuppliesUnloadResult(Map<String, Object> map);
 
     //根据运输订单号查询物资id优先级
@@ -50,4 +52,11 @@ public interface TmstruckUnloadResultMapper extends IBaseMapper<TmstruckUnloadRe
      //查询物资是否被计量(map:orderNumber,MaterialId)
     Integer selectUnloadMaterialId(Map<String,Object> map);
 
+    Map<String,Object> selectOrderId(Map<String, Object> map);
+
+    //根据总实绩ID查询是否有净重
+    Integer getNetWeightByTotalId(BigDecimal totalId);
+
+    //查询这个物资是否已经卸过了
+    Integer checkMaterialIdUnload(@Param("resultTotalId") BigDecimal resultTotalId,@Param("materialId") BigDecimal materialId);
 }

+ 8 - 3
src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java

@@ -71,16 +71,21 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
     //通过运输订单id获取路段顺序号、物资类型、计量实绩主键、line_id
     Map<String, BigDecimal> selectByOrderId(BigDecimal orderId);
 
-    //零星物资根据运输订单Id获取计毛实绩
-    List<Map<String, Object>> getFactorySkinSporadicJiMiao(Map<String, Object> map);
+//    //零星物资根据运输订单Id获取计毛实绩
+//    List<Map<String, Object>> getFactorySkinSporadicJiMiao(Map<String, Object> map);
 
     //零星物资根据运输订单Id获取计皮实绩
     List<Map<String, Object>> getFactorySkinSporadicJIPi(Map<String, Object> map);
 
+//    List<Map<String,Object>> getFactorySporadicJiMiaoResult(Map<String,Object> map);
+
     //根据运输订单Id获取计皮实绩
     List<Map<String, Object>> getSporadicSuppliesJiPiResult(Map<String, Object> map);
 
-     //根据运输订单Id获取计毛实绩
+    //根据运输订单id获取计量实绩
+    List<Map<String,Object>> getFactorySkinSporadicWeight(Map<String,Object> map);
+
+     //零星物流根据运输订单Id获取计毛实绩
     List<Map<String, Object>> getSporadicSuppliesJiMiaoResult(Map<String, Object> map);
 
 //    BigDecimal getXqCgWeightIdByLineAndOrderId(Map<String, Object> map);

+ 59 - 2
src/main/java/com/steerinfo/dil/mapper/UtilsMapper.java

@@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
+import javax.management.monitor.StringMonitor;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
@@ -42,9 +43,12 @@ public interface UtilsMapper {
     //根据运输订单号查询物资Id
     BigDecimal queryOrderMesByOrderId(String orderNumber);
 
-    //查询当前路段顺序号
+    //查询当前路段顺序号通过订单Id
     Integer getLineSequenceByOrderId(@Param("orderId") BigDecimal orderId);
 
+    //通过订单号查询订单路段顺序号
+    Integer getLineSequenceByOrderNumber(String orderNumber);
+
     //查询订单跟订单物资中间表 查询是否有多个物资Id
     List<Integer> getAllMaterialId(Map<String, Object> map);
 
@@ -57,13 +61,14 @@ public interface UtilsMapper {
     //通过运输订单号查询总实绩ID
     BigDecimal getTotalIdByOrderNumber(String orderNumber);
 
+
     //通过总实绩ID查找订单类型
     Map<String, Object> getOrderTypeByTotalId(BigDecimal resultTotalId);
 
     //查询最大路段顺序号 以及当前订单路段顺序号(执行到哪一步)
     Map<String, Object> getLineSeqAndOrderSeq(Map<String, Object> map);
 
-    //通过订单ID查询物资ID(针对单拼)
+    //通过订单ID查询物资ID (除了单拼外会有多个)
     List<Integer> getMaterialIdByOrderId(BigDecimal orderId);
 
     //查询订单ID查询第一个计量的物资Id(物资子表)
@@ -74,4 +79,56 @@ public interface UtilsMapper {
 
     //查询订单是否确认
     Integer getDriverConfirmation(BigDecimal orderId);
+
+    //通过路段顺序号和线路ID查找 线路子表的子表的ID 和门岗ID或汽车衡ID
+    List<Integer> getLineSegmentGateCalcId(Map<String, Object> map);
+
+    //通过运输订单id查找运输订单信息
+    Map<String, Object> getOrderMesByOrderId(BigDecimal orderId);
+
+    //通过运输订单号查询运输订单类型
+    Map<String, Object> getOrderTypeByOrderNumber(String orderNumber);
+
+    //根据运输订单id查找是否有多个物资
+    Integer countMaterialByOrderId(BigDecimal orderId);
+
+    //通过车牌号查询运力ID
+    BigDecimal getCapacityIdByNum(String capacityNumber);
+
+    //查询最近进厂门岗
+    Integer getLastGatepostId(BigDecimal resultTotalId);
+
+    //查询零星是否多拼或没有净重的物资
+    Integer getNextMaterialId(BigDecimal orderId);
+
+    //通过运输订单id查找计时作业实绩
+    Map<String,Object> timeTaskResult(BigDecimal orderId);
+
+    //根据运输订单id查找订单类型
+    Map<String,Object> getTimeStatus(Map<String,Object> map);
+
+    //通过运输订单号查找内转类型
+    BigDecimal getInwardType(BigDecimal orderId);
+
+    //根据运输订单id查找两次计时作业实绩
+   Map<String,Object> FristTimeTask(Map<String,Object> map);
+
+   //根据运输订单id查找计时暂停时间
+    BigDecimal TimeTaskPause(Map<String,Object> map);
+
+   //通过运输订单id查找计时是否开始
+    BigDecimal getTime(BigDecimal orderId);
+
+    //通过运输订单id查找计时开始时间
+    BigDecimal getInwardStartTime(BigDecimal orderId);
+
+    //通过运输订单id查找计时结束时间
+    BigDecimal getInwardEndTime(BigDecimal orderId);
+
+    //通过userId查找运力名字
+    String getCapacityNameBySsoId(String userId);
+
+    //通过车牌号和运输订单号去寻找装车实绩
+    BigDecimal getLoadResultId(Map<String,Object> map);
+
 }

+ 67 - 33
src/main/java/com/steerinfo/dil/model/TmstruckLoadResult.java

@@ -10,13 +10,13 @@ import java.util.Date;
 @ApiModel(value="汽运装货实绩")
 public class TmstruckLoadResult implements IBasePO<BigDecimal> {
     /**
-     * 主键id(RESULT_ID,DECIMAL,38)
+     * 主键id(RESULT_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="主键id",required=true)
     private BigDecimal resultId;
 
     /**
-     * 实绩总表ID(RESULT_TOTAL_ID,DECIMAL,38)
+     * 实绩总表ID(RESULT_TOTAL_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="实绩总表ID",required=false)
     private BigDecimal resultTotalId;
@@ -40,13 +40,13 @@ public class TmstruckLoadResult implements IBasePO<BigDecimal> {
     private BigDecimal resultLoadDuration;
 
     /**
-     * 装货标准时长id(LOAD_STANDARD_TIME_ID,DECIMAL,38)
+     * 装货标准时长id(LOAD_STANDARD_TIME_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="装货标准时长id",required=false)
     private BigDecimal loadStandardTimeId;
 
     /**
-     * 装卸工ID(LOADER_ID,DECIMAL,38)
+     * 装卸工ID(LOADER_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="装卸工ID",required=false)
     private BigDecimal loaderId;
@@ -141,6 +141,18 @@ public class TmstruckLoadResult implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="路段顺序号",required=false)
     private BigDecimal segmentSqe;
 
+    /**
+     * 集装箱箱号(CASE_NUMBER,VARCHAR,255)
+     */
+    @ApiModelProperty(value="集装箱箱号",required=false)
+    private String caseNumber;
+
+    @ApiModelProperty(value="集装箱箱号2",required=false)
+    private String caseNumbertwo;
+
+    @ApiModelProperty(value="车型备注",required=false)
+    private String capacityRemark;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -169,6 +181,14 @@ public class TmstruckLoadResult implements IBasePO<BigDecimal> {
         this.resultTotalId = resultTotalId;
     }
 
+    public String getCaseNumbertwo() {
+        return caseNumbertwo;
+    }
+
+    public void setCaseNumbertwo(String caseNumbertwo) {
+        this.caseNumbertwo = caseNumbertwo;
+    }
+
     public Date getResultLoadStartTime() {
         return resultLoadStartTime;
     }
@@ -329,36 +349,50 @@ public class TmstruckLoadResult implements IBasePO<BigDecimal> {
         this.segmentSqe = segmentSqe;
     }
 
+    public String getCaseNumber() {
+        return caseNumber;
+    }
+
+    public void setCaseNumber(String caseNumber) {
+        this.caseNumber = caseNumber == null ? null : caseNumber.trim();
+    }
+
+    public String getCapacityRemark() {
+        return capacityRemark;
+    }
+
+    public void setCapacityRemark(String capacityRemark) {
+        this.capacityRemark = capacityRemark;
+    }
+
     @Override
     public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append(getClass().getSimpleName());
-        sb.append(" [");
-        sb.append("Hash = ").append(hashCode());
-        sb.append(", resultId=").append(resultId);
-        sb.append(", resultTotalId=").append(resultTotalId);
-        sb.append(", resultLoadStartTime=").append(resultLoadStartTime);
-        sb.append(", resultLoadEndTime=").append(resultLoadEndTime);
-        sb.append(", resultLoadDuration=").append(resultLoadDuration);
-        sb.append(", loadStandardTimeId=").append(loadStandardTimeId);
-        sb.append(", loaderId=").append(loaderId);
-        sb.append(", resultIsclear=").append(resultIsclear);
-        sb.append(", deleteName=").append(deleteName);
-        sb.append(", deleteTime=").append(deleteTime);
-        sb.append(", insertUsername=").append(insertUsername);
-        sb.append(", insertTime=").append(insertTime);
-        sb.append(", updateUsername=").append(updateUsername);
-        sb.append(", updateTime=").append(updateTime);
-        sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
-        sb.append(", status=").append(status);
-        sb.append(", resultMeasuredTonnage=").append(resultMeasuredTonnage);
-        sb.append(", loadingId=").append(loadingId);
-        sb.append(", materialId=").append(materialId);
-        sb.append(", loadingSequence=").append(loadingSequence);
-        sb.append(", isdeduct=").append(isdeduct);
-        sb.append(", segmentSqe=").append(segmentSqe);
-        sb.append(", serialVersionUID=").append(serialVersionUID);
-        sb.append("]");
-        return sb.toString();
+        return "TmstruckLoadResult{" +
+                "resultId=" + resultId +
+                ", resultTotalId=" + resultTotalId +
+                ", resultLoadStartTime=" + resultLoadStartTime +
+                ", resultLoadEndTime=" + resultLoadEndTime +
+                ", resultLoadDuration=" + resultLoadDuration +
+                ", loadStandardTimeId=" + loadStandardTimeId +
+                ", loaderId=" + loaderId +
+                ", resultIsclear='" + resultIsclear + '\'' +
+                ", deleteName='" + deleteName + '\'' +
+                ", deleteTime=" + deleteTime +
+                ", insertUsername='" + insertUsername + '\'' +
+                ", insertTime=" + insertTime +
+                ", updateUsername='" + updateUsername + '\'' +
+                ", updateTime=" + updateTime +
+                ", insertUpdateRemark='" + insertUpdateRemark + '\'' +
+                ", status=" + status +
+                ", resultMeasuredTonnage=" + resultMeasuredTonnage +
+                ", loadingId=" + loadingId +
+                ", materialId=" + materialId +
+                ", loadingSequence=" + loadingSequence +
+                ", isdeduct=" + isdeduct +
+                ", segmentSqe=" + segmentSqe +
+                ", caseNumber='" + caseNumber + '\'' +
+                ", caseNumbertwo='" + caseNumbertwo + '\'' +
+                ", capacityRemark='" + capacityRemark + '\'' +
+                '}';
     }
 }

+ 166 - 0
src/main/java/com/steerinfo/dil/model/TmstruckTareReturnResult.java

@@ -0,0 +1,166 @@
+package com.steerinfo.dil.model;
+
+import com.steerinfo.framework.model.IBasePO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel(value="回皮委托表")
+public class TmstruckTareReturnResult implements IBasePO<BigDecimal> {
+    /**
+     * 主键ID(RESULT_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="主键ID",required=true)
+    private BigDecimal resultId;
+
+    @ApiModelProperty(value="",required=false)
+    private BigDecimal capacityId;
+
+    /**
+     * 回皮委托号(RETURN_NUM,VARCHAR,30)
+     */
+    @ApiModelProperty(value="回皮委托号",required=false)
+    private String returnNum;
+
+    /**
+     * 委托发送时间(RETURN_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="委托发送时间",required=false)
+    private Date returnTime;
+
+    /**
+     * 记录创建人(INSERT_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录创建人",required=false)
+    private String insertUsername;
+
+    /**
+     * 记录创建时间(INSERT_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录创建时间",required=false)
+    private Date insertTime;
+
+    /**
+     * 记录修改人(UPDATE_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录修改人",required=false)
+    private String updateUsername;
+
+    /**
+     * 记录修改时间(UPDATE_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录修改时间",required=false)
+    private Date updateTime;
+
+    /**
+     * 记录创建或修改备注(INSERT_UPDATE_REMARK,VARCHAR,100)
+     */
+    @ApiModelProperty(value="记录创建或修改备注",required=false)
+    private String insertUpdateRemark;
+
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public BigDecimal getId() {
+        return this.resultId;
+    }
+
+    @Override
+    public void setId(BigDecimal resultId) {
+        this.resultId = resultId;
+    }
+
+    public BigDecimal getResultId() {
+        return resultId;
+    }
+
+    public void setResultId(BigDecimal resultId) {
+        this.resultId = resultId;
+    }
+
+    public BigDecimal getCapacityId() {
+        return capacityId;
+    }
+
+    public void setCapacityId(BigDecimal capacityId) {
+        this.capacityId = capacityId;
+    }
+
+    public String getReturnNum() {
+        return returnNum;
+    }
+
+    public void setReturnNum(String returnNum) {
+        this.returnNum = returnNum == null ? null : returnNum.trim();
+    }
+
+    public Date getReturnTime() {
+        return returnTime;
+    }
+
+    public void setReturnTime(Date returnTime) {
+        this.returnTime = returnTime;
+    }
+
+    public String getInsertUsername() {
+        return insertUsername;
+    }
+
+    public void setInsertUsername(String insertUsername) {
+        this.insertUsername = insertUsername == null ? null : insertUsername.trim();
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getUpdateUsername() {
+        return updateUsername;
+    }
+
+    public void setUpdateUsername(String updateUsername) {
+        this.updateUsername = updateUsername == null ? null : updateUsername.trim();
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getInsertUpdateRemark() {
+        return insertUpdateRemark;
+    }
+
+    public void setInsertUpdateRemark(String insertUpdateRemark) {
+        this.insertUpdateRemark = insertUpdateRemark == null ? null : insertUpdateRemark.trim();
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", resultId=").append(resultId);
+        sb.append(", capacityId=").append(capacityId);
+        sb.append(", returnNum=").append(returnNum);
+        sb.append(", returnTime=").append(returnTime);
+        sb.append(", insertUsername=").append(insertUsername);
+        sb.append(", insertTime=").append(insertTime);
+        sb.append(", updateUsername=").append(updateUsername);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 15 - 0
src/main/java/com/steerinfo/dil/model/TmstruckUnloadResult.java

@@ -111,6 +111,12 @@ public class TmstruckUnloadResult implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="物资ID",required=false)
     private BigDecimal materialId;
 
+    /**
+     * 卸货人(UNLOADER_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="卸货人",required=false)
+    private BigDecimal unloaderId;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -259,6 +265,14 @@ public class TmstruckUnloadResult implements IBasePO<BigDecimal> {
         this.materialId = materialId;
     }
 
+    public BigDecimal getUnloaderId() {
+        return unloaderId;
+    }
+
+    public void setUnloaderId(BigDecimal unloaderId) {
+        this.unloaderId = unloaderId;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -282,6 +296,7 @@ public class TmstruckUnloadResult implements IBasePO<BigDecimal> {
         sb.append(", resultUnloadPlaceId=").append(resultUnloadPlaceId);
         sb.append(", segmentSqe=").append(segmentSqe);
         sb.append(", materialId=").append(materialId);
+        sb.append(", unloaderId=").append(unloaderId);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 13 - 0
src/main/java/com/steerinfo/dil/service/IStatisticalReportService.java

@@ -32,5 +32,18 @@ public interface IStatisticalReportService {
     List<Map<String, Object>> getSporadicSuppliesReportNum2(Map<String, Object> mapValue);
     //    查询零星物资统计报表
     List<Map<String, Object>> getSporadicSuppliesReport2(Map<String, Object> mapValue);
+
+    List<Map<String, Object>> getPurInwardReport(Map<String, Object> mapValue);
+
+    List<Map<String, Object>> getLXInwardReport( Map<String, Object> mapValue);
+
+    //查看内转统计报表
+    List<Map<String, Object>> getInwardReport(Map<String, Object> mapValue);
+
+    List<Map<String, Object>> getLoading(Map<String, Object> mapValue);
+
+    List<Map<String, Object>> getUnLoading(Map<String, Object> mapValue);
+
+    List<Map<String, Object>> getLoaderResult(Map<String, Object> mapValue);
 }
 

+ 8 - 5
src/main/java/com/steerinfo/dil/service/ITmstruckLoadResultService.java

@@ -23,17 +23,17 @@ public interface ITmstruckLoadResultService{
     //查询所有的装车实绩
     List<Map<String, Object>> getAllLoadResult(Map<String, Object> map);
 
+    //判断装货实绩是否含有“未装货”,如果含有未装货,则将路段顺序号减1
+    int loadJudge(Map<String,Object> map);
+
     //生成装车实绩(销售)
     int addLoadResult(Map<String, Object> map);
 
-    //新增采购装车实绩
-    int addCGLoadResult(Map<String, Object> map);
-
     //修改销售装车实绩  (如果是多种物资【多拼】,通过物资Id和运输订单号来确定唯一的装车实绩进行修改)
-    int addXSLoadResult(Map<String, Object> map);
+    int addXSLoadResult(Map<String, Object> map) throws Exception;
 
     //修改销售钢渣、水渣、危化品装车实绩
-    int addXS2LoadResult(Map<String, Object> map);
+    int addXS2LoadResult(Map<String, Object> map) throws Exception;
 
     //修改装车作业
     int updateLoadResult(TmstruckLoadResult tmstruckLoadResult);
@@ -47,6 +47,9 @@ public interface ITmstruckLoadResultService{
     //修改装车作业作业点
     int updateLoadingIds(List<Map<String, Object>> map);
 
+    //新增装车备注
+    int addCapacityRemark(Map<String,Object> map);
+
     //销售查询所有的装车实绩
     List<Map<String,Object>> selectLoadResultForSale(Map<String,Object> map);
 

+ 4 - 0
src/main/java/com/steerinfo/dil/service/ITmstruckMeasureCommissionService.java

@@ -28,4 +28,8 @@ public interface ITmstruckMeasureCommissionService{
     //添加计毛委托
     int addMaoMeasureCommission(Map<String, Object> map);
 
+    //发送计量委托
+    int sendMeasureCommssion(Map<String,Object> map);
+
+    Map<String, Object>  sendLiuPiMeasureCommission(String capacityNumber) throws InterruptedException;
 }

+ 17 - 0
src/main/java/com/steerinfo/dil/service/ITmstruckTimeTaskResultService.java

@@ -40,6 +40,9 @@ public interface ITmstruckTimeTaskResultService {
     //用车单位确认暂停结束
     int unitSureEndTimeout(Map<String, Object> map);
 
+    //确认暂停结束后进行推单
+    int pushOrderForPause(Map<String,Object> map);
+
     //司机申请结束
     int applyEndTime(Map<String, Object> map);
 
@@ -48,4 +51,18 @@ public interface ITmstruckTimeTaskResultService {
 
     //查询计时作业
     List<Map<String, Object>> getAllTimeTaskResult(Map<String, Object> map);
+
+    //新增作业实绩
+    int addTimeTaskResult(Map<String,Object> map) throws Exception;
+
+    int JudgeTimeTask(Map<String, Object> mapValue) throws Exception;
+
+    int JudgeTimeTaskPause(Map<String, Object> mapValue) throws Exception;
+
+    //生成账单
+    int genernateInwardTime(Map<String,Object> map);
+
+
+    //修改计时作业
+//    int updateTimeTaskResult(Map<String,Object> map);
 }

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

@@ -27,7 +27,7 @@ public interface ITmstruckUnloadResultService{
     int addUnloadResult(Map<String, Object> map);
 
     // 修改实绩内容
-    int updateUnloadResult(Map<String, Object> map);
+    int updateUnloadResult(Map<String, Object> map) throws Exception;
 
     //新增卸货实绩
     int addUnloadresultForconverted(Map<String,Object> map);

+ 3 - 0
src/main/java/com/steerinfo/dil/service/IUtilsService.java

@@ -29,6 +29,9 @@ public interface IUtilsService {
     //用于更新路段顺序号
     int updateOrderLineSequence(Map<String, Object> map);
 
+    //用于更新路段顺序号
+    int updateOrderLineSqeByOrderNumber(Map<String, Object> map);
+
     //通过月台名称查找月台Id platformName
     Integer queryPlatformIdByName(String platformName);
 

+ 17 - 10
src/main/java/com/steerinfo/dil/service/impl/RulesServiceImpl.java

@@ -52,7 +52,7 @@ public class RulesServiceImpl implements IRulesService {
             if(judgeTime){
                 //更新出厂实绩门岗ID
                 //通过运输订单号获取出厂实绩ID
-                Map<String, Object> map2 = tmstruckLeaveFactoryResultMapper.selectResultId((String) map.get("orderNumber"));
+                Map<String, Object> map2 = tmstruckLeaveFactoryResultMapper.selectResultId(null);
                 TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
                 tmstruckLeaveFactoryResult.setResultId(DataChange.dataToBigDecimal(map2.get("resultId")));
                 tmstruckLeaveFactoryResult.setGatepostId(DataChange.dataToBigDecimal(mes.get("gatepostId")));
@@ -139,17 +139,21 @@ public class RulesServiceImpl implements IRulesService {
                     }
                 }
             }
+            if(orderType == 17 || orderType == 18){ // 化工材料采购 现只考虑化工厂
+                return 16;
+            }
             return 0;
         }
-        List<Integer> calculateList = queryTruckCalculate(map);
-        //暂时不考虑优先级 随机进行取值
-        int size = calculateList.size();
-        if(size == 0){
-            return 13; //没有查询到汽车衡  则使用备用秤
-        }if(size == 1){
-            return calculateList.get(0);
-        }
-        return calculateList.get(new Random().nextInt(size));
+//        List<Integer> calculateList = queryTruckCalculate(map);
+//        //暂时不考虑优先级 随机进行取值
+//        int size = calculateList.size();
+//        if(size == 0){
+//            return 13; //没有查询到汽车衡  则使用备用秤
+//        }if(size == 1){
+//            return calculateList.get(0);
+//        }
+//        return calculateList.get(new Random().nextInt(size));
+        return 0;
     }
 
     /**
@@ -339,6 +343,9 @@ public class RulesServiceImpl implements IRulesService {
                 return 10;
             }
         }
+        if(orderType == 17 || orderType == 18){ // 化工材料采购 现只考虑化工厂
+            return 12;
+        }
         return 0;
     }
 }

+ 70 - 6
src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java

@@ -5,7 +5,10 @@ import com.steerinfo.dil.service.IStatisticalReportService;
 import com.steerinfo.dil.util.DataChange;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -43,11 +46,19 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         }
     }
 
-    //查询辅料燃料统计报表
+    /**
+     * 查询采购统计报表
+     * @Author TXF
+     * @Date 2022/1/6 9:52
+     * @param map
+     * @return
+     **/
     public List<Map<String, Object>> getRLFLReport(Map<String, Object> map){
-        List<Map<String, Object>> mapList = statisticalReportMapper.getAllPurchaseFLRLReport(map);
-        for (Map<String, Object> mesMap : mapList) {
-            calculateDifferenceTime(mesMap);
+        List<Map<String, Object>> mapList = null;
+        if(DataChange.dataToBigDecimal(map.get("orderTypee")).intValue() == 5){
+            mapList = statisticalReportMapper.getFuPurchaseFLRLReport(map);
+        }else {
+            mapList = statisticalReportMapper.getAllPurchaseFLRLReport(map);
         }
         return mapList;
     }
@@ -64,7 +75,6 @@ public class StatisticalReportImpl implements IStatisticalReportService {
      */
     @Override
     public List<Map<String, Object>> getAllSaleReport(Map<String, Object> map) {
-        System.out.println(statisticalReportMapper.getAllSaleReport(map));
         List<Map<String, Object>> mapList = statisticalReportMapper.getAllSaleReport(map);
         for (Map<String, Object> mesMap : mapList) {
             calculateDifferenceTime(mesMap);
@@ -99,7 +109,7 @@ public class StatisticalReportImpl implements IStatisticalReportService {
      */
     @Override
     public List<Map<String, Object>> getSporadicSuppliesReportNum2(Map<String, Object> mapValue) {
-        return statisticalReportMapper.getSporadicSuppliesReport1(mapValue);
+        return statisticalReportMapper.getSporadicSuppliesReport2(mapValue);
     }
 
     @Override
@@ -110,4 +120,58 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         }
         return mapList;
     }
+
+    //采购内转统计报表
+    @Override
+    public List<Map<String, Object>> getPurInwardReport( Map<String, Object> mapValue) {
+        List<Map<String, Object>> inwardReportResult = statisticalReportMapper.getInwardReportResult(mapValue);
+        for (Map<String,Object>inwardReport:inwardReportResult
+        ) {
+            BigDecimal netWeightSecond = DataChange.dataToBigDecimal(inwardReport.get("netWeightSecond"));
+            BigDecimal netWeightFirst = DataChange.dataToBigDecimal(inwardReport.get("netWeightFirst"));
+            BigDecimal netTract = netWeightSecond.subtract(netWeightFirst).divide(new BigDecimal(1), 2, 4);
+            //第二次净重减第一次净重
+            inwardReport.put("newTract",netTract);
+            calculateDifferenceTime(inwardReport);
+        }
+        return inwardReportResult;
+    }
+
+    //采购内转统计报表
+    @Override
+    public List<Map<String, Object>> getLXInwardReport( Map<String, Object> mapValue) {
+        List<Map<String, Object>> lxReportResult = statisticalReportMapper.getLXReportResult(mapValue);
+        for (Map<String,Object>inwardReport:lxReportResult
+        ) {
+
+            BigDecimal netWeightSecond = DataChange.dataToBigDecimal(inwardReport.get("netWeightSecond"));
+            BigDecimal netWeightFirst = DataChange.dataToBigDecimal(inwardReport.get("netWeightFirst"));
+            BigDecimal netTract = netWeightSecond.subtract(netWeightFirst).divide(new BigDecimal(1), 2, 4);
+            //第二次净重减第一次净重
+            inwardReport.put("newTract",netTract);
+            calculateDifferenceTime(inwardReport);
+        }
+        return lxReportResult;
+    }
+
+    @Override
+    public List<Map<String, Object>> getInwardReport(Map<String, Object> mapValue) {
+        return statisticalReportMapper.getInwardReport(mapValue);
+    }
+
+    @Override
+    public List<Map<String, Object>> getLoading(Map<String, Object> mapValue) {
+        return statisticalReportMapper.getLoading(mapValue);
+    }
+
+    @Override
+    public List<Map<String, Object>> getUnLoading(Map<String, Object> mapValue) {
+        return statisticalReportMapper.getUnLoading(mapValue);
+    }
+
+    @Override
+    public List<Map<String, Object>> getLoaderResult(Map<String, Object> mapValue) {
+        return statisticalReportMapper.getLoaderResult(mapValue);
+    }
+
 }

+ 127 - 102
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -4,8 +4,10 @@ import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper;
 import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckEnfactoryResult;
+import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
 import com.steerinfo.dil.service.ITmstruckEnfactoryResultService;
 import com.steerinfo.dil.util.DataChange;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -36,7 +38,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
     private TmstruckMeasureCommissionServiceImpl tmstruckMeasureCommissionService;
 
     @Autowired
-    private TmstruckWeightResultServiceImpl tmstruckWeightResultService;
+    private TmstruckTimeTaskResultServiceImpl tmstruckTimeTaskResultService;
 
     @Autowired
     private UtilsServiceImpl utilsService;
@@ -53,7 +55,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
 
     /**
      * 派单时新增进厂实绩
-     * map: 总实绩Id、线路起点
+     * map: 总实绩Id、线路Id、路段顺序号
      * @param map
      * @return
      */
@@ -61,16 +63,15 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
     public int addEnFactoryResult(Map<String, Object> map) {
         TmstruckEnfactoryResult tmstruckEnfactoryResult = new TmstruckEnfactoryResult();
         BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
-        //生成进厂作业主键Id
+        tmstruckEnfactoryResult.setResultTotalId(resultTotalId);
         //添加主键
         tmstruckEnfactoryResult.setResultId(tmstruckEnfactoryResultMapper.selectMaxId());
-        //通过总实绩ID查询订单类型
-        Map<String, Object> mesMap = utilsMapper.getOrderTypeByTotalId(resultTotalId);
-        int gatepostId = rulesService.calculateDxGatepostId(mesMap);
-        //添加门岗ID
+        List<Integer> gatepostIdList = utilsMapper.getLineSegmentGateCalcId(map);
+        gatepostIdList.remove(null);
+        //随机取门岗Id
+        Integer gatepostId = utilsService.randomGetValue(gatepostIdList);
+        //获取门岗ID
         tmstruckEnfactoryResult.setGatepostId(new BigDecimal(gatepostId));
-        //添加实绩总表Id
-        tmstruckEnfactoryResult.setResultTotalId(resultTotalId);
         // 添加路段顺序号
         tmstruckEnfactoryResult.setSegmenSqe(DataChange.dataToBigDecimal(map.get("segmentSqe")));
         return tmstruckEnfactoryResultMapper.insertSelective(tmstruckEnfactoryResult);
@@ -107,16 +108,21 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
             case 6:
             case 7:
             case 8:
+            case 17:
+            case 18:
                 return tmstruckEnfactoryResultMapper.getCGJKEnFactoryResult(map); //apiID: 99
             case 9:
                 return tmstruckEnfactoryResultMapper.getImportedDomesticNzLoadResult(map); //apiId:99
             case 10:
+            case 20:
                 return tmstruckEnfactoryResultMapper.getCGNZEnFactory(map); //apiId:99
             case 11:
                 return tmstruckEnfactoryResultMapper.getInFactoryMaterialEnFactoryResult(map); //apiId:357
             case 12:
             case 13:
-            case 15:
+            case 14:
+            case 19:
+            case 100:
                 return tmstruckEnfactoryResultMapper.getSporadicSuppliesEnFactoryResult(map);// apiId:416
         }
         return null;
@@ -146,126 +152,138 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         int i = 0;
         //通过运输订单号查询订单类型
         String orderNumber = (String) map.get("orderNumber");
-        Map<String, Object> selectMap = tmstruckEnfactoryResultMapper.selectEnFactoryResultId(orderNumber);
+        //通过订单号查询订单类型 及总实绩Id
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
+        String capacityNumber = (String) mesMap.get("capacityNumber");
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
+        int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
+        if(orderType == 11){//内转计时调用方法
+            return orderType11Use(map, mesMap, capacityNumber, resultTotalId);
+        }
+        else if (orderType == 21){//调用计时作业方法
+            return orderType21Use(map, orderNumber, DataChange.dataToBigDecimal(mesMap.get("orderId")));
+        }
+        Map<String, Object> selectMap = tmstruckEnfactoryResultMapper.selectEnFactoryResultId(resultTotalId);
         if(selectMap == null){
             throw new Exception("该车已进厂!!");
+        }else{
+            BigDecimal segmentSqe = DataChange.dataToBigDecimal(selectMap.get("segmentSqe"));
+            BigDecimal orderSegmentSqe = DataChange.dataToBigDecimal(mesMap.get("orderSegmentSqe"));
+            //如果当前路段顺序号 +1 不等于进厂路段顺序号 则不允许进厂 (针对同一路线多次进厂情况)
+            if(segmentSqe.intValue() != (orderSegmentSqe.intValue() + 1)){
+                throw  new Exception("作业环节未到进厂!");
+            }
         }
+        map.putAll(mesMap);
         map.putAll(selectMap);
-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
-        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         //判断委托是否发送成功
         int checkMeasureCommission = 0;
-        switch (orderType.intValue()){
+        switch (orderType){
             case 1:
-            case 4:
-                //查询未装车实绩
-                List<Map<String, Object>> mapList = rulesService.judgeLastMaterial(DataChange.dataToBigDecimal(map.get("orderId")));
-                if(mapList.size() == 1){
-                    //如果是单拼 不需要走计算 直接走钢材的汽车衡(钢材)
-                    Map<String, Object> mesMap = new HashMap<>();
-                    mesMap.put("materialId",mapList.get(0).get("materialId"));
-                    map.put("materialId", mapList.get(0).get("materialId"));
-                    mesMap.put("nature", 1);
-                    mesMap.put("orderId", orderId);
-                    mesMap.put("orderType", orderType);
-                    //计算计皮汽车衡
-                    int tarePlaceId = rulesService.calculateWeighbridge(mesMap);
-                    mesMap.put("tarePlaceId", tarePlaceId);
-                    //更新汽车衡
-                    i += tmstruckWeightResultService.updateWeightResult(mesMap);
-                }else {
-                    //如果是多拼
-                    Map<String, Object> mesMap = rulesService.calculateMaterial(mapList);
-                    //获取物资ID
-                    HashMap<String, Object> calculateMap = new HashMap<>();
-                    calculateMap.put("orderId", map.get("orderId"));
-                    calculateMap.put("materialId", mesMap.get("materialId"));
-                    calculateMap.put("nature", 1); // 1:进厂秤
-                    //计算计皮汽车衡
-                    int tarePlaceId = rulesService.calculateWeighbridge(calculateMap);
-                    calculateMap.put("tarePlaceId", tarePlaceId);
-                    //更新汽车衡
-                    i += tmstruckWeightResultService.updateWeightResult(calculateMap);
-                }
-                checkMeasureCommission = tmstruckMeasureCommissionService.addXSMeasureCommission(map); //添加计皮委托
+                //发送空委托
+                map.put("firstMC", 1); //空委托依据
+                checkMeasureCommission = tmstruckMeasureCommissionService.addSteelMeasureCommission(map);
                 break;
             case 2:
             case 3:
-                Map<String, Object> mesMap = new HashMap<>();
-                mesMap.put("orderId", orderId);
-                mesMap.put("orderType", orderType);
-                int tarePlaceId = rulesService.calculateWeighbridge(mesMap);
-                mesMap.put("tarePlaceId", tarePlaceId);
-                //更新汽车衡
-                i += tmstruckWeightResultService.updateWeightResult(mesMap);
                 checkMeasureCommission = tmstruckMeasureCommissionService.addXSMeasureCommission(map); //添加计皮委托
                 break;
             case 5:
+                Integer num = tmstruckEnfactoryResultMapper.selectAllEnFactoryNum(resultTotalId);
+                if(num == 2){
+                    //如果辅料有两次进厂,则判断还剩几次没进厂数据,如果还剩两次则发委托
+                    Integer judgeNum = tmstruckEnfactoryResultMapper.selectEnFactoryNumber(resultTotalId);
+                    if (judgeNum == 1){
+                        checkMeasureCommission = 1;
+                        break;
+                    }
+                }
+                checkMeasureCommission = tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计毛委托 并发送计毛委托
+                break;
             case 6:
             case 7:
             case 8:
-            case 9:
-                //计算计毛汽车衡并更新计量实绩 (暂时无法计算汽车衡)  需要写一个单独的方法 先计皮再计毛的
-                HashMap<String, Object> calculateMap56789 = new HashMap<>();
-                calculateMap56789.put("orderId", map.get("orderId"));
-                calculateMap56789.put("orderType", orderType);
-                //计算计量汽车衡
-                int grossPlaceId = rulesService.calculateWeighbridge(calculateMap56789);
-                calculateMap56789.put("grossPlaceId", grossPlaceId);
-                i += tmstruckWeightResultService.updateWeightResult(calculateMap56789);
-                //通过订单ID查询物资Id
-                List<Integer> materialIdList = utilsMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-                map.put("materialId", materialIdList.get(0));
-                checkMeasureCommission = tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计毛委托 并发送计毛委托
-                break;
+//            case 9:
             case 10:
-                HashMap<String, Object> calculateMap10 = new HashMap<>();
-                calculateMap10.put("orderId", map.get("orderId"));
-                calculateMap10.put("orderType", orderType);
-                //计算计量汽车衡并更新计量实绩
-                int placeId = rulesService.calculateWeighbridge(calculateMap10);
-                if(placeId == 15){ //第一次计量
-                    calculateMap10.put("tarePlaceId", placeId); //皮重
-                }else {
-                    calculateMap10.put("grossPlaceId", placeId); //毛重
-                }
-                i += tmstruckWeightResultService.updateWeightResult(calculateMap10);
-                checkMeasureCommission = tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计量委托
-                break;
-            case 11:
+            case 17:
+            case 18:
+                checkMeasureCommission = tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计毛委托 并发送计毛委托
                 break;
             case 12:
             case 13:
-            case 15:
-                //无法确定汽车衡
-                HashMap<String, Object> calculateMap1213 = new HashMap<>();
-                calculateMap1213.put("orderId", map.get("orderId"));
-                calculateMap1213.put("orderType", orderType);
-                //计算计量汽车衡并更新计量实绩
-                int placeId1213 = rulesService.calculateWeighbridge(calculateMap1213);
-                if(orderType.intValue() == 12){
-                    calculateMap1213.put("grossPlaceId", placeId1213);
-                }else {
-                    calculateMap1213.put("tarePlaceId", placeId1213);
-                }
-                i += tmstruckWeightResultService.updateWeightResult(calculateMap1213);
+            case 14:
+            case 19:
                 //发送计量委托(查询物资顺序第一个装卸货的物资)
-                //拿到需要计量的物资ID
                 Integer materialId = utilsMapper.getLxFirstMaterialId(DataChange.dataToBigDecimal(map.get("orderId")));
                 map.put("materialId", materialId);
-                checkMeasureCommission += tmstruckMeasureCommissionService.addLXMeasureCommission(map);
-
+                checkMeasureCommission += tmstruckMeasureCommissionService.sendMeasureCommissionByGatepost(map);
+                break;
+            case 20:
+                checkMeasureCommission += tmstruckMeasureCommissionService.sendMeasureCommissionByGatepost(map);
         }
         if(checkMeasureCommission == 0){
             throw new Exception("委托发送失败");
+        }else if (checkMeasureCommission == -2){
+            throw new Exception("没有获取到门岗");
         }
-        i += updateEnFactoryResultByPDA(map); //添加进厂实绩
+        i += tmstruckEnfactoryResultMapper.updateByPrimaryKeySelective(generateEnFactoryResult(map)); //添加进厂实绩
         //修改路段顺序号
         i += utilsService.updateOrderLineSequence(map);
-        utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "车辆进厂");
+        utilsService.pushMesToWebsocket(capacityNumber, "车辆进厂");
         return i;
+
     }
 
+    /**
+     * 计时作业方法
+     * @Author TXF
+     * @Date 2022/3/18 16:57
+     * @param map
+     * @param orderNumber
+     * @param orderId
+     * @return
+     **/
+    public int orderType21Use(Map<String, Object> map, String orderNumber, BigDecimal orderId) throws Exception{
+        int gatepostId = DataChange.dataToBigDecimal(map.get("gatepostId")).intValue();
+        if(TmstruckMeasureCommissionServiceImpl.daXingGatepost.contains(gatepostId)){
+            //如果是达兴的门岗扫码则不进行计时判断
+            map.put("inwardTypes",0);
+            map.put("orderNumber",orderNumber);
+        }else {
+            //首先判断是否还有计时开始
+            BigDecimal startTime = utilsMapper.getTime(DataChange.dataToBigDecimal(orderId));
+            //如果计时已经开始
+            if (startTime == null) {
+                map.put("inwardTypes", 1);
+                map.put("orderNumber", orderNumber);
+            } else {
+                map.put("inwardTypes", 3);
+                map.put("orderNumber", orderNumber);
+            }
+        }
+        return tmstruckTimeTaskResultService.addTimeTaskResult(map);
+    }
+
+    /**
+     * 内转订单类型处理方法
+     * @Author TXF
+     * @Date 2022/3/18 16:59
+     * @param
+     * @return
+     **/
+    public int orderType11Use(Map<String, Object> map, Map<String, Object> mesMap, String capacityNumber, BigDecimal resultTotalId){
+        //内转订单类型  没有生成实绩 直接新增
+        int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+        sqe = sqe + 1;
+        map.put("resultId", tmstruckEnfactoryResultMapper.selectMaxId());  //插入进厂实绩Id
+        map.put("Sqe", sqe); //查询路段顺序号 + 1
+        map.put("totalId",resultTotalId);
+        tmstruckEnfactoryResultMapper.insertSelective(generateEnFactoryResult(map));
+        mesMap.put("orderLineSequence", sqe);
+        utilsService.updateOrderLineSqeByOrderNumber(mesMap); //更新路段顺序号
+        utilsService.pushMesToWebsocket(capacityNumber, "车辆进厂");
+        return 1;
+    }
 
     /**
      * 通过门禁进厂
@@ -279,8 +297,9 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         //通过运输订单号查询订单类型
         String orderNumber = (String) map.get("orderNumber");
         String subString = orderNumber.substring(0,orderNumber.length() - 1);
-        map.putAll(tmstruckEnfactoryResultMapper.selectEnFactoryResultId(subString));
+        map.putAll(tmstruckEnfactoryResultMapper.selectEnFactoryResultId(null));
         BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
+
         switch (orderType.intValue()){
             case 1:
             case 4:
@@ -329,11 +348,11 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
     }
 
     /**
-     * 通过PDA添加进厂实绩方法
+     * 生成进厂实绩
      * @param map
      * @return
      */
-    public int updateEnFactoryResultByPDA(Map<String, Object> map){
+    public TmstruckEnfactoryResult generateEnFactoryResult(Map<String, Object> map){
         TmstruckEnfactoryResult tmstruckEnfactoryResult = new TmstruckEnfactoryResult();
         //获取进厂实绩id
         tmstruckEnfactoryResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
@@ -344,7 +363,13 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         tmstruckEnfactoryResult.setInsertTime(new Date());
         tmstruckEnfactoryResult.setResultEntryMode("手动抬杠");
         tmstruckEnfactoryResult.setInsertUsername("admin");
-        return tmstruckEnfactoryResultMapper.updateByPrimaryKeySelective(tmstruckEnfactoryResult);
+        if(map.get("Sqe") != null){
+            tmstruckEnfactoryResult.setSegmenSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
+        }
+        if(map.get("totalId") != null){
+            tmstruckEnfactoryResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("totalId")));
+        }
+        return tmstruckEnfactoryResult;
     }
 
     /**

+ 138 - 37
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.service.impl;
 
+import com.steerinfo.dil.feign.AmsFeign;
 import com.steerinfo.dil.feign.BmsShipFeign;
 import com.steerinfo.dil.feign.BmsTruckFeign;
 import com.steerinfo.dil.feign.OmsFeign;
@@ -11,16 +12,14 @@ import com.steerinfo.dil.service.ITmstruckLeaveFactoryResultService;
 import com.steerinfo.dil.service.IUtilsService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.route.service.impl.RouteServiceImpl;
+import com.steerinfo.framework.controller.RESTfulResult;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * TmstruckLeaveFactoryResult服务实现:
@@ -49,13 +48,13 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
     private TmstruckEnfactoryResultMapper tmstruckEnfactoryResultMapper;
 
     @Autowired
-    private IUtilsService utilsService;
+    private UtilsServiceImpl utilsService;
 
     @Autowired
     private UtilsMapper utilsMapper;
 
     @Autowired
-    private RulesServiceImpl rulesService;
+    private TmstruckEnfactoryResultServiceImpl tmstruckEnfactoryResultService;
 
     @Autowired
     OffSiteTransportationServiceImpl offSiteTransportationService;
@@ -63,6 +62,12 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
     @Autowired
     OmsFeign omsFeign;
 
+    @Autowired
+    BmsTruckFeign bmsTruckFeign;
+
+    @Autowired
+    AmsFeign amsFeign;
+
     /**
      * 查看运输线路是否为出厂
      * @param orderNumber
@@ -88,9 +93,11 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         //添加总实绩ID
         BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
         tmstruckLeaveFactoryResult.setResultTotalId(resultTotalId);
-        //通过总实绩ID查询订单类型
-        Map<String, Object> mesMap = utilsMapper.getOrderTypeByTotalId(resultTotalId);
-        int gatepostId = rulesService.calculateDxGatepostId(mesMap);
+        List<Integer> gatepostIdList = utilsMapper.getLineSegmentGateCalcId(map);
+        gatepostIdList.remove(null);
+        //随机取门岗值
+        Integer gatepostId = utilsService.randomGetValue(gatepostIdList);
+        //获取门岗ID
         tmstruckLeaveFactoryResult.setGatepostId(new BigDecimal(gatepostId));
         //添加路段顺序号
         tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("segmentSqe")));
@@ -135,22 +142,28 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
             case 6:
             case 7:
             case 8:
+            case 17:
+            case 18:
                 return tmstruckLeaveFactoryResultMapper.getCGLeaveFactoryResult(map); //apiId:110
             case 9:
                 return tmstruckLeaveFactoryResultMapper.getImportedDomesticNzEnFactoryResult(map); //apiId:110
             case 10:
+            case 20:
                 return tmstruckEnfactoryResultMapper.getCgNzOutFactory(map);
             case 11:
                 return tmstruckLeaveFactoryResultMapper.getInFactoryOutFactoryResult(map); //apiId:361
             case 12:
             case 13:
-            case 15:
-                return tmstruckLeaveFactoryResultMapper.getSporadicLeaveFactory(map);//apiId:421
+            case 14:
+            case 19:
+            case 100:
+                 return tmstruckLeaveFactoryResultMapper.getSporadicLeaveFactory(map);//apiId:421
         }
         return null;
     }
 
 
+
     /**
      * 通过 PDA 出厂
      * 1:销售订单;2:焦炭发运计划;3:水渣发运计划;4:内转到异地库;5:采购辅料订单;6:采购老区燃料订单;
@@ -158,23 +171,44 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
      * @param map
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public int leaveFactoryByPDA(Map<String, Object> map) throws Exception{
         int i = 0;
         String orderNumber = (String) map.get("orderNumber");
-        String substring = orderNumber.substring(0, orderNumber.length() - 1);
-        Map<String, Object> selectMap = tmstruckLeaveFactoryResultMapper.selectResultId(substring);
+        orderNumber = orderNumber.substring(0, orderNumber.length() - 1);
+        //通过订单号查询订单类型 及总实绩Id
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
+        int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
+        String capacityNumber = (String) mesMap.get("capacityNumber");
+        if(orderType == 11){
+           return orderType11Use(map, mesMap,capacityNumber);
+        }else if(orderType == 21){
+            return tmstruckEnfactoryResultService.orderType21Use(map, orderNumber, DataChange.dataToBigDecimal(mesMap.get("orderId")));
+        }
+        Map<String, Object> selectMap = tmstruckLeaveFactoryResultMapper.selectResultId(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
         if(selectMap == null){
             throw new Exception("该车已出厂!!");
+        }else{
+            BigDecimal segmentSqe = DataChange.dataToBigDecimal(selectMap.get("segmentSqe"));
+            BigDecimal orderSegmentSqe = DataChange.dataToBigDecimal(mesMap.get("orderSegmentSqe"));
+            //如果当前路段顺序号 +1 不等于出厂路段顺序号 则不允许出厂
+            if(segmentSqe.intValue() != (orderSegmentSqe.intValue() + 1)){
+                throw  new Exception("该车作业环节未全部完成!");
+            }
         }
+        map.putAll(mesMap);
         map.putAll(selectMap);
-        map.put("orderNumber", substring);
-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
+        map.put("orderNumber", orderNumber);
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         i += updateLeaveResultByPDA(map); //更新出厂实绩
         //更新路段顺序号
         i += utilsService.updateOrderLineSequence(map);
-        switch (orderType.intValue()){
+        switch (orderType){
             case 1:
+                Integer driverConfirmationSteel = utilsMapper.getDriverConfirmation(orderId);
+                if(driverConfirmationSteel == null){
+                    throw new Exception("请提醒司机确认订单!");
+                }
                 try {
                     //销售厂外监控
                     Map<String, Object> parem=tmstruckLeaveFactoryResultService.getTruckFactoryResult(orderNumber);
@@ -183,7 +217,6 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                 }catch (Exception ex){
 
                 }
-
                 break;
             case 2:
             case 3:
@@ -193,6 +226,13 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                     throw new Exception("请提醒司机确认订单!");
                 }
                 i += utilsService.closeOrderNormally(map);
+                // 判断是否要自动派单
+                Map<String,Object> mapValue = omsFeign.getSaleAllMessages(orderId.intValue());
+                Object closeStatus = mapValue.get("closeStatus");
+                if (closeStatus != null && DataChange.dataToBigDecimal(closeStatus).intValue() == 0) {
+                    amsFeign.dispatchTruckOrderByCarrier(mapValue);
+                }
+                bmsTruckFeign.addDetailsOrder(orderId);
                 break;
             case 4:
                 break;
@@ -200,39 +240,50 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
             case 6:
             case 7:
             case 8:
+                //判断出厂路段顺序号是否为最后一个 采购订单关闭订单
+                i += utilsService.closeOrderNormally(map);
+                //查询是否为一车多趟采购订单类型
+                Integer isMoreTripsStatus = tmstruckLeaveFactoryResultMapper.getIsMoreTripsStatus(DataChange.dataToBigDecimal(selectMap.get("orderId")));
+                if(isMoreTripsStatus != null && isMoreTripsStatus == 1){
+                    //如果是一车多趟 则重新下一个运输订单
+                    omsFeign.addNewTransportOrder(orderId.intValue());
+                }
+                break;
             case 9:
+            case 17:
+            case 18:
                 //判断出厂路段顺序号是否为最后一个 采购订单关闭订单
                 i += utilsService.closeOrderNormally(map);
-//                i += utilsService.updateCapacityStatus(map, 0); //修改运力状态 0:空闲中
-                //采购出厂 通过feign调用新增详单
-//                try {
-//                    bmsShipFeign.addDetailsOrder(DataChange.dataToBigDecimal(map.get("resultId"))); // 出厂实绩Id
-//                    bmsTruckFeign.addDetailsOrder(DataChange.dataToBigDecimal(map.get("orderId")));  // 运单ID
-//                } catch (Exception e) {
-//                    e.printStackTrace();
-//                }
                 break;
             case 10:
+            case 20:
+                //生成新的采购内转运输订单
                 //判断出厂路段顺序号是否为最后一个 采购订单关闭订单
                 i += utilsService.closeOrderNormally(map);
-                break;
-            case 11:
+                //根据运输订单ID查询路段顺序号
+                Integer seq = tmstruckLeaveFactoryResultMapper.getSeq(orderId);
+                if(seq == 10){
+                    //判断是否满足条件--计划是否被启用
+                    Integer j = tmstruckLeaveFactoryResultMapper.getPlanEnable(orderId);
+                    if(j == 1){
+                        //生成新的运输订单
+                        omsFeign.addPurInwardOrder(orderId);
+                    }
+                    try {
+                        bmsTruckFeign.addInwardDetailsOrder(map);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
                 break;
             case 12:
             case 13:
-                //判断出厂路段顺序是否为最后一个零星订单关闭订单
-                i += utilsService.closeOrderNormally(map);
-                break;
-            case 15:
-            case 16: {
+            case 14:
                 //关闭当前订单
                 i += utilsService.closeOrderNormally(map);
-                //根据零星订单id 查询趟次多少,如果大于零发消息给司机
-
-                //omsFeign.pushMesToWebsocket(map);
+                //生成新的零星订单
                 omsFeign.pushMessageToDriver(map);
-            }
-            break;
+                break;
         }
         utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "出厂");
         return i;
@@ -240,6 +291,54 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
 
 
 
+    /**
+     * 内转订单类型
+     * @Author TXF
+     * @Date 2022/3/18 18:03
+     * @param map
+     * @param mesMap
+     * @param capacityNumber
+     * @return
+     **/
+    public int orderType11Use(Map<String, Object> map, Map<String, Object> mesMap, String capacityNumber){
+        //内转订单类型 没有生成实绩 直接新增
+        int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+        sqe = sqe + 1;
+        map.put("resultId",tmstruckLeaveFactoryResultMapper.selectMaxId());//出厂实绩ID
+        map.put("Sqe",sqe);//查询路段顺序号+1
+        map.put(("totalId"),mesMap.get("totalId"));
+        tmstruckLeaveFactoryResultMapper.insertSelective(generateLeaveFactory(map));
+        //更新路段顺序号
+        mesMap.put("orderLineSequence",sqe);
+        utilsService.updateOrderLineSqeByOrderNumber(mesMap);
+        utilsService.pushMesToWebsocket(capacityNumber, "出厂");
+        return 1;
+    }
+
+
+    //内转订单类型新增出厂实绩
+    private TmstruckLeaveFactoryResult generateLeaveFactory(Map<String, Object> map) {
+        TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
+        //获取出厂实绩ID
+        tmstruckLeaveFactoryResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
+        //添加门岗
+        tmstruckLeaveFactoryResult.setGatepostId(DataChange.dataToBigDecimal(map.get("gatepostId")));
+        //添加路段顺序号
+        tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
+        //添加出厂时间
+        tmstruckLeaveFactoryResult.setResultOutGateTime(new Date());
+        tmstruckLeaveFactoryResult.setInsertTime(new Date());
+        tmstruckLeaveFactoryResult.setResultOutMode("手动抬杆");
+        tmstruckLeaveFactoryResult.setInsertUsername("admin");
+        if(map.get("Sqe") !=null){
+            tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
+        }
+        if(map.get("totalId") !=null){
+            tmstruckLeaveFactoryResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("totalId")));
+        }
+        return tmstruckLeaveFactoryResult;
+    }
+
     /**
      * 更新出厂实绩
      * @param mapValue {运输订单号:orderNumber 门岗名称:gatepostName}
@@ -289,4 +388,6 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
     public List<Map<String, Object>> getSporadicLeaveFactory(Map<String, Object> mapValue) {
         return tmstruckLeaveFactoryResultMapper.getSporadicLeaveFactory(mapValue);
     }
+
+
 }

+ 211 - 153
src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java

@@ -3,10 +3,9 @@ package com.steerinfo.dil.service.impl;
 import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.feign.WMSFeign;
 import com.steerinfo.dil.feign.WmshBoundFeign;
-import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper;
-import com.steerinfo.dil.mapper.TmstruckLoadResultMapper;
-import com.steerinfo.dil.mapper.TmstruckReturnResultMapper;
-import com.steerinfo.dil.mapper.UtilsMapper;
+import com.steerinfo.dil.mapper.*;
+import com.steerinfo.dil.model.TmstruckEnfactoryResult;
+import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
 import com.steerinfo.dil.model.TmstruckLoadResult;
 import com.steerinfo.dil.service.ITmstruckLoadResultService;
 import com.steerinfo.dil.util.DataChange;
@@ -39,6 +38,9 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
     @Autowired
     private TmstruckEnfactoryResultMapper tmstruckEnfactoryResultMapper;
 
+    @Autowired
+    private TmstruckTimeTaskResultServiceImpl tmstruckTimeTaskResultService;
+
     @Autowired
     private TmstruckReturnResultMapper tmstruckReturnResultMapper;
 
@@ -46,7 +48,10 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
     private UtilsServiceImpl utilsService;
 
     @Autowired
-    private RulesServiceImpl rulesService;
+    private TmstruckLeaveFactoryResultMapper tmstruckLeaveFactoryResultMapper;
+
+    @Autowired
+    private TmstruckTimeTaskResultMapper tmstruckTimeTaskResultMapper;
 
     @Autowired
     private WmshBoundFeign wmshBoundFeign;
@@ -61,7 +66,23 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
     private TmstruckWeightResultServiceImpl tmstruckWeightResultService;
 
     @Autowired
-    private TmstruckMeasureCommissionServiceImpl tmstruckMeasureCommissionService;
+    private  TmstruckMeasureCommissionServiceImpl tmstruckMeasureCommissionService;
+
+    /**
+     * 生成销售装车实绩(虚拟装车实绩)
+     * @param map
+     * @return
+     */
+    public int addLoadResult(Map<String, Object> map){
+        TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
+        //添加主键Id
+        tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
+        //添加总实绩ID
+        tmstruckLoadResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+        // 添加路段顺序号
+        tmstruckLoadResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("segmentSqe")));
+        return tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
+    }
 
     /**
      * 查询所有装车实绩
@@ -89,91 +110,21 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
                 return tmstruckLoadResultMapper.getCGJKLoadResult(map); // apiId = 91
             case 9:
             case 10:
+            case 20:
                 return tmstruckLoadResultMapper.getImportedDomesticNzLoadResult(map); //apiId = 353
             case 11:
                 return tmstruckLoadResultMapper.getInFactoryLoadResult(map); //apiId = 359
             case 12:
             case 13:
-            case 15:
-                return tmstruckLoadResultMapper.getSporadicSuppliesLoadResult(map); //apiId = 404
+            case 14:
+            case 19:
+            case 100:
+                 return tmstruckLoadResultMapper.getSporadicSuppliesLoadResult(map); //apiId = 430
         }
         return null;
     }
 
-    /**
-     * 新增采购装车实绩  / 内转装车实绩
-     * @param map  resultMeasuredTonnage :计量吨位  portId:港口ID
-     *             resultLoadStartTime:装车时间 resultIsclear:是否清场
-     */
-    @Transactional
-    public int addCGLoadResult(Map<String,Object> map){
-        //通过运输订单号 或 运单Id 查询实绩总表ID  此方法在 进厂作业mapper中
-        Map<String,Object> orderMap = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
-        BigDecimal totalId = (BigDecimal) orderMap.get("resultTotalId");
-        //通过实绩总表ID查询装车实绩ID
-        BigDecimal loadResultId = tmstruckLoadResultMapper.getResultId(totalId);
-
-        TmstruckLoadResult tmstruckLoadResult = tmstruckLoadResultMapper.selectByPrimaryKey(loadResultId);
-        //添加主键Id
-//        tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
-        //新增计量吨位 装车所装的重量
-        BigDecimal resultMeasuredTonnage = DataChange.dataToBigDecimal(map.get("resultMeasuredTonnage"));
-        tmstruckLoadResult.setResultMeasuredTonnage(resultMeasuredTonnage);
-        tmstruckLoadResult.setStatus(new BigDecimal(0));
-//        tmstruckLoadResult.setResultTotalId(totalId);
-        String resultIsclear = (String) (map.get("resultIsclear"));
-        tmstruckLoadResult.setResultIsclear(resultIsclear);
-        tmstruckLoadResult.setResultLoadEndTime(new Date((long) map.get("resultLoadStartTime")));
-        tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
-        //根据订单ID查询订单类型
-        Integer orderType = tmstruckLoadResultMapper.getOrderType(totalId);
-        if(orderType == 8){
-            tmstruckLoadResult.setSegmentSqe(new BigDecimal(1));
-        }
-        Object portId = map.get("portId"); //获取港口
-        if(portId != null){
-            //通过订单ID获取批次Id
-            BigDecimal batchId = tmstruckLoadResultMapper.getBatchIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-            if(batchId != null){
-                Map<String, Object> hashMap = new HashMap<>();
-                hashMap.put("batchId", batchId);
-                hashMap.put("portId", portId);
-                hashMap.put("resultTonnage",resultMeasuredTonnage);
-                hashMap.put("isClean", resultIsclear);
-                wmshBoundFeign.addResult(hashMap);
-                // 通过港口ID查询仓库表中的港存库ID
-                BigDecimal warehouseId = tmstruckLoadResultMapper.getWarehouseIdByPortId(DataChange.dataToBigDecimal(portId));
-                tmstruckLoadResult.setLoadingId(warehouseId); // 添加装货点为港口
-            }
-        }
-        int i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
-        String capacityNumber = (String) orderMap.get("capacityNumber");
-        utilsService.pushMesToWebsocket(capacityNumber,"装货!");
-        //修改订单状态为执行中 1
-//        int i1 = utilsService.updateOrderStatus(map, 1);
-        //修改运力状态为执行中 1
-//        int i2 = utilsService.updateCapacityStatus(map, 1);
-        return i ;
-    }
-
 
-    /**
-     * 生成销售装车实绩(虚拟装车实绩)
-     * @param map
-     * @return
-     */
-    public int addLoadResult(Map<String, Object> map){
-        TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
-        //添加主键Id
-        tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
-        //添加物资Id
-        tmstruckLoadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
-        //添加总实绩ID
-        tmstruckLoadResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
-        // 添加路段顺序号
-        tmstruckLoadResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("segmentSqe")));
-        return tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
-    }
 
     /**
      * 更新装车实绩表
@@ -189,77 +140,110 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
     }
 
     /**
-     * PDA新增销售钢材装车实绩  (如果是多种物资【多拼】,通过物资Id和运输订单号来确定唯一的装车实绩进行修改)
-     *    orderNumber 运输订单号
-     *  insertUpdateRemark 备注   scanText 扫描结果
+     * 钢材装车
+     * orderId materialId loadStartTime  loadId warehouseId insertUpdateRemark
      * @param map
      * @return
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public int addXSLoadResult(Map<String, Object> map){
-        //通过扫描结果截取物资唯一编码
-        String scanText = (String) map.get("scanText");
-        String[] split = scanText.split("-");
-        String materialOnlyCode = split[7];
-        //通过物资唯一编码查找物资Id
-        BigDecimal materialId = tmstruckLoadResultMapper.getMaterialIdByMaterialCode(materialOnlyCode);
-        //通过运输订单号查找总实绩ID
-        Map<String,Object> orderMap = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
-        BigDecimal resultTotalId = (BigDecimal) orderMap.get("resultTotalId");
-        map.put("resultTotalId", resultTotalId.intValue());
-        //通过总实绩ID与物资ID查找 装车实绩主键ID
-        Map<String, Object> resultIdMap = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), materialId.intValue());
+        //通过运输订单号查询实绩
+        Map<String, Object> steelMesMap = tmstruckLoadResultMapper.getSteelLoadResult(map);
+        if(steelMesMap == null){
+            return -1;
+        }
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
-        tmstruckLoadResult.setStatus(new BigDecimal(0)); // 添加状态0:正常
-        //编辑装车实绩主键ID对应的各个字段
-        tmstruckLoadResult.setResultId(DataChange.dataToBigDecimal(resultIdMap.get("resultId")));
-        // 获取扫描实绩最小Id  添加扫描开始时间
-        map.put("materialId", materialId);
-        Map<String, Object> scanMap = tmstruckLoadResultMapper.getMinScanIdByOrderNum(map);
-        Date resultLoadStartTime = tmstruckLoadResultMapper.selectLoadTimeByResultId(DataChange.dataToBigDecimal(scanMap.get("resultId")));
-        tmstruckLoadResult.setResultLoadStartTime(resultLoadStartTime);
-        // 添加装卸工Id
-        tmstruckLoadResult.setLoaderId(DataChange.dataToBigDecimal(scanMap.get("loadId")));
-        // 添加扫描结束时间 以调用当前接口时间为结束时间
-        Date resultLoadEndTime = new Date();
-        tmstruckLoadResult.setResultLoadEndTime(resultLoadEndTime);
-        // 添加装车实绩时长  ----  计算装车时长
-        long time = (resultLoadEndTime.getTime() - resultLoadStartTime.getTime()) / 60000; // 分钟
-        tmstruckLoadResult.setResultLoadDuration(new BigDecimal(time));
-        //添加装车标准时长
-        setLoadStandardTimeId((String)map.get("orderNumber"), tmstruckLoadResult);
-        Object platformName = map.get("platformName");
-        if(platformName != null){
-            // 如果月台不为空则更新月台
-            Integer platformId = utilsService.queryPlatformIdByName((String) platformName);
-            tmstruckLoadResult.setLoadingId(new BigDecimal(platformId));
+        //总实绩ID 开始时间 结束时间 装车时长 物资Id 装卸工ID 装货点Id 备注
+        tmstruckLoadResult.setResultId(DataChange.dataToBigDecimal(steelMesMap.get("resultId")));
+        Date loadStartTime = DataChange.dataToDate(map.get("loadStartTime"));
+        loadStartTime = loadStartTime == null ? new Date() : loadStartTime;
+        tmstruckLoadResult.setResultLoadStartTime(loadStartTime);
+        Date loadEndTime = new Date();
+        tmstruckLoadResult.setResultLoadEndTime(loadEndTime);
+        long duration = (loadEndTime.getTime() - loadStartTime.getTime()) / 60000;
+        tmstruckLoadResult.setResultLoadDuration(new BigDecimal(duration));
+        Object loadId = map.get("loadId");
+        if(loadId != null){
+            tmstruckLoadResult.setLoaderId(DataChange.dataToBigDecimal(map.get("loadId")));
         }
-        // 添加备注
+        BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
+        tmstruckLoadResult.setMaterialId(materialId);
+        tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(map.get("warehouseId")));
         tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
-        int i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
-        //更新汽车衡
-        i += tmstruckWeightResultService.calculateTruckCalculate(map, resultTotalId.intValue());
-        //发送计毛委托 订单类型:1
-//        map.put("orderTypee", 1);
-//        tmstruckMeasureCommissionService.addMaoMeasureCommission(map);
-        return i;
+        steelMesMap.put("materialId", materialId);
+        //给达钢发送委托
+        int i = tmstruckMeasureCommissionService.addSteelMeasureCommission(steelMesMap);
+        if(i == 0){
+            return i;
+        }
+        tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
+        //更新路段顺序号
+        utilsService.updateOrderLineSequence(steelMesMap); //orderId segmentSqe
+        //推送数据
+        utilsService.pushMesToWebsocket((String) steelMesMap.get("capacityNumber"), "装货");
+        return 1;
     }
 
     /**
-     * PDA新增销售钢渣、水渣、危化品装车实绩  采购内转
+     * PDA新增装车实绩 (非钢材)
      * loadStartTime 装车开始时间
-     * warehouseId  仓库Id      orderNumber 运输订单号 / orderId   insertUpdateRemark 备注
      * @param map
      * @return
      */
-    @Transactional
-    public int addXS2LoadResult(Map<String, Object> map){
-        //通过运输订单号 查询 总实绩ID、订单类型
-        Map<String,Object> orderMap = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
-        BigDecimal resultTotalId = (BigDecimal) orderMap.get("resultTotalId");
-        //查询装车实绩ID
-        map.putAll(tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), null));
+    @Transactional(rollbackFor = Exception.class)
+    public int addXS2LoadResult(Map<String, Object> map) throws Exception {
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
+        //通过运输订单号查询订单类型
+        String orderNumber = (String) map.get("orderNumber");
+        //通过订单号查询订单类型 及总实绩Id
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
+        String capacityNumber = (String) mesMap.get("capacityNumber");
+        int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
+        if(orderType == 11){
+            int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+            sqe = sqe + 1;
+            map.put("resultId",tmstruckLoadResultMapper.selectMaxId());
+            map.put("Sqe",sqe);//查询路段顺序号+1
+            map.put("resultTotalId", resultTotalId);
+            int i =tmstruckLoadResultMapper.insertSelective(generateLoad(map));
+            //更新路段顺序号
+            mesMap.put("orderLineSequence",sqe);
+            utilsService.updateOrderLineSqeByOrderNumber(mesMap);
+            //推送消息到websocket
+            utilsService.pushMesToWebsocket(capacityNumber, "装货");
+            BigDecimal orderId = DataChange.dataToBigDecimal(mesMap.get("orderId"));
+            int i1 = addCapacityRemark(map);
+            if (i1==-5){
+                return -5;
+            }
+            //根据运输订单查找需求备注
+            Map<String,Object>  remarkMap=tmstruckTimeTaskResultMapper.selectInwardDueTimeByOrderId(orderId);
+            String remark =(String) remarkMap.get("remark");
+            if (remark.contains("计时")){
+                //判断计时是否开始
+                BigDecimal startTime = utilsMapper.getTime(DataChange.dataToBigDecimal(orderId));
+                if (startTime==null){
+                    map.put("inwardTypes",1);
+                    tmstruckTimeTaskResultService.addTimeTaskResult(map);
+                }
+            }
+            return i;
+        }
+        //如果是零星多拼订单 需要查询这个物资是否已经装过了
+        if(orderType == 12 || orderType == 13){
+            mesMap.put("updateUnloadResult", 1);
+            Integer checkMaterial = tmstruckLoadResultMapper.checkMaterialIdLoad(resultTotalId, DataChange.dataToBigDecimal(map.get("materialId")));
+            if(checkMaterial != null){
+                return -2; //已装过此物资
+            }
+        }
+        Map<String, Object> dataMap = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(mesMap);
+        if(dataMap == null){
+            return -3; //该订单没有装车作业
+        }
+        //查询装车实绩ID
+        map.putAll(dataMap);
         tmstruckLoadResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
         tmstruckLoadResult.setStatus(new BigDecimal(0));
         tmstruckLoadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
@@ -278,26 +262,81 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
             if(personnelId != null){
                 tmstruckLoadResult.setLoaderId(new BigDecimal(personnelId));
             }
+
         }
         // 更新装货点
         tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(map.get("warehouseId")));
-        tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
-        int i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
-        //装车成功后计算计毛汽车衡(出厂:2)
-        BigDecimal orderType = DataChange.dataToBigDecimal(orderMap.get("orderType"));
-        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
-        Map<String, Object> mesMap = new HashMap<>();
-        mesMap.put("orderType", orderType);
-        mesMap.put("orderId", orderId);
-        int placeId = rulesService.calculateWeighbridge(mesMap);
-        mesMap.put("grossPlaceId", placeId);
-        i += tmstruckWeightResultService.updateWeightResult(mesMap);
-
         //更新路段顺序号
-        i += utilsService.updateOrderLineSequence(map);
+        utilsService.updateOrderLineSequence(map);
+        //判断是否为未装货
+        if (map.get("insertUpdateRemark")!=null) {
+            String insertUpdateRemark = (String) map.get("insertUpdateRemark");
+            if("未装货".equals(insertUpdateRemark)){
+                loadJudge(mesMap);
+            }
+            tmstruckLoadResult.setInsertUpdateRemark(insertUpdateRemark);
+        }
+        addCapacityRemark(map);
+        tmstruckLoadResult.setCaseNumber((String) map.get("caseNumber"));
+        tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
         //推送消息到websocket
-        utilsService.pushMesToWebsocket((String) orderMap.get("capacityNumber"), "装货");
-        return i;
+        utilsService.pushMesToWebsocket(capacityNumber, "装货");
+        return 1;
+    }
+
+    //内转添加装货实绩
+    private TmstruckLoadResult generateLoad(Map<String, Object> map) {
+        TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
+        tmstruckLoadResult.setId(DataChange.dataToBigDecimal(map.get("resultId")));
+        tmstruckLoadResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+        tmstruckLoadResult.setStatus(new BigDecimal(0));
+        tmstruckLoadResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
+        tmstruckLoadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
+        //添加装车开始时间
+        Date loadStartTime = new Date((long) map.get("loadStartTime"));
+        tmstruckLoadResult.setResultLoadStartTime(loadStartTime);
+        //添加装车结束时间(当前时间)
+        Date loadEndTime = new Date();
+        tmstruckLoadResult.setResultLoadEndTime(loadEndTime);
+        //计算装车时长 取分钟
+        long differentTime = (loadEndTime.getTime() - loadStartTime.getTime()) / 60000;
+        tmstruckLoadResult.setResultLoadDuration(new BigDecimal(differentTime));
+        if(map.get("personnelSsoId") != null){
+            //通过SSo主键查询人员管理主键
+            Integer personnelId = utilsMapper.getPersonnelIdBySsoId((String) map.get("personnelSsoId"));
+            if(personnelId != null){
+                tmstruckLoadResult.setLoaderId(new BigDecimal(personnelId));
+            }
+        }
+        tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
+        // 添加装货点
+        tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(map.get("warehouseId")));
+        return tmstruckLoadResult;
+    }
+
+    /**
+     * 更改最大路段顺序号 -1
+     * @Author TXF
+     * @Date 2022/2/13 12:59
+     * @param map
+     * @return
+     **/
+    @Override
+    public int loadJudge(Map<String, Object> map) {
+        BigDecimal orderId =DataChange.dataToBigDecimal(map.get("orderId"));
+        //查找当前订单共有几次出厂
+        List<Integer> resultIdList = tmstruckLoadResultMapper.allOutFactoryNum(orderId);
+        if(resultIdList.size() > 1){
+            for(int i = 0; i < resultIdList.size() - 1; i ++){
+                //给最后一次出厂 之外的出厂实绩 赋值出厂时间
+                TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
+                tmstruckLeaveFactoryResult.setResultId(new BigDecimal(resultIdList.get(i)));
+                tmstruckLeaveFactoryResult.setResultOutMode("未装货出厂");
+                tmstruckLeaveFactoryResult.setResultOutGateTime(new Date());
+                tmstruckLeaveFactoryResultMapper.updateByPrimaryKeySelective(tmstruckLeaveFactoryResult);
+            }
+        }
+        return tmstruckLoadResultMapper.updateSqe(orderId);
     }
 
     /**
@@ -377,6 +416,26 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         return i;
     }
 
+    @Override
+    public int addCapacityRemark(Map<String, Object> map) {
+        int i=0;
+        TmstruckLoadResult tmstruckLoadResult=new TmstruckLoadResult();
+        String capacityName = utilsMapper.getCapacityNameBySsoId((String) map.get("personnelSsoId") );
+        if (capacityName!=null) {
+            //通过车牌去寻找装货实绩,减少多次装货
+            map.put("capacityName", capacityName);
+            BigDecimal loadResultId = utilsMapper.getLoadResultId(map);
+            if (loadResultId == null) {
+                tmstruckLoadResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
+                tmstruckLoadResult.setCapacityRemark(capacityName);
+                i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
+            }else {
+                i=-5;
+            }
+        }
+        return i;
+    }
+
     /**
      * 查询销售合同装车实绩
      * @param map
@@ -395,7 +454,6 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
         //设置主键id
         tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
-
         //获取开始时间
         Date startTime = (Date) map.get("startTime");
         //获取运输订单号

+ 438 - 87
src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java

@@ -2,16 +2,24 @@ package com.steerinfo.dil.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.steerinfo.dil.mapper.RulesMapper;
 import com.steerinfo.dil.mapper.TmstruckMeasureCommissionMapper;
+import com.steerinfo.dil.mapper.TmstruckTareReturnResultMapper;
+import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckMeasureCommission;
+import com.steerinfo.dil.model.TmstruckTareReturnResult;
 import com.steerinfo.dil.service.ITmstruckMeasureCommissionService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.dil.util.HTTPRequestUtils;
+import io.swagger.models.auth.In;
+import org.apache.poi.ss.formula.functions.T;
 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.net.Inet4Address;
 import java.util.*;
 
 /**
@@ -33,41 +41,58 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
     @Autowired
     private TmstruckMeasureCommissionMapper tmstruckMeasureCommissionMapper;
 
-   /**
+    @Autowired
+    private RulesMapper rulesMapper;
+    @Autowired
+    UtilsMapper utilsMapper;
+    @Autowired
+    private RulesServiceImpl rulesService;
+    @Autowired
+    private TmstruckTareReturnResultMapper tmstruckTareReturnResultMapper;
+
+    private static final  String daGangUrl = "http://172.16.33.122:44325/api/logistics/TareApplyFor";
+
+    private static final String liuPiUrl = "http://172.16.33.122:44325/api/logistics/updateTareWeight";
+
+    private static final String daXingUrl = "http://172.16.59.251:8121/daXingWeight/OrderBusiness/addOrder.do";
+
+    //给达钢发送委托
+    private static final List<Integer> judgeDaGangNum = Arrays.asList(5, 6, 8, 11, 17);
+
+    //给达兴发委托
+    private static final List<Integer> judgeDaXinNum = Arrays.asList(7, 18);
+
+    private static final String judgeCoke = "一厂焦炭库";
+
+    //根据门来判断委托发送依据
+    public static final List<Integer> daGangGatepost = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 14);
+    public static final List<Integer> daXingGatepost = Arrays.asList(8, 9, 10, 11, 12, 13);
+
+    /**
+     * 根据门岗发送委托
+     * @Author TXF
+     * @Date 2022/3/15 11:14
+     * @param map
+     * @return
+     **/
+    public int sendMeasureCommissionByGatepost(Map<String, Object> map){
+        int gatepostId = DataChange.dataToBigDecimal(map.get("gatepostId")).intValue();
+        if(daGangGatepost.contains(gatepostId)){ //给达钢发送委托
+            return sendMeasureCommissionMes(map);
+        }else if(daXingGatepost.contains(gatepostId)){  //给达兴发送委托
+            return sendDXMeasureCommissionMes(map);
+        }
+        return -2; //返回-2为没有获取到门岗ID
+    }
+
+
+    /**
      * 查询计量委托 0 :计皮     1:计毛
      * @param map orderTypee 订单类型   type 是计皮还是计毛
      * @return
      */
     @Override
     public List<Map<String, Object>> getAllMeasureCommission(Map<String, Object> map) {
-        Integer orderType = (Integer) map.get("orderTypee");
-        switch (orderType){
-            case 1:
-
-                break;
-            case 2:
-
-                break;
-            case 3:
-
-                break;
-            case 4:
-
-                break;
-            case 5:
-                break;
-            case 6:
-                break;
-            case 7:
-                break;
-            case 8:
-                return tmstruckMeasureCommissionMapper.getMeasureCommission(map);
-            case 9:
-                break;
-            case 10:
-                break;
-            case 11:
-        }
         return null;
     }
 
@@ -80,23 +105,24 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
      */
     public int addMaoMeasureCommission(Map<String, Object> map){
         int i = 0;
-        addMeasureCommission(map); // 添加计毛委托
         //发送数据给计量系统 必要数据 orderTypee:订单类型  resultTotalId: 总实绩Id   orderId
-        //获取当前订单是属于哪个厂区订单
-        Integer receiveId = 0 ;
-        if(DataChange.dataToBigDecimal(map.get("orderTypee")).intValue() == 10){
-            receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByRequirementOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-        }else{
-            receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-        }
-        if(receiveId == 1){
+        int orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
+        if(orderType == 10){
+            //获取当前订单是属于哪个厂区订单
+            Integer receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByRequirementOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+            if(receiveId == 1){
+                i = sendMeasureCommissionMes(map);  //发送委托给达州钢铁
+            }else if(receiveId == 2) {
+                i = sendDXMeasureCommissionMes(map); //发送委托给达兴能源
+            }
+        }else if(judgeDaGangNum.contains(orderType)){
             //发送委托给达州钢铁
-            i += sendMeasureCommissionMes(map);
-        }
-        if(receiveId == 2) {
+            i = sendMeasureCommissionMes(map);
+        }else if(judgeDaXinNum.contains(orderType)) {
             //发送委托给达兴能源
-            i += sendDXMeasureCommissionMes(map);
+            i = sendDXMeasureCommissionMes(map);
         }
+
         return i;
     }
 
@@ -108,10 +134,15 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
      */
     public int addXSMeasureCommission(Map<String, Object> map){
         int i = 0;
-        addMeasureCommission(map); // 添加计毛委托
         //发送数据给计量系统 必要数据 orderTypee:订单类型  resultTotalId: 总实绩Id   orderId
         //获取当前订单是属于哪个厂区订单
-        Integer shipperId = tmstruckMeasureCommissionMapper.getShipperIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+        Map<String, Object> mesMap = tmstruckMeasureCommissionMapper.getShipperIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+        if(map.get("saleWarehouse") != null){
+            if(judgeCoke.equals(map.get("saleWarehouse"))){ //如果是一厂焦炭库则向达钢发送委托
+                return sendMeasureCommissionMes(map);
+            }
+        }
+        int shipperId = DataChange.dataToBigDecimal(mesMap.get("shipperId")).intValue();
         if(shipperId == 1){
             //发送委托给达州钢铁
             i += sendMeasureCommissionMes(map);
@@ -123,47 +154,102 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         return i;
     }
 
+    /**
+     * 发送钢材销售委托:只有老厂区有钢材
+     * @param map
+     * @return
+     */
+    public int addSteelMeasureCommission(Map<String, Object> map){
+        Map<String, Object> measureCommission = null;
+        if(map.get("firstMC") != null){ //进厂发送空委托
+            measureCommission = new HashMap<>();
+            measureCommission.put("flowTo","出厂钢材");
+            measureCommission.put("carNum", map.get("capacityNumber"));
+            measureCommission.put("transportNum", map.get("orderNumber"));
+        }else {
+            measureCommission = tmstruckMeasureCommissionMapper.getSteelMeasureCommission(map);
+            measureCommission.put("isDel", false);
+            measureCommission.put("isInsert", true);
+            measureCommission.put("isRelationEAS", true);
+            measureCommission.put("flowTo", "出厂钢材");
+            Object isPoundSale = measureCommission.get("isPoundSale");
+            measureCommission.remove("isPoundSale");
+            if(isPoundSale != null){
+                if(DataChange.dataToBigDecimal(isPoundSale).intValue() == 0){
+                    measureCommission.put("deliveryMethod", "磅重交货");
+                    measureCommission.remove("meterWeight");
+                }else {
+                    measureCommission.put("deliveryMethod", "理重交货");
+                    BigDecimal meterWeight = DataChange.dataToBigDecimal(measureCommission.get("meterWeight")).divide(new BigDecimal(1000));
+                    measureCommission.remove("meterWeight");
+                    measureCommission.put("theoryWeight", meterWeight.setScale(4, BigDecimal.ROUND_HALF_UP));//理重除1000保留四位小数
+                }
+            }
+            //查询已经计量物资
+            Integer materialNum = tmstruckMeasureCommissionMapper.getAlreadyWeightMaterialNum(DataChange.dataToBigDecimal(map.get("orderId")));
+            if(materialNum >= 1){
+                measureCommission.put("IsAssembly", true);
+            }else {
+                measureCommission.put("IsAssembly", false);
+            }
+        }
+        return sendMesToMeasure(measureCommission);
+    }
+
     /**
      * 添加零星物资计量委托
      * @param map
      * @return
      */
     public int addLXMeasureCommission(Map<String, Object> map){
-        Integer orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
+        int orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         int i = 0;
         if(orderType == 12) {
             //查询进厂收货单位
-            Integer receiveId = tmstruckMeasureCommissionMapper.getPtLxReceiveIdByOrderId(orderId);
+            Integer receiveId = tmstruckMeasureCommissionMapper.getLxRealReceiveIdByOrderId(orderId);
             if(receiveId == 1){
                 //给达钢发送委托
-
+                i = sendMeasureCommissionMes(map);
             }else if(receiveId == 2){
                 //给达兴发送委托
                 i = sendDXMeasureCommissionMes(map);
             }
         }else if(orderType == 13){
-            Integer sendId = tmstruckMeasureCommissionMapper.getPtLxSendUnitIdByOrderId(orderId);
+            Integer sendId = tmstruckMeasureCommissionMapper.getLxRealSendUnitIdByOrderId(orderId);
             if(sendId == 1){
-                //给达钢发送委托
-
+                i = sendMeasureCommissionMes(map);
             }else if(sendId == 2){
-                //给达兴发送委托
                 i = sendDXMeasureCommissionMes(map);
             }
 
         }else if(orderType == 15){
-            //如果是15类型的订单寻找订单父级发货单位  (现只有出厂)
+            //进厂,收货单位
+            //如果是15类型的订单寻找订单父级发货单位  (现只有进厂)
+            Integer receiveId = tmstruckMeasureCommissionMapper.getLxRealReceiveIdByOrderId(orderId);
+            if(receiveId == 1){
+                i = sendMeasureCommissionMes(map);
+            }else if (receiveId == 2){
+                i = sendDXMeasureCommissionMes(map);
+            }
+        }else if(orderType == 16){
+            //出厂,发货单位
             Integer sendUnitId = tmstruckMeasureCommissionMapper.getLxRealSendUnitIdByOrderId(orderId);
             if(sendUnitId == 1){
-                //给达钢发送委托
-
+                i = sendMeasureCommissionMes(map);
             }else if (sendUnitId == 2){
-                //给达兴发送委托
                 i = sendDXMeasureCommissionMes(map);
             }
         }
-        addMeasureCommission(map); // 添加计毛委托
+        else if(orderType == 20) {//内转零星进厂
+            //查询还未计量实绩
+            Integer noNetWeightResult = rulesMapper.getNoNetWeightResult(orderId);
+            if(noNetWeightResult != 2){
+                i = sendMeasureCommissionMes(map);
+            }else {
+                i = sendDXMeasureCommissionMes(map);//如果有两条没有净重的实绩则需要给达兴发委托  否则给达钢发委托
+            }
+        }
         return i;
     }
 
@@ -195,7 +281,7 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
 
 
     /**
-     * 查询计量委托并向计量系统发送数据  调用他们接口
+     * 查询计量委托并向计量系统发送数据  调用他们接口 (老厂区)
      * 1:销售订单;2:焦炭发运计划;3:水渣发运计划;4:内转到异地库;5:采购辅料订单;6:采购老区燃料订单;
      * 7:采购新区燃料订单;8:采购进口矿(万州-厂内);9:采购内转(达州-厂内);10:采购内转(老区-厂内); 11:厂内内转
      * @param map orderTypee 订单类型  type 计皮0还是计毛1类型  orderId  订单ID
@@ -203,27 +289,31 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
     public int sendMeasureCommissionMes(Map<String, Object> map){
         Map<String, Object> measureCommission = null;
         //查询计量委托
-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
-        switch (orderType.intValue()){
+        int orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
+        switch (orderType){
             case 1:
-
                 break;
             case 2:
-                break;
-            case 3:
-                break;
-            case 10:
-                break;
-            case 11:
-            case 4:
-
+                measureCommission=tmstruckMeasureCommissionMapper.selectXsMeasuresion(map);
+                if(measureCommission == null){
+                    return 0;
+                }
+                measureCommission.put("isRelationEAS",true);
+                measureCommission.put("flowTo","出厂");
+                measureCommission.put("isDel", false);
+                measureCommission.put("isInsert", true);
+                measureCommission.put("IsAssembly", false);
+                measureCommission.put("deliveryMethod", "磅重交货");
+                measureCommission.put("packagesNum", 0);
                 break;
             case 5:
             case 6:
-            case 7:
             case 8:
-            case 9:
+            case 17:
                 measureCommission =  tmstruckMeasureCommissionMapper.purchaseMeasure(map);
+                if(measureCommission == null){
+                    return 0;
+                }
                 measureCommission.put("isRelationEAS", true);
                 measureCommission.put("flowTo", "进厂");
                 measureCommission.put("isDel", false);
@@ -231,10 +321,71 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                 measureCommission.put("IsAssembly", false);
                 measureCommission.put("deliveryMethod", "磅重交货");
                 measureCommission.put("packagesNum", 0);
+                break;
+            case 11:
+                //纯内转发送计量委托
+                measureCommission = tmstruckMeasureCommissionMapper.purchaseNzMeasure(map);
+                if(measureCommission == null){
+                    return 0;
+                }
+                if(map.get("deletedCommission") != null){
+                    measureCommission.put("isDel", true);
+                    measureCommission.put("isInsert", false);
+                }else {
+                    measureCommission.put("isDel", false);
+                    measureCommission.put("isInsert", true);
+                }
+                measureCommission.put("isRelationEAS", false);
+                measureCommission.put("flowTo", "中转");
+                measureCommission.put("IsAssembly", false);
+                measureCommission.put("deliveryMethod", "磅重交货");
+                measureCommission.put("packagesNum", 0);
+                System.out.println(measureCommission);
+                break;
+            case 12:
+            case 13:     //零星进厂、出厂
+            case 14:
+            case 19:
+                measureCommission = tmstruckMeasureCommissionMapper.sproadicMeasure(map);
+                if(measureCommission == null){
+                    return 0;
+                }
+                measureCommission.put("steelyardNum", "null");
+                measureCommission.put("demo", "无");
+                measureCommission.put("isRelationEAS",false);
+                if(orderType == 12){
+                    measureCommission.put("flowTo","进厂");
+                }else if(orderType == 13){
+                    measureCommission.put("flowTo","出厂");
+                }else if(orderType == 14){
+                    measureCommission.put("flowTo","中转");
+                }else{
+                    measureCommission.put("flowTo","退货");
+                }
+                measureCommission.put("isDel", false);
+                measureCommission.put("isInsert", true);
+                measureCommission.put("deliveryMethod", "磅重交货");
+                measureCommission.put("packagesNum", 0);
+                break;
+            case 20://采购内转委托总厂区
+                measureCommission=tmstruckMeasureCommissionMapper.purchaseXqCgNzMeasure(map);
+                if(measureCommission == null){
+                    return 0;
+                }
+                measureCommission.put("isRelationEAS",false);
+                measureCommission.put("flowTo","进厂");
+                measureCommission.put("isDel",false);
+                measureCommission.put("isInsert",true);
+                measureCommission.put("deliveryMethod", "磅重交货");
+                measureCommission.put("packagesNum", 0);
         }
+        if(measureCommission != null)
+            map.put("materialId", measureCommission.get("materialId"));
+        addMeasureCommission(map); // 添加计量委托
         /*访问接口发送数据*/
-//        sendMesToMeasure(measureCommission);
-        return 1;
+        return sendMesToMeasure(measureCommission);
+//        return 1;
+
     }
 
 
@@ -259,12 +410,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                 measureCommission.put("crname", "admin");
                 measureCommission.put("ended", "0");
                 break;
-            case 4:
-                break;
-            case 5:
-            case 6:
             case 7:
-            case 8:
+            case 18:
                 measureCommission =  tmstruckMeasureCommissionMapper.purchaseDXMeasure(map);
                 if(measureCommission == null)
                     return 0;
@@ -272,9 +419,9 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                 measureCommission.put("billType", "0");
                 measureCommission.put("crname", "admin");
                 measureCommission.put("ended", "0");
-            case 9:
                 break;
             case 10:
+            case 20:
                 //新区采购内转
                 measureCommission = tmstruckMeasureCommissionMapper.purchaseXqCgNzDXMeasure(map);
                 if(measureCommission == null)
@@ -288,19 +435,25 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                     measureCommission.put("orderSource", measureCommission.get("chooseOrderSource"));
                     measureCommission.put("billType", "0");
                     measureCommission.put("item", measureCommission.get("item") + ",1");
+                    measureCommission.put("goodsName",measureCommission.get("goodsName") + "null");
                 }else {
                     measureCommission.put("orderSource", "0");
                     measureCommission.put("billType", "2");
                 }
                 measureCommission.put("ended", "0");
                 break;
-            case 11:
-                break;
-            case 12:
+            case 12: // 零星订单
             case 13:
+            case 14:
                 measureCommission = tmstruckMeasureCommissionMapper.sporadicDXMeasure(map);
                 if(measureCommission == null)
                     return 0;
+                if(orderType.intValue() == 14){
+                    Integer weightResultCount14 = tmstruckMeasureCommissionMapper.selectNoNetWeightResult(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+                    if(weightResultCount14 == 1){
+                        measureCommission.put("item", measureCommission.get("item") + ",1");
+                    }
+                }
                 measureCommission.put("regionName", "无法确定汽车衡"); //无法确定汽车衡
                 measureCommission.put("deliveryType", "计重");
                 measureCommission.put("billType", "2");
@@ -309,8 +462,13 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                 measureCommission.put("orderSource", "0");
                 measureCommission.put("ended", "0");
                 break;
-            case 14:
+            
         }
+        if(measureCommission != null)
+            map.put("materialId", measureCommission.get("item"));
+        addMeasureCommission(map); // 添加计量委托
+//        System.out.println(measureCommission);
+//        return 1;
         /*访问接口发送数据*/
         return sendMesToDXMeasure(measureCommission);
     }
@@ -326,11 +484,9 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         sendMap.add(map);
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("data", sendMap);
-
-        String url = "http://172.16.33.122:44325/api/logistics/TareApplyFor";
         String jsonData = null;
         try {
-            jsonData = HTTPRequestUtils.send(url, jsonObject, "utf-8");
+            jsonData = HTTPRequestUtils.send(daGangUrl, jsonObject, "utf-8");
         } catch (IOException e) {
             e.printStackTrace();
         }
@@ -342,6 +498,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
             if(success){
                 return 1;
             }
+        }else{
+            System.out.println("委托发送失败:" + jsonData);
         }
         return 0;
     }
@@ -355,10 +513,9 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
     public int sendMesToDXMeasure(Map<String, Object> map){
         JSONObject jsonObject = new JSONObject();
         jsonObject.putAll(map);
-        String url = "http://172.16.59.251:8121/daXingWeight/OrderBusiness/addOrder.do";
         String jsonData = null;
         try {
-            jsonData = HTTPRequestUtils.send(url, jsonObject, "utf-8");
+            jsonData = HTTPRequestUtils.send(daXingUrl, jsonObject, "utf-8");
         } catch (IOException e) {
             e.printStackTrace();
         }
@@ -373,4 +530,198 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         }
         return 0;
     }
+
+    //发送计量委托
+    @Override
+    @Transactional
+    public int sendMeasureCommssion(Map<String, Object> map){
+        if(map.get("asd") == null){ //预防司机没更新APP点击发送委托
+            return 5;
+        }
+        int i=0;
+        //获取订单类型
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        if(map.get("materialId") == null){
+            map.putAll(utilsMapper.getOrderMesByOrderId(orderId));
+        }
+        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
+        //根据运输订单id查找运输订单号
+        switch (orderType.intValue()){
+            case 1: //查询未装车实绩
+                List<Map<String, Object>> mapList = rulesService.judgeLastMaterial(DataChange.dataToBigDecimal(map.get("orderId")));
+                map.put("materialId", mapList.get(0).get("materialId"));
+                i+=addXSMeasureCommission(map);
+            case 2:
+            case 3: //通过物资ID查询订单ID(针对单拼)
+                List<Integer> materialIdList = utilsMapper.getMaterialIdByOrderId(orderId);
+                map.put("materialId", materialIdList.get(0));
+                i+=addXSMeasureCommission(map);
+                break;
+            case 12:
+            case 13:
+                //如果是自动发送委托 查询最近进厂的门岗
+                if(map.get("materialId") != null){
+                    Integer gatepostId = utilsMapper.getLastGatepostId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+                    if(gatepostId == null){
+                        map.put("gatepostId", 1); //一般零星多拼只存在于老厂
+                    }else {
+                        map.put("gatepostId", gatepostId);
+                    }
+                }else {
+                    //手动发送委托
+                    Integer materialId = utilsMapper.getNextMaterialId(orderId);
+                    if(materialId == null) {
+                        return 0;
+                    }else {
+                        map.put("materialId", materialId);
+                        map.put("gatepostId", 1);
+                    }
+                }
+                i+=sendMeasureCommissionByGatepost(map);
+                break;
+            case 14:
+
+                break;
+            case 15:
+            case 20:
+            case 16: //发送计量委托(查询物资顺序第一个装卸货的物资)
+                //拿到需要计量的物资ID
+                Integer materialId = utilsMapper.getLxFirstMaterialId(DataChange.dataToBigDecimal(map.get("orderId")));
+                map.put("materialId", materialId);
+                i+=addLXMeasureCommission(map);
+                break;
+            case 5:
+            case 6:
+            case 7:
+            case 8:
+            case 10:
+            case 11:
+            case 17:
+            case 18:
+                i+=addMaoMeasureCommission(map);
+        }
+        return i;
+    }
+
+    /* 手动发送委托稽核代码
+   if(map.get("deletedCommission") != null){
+            //在计量实绩中查询是否有计量数据,如果有则代表已经计量过了不允许撤回
+            List<Integer> commission = tmstruckMeasureCommissionMapper.checkoutWeightCommission(map);
+            if(commission.size() != 0){
+                return 2;
+            }
+        }else {
+            //查询最后发送委托的物资
+            Integer alreadySentMaterialId = tmstruckMeasureCommissionMapper.getAlreadySentMaterialId(map);
+            if(alreadySentMaterialId != null){
+                map.put("checkMaterialId", alreadySentMaterialId);
+                //判断当前订单是否有已经发送过委托 但是还未计量完成的物资
+                Map<String, Object> checkoutMesMap = tmstruckMeasureCommissionMapper.checkoutWeightCommission2(map);
+                if(checkoutMesMap == null){ // 为空则是这个物资还没有计量
+                    return 4;
+                }else {
+                    //如果不为空, 判断是否有净重 如果有净重则是计量完成 否则 没有
+                    if(checkoutMesMap.get("resultNetWeight") == null){
+                        return 4;
+                    }
+                }
+            }
+        }
+
+    if(i == 1 && orderType.intValue() == 11){
+        //发送委托成功后修改订单物资表
+        tmstruckMeasureCommissionMapper.updateOmsTruckMaterial(map);
+        if(map.get("deletedCommission") != null){
+            i = 3;
+        }
+    }
+     **/
+
+    /**
+     * 发送留皮委托
+     * @Author TXF
+     * @Date 2022/3/8 14:35
+     * @param capacityNumber
+     * @return
+     **/
+    @Override
+    synchronized public Map<String, Object> sendLiuPiMeasureCommission(String capacityNumber) throws InterruptedException {
+        Map<String, Object> map = new HashMap<>();
+        String num = "DZGTZDLP" + System.currentTimeMillis();
+        map.put("carNumber", capacityNumber);
+        map.put("purchOrder", num);
+        //通过车牌号查询上一次委托发送数据
+        Map<String, Object> mesMap = tmstruckTareReturnResultMapper.getMesByCapacityNum(capacityNumber);
+        if(mesMap != null){
+            Date lastDate = (Date) mesMap.get("returnTime");
+            if((System.currentTimeMillis() - lastDate.getTime()) < 3600000){ //小于一小时重复点击 返回上一次发送的委托号
+                map.put("status", "1");
+                map.put("purchOrder", mesMap.get("returnNum"));
+            }else {
+                //进行委托发送正常流程
+                dataDealWith(map, mesMap);
+            }
+        }else {
+            dataDealWith(map, null);
+        }
+        Thread.sleep(1); //避免网络问题多设备同时请求导致高并发 导致委托号相同(同一时间点)
+        return map;
+    }
+
+    public void dataDealWith(Map<String, Object> map, Map<String, Object> mesMap){
+        String carNumber = (String) map.get("carNumber");
+        //委托发送正常流程
+        String isOK = sendMesToMeasure2(map);
+        if("ok".equals(isOK)){
+            //如果委托正常发送,则保存数据并返回
+            map.put("status", "1");
+            TmstruckTareReturnResult tmstruckTareReturnResult = new TmstruckTareReturnResult();
+            tmstruckTareReturnResult.setId(tmstruckTareReturnResultMapper.selectMaxId());
+            tmstruckTareReturnResult.setReturnTime(new Date());
+            tmstruckTareReturnResult.setReturnNum((String) map.get("purchOrder"));
+            tmstruckTareReturnResult.setInsertTime(new Date());
+            tmstruckTareReturnResult.setInsertUsername(carNumber);
+            if(mesMap == null){
+                //通过车牌号查询运力ID
+                tmstruckTareReturnResult.setCapacityId(utilsMapper.getCapacityIdByNum(carNumber));
+            }else {
+                tmstruckTareReturnResult.setCapacityId(DataChange.dataToBigDecimal(mesMap.get("capacityId")));
+            }
+            tmstruckTareReturnResultMapper.insertSelective(tmstruckTareReturnResult);
+        }else {
+            map.put("status", "0");
+            map.put("mes", isOK);
+        }
+    }
+
+    /**
+     * 上面方法儿子方法
+     * @Author TXF
+     * @Date 2022/3/8 16:19
+     * @param map
+     * @return
+     **/
+    public String sendMesToMeasure2(Map<String, Object> map){
+        JSONObject jsonObject = new JSONObject(map);
+        String jsonData = null;
+        try {
+            jsonData = HTTPRequestUtils.send(liuPiUrl, jsonObject, "utf-8");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        if(!"null".equals(jsonData)){
+            System.out.println(jsonData);
+            HashMap hashMap = JSON.parseObject(jsonData, HashMap.class);
+            boolean success = (boolean) hashMap.get("success");
+            System.out.println(hashMap.get("msg"));
+            if(success){
+                return "ok";
+            }else {
+                return (String) hashMap.get("msg");
+            }
+        }else{
+            System.out.println("委托发送失败:" + jsonData);
+        }
+        return "委托发送失败";
+    }
 }

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

@@ -87,6 +87,8 @@ public class TmstruckReceiptResultServiceImpl implements ITmstruckReceiptResultS
             case 6:
             case 7:
             case 8:
+            case 17:
+            case 18:
                 return tmstruckReceiptResultMapper.getCGReceiptResult(map); //apiId: 107
             case 9:
             case 10:
@@ -99,11 +101,10 @@ public class TmstruckReceiptResultServiceImpl implements ITmstruckReceiptResultS
 
     /**
      * 新增一条虚拟收货实绩
-     * @param map {resultTotalId:总实绩ID}
+     * @param  {resultTotalId:总实绩ID}
      * @return
      */
-    public int addReceiptResult(Map<String, Object> map){
-        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
+    public int addReceiptResult(BigDecimal resultTotalId){
         //根据总实绩ID查询收货实绩查看是否已收货
         Integer receiptResult = tmstruckReceiptResultMapper.getReceiptResult(resultTotalId);
         if(receiptResult != null){

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

@@ -3,6 +3,7 @@ package com.steerinfo.dil.service.impl;
 import com.steerinfo.dil.feign.JoinFeign;
 import com.steerinfo.dil.mapper.TmstruckLeaveFactoryResultMapper;
 import com.steerinfo.dil.mapper.TmstruckSmsRusultMapper;
+import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckSmsRusult;
 import com.steerinfo.dil.service.ITmstruckSmsRusultService;
 import com.steerinfo.dil.util.MD5Util;
@@ -37,7 +38,7 @@ public class TmstruckSmsRusultServiceImpl extends BaseServiceImpl<TmstruckSmsRus
     @Autowired
     private TmstruckSmsRusultMapper tmstruckSmsRusultMapper;
     @Autowired
-    private TmstruckLeaveFactoryResultMapper tmstruckLeaveFactoryResultMapper;
+    private UtilsMapper utilsMapper;
     @Autowired
     JoinFeign joinFeign;
 //    @Autowired
@@ -64,9 +65,8 @@ public class TmstruckSmsRusultServiceImpl extends BaseServiceImpl<TmstruckSmsRus
         TmstruckSmsRusult tmstruckSmsRusult=new TmstruckSmsRusult();
         tmstruckSmsRusult.setResultId(tmstruckSmsRusultMapper.selectMaxId());
         //新增总实绩id
-        Map<String,Object> map1= tmstruckLeaveFactoryResultMapper.selectResultId(orderNumber);
-        Integer resultTotalId = Integer.parseInt(map1.get("resultTotalId").toString());
-        tmstruckSmsRusult.setTotalResultId(new BigDecimal(resultTotalId));
+        BigDecimal resultTotalId = utilsMapper.getTotalIdByOrderNumber(orderNumber);
+        tmstruckSmsRusult.setTotalResultId(resultTotalId);
         Integer shipperId = tmstruckSmsRusultMapper.selectShipperIdByOrderNumber(orderNumber);
         //设置发送方id
         tmstruckSmsRusult.setSenderId(new BigDecimal(shipperId));

+ 240 - 20
src/main/java/com/steerinfo/dil/service/impl/TmstruckTimeTaskResultServiceImpl.java

@@ -1,15 +1,22 @@
 package com.steerinfo.dil.service.impl;
 
+import com.steerinfo.dil.feign.AmsFeign;
+import com.steerinfo.dil.feign.BmsTruckFeign;
+import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.mapper.TmstruckTimeTaskResultMapper;
+import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckTimeTaskResult;
 import com.steerinfo.dil.service.ITmstruckTimeTaskResultService;
 
 import com.steerinfo.dil.util.DataChange;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.xml.crypto.Data;
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -31,107 +38,176 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
 
     @Autowired
     private TmstruckTimeTaskResultMapper tmstruckTimeTaskResultMapper;
+    @Autowired
+    private UtilsMapper utilsMapper;
+    @Autowired
+    private UtilsServiceImpl utilsService;
+    @Autowired
+    private OmsFeign omsFeign;
+    @Autowired
+    private BmsTruckFeign bmsTruckFeign;
+    @Autowired
+    private AmsFeign amsFeign;
+
 
 
     /**
      * 通用生成实例数据
+     *
      * @param map
      * @return
      */
-    public TmstruckTimeTaskResult generateTimeTaskResult(Map<String, Object> map, Integer timeType){
+    public TmstruckTimeTaskResult generateTimeTaskResult(Map<String, Object> map) {
         TmstruckTimeTaskResult tmstruckTimeTaskResult = new TmstruckTimeTaskResult();
         //获取主键ID
         tmstruckTimeTaskResult.setId(tmstruckTimeTaskResultMapper.selectMaxId());
         String orderNumber = (String) map.get("orderNumber");
+        BigDecimal inwardType = DataChange.dataToBigDecimal(map.get("inwardType"));
         //通过运输订单号查询总实绩ID等数据
         map.putAll(tmstruckTimeTaskResultMapper.getResultTotalIdByOrderNum(orderNumber));
         tmstruckTimeTaskResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
         //生成时间
         tmstruckTimeTaskResult.setResultTime(new Date());
+        //生成订单结束
+        tmstruckTimeTaskResult.setResultUomId(new BigDecimal(900));
         //设置时间类型
-        tmstruckTimeTaskResult.setResultTimeType(new BigDecimal(timeType));
+        tmstruckTimeTaskResult.setResultTimeType(inwardType);
+        String personnelSsoId =(String) map.get("personnelSsoId");
+        tmstruckTimeTaskResult.setInsertUsername(personnelSsoId);
+        tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
         return tmstruckTimeTaskResult;
     }
 
     /**
      * 司机申请开始
+     *
      * @param map
      * @return
      */
     @Override
     public int applyStartTime(Map<String, Object> map) {
         //设置时间类型 0
-        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map, 0);
+        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map);
         return tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
     }
 
     /**
      * 用车单位确认开始
+     *
      * @param map
      * @return
      */
     @Override
     public int unitSureStartTime(Map<String, Object> map) {
         //设置时间类型 1
-        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map, 1);
+        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map);
         return tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
     }
 
     /**
      * 司机申请暂停
+     *
      * @param map
      * @return
      */
     @Override
     public int applyStartTimeout(Map<String, Object> map) {
         //设置时间类型 4
-        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map, 4);
+        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map);
         return tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
     }
 
     /**
      * 用车单位确认
+     *
      * @param map
      * @return
      */
     @Override
     public int unitSureStartTimeout(Map<String, Object> map) {
         //设置时间类型 5
-        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map, 5);
+        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map);
         return tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
     }
 
     /**
      * 司机申请暂停结束
+     *
      * @param map
      * @return
      */
     @Override
     public int applyEndTimeout(Map<String, Object> map) {
         //设置时间类型 6
-        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map, 6);
+        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map);
         return tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
     }
 
     /**
      * 用车单位确认暂停结束
+     *
      * @param map
      * @return
      */
     @Override
     public int unitSureEndTimeout(Map<String, Object> map) {
-        //设置时间类型 7
-        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map, 7);
-        //查询上一次结束的时间
-        Map<String, Object> timeMap = tmstruckTimeTaskResultMapper.getLastTimeout(tmstruckTimeTaskResult.getResultTotalId());
-        Object resultTime = timeMap.get("resultTime");
-        if(resultTime != null){
-            Date lastTimeout = (Date) resultTime;
-            //计算相差时间戳 存入当前实绩中  更精确
-            long differenceTime = new Date().getTime() - lastTimeout.getTime();
-            tmstruckTimeTaskResult.setResultValue(new BigDecimal(differenceTime));
+        int i=0;
+        //map中传输的参数为InwardType,orderNumber
+        //根据运输订单号查找订单id
+        //如果订单类型为5
+        String personnelSsoId =(String) map.get("personnelSsoId");
+        String orderNumber =(String) map.get("orderNumber");
+        //根据运输订单号查找运输订单id
+        BigDecimal orderId = utilsMapper.getOrderIdByOrderNumber(orderNumber);
+        map.put("orderId",orderId);
+        BigDecimal inwardType =DataChange.dataToBigDecimal(map.get("inwardType"));
+        if (inwardType.intValue()==5){
+            generateTimeTaskResult(map);
+        }else if (inwardType.intValue()==7){
+            TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map);
+            //生成计时实绩暂停
+            //根据运输订单号查找总实绩id
+            BigDecimal totalId = utilsMapper.getTotalIdByOrderNumber(orderNumber);
+            //根据总实绩id查找开始时间
+            Map<String, Object> lastTimeout = tmstruckTimeTaskResultMapper.getLastTimeout(totalId);
+            Date startTime =(Date) lastTimeout.get("resultTime");
+            //根据总实绩id查找结束时间
+            Map<String, Object> lastTimeEnd = tmstruckTimeTaskResultMapper.getLastTimeEnd(totalId);
+            Date EndTime = (Date) lastTimeEnd.get("resultTime");
+            long dueTime=EndTime.getTime()-startTime.getTime();
+            tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResult.getTimeTaskResultId());
+            tmstruckTimeTaskResult.setResultValue(new BigDecimal((dueTime/(1000*60))));
+            tmstruckTimeTaskResult.setUpdateTime(new Date());
+            tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
+            i+=tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
+
         }
-        return tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
+
+        return i;
+    }
+   //判断计时订单结束后推单
+    @Override
+    public int pushOrderForPause(Map<String, Object> map) {
+         int i=0;
+         //关闭内转订单
+         map.put("orderStatus", 2);
+         i = utilsMapper.updateOrderStatusByOrderIdOrNum(map);
+         BigDecimal orderId1 = DataChange.dataToBigDecimal(map.get("orderId"));
+         map= tmstruckTimeTaskResultMapper.selectInwardDueTimeByOrderId(orderId1);
+        //根据运输订单id查找需求日期是否超过一个月
+        if(map != null) {
+            Date dueDate = (Date) map.get("dueTime");
+            //当前时间小于截至日期
+            long DueTime = dueDate.getTime() + 86400000;
+            //获取当前时间
+            Date date = new Date();
+            long nowTime = date.getTime();
+            if (nowTime < DueTime) {
+                //推送
+                 omsFeign.addNewTransportOrder(orderId1);
+            }
+        }
+        return i;
     }
 
     /**
@@ -142,7 +218,7 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
     @Override
     public int applyEndTime(Map<String, Object> map) {
         //设置时间类型 2
-        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map, 2);
+        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map);
         return tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
     }
 
@@ -154,7 +230,7 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
     @Override
     public int unitSureEndTime(Map<String, Object> map) {
         //设置时间类型 3
-        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map, 3);
+        TmstruckTimeTaskResult tmstruckTimeTaskResult = generateTimeTaskResult(map);
         //查询当前车辆排队开始时间 计算出总时长
         Map<String, Object> startTimeMap = tmstruckTimeTaskResultMapper.getStartTime(tmstruckTimeTaskResult.getResultTotalId());
         Date endTime = new Date();
@@ -187,5 +263,149 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
         return tmstruckTimeTaskResultMapper.getAllTimeTaskResult(map);
     }
 
+    /**
+     * 添加计时作业实绩
+     * @param map
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int addTimeTaskResult(Map<String, Object> map) throws Exception {
+        //判断是否是计时开始还是计时结束
+        int i=0;
+        BigDecimal inwardType =DataChange.dataToBigDecimal(map.get("inwardTypes")) ;
+        String orderNumber = (String) map.get("orderNumber");
+        String personnelSsoId = (String) map.get("personnelSsoId");
+        BigDecimal resultTotalId = utilsMapper.getTotalIdByOrderNumber(orderNumber);
+        TmstruckTimeTaskResult tmstruckTimeTaskResult = new TmstruckTimeTaskResult();
+        BigDecimal orderId = utilsMapper.getOrderIdByOrderNumber(orderNumber);
+        map.put("orderId", orderId);
+        //根据运输订单id查找实绩中是否已经含有计时结束的实绩,如果有则抛出异常
+        int countEndTimeNum = tmstruckTimeTaskResultMapper.CountTimeTaskByOrderId(orderId);
+        if (countEndTimeNum >= 1) {
+            throw new Exception("请勿重复计时");
+        }
+        tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResultMapper.selectMaxId());
+        tmstruckTimeTaskResult.setResultTotalId(DataChange.dataToBigDecimal(resultTotalId));
+        //获取计时开始的订单类型
+        tmstruckTimeTaskResult.setResultTimeType(inwardType);
+        tmstruckTimeTaskResult.setResultTime(new Date());
+        tmstruckTimeTaskResult.setInsertTime(new Date());
+        if (personnelSsoId!=null) {
+            tmstruckTimeTaskResult.setInsertUsername(personnelSsoId);
+        }
+        //新增第一条计时实绩
+        tmstruckTimeTaskResultMapper.insertSelective(tmstruckTimeTaskResult);
+        if(inwardType.intValue() == 3){
+            //获取最新暂停结束确认时间
+            Map<String, Object> map2 = new HashMap<>();
+            map2.put("type", 7);
+            map2.put("orderId", orderId);
+            BigDecimal resultPauseTime = utilsMapper.TimeTaskPause(map2);
+            if(resultPauseTime != null) {
+                Map<String, Object> timeMaps = utilsMapper.FristTimeTask(map);
+                Date resultTime2 = (Date) timeMaps.get("resultTime");
+                Map<String, Object> timeStatus = utilsMapper.getTimeStatus(map);
+                Date resultTime1 = (Date) timeStatus.get("resultTime");
+                long dateTime1 = resultTime2.getTime() - resultTime1.getTime();
+                BigDecimal dateTime3 = new BigDecimal(dateTime1 / (1000 * 60));
+                int Time1 = dateTime3.intValue() - resultPauseTime.intValue();
+                tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResult.getTimeTaskResultId());
+                tmstruckTimeTaskResult.setResultValue(new BigDecimal((Time1)));
+                tmstruckTimeTaskResult.setResultUomId(new BigDecimal(900));
+                if (personnelSsoId != null) {
+                    tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
+                }
+                i += tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
+                map.put("Time1",Time1);
+                genernateInwardTime(map);
+            } else {
+                Map<String, Object> timeMaps = utilsMapper.FristTimeTask(map);
+                Date resultTime2 = (Date) timeMaps.get("resultTime");
+                Map<String, Object> timeStatus = utilsMapper.getTimeStatus(map);
+                Date resultTime1 = (Date) timeStatus.get("resultTime");
+                long dateTime1 = resultTime2.getTime() - resultTime1.getTime();
+                BigDecimal dateTime3 = new BigDecimal(dateTime1 / (1000 * 60));
+                tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResult.getTimeTaskResultId());
+                tmstruckTimeTaskResult.setResultValue(dateTime3);
+                tmstruckTimeTaskResult.setResultUomId(new BigDecimal(900));
+                if (personnelSsoId != null) {
+                    tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
+                }
+                i += tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
+                map.put("Time1",dateTime3);
+                 genernateInwardTime(map);
+            }
+            Map<String, Object> orderMes = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
+            BigDecimal orderType =DataChange.dataToBigDecimal(orderMes.get("orderType"));
+            if (orderType.intValue()==21) {
+                pushOrderForPause(map);
+            }
+         }
+            return i;
+        }
+
+
+
+
+   //通过运输订单号判断计时是否开始
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int JudgeTimeTask(Map<String, Object> mapValue) throws Exception {
+        String orderNumber =(String)mapValue.get("orderNumber");
+        BigDecimal orderId = utilsMapper.getOrderIdByOrderNumber(orderNumber);
+        //通过运输订单号查找当前是第几次
+        BigDecimal inwardType = utilsMapper.getInwardType(orderId);
+        if (inwardType!=null){
+            throw new Exception("计时已经开始");
+        }
+        return inwardType.intValue();
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int JudgeTimeTaskPause(Map<String, Object> mapValue) throws Exception {
+        String orderNumber =(String)mapValue.get("orderNumber");
+        int i=0;
+        BigDecimal orderId = utilsMapper.getOrderIdByOrderNumber(orderNumber);
+        //通过运输订单号查找当前是第几次
+        BigDecimal inwardStartTime = utilsMapper.getInwardStartTime(orderId);
+//        System.out.println(inwardStartTime);
+        BigDecimal inwardEndTime = utilsMapper.getInwardEndTime(orderId);
+//        System.out.println(inwardEndTime);
+        int Time=inwardEndTime.intValue()-inwardStartTime.intValue();
+//        System.out.println(Time);
+       if (Time==0) {
+           i=0;
+       }else if (Time==-1){
+           i=1;
+       }else {
+           i=3;
+       }
+        return i;
+    }
 
+    @Override
+    public int genernateInwardTime(Map<String, Object> map) {
+        int i=0;
+        BigDecimal orderId1 = DataChange.dataToBigDecimal(map.get("orderId"));
+        Map<String,Object>mapInfo = tmstruckTimeTaskResultMapper.getRequirementInfo(orderId1);
+        Map<String,Object>mapPrice = null;
+        try {
+            mapPrice = amsFeign.getInwardPriceBy(mapInfo);
+            if(mapPrice != null){
+                mapPrice.put("orderId",orderId1);
+                mapPrice.putAll(map);
+                Map<String, Object> stringObjectMap = bmsTruckFeign.addInwardDetailsOrder(mapPrice);
+                if (stringObjectMap==null){
+                    return -1;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return i;
+    }
 }

+ 114 - 54
src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java

@@ -8,6 +8,8 @@ import com.steerinfo.dil.util.DataChange;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import javax.xml.crypto.Data;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.HashMap;
@@ -56,6 +58,10 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
 
     @Autowired
     TmstruckLeaveFactoryResultServiceImpl tmstruckLeaveFactoryResultService;
+    @Autowired
+    TmstruckTimeTaskResultServiceImpl tmstruckTimeTaskResultService;
+    @Autowired
+    TmstruckTimeTaskResultMapper tmstruckTimeTaskResultMapper;
 
     @Autowired
     private RulesServiceImpl rulesService;
@@ -106,16 +112,21 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
             case 6:
             case 7:
             case 8:
+            case 17:
+            case 18:
                 return tmstruckUnloadResultMapper.getCGUnloadResult(map); //apiId:103
             case 9:
                 return tmstruckUnloadResultMapper.getImportedDomesticNzUnloadResult(map); //apiId:355
             case 10:
+            case 20:
                 return tmstruckUnloadResultMapper.getImportedDomesticNzUnload2Result(map); //apiId:356
             case 11:
                 return tmstruckUnloadResultMapper.getInFactoryUnloadResult(map); //apiId:360
             case 12:
             case 13:
-            case 15:
+            case 14:
+            case 19:
+            case 100:
                 return  tmstruckUnloadResultMapper.getSporadicSuppliesUnloadResult(map);//apiId:389
         }
         return null;
@@ -123,77 +134,119 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
 
     /**
      * 更新卸货实绩内容 扫码人员扫码后获取信息传输数据给接口
-     * 1:销售订单;2:焦炭发运计划;3:水渣发运计划;4:内转到异地库;5:采购辅料订单;6:采购老区燃料订单;
-     * 7:采购新区燃料订单;8:采购进口矿(万州-厂内);9:采购内转(达州-厂内);10:采购内转(老区-厂内); 11:厂内内转
-     *{
-     *     "orderNumber": "WYSDD2021112800000765",
-     *     "warehouseId": 1
-     * }
      * @param map
      * @return
      */
     @Override
     @Transactional
-    public int updateUnloadResult(Map<String, Object> map) {
-        int i = 0;
-        map.putAll(tmstruckUnloadResultMapper.selectTotalIdByOrderNo((String) map.get("orderNumber")));
-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
-        i += updateUnloadResultBy(map); //更新卸货实绩
+    public int updateUnloadResult(Map<String, Object> map) throws Exception {
+        //通过运输订单号查询订单类型
+        String orderNumber = (String) map.get("orderNumber");
+        //通过订单号查询订单类型 及总实绩Id
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
+        int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
+        //判断是不是内转
+        if(orderType == 11){
+            //如果是内转新增卸货实绩
+            Integer sqe = utilsMapper.getLineSequenceByOrderNumber((String) map.get("orderNumber"));
+            sqe = sqe == null ? 1 : sqe +1;
+            BigDecimal totalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
+            map.put("resultId",tmstruckUnloadResultMapper.selectMaxId());
+            map.put("Sqe",sqe);
+            map.put("totalId",totalId);
+            TmstruckUnloadResult tmstruckUnloadResult = generateUnload(map);
+            tmstruckUnloadResultMapper.insertSelective(tmstruckUnloadResult);
+            //更新路段顺序号
+            //内转只要是卸货都直接关闭订单 事务跨服务更改同表同一行数据 不能调用 会锁行
+            //查询是否有净重 如果没有净重更新路段顺序号需要继续回皮 有就结束订单
+            Integer netWeight = tmstruckUnloadResultMapper.getNetWeightByTotalId(totalId);
+            if(netWeight == 0){
+                mesMap.put("orderLineSequence",sqe);
+                utilsService.updateOrderLineSqeByOrderNumber(mesMap);
+            }else {
+                omsFeign.closeInwardOrder(DataChange.dataToBigDecimal(mesMap.get("orderId")).intValue(), sqe, null);
+            }
+            //卸货成功后推送消息给websocket
+            utilsService.pushMesToWebsocket((String) mesMap.get("capacityNumber"), "卸货");
+            //根据运输订单查找需求备注
+            BigDecimal orderId = DataChange.dataToBigDecimal(mesMap.get("orderId"));
+            Map<String,Object>  remarkMap=tmstruckTimeTaskResultMapper.selectInwardDueTimeByOrderId(orderId);
+            String remark =(String) remarkMap.get("remark");
+            if (remark.contains("计时")){
+                 map.put("inwardTypes",3);
+                 tmstruckTimeTaskResultService.addTimeTaskResult(map);
+            }
+            return 1;
+        }
+        //如果是零星多拼订单 需要查询这个物资是否已经卸过了
+        if(orderType == 12 || orderType == 13){
+            map.put("updateLoadResult", 1); //需要路段顺序号查询
+            Integer checkMaterial = tmstruckUnloadResultMapper.checkMaterialIdUnload(DataChange.dataToBigDecimal(mesMap.get("totalId")), DataChange.dataToBigDecimal(map.get("materialId")));
+            if(checkMaterial != null){
+                return -2;  //已卸过此物资
+            }
+        }
+        Map<String, Object> dataMap = tmstruckUnloadResultMapper.selectUnloadMesByOrderNo(mesMap);
+        if(dataMap == null){
+            return -3;  //该订单没有卸货作业
+        }
+        map.putAll(dataMap);
+        updateUnloadResultBy(map); //更新卸货实绩
         //路段顺序号 + 1
-        i += utilsService.updateOrderLineSequence(map);
-        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
-        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
-        Map<String, Object> mesMap = new HashMap<>();
-        mesMap.put("orderId", orderId);
-        mesMap.put("orderType", orderType);
-        switch (orderType.intValue()){
-            case 1:
-                break;
-            case 2:
-                break;
-            case 3:
-                break;
-            case 4:
-                break;
+        map.put("orderId", mesMap.get("orderId"));
+        utilsService.updateOrderLineSequence(map);
+        switch (orderType){
             case 5:
             case 6:
             case 7:
             case 8:
             case 9:
-                //计算计皮汽车衡 (当前无法计算汽车衡)
-                int placeId = rulesService.calculateWeighbridge(mesMap);
-                mesMap.put("tarePlaceId", placeId);
-                i += tmstruckWeightResultService.updateWeightResult(mesMap);
-                i += tmstruckReceiptResultService.addReceiptResult(map); //新增完卸车实绩后新增一条收货实绩
-
-                //计算出厂门岗 (暂时定死)
-//                Integer gatepostId = 2;
-                //计皮委托发送后更新出厂门岗
-//                i += tmstruckLeaveFactoryResultService.updateLeaveFactoryGatepostId(resultTotalId.intValue(), gatepostId);
-                break;
             case 10:
-                //计算计皮汽车衡 (当前无法计算汽车衡)
-                int placeId10 = rulesService.calculateWeighbridge(mesMap);
-                mesMap.put("tarePlaceId", placeId10);
-                i += tmstruckWeightResultService.updateWeightResult(mesMap);
-                i += tmstruckReceiptResultService.addReceiptResult(map); //新增完卸车实绩后新增一条收货实绩
-                break;
-            case 11:
-                //判断出厂路段顺序号是否为最后一个
-                i += utilsService.closeOrderNormally(map);
             case 12:
-                int placeId12 = rulesService.calculateWeighbridge(mesMap);
-                mesMap.put("tarePlaceId", placeId12);
-                i += tmstruckWeightResultService.updateWeightResult(mesMap);
-                //判断是否还有物资,如果还有物资就执行发送计量委托
-                materialIdIsNorWeight(map);
+            case 17:
+            case 18:
+            case 20:
+                tmstruckReceiptResultService.addReceiptResult(DataChange.dataToBigDecimal(map.get("resultTotalId"))); //新增完卸车实绩后新增一条收货实绩
                 break;
         }
         //卸货成功后推送消息给websocket
-        utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "卸货");
-        return i;
+        utilsService.pushMesToWebsocket((String) mesMap.get("capacityNumber"), "卸货");
+        return 1;
     }
 
+    /*
+    内转物流新增卸货实绩
+     */
+    private TmstruckUnloadResult generateUnload(Map<String, Object> map) {
+        TmstruckUnloadResult tmstruckUnloadResult = new TmstruckUnloadResult();
+        tmstruckUnloadResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
+        tmstruckUnloadResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("totalId")));
+        tmstruckUnloadResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
+        //添加卸货点
+        if(map.get("warehouseId") !=null){
+            tmstruckUnloadResult.setResultUnloadPlaceId(DataChange.dataToBigDecimal(map.get("warehouseId")));
+        }
+        if(map.get("personnelSsoId") !=null){
+            //通过SSo主键查询人员管理主键
+            Integer personnelId = utilsMapper.getPersonnelIdBySsoId((String)map.get("personnelSsoId"));
+            if(personnelId !=null){
+                tmstruckUnloadResult.setUnloaderId(new BigDecimal(personnelId));
+            }
+        }
+        //判断物资是否为空
+        if(map.get("materialId") != null){
+            tmstruckUnloadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
+        }
+        //添加卸货时间
+        tmstruckUnloadResult.setResultEndTime(new Date());
+        //确认卸货设为同意
+        tmstruckUnloadResult.setUnloadStatus("同意");
+        tmstruckUnloadResult.setInsertTime(new Date());
+        tmstruckUnloadResult.setInsertUsername("admin");
+        return tmstruckUnloadResult;
+
+
+    }
 
 
     /**
@@ -211,6 +264,13 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
         if(map.get("warehouseId") != null){
             tmstruckUnloadResult.setResultUnloadPlaceId(DataChange.dataToBigDecimal(map.get("warehouseId")));
         }
+        if(map.get("personnelSsoId") != null){
+            //通过SSo主键查询人员管理主键
+            Integer personnelId = utilsMapper.getPersonnelIdBySsoId((String) map.get("personnelSsoId"));
+            if(personnelId != null){
+                tmstruckUnloadResult.setUnloaderId(new BigDecimal(personnelId));
+            }
+        }
         //判断物资id是否为空
         if (map.get("materialId") != null){
             tmstruckUnloadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));

+ 63 - 49
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -18,10 +18,7 @@ import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * TmstruckWeightResult服务实现:
@@ -51,23 +48,61 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
     @Autowired
     private UtilsMapper utilsMapper;
 
-    @Autowired
-    private QmsFeign qmsFeign;
-
     @Autowired
     private RulesServiceImpl rulesService;
 
-    @Autowired
-    private RulesMapper rulesMapper;
 
     @Autowired
     OmsFeign omsFeign;
 
-    @Autowired
-    private TmstruckLoadResultServiceImpl tmstruckLoadResultService;
+    /**
+     * 派单时新增计重实绩
+     * 总实绩ID、计皮点、计毛点
+     * @return
+     */
+    @Override
+    public int addWeightResult(Map<String, Object> map) {
+        TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
+        //生成最大主键ID
+        tmstruckWeightResult.setWeightTaskResultId(tmstruckWeightResultMapper.selectMaxId());
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
+        tmstruckWeightResult.setResultTotalId(resultTotalId);
+        // 添加路段顺序号以及汽车衡
+        List<Integer> calculateList = null;
+        Integer calculateId = 0;
+        Object grossSegmentSqe = map.get("grossSegmentSqe");
+        //获取毛重汽车衡
+        if(grossSegmentSqe != null){
+            tmstruckWeightResult.setGrossSegmentSqe(DataChange.dataToBigDecimal(grossSegmentSqe));
+            map.put("segmentSqe", grossSegmentSqe);
+            calculateList = utilsMapper.getLineSegmentGateCalcId(map);
+            //取汽车衡的Id
+            calculateList.remove(null);
+            calculateId = utilsService.randomGetValue(calculateList);
+            tmstruckWeightResult.setResultGrossPlaceId(new BigDecimal(calculateId));
+        }
+        Object tareSegmentSqe = map.get("tareSegmentSqe");
+        if(tareSegmentSqe != null){
+            tmstruckWeightResult.setTareSegmentSqe(DataChange.dataToBigDecimal(tareSegmentSqe));
+            map.put("segmentSqe", tareSegmentSqe);
+            calculateList = utilsMapper.getLineSegmentGateCalcId(map);
+            calculateList.remove(null);
+            calculateId = utilsService.randomGetValue(calculateList);
+            tmstruckWeightResult.setResultTarePlaceId(new BigDecimal(calculateId));
+        }
+        if(map.get("isdeduct") == null){
+            //添加是否需要扣水扣杂
+            //通过总实绩ID查询订单类型
+            Integer orderType = tmstruckWeightResultMapper.getOrderTypeByTotalId(resultTotalId);
+            if("67".contains(orderType.toString()) || orderType == 10){
+                tmstruckWeightResult.setIsdeduct(new BigDecimal(1));
+            }
+        }else {
+            tmstruckWeightResult.setIsdeduct(DataChange.dataToBigDecimal(map.get("isdeduct")));
+        }
+        return tmstruckWeightResultMapper.insertSelective(tmstruckWeightResult);
+    }
 
-    @Autowired
-    private TmstruckLeaveFactoryResultServiceImpl tmstruckLeaveFactoryResultService;
     /**
      * 查询所有计毛实绩
      * @param map
@@ -88,17 +123,23 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             case 6:
             case 7:
             case 8:
+            case 17:
+            case 18:
                 return tmstruckWeightResultMapper.getCGAllJiMaoResult(map); //apiId:102
             case 9:
                 return tmstruckWeightResultMapper.getImportedDomesticNzJiMaoResult(map); // apiID:354
             case 10:
+            case 20:
                 return tmstruckWeightResultMapper.getImportedDomesticNzJiMao2Result(map); // apiID:354
             case 11:
                 return tmstruckWeightResultMapper.getInFactoryJiLiangResult(map);       //apiId: 358
             case 12:
-                return tmstruckWeightResultMapper.getSporadicSuppliesJiMiaoResult(map);//apiId:405
             case 13:
-                return tmstruckWeightResultMapper.getFactorySkinSporadicJiMiao(map);//apiId:422
+            case 14:
+            case 19:
+            case 100:
+                return tmstruckWeightResultMapper.getSporadicSuppliesJiMiaoResult(map); //apiId:405
+
         }
         return null;
     }
@@ -122,53 +163,26 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             case 6:
             case 7:
             case 8:
+            case 17:
+            case 18:
                 return tmstruckWeightResultMapper.getCGAllJiPiResult(map); // apiId: 104
             case 9:
                 return tmstruckWeightResultMapper.getImportedDomesticNzJiPiResult(map);// apiId: 104
             case 10:
+            case 20:
                 return tmstruckWeightResultMapper.getImportedDomesticNzJiPi2Result(map);// apiId: 104
             case 11:
                 break;
             case 12:
-                return tmstruckWeightResultMapper.getSporadicSuppliesJiPiResult(map);//apiId:392
             case 13:
-                return tmstruckWeightResultMapper.getFactorySkinSporadicJIPi(map); //apiId=401
+            case 14:
+            case 19:
+            case 100:
+                return tmstruckWeightResultMapper.getFactorySkinSporadicWeight(map); //apiId=401
         }
         return null;
     }
 
-    /**
-     * 派单时新增计重实绩
-     * 总实绩ID、计皮点、计毛点
-     * @return
-     */
-    @Override
-    public int addWeightResult(Map<String, Object> map) {
-        TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
-        //生成最大主键ID
-        tmstruckWeightResult.setWeightTaskResultId(tmstruckWeightResultMapper.selectMaxId());
-        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
-        tmstruckWeightResult.setResultTotalId(resultTotalId);
-        //通过总实绩ID查询订单类型
-        if(map.get("isdeduct") == null){
-            //添加是否需要扣水扣杂
-            Integer orderType = tmstruckWeightResultMapper.getOrderTypeByTotalId(resultTotalId);
-            if("67".contains(orderType.toString()) || orderType == 10){
-                tmstruckWeightResult.setIsdeduct(new BigDecimal(1));
-            }
-        }else {
-            tmstruckWeightResult.setIsdeduct(DataChange.dataToBigDecimal(map.get("isdeduct")));
-        }
-        // 添加物资Id (销售、内转到异地库)
-        if(map.get("materialId") != null)
-            tmstruckWeightResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
-        // 添加路段顺序号
-        if(map.get("grossSegmentSqe") != null) //毛重路段顺序号
-            tmstruckWeightResult.setGrossSegmentSqe(DataChange.dataToBigDecimal(map.get("grossSegmentSqe")));
-        if(map.get("tareSegmentSqe") != null) //皮重路段顺序号
-            tmstruckWeightResult.setTareSegmentSqe(DataChange.dataToBigDecimal(map.get("tareSegmentSqe")));
-        return tmstruckWeightResultMapper.insertSelective(tmstruckWeightResult);
-    }
 
     /**
      * 更新计量实绩  计皮点  计毛点  皮重

+ 37 - 2
src/main/java/com/steerinfo/dil/service/impl/UtilsServiceImpl.java

@@ -1,5 +1,7 @@
 package com.steerinfo.dil.service.impl;
 
+import com.steerinfo.dil.feign.BmsShipFeign;
+import com.steerinfo.dil.feign.BmsTruckFeign;
 import com.steerinfo.dil.feign.IMFeign;
 import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.service.IUtilsService;
@@ -22,6 +24,9 @@ public class UtilsServiceImpl implements IUtilsService {
 
     @Autowired
     private IMFeign imFeign;
+
+    @Autowired
+    private BmsTruckFeign bmsTruckFeign;
     /**
      * 查询运输订单ID主键
      * @return
@@ -64,7 +69,12 @@ public class UtilsServiceImpl implements IUtilsService {
         BigDecimal maxSeq = DataChange.dataToBigDecimal(mesMap.get("maxSeq"));
         if(orderSeq.intValue() == maxSeq.intValue()){
             map.put("orderStatus", 2);
-            return utilsMapper.updateOrderStatusByOrderIdOrNum(map);
+            utilsMapper.updateOrderStatusByOrderIdOrNum(map);
+
+        }
+        if(map.get("priceId")!=null){
+            //如果有价格ID 则说明需要结算 调用新增详单接口
+//            bmsTruckFeign.addDetailsOrder(DataChange.dataToBigDecimal(map.get("orderId")));
         }
         return 0;
     }
@@ -100,6 +110,18 @@ public class UtilsServiceImpl implements IUtilsService {
         return utilsMapper.updateLineSeqByOrderIdOrNum(mesMap);
     }
 
+    /**
+     * 厂内内转订单专属更新路段顺序号方法
+     * @Author TXF
+     * @Date 2022/2/17 22:02
+     * @param map
+     * @return
+     **/
+    public int updateOrderLineSqeByOrderNumber(Map<String, Object> map){
+        return utilsMapper.updateLineSeqByOrderIdOrNum(map);
+    }
+
+
     /**
      * 通过月台名称查询月台Id
      * @param platformName
@@ -166,5 +188,18 @@ public class UtilsServiceImpl implements IUtilsService {
     }
 
 
-
+    public int randomGetValue(List<Integer> dataList){
+        if(dataList.size() != 0&&dataList !=null){
+            if(dataList.size() == 1){
+                return dataList.get(0);
+            }else {
+                //如果有多个值则随机取一个
+                Random random = new Random();
+                int i = random.nextInt(dataList.size());
+                return dataList.get(i);
+            }
+        }else {
+            return 0;
+        }
+    }
 }

+ 11 - 0
src/main/java/com/steerinfo/dil/util/ColumnDataUtil.java

@@ -26,6 +26,17 @@ public class ColumnDataUtil {
     }
 
     public PageListAdd tableColumnData(Integer apiId, List<Map<String, Object>> list,List<Map<String,Object>> data) {
+        List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);
+        for (Map<String, Object> columnData : columnDataList) {
+            //每个表头字段的过滤条件
+            columnData.put("filters", setListMap(data, columnData.get("prop").toString()));
+        }
+        PageListAdd pageList = new PageListAdd(data);
+        pageList.setColumnData(columnDataList);
+        return pageList;
+    }
+
+    public PageListAdd tableColumnData2(Integer apiId, List<Map<String, Object>> list,List<Map<String,Object>> data) {
         List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);
         for (Map<String, Object> columnData : columnDataList) {
             //每个表头字段的过滤条件

+ 104 - 13
src/main/java/com/steerinfo/dil/util/DataChange.java

@@ -7,6 +7,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Pattern;
 
 /**
  * @ author    :TXF
@@ -17,24 +18,45 @@ public class DataChange {
 
 
     /**
-     * 解析前端传来的日期字符串
+     * 时间转换类
+     * 处理了三种类型 yyyy-MM-dd HH:mm:ss  yyyy/MM/dd HH:mm:ss  时间戳类型(带毫秒数时间戳13位)
      * @param vueDate
      * @return
      */
     public static Date dataToDate(Object vueDate){
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        Date parseDate = null;
-        if (vueDate != null){
+        if(vueDate instanceof Date){
+            return (Date) vueDate;
+        } else {
             try {
-                String date = (String) vueDate;
-                parseDate = sdf.parse(date);
-            } catch (ParseException e) {
-                e.printStackTrace();
+                String str = String.valueOf(vueDate);
+                if(judgeNumber(str) && str.length() == 13){
+                    return new Date(Long.parseLong(str));
+                }else if(str.contains("-")){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    return sdf.parse(str);
+                }else if(str.contains("/")){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+                    return sdf.parse(str);
+                }
+            }catch (Exception e){
+                System.out.println("时间解析错误!返回null");
+                return null;
             }
         }
-        return parseDate;
+        return null;
     }
 
+    /**
+     * 判断是否纯数字(不带小数点)仅供上面方法使用
+     * @param str
+     * @return
+     */
+    public static boolean judgeNumber(String str){
+        Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
+        return pattern.matcher(str).matches();
+    }
+
+
     /**
      * 数据转换成BigDecimal
      * @param data
@@ -51,7 +73,7 @@ public class DataChange {
                     try {
                         decimal = new BigDecimal(str);
                     } catch (Exception e) {
-                        e.printStackTrace();
+                        System.out.println(data + ":数据解析失败!返回0");
                         return new BigDecimal(0);
                     }
                 }
@@ -106,19 +128,18 @@ public class DataChange {
      * @param key
      */
     public static void dataTo2Number(List<Map<String, Object>> list, String ...key){
+        DecimalFormat df =  new DecimalFormat("0.00");
         //遍历List
         for (Map<String, Object> map : list) {
             for (String s : key) {
                 //修改数据为带两位小数
                 try {
-                    BigDecimal oldDate = (BigDecimal) map.get(s);
-                    DecimalFormat df =  new DecimalFormat("0.00");
+                    BigDecimal oldDate = dataToBigDecimal(map.get(s));
                     String resultDeduction = df.format(oldDate.doubleValue());
                     map.put(s, resultDeduction);
                 } catch (Exception e) {
                     System.out.println("原料扣减量数据有误");
                 }
-
             }
         }
     }
@@ -166,4 +187,74 @@ public class DataChange {
         return sb.toString();
     }
 
+    /**
+     * 根据时间段查询数据 支持只选择单个时间
+     * @Author TXF
+     * @Date 2022/1/10 23:21
+     * @param startTime
+     * @param endTime
+     * @param map
+     * @param sdf
+     * @return
+     **/
+    public static void queryDataByDate(String startTime, String endTime, Map<String, Object> map, SimpleDateFormat sdf){
+        if (startTime != null && !"null".equals(startTime) && endTime != null && !"null".equals(endTime)) {
+            map.put("startDate", sdf.format(new Date(Long.parseLong(startTime))));
+            map.put("endDate", sdf.format(new Date(Long.parseLong(endTime) + 86400000)));
+        } else if (startTime != null && !"null".equals(startTime)) {
+            map.put("oneDate", sdf.format(new Date(Long.parseLong(startTime))));
+        } else if (endTime != null && !"null".equals(endTime)) {
+            map.put("oneDate", sdf.format(new Date(Long.parseLong(endTime))));
+        } else {
+            map.put("oneDate", sdf.format(new Date()));
+        }
+    }
+
+    /**
+     * 只支持两个时间查询
+     * @Author TXF
+     * @Date 2022/1/15 9:08
+     * @param startTime
+     * @param endTime
+     * @param sdf
+     * @return
+     **/
+    public static void queryDataByDateTime(String startTime, String endTime, Map<String, Object> map,SimpleDateFormat sdf){
+        SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
+        if (startTime != null && !"null".equals(startTime) && endTime != null && !"null".equals(endTime)) {
+            map.put("startDate", sdf.format(new Date(Long.parseLong(startTime))));
+            map.put("endDate", sdf.format(new Date(Long.parseLong(endTime))));
+        }
+        //如果开始时间和结束时间有且只有一个为空 则只查那天的数据
+        else if((startTime != null && !"null".equals(startTime)) || (endTime != null && !"null".equals(endTime))){
+            if(startTime != null && !"null".equals(startTime)){
+                queryDataByTwoDateSon(map, startTime, sdfDate);
+            }
+            if(endTime != null && !"null".equals(endTime)){
+                queryDataByTwoDateSon(map, endTime, sdfDate);
+            }
+        }else {
+            //如果两者时间都为空,则查询当天数据
+            String nowDate = sdfDate.format(new Date());
+            map.put("oneDate", nowDate + " 00:00:00");
+        }
+    }
+
+    /**
+     * 上面方法的儿子方法 如果只传入了一个时间 则查询那天的数据
+     * @Author TXF
+     * @Date 2022/1/17 16:17
+     * @param map
+     * @param time
+     * @param sdfDate
+     * @return
+     **/
+    private static void queryDataByTwoDateSon(Map<String, Object> map, String time, SimpleDateFormat sdfDate){
+        Date date1 = new Date(Long.parseLong(time));
+        Date date2 = new Date(Long.parseLong(time) + 86400000);
+        String dayStartTime = sdfDate.format(date1);
+        String dayEndTime = sdfDate.format(date2);
+        map.put("startDate", dayStartTime + " 00:00:00");
+        map.put("endDate", dayEndTime + " 00:00:00");
+    }
 }

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

@@ -47,7 +47,7 @@ public class HTTPRequestUtils {
         //指定报文头【Content-type】、【User-Agent】
 //        httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");
         httpPost.setHeader("Content-type", "application/json");
-        httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
+        httpPost.setHeader("-UserAgent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
 
         //执行请求操作,并拿到结果(同步阻塞)
         CloseableHttpResponse response = client.execute(httpPost);

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

@@ -1,6 +1,9 @@
 package com.steerinfo.dil.util;
 
 import java.security.MessageDigest;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.SimpleTimeZone;
 
 /**
  * @author luobang
@@ -37,6 +40,19 @@ import java.security.MessageDigest;
             return hexValue.toString();
         }
 
+        public static String formatTimeTmp(){
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
+            Date date = new Date();
+            String timeTmp = simpleDateFormat.format(date);
+            return timeTmp;
+        }
+
+        public static String sign(String AppId,String secretKey) throws Exception {
+            String instr = AppId + secretKey + formatTimeTmp();
+            return md5Encode(instr);
+        }
+
+
         /**
          *测试
          * @throws Exception

+ 6 - 4
src/main/resources/application-dev.yml

@@ -26,23 +26,25 @@ piction:
 #feign设置
 openfeign:
   ColumnDataFeign:
-    url: ${COLUMNDATAFEIGN_URL:172.16.33.162:8001}
+    url: ${COLUMNDATAFEIGN_URL:172.16.33.166:8083}
   BmsShipFeign:
     url: ${BMSSHIPFEIGN_URL:172.16.33.162:8007}
   BmsTruckFeign:
-    url: ${BMSTRUCKFEIGN_URL:172.16.33.162:8009}
+    url: ${BMSTRUCKFEIGN_URL:localhost:8009}
   WmshBoundFeign:
     url: ${WMSHBOUNDFEIGN_URL:172.16.33.162:8013}
   WMSFeign:
     url: ${WMSFEIGN_URL:172.16.33.162:8012}
   OmsFeign:
-    url: ${OMSFEIGN_URL:172.16.33.162:8016}
+    url: ${OMSFEIGN_URL:localhost:8016}
   JoinFeign:
     url: ${JOINFEIGN_URL:172.16.33.162:8006}
   QmsFeign:
     url: ${QMSFEIGN_URL:172.16.33.162:8017}
   ImFeign:
-    url: ${IMFEIGN_URL:172.16.33.162:8018}
+    url: ${IMFEIGN_URL:172.16.33.166:8055}
+  AmsFeign:
+    url: ${AMSFEIGN_URL:localhost:8015}
 
 server:
   port: 8008

+ 4 - 2
src/main/resources/application-prod.yml

@@ -7,7 +7,7 @@ spring:
 
     driver-class-name: oracle.jdbc.OracleDriver
   application:
-    name: dil-tms-truck-prod
+    name: dil-tms-truck-dev
   #Redis相关配置
   redis:
     host: 172.16.33.161
@@ -42,7 +42,9 @@ openfeign:
   QmsFeign:
     url: ${QMSFEIGN_URL:172.16.33.166:8047}
   ImFeign:
-    url: ${IMFEIGN_URL:172.16.33.161:8055}
+    url: ${IMFEIGN_URL:172.16.33.166:8055}
+  AmsFeign:
+    url: ${AMSFEIGN_URL:172.16.33.166:8079}
 
 server:
   port: 8088

+ 2 - 0
src/main/resources/bootstrap.yml

@@ -17,6 +17,8 @@ eureka:
   client:
     service-url:
       defaultZone: http://root:root@${EUREKA_HOST:172.16.33.161}:${EUREKA_PORT:8081}/eureka/
+    register-with-eureka: false #表示向EurekaServer注册自己 默认为true
+    fetch-registry: false #是否从EurekaServer抓取已有的注册信息,默认为true,单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
 
   instance:
     prefer-ip-address: true

+ 1066 - 86
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -10,35 +10,63 @@
         </if>
     </sql>
 <!--查询采购统计报表-->
-    <select id="getAllPurchaseFLRLReport" parameterType="map" resultType="java.util.Map">
+    <select id="getFuPurchaseFLRLReport" parameterType="map" resultType="java.util.Map">
         select *
-        from (select OO.ORDER_NUMBER            "orderNumber",
+        from (select
+                     OO.ORDER_NUMBER            "orderNumber",
                      RC.CAPACITY_NUMBER         "capacityNumber",
-                     TER.RESULT_ENTRY_GATE_TIME "resultEntryGateTime",
+                     (select
+                        listagg(to_char(TER.RESULT_ENTRY_GATE_TIME,'yyyy-mm-dd hh24:mi:ss'), '/') within group (order by TER.RESULT_ID)
+                       from TMSTRUCK_ENFACTORY_RESULT TER
+                       where TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                     ) "resultEntryGateTime",
                      TWR.RESULT_NET_WEIGHT      "resultNetWeight",
+                     TWR.RESULT_GROSS_WEIGHT    "resultGrossWeight",
+                     TWR.RESULT_TARE_WEIGHT     "resultTareWeight",
                      TQR.RESULT_DEDUCTION       "resultDeduction",
                      TUR.RESULT_END_TIME        "resultEndTime",
                      RW.WAREHOUSE_NAME          "warehouseName",
                      TRR.INSERT_TIME            "insertTime",
-                     TLFR.RESULT_OUT_GATE_TIME  "resultOutGateTime",
+                    (select
+                    listagg(to_char(TLFR.RESULT_OUT_GATE_TIME,'yyyy-mm-dd hh24:mi:ss'), '/')
+                        within group (order by TLFR.RESULT_ID)
+                    from TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+                    where TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                        ) "resultOutGateTime",
                      OO.INSERT_TIME             "insertTimee",
-                     RGEN.GATEPOST_NAME         "enGatepostName",
-                     RGOUT.GATEPOST_NAME        "outGatepostName",
+                     (
+                         select  listagg(RG.GATEPOST_NAME, '/') within group ( order by TER2.RESULT_ID)
+                         from TMSTRUCK_ENFACTORY_RESULT TER2
+                             left join RMS_GATEPOST RG on TER2.GATEPOST_ID = RG.GATEPOST_ID
+                         where TER2.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                    )       "enGatepostName",
+
+                    (
+                    select  listagg(RG.GATEPOST_NAME, '/') within group ( order by TLFR2.RESULT_ID)
+                    from TMSTRUCK_LEAVE_FACTORY_RESULT TLFR2
+                    left join RMS_GATEPOST RG on TLFR2.GATEPOST_ID = RG.GATEPOST_ID
+                    where TLFR2.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                    )"outGatepostName",
+
                      RTCMAO.TRUCK_CALCULATE_NUMBER  "grossCalculateNum",
                      RTCPI.TRUCK_CALCULATE_NUMBER   "tareCalculateNum",
                      TWR.RESULT_GROSS_WEIGHT_TIME   "resultGrossWeightTime",
+                     RM.MATERIAL_NAME                     "materialName",
+                     CONCAT(CONCAT(RM.MATERIAL_SPECIFICATION, '('), CONCAT(RM.MATERIAL_MODEL, ')')) "materialCode",
+                     APO.PURCHASE_ORDER_NO      "purchaseOrderNo",
+                     RS.SUPPLIER_NAME           "supplierName",
+                     RCON.CONSIGNEE_COMPANY_NAME "receiveName",
                      TWR.RESULT_TARE_WEIGHT_TIME    "resultTareWeightTime"
               from OMSTRUCK_ORDER OO
                        left join TMSTRUCK_TOTAL_RESULT TTR
                                  on TTR.ORDER_ID = OO.ORDER_ID
                        left join RMS_CAPACITY RC
                                  on RC.CAPACITY_ID = OO.CAPACITY_ID
-                       left join TMSTRUCK_ENFACTORY_RESULT TER
-                                 on TTR.RESULT_TOTAL_ID = TER.RESULT_TOTAL_ID
-                       left join RMS_GATEPOST RGEN      --进厂门岗
-                                 on RGEN.GATEPOST_ID = TER.GATEPOST_ID
+
                        left join OMSTRUCK_ORDER_MATERIAL OOM
                                  on OOM.ORDER_ID = OO.ORDER_ID
+                       left join RMS_MATERIAL RM
+                                 on RM.MATERIAL_ID = OOM.MATERIAL_ID
                        left join TMSTRUCK_WEIGHT_RESULT TWR
                                  on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
                        left join RMS_TRUCK_CALCULATE RTCMAO --毛重汽车衡
@@ -49,51 +77,179 @@
                                  on TUR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
                        left join RMS_WAREHOUSE RW
                                  on RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_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 TMSTRUCK_RECEIPT_RESULT TRR
                                  on TRR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
                        left join TMSTRUCK_QUALITY_RESULT TQR
                                  on TQR.TOTAL_RESULT_ID = TTR.RESULT_TOTAL_ID
+                       left join AMS_PURCHASE_ORDER APO
+                            on APO.PURCHASE_ORDER_ID = OO.ORDER_PLAN_ID
+                       left join RMS_SUPPLIER RS
+                            on RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
+                       left join RMS_CONSIGNEE RCON
+                            on RCON.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
+
               where OO.ORDER_STATUS in (5, 8, 9, 1, 2)
                 and OO.ORDER_TYPE = #{orderTypee}
+                <if test="oneDate != null">
+                    and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_TARE_WEIGHT_TIME
+                </if>
+                <if test="startDate != null">
+                    and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_TARE_WEIGHT_TIME
+                    and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_TARE_WEIGHT_TIME
+                </if>
              )
         <where>
-            <if test="orderNumber != null">
-                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                    "orderNumber" like '%${item}%'
-                </foreach>
-            </if>
             <if test="capacityNumber != null">
                 and
                 <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
                     "capacityNumber" like '%${item}%'
                 </foreach>
             </if>
-            <if test="resultEntryGateTime != null">
+            <if test="warehouseName != null">
                 and
-                <foreach collection="resultEntryGateTime" item="item" open="(" separator="or" close=")">
-                    "resultEntryGateTime" like '%${item}%'
+                <foreach collection="warehouseName" item="item" open="(" separator="or" close=")">
+                    "warehouseName" like '%${item}%'
                 </foreach>
             </if>
-            <if test="resultNetWeight != null">
+
+             <if test="resultGrossWeight != null">
                 and
-                <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
-                    "resultNetWeight" like '%${item}%'
+                <foreach collection="resultGrossWeight" item="item" open="(" separator="or" close=")">
+                    "resultGrossWeight" like '%${item}%'
                 </foreach>
             </if>
-            <if test="resultDeduction != null">
+
+            <if test="resultTareWeight != null">
                 and
-                <foreach collection="resultDeduction" item="item" open="(" separator="or" close=")">
-                    "resultDeduction" like '%${item}%'
+                <foreach collection="resultTareWeight" item="item" open="(" separator="or" close=")">
+                    "resultTareWeight" like '%${item}%'
                 </foreach>
             </if>
-            <if test="resultEndTime != null">
+            <if test="enGatepostName != null">
                 and
-                <foreach collection="resultEndTime" item="item" open="(" separator="or" close=")">
-                    "resultEndTime" like '%${item}%'
+                <foreach collection="enGatepostName" item="item" open="(" separator="or" close=")">
+                    "enGatepostName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="outGatepostName != null">
+                and
+                <foreach collection="outGatepostName" item="item" open="(" separator="or" close=")">
+                    "outGatepostName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="purchaseOrderNo != null">
+                and
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="or" close=")">
+                    "purchaseOrderNo" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="supplierName != null">
+                and
+                <foreach collection="supplierName" item="item" open="(" separator="or" close=")">
+                    "supplierName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="receiveName != null">
+                and
+                <foreach collection="receiveName" item="item" open="(" separator="or" close=")">
+                    "receiveName" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+        <if test="orderField == null">
+            order by "insertTimee" desc
+        </if>
+    </select>
+
+    <!--查询采购辅料统计报表-->
+    <select id="getAllPurchaseFLRLReport" parameterType="map" resultType="java.util.Map">
+        select *
+        from (
+        select
+        OO.ORDER_NUMBER            "orderNumber",
+        RC.CAPACITY_NUMBER         "capacityNumber",
+        TER.RESULT_ENTRY_GATE_TIME "resultEntryGateTime",
+        TWR.RESULT_NET_WEIGHT      "resultNetWeight",
+        TWR.RESULT_GROSS_WEIGHT    "resultGrossWeight",
+        TWR.RESULT_TARE_WEIGHT     "resultTareWeight",
+        TQR.RESULT_DEDUCTION       "resultDeduction",
+        TUR.RESULT_END_TIME        "resultEndTime",
+        RW.WAREHOUSE_NAME          "warehouseName",
+        TRR.INSERT_TIME            "insertTime",
+        TLFR.RESULT_OUT_GATE_TIME  "resultOutGateTime",
+        OO.INSERT_TIME             "insertTimee",
+        RGEN.GATEPOST_NAME         "enGatepostName",
+        RGOUT.GATEPOST_NAME        "outGatepostName",
+        RTCMAO.TRUCK_CALCULATE_NUMBER  "grossCalculateNum",
+        RTCPI.TRUCK_CALCULATE_NUMBER   "tareCalculateNum",
+        TWR.RESULT_GROSS_WEIGHT_TIME   "resultGrossWeightTime",
+        RM.MATERIAL_NAME                     "materialName",
+        CONCAT(CONCAT(RM.MATERIAL_SPECIFICATION, '('), CONCAT(RM.MATERIAL_MODEL, ')')) "materialCode",
+        APO.PURCHASE_ORDER_NO      "purchaseOrderNo",
+        RS.SUPPLIER_NAME           "supplierName",
+        RCON.CONSIGNEE_COMPANY_NAME "receiveName",
+        TWR.RESULT_TARE_WEIGHT_TIME    "resultTareWeightTime"
+        from OMSTRUCK_ORDER OO
+        left join TMSTRUCK_TOTAL_RESULT TTR
+        on TTR.ORDER_ID = OO.ORDER_ID
+        left join RMS_CAPACITY RC
+        on RC.CAPACITY_ID = OO.CAPACITY_ID
+        left join TMSTRUCK_ENFACTORY_RESULT TER
+        on TTR.RESULT_TOTAL_ID = TER.RESULT_TOTAL_ID
+        left join RMS_GATEPOST RGEN      --进厂门岗
+        on RGEN.GATEPOST_ID = TER.GATEPOST_ID
+        left join OMSTRUCK_ORDER_MATERIAL OOM
+        on OOM.ORDER_ID = OO.ORDER_ID
+        left join RMS_MATERIAL RM
+        on RM.MATERIAL_ID = OOM.MATERIAL_ID
+        left join TMSTRUCK_WEIGHT_RESULT TWR
+        on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_TRUCK_CALCULATE RTCMAO --毛重汽车衡
+        on RTCMAO.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
+        left join RMS_TRUCK_CALCULATE RTCPI  --皮重汽车衡
+        on RTCPI.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
+        left join TMSTRUCK_UNLOAD_RESULT TUR
+        on TUR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_WAREHOUSE RW
+        on RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_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 TMSTRUCK_RECEIPT_RESULT TRR
+        on TRR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join TMSTRUCK_QUALITY_RESULT TQR
+        on TQR.TOTAL_RESULT_ID = TTR.RESULT_TOTAL_ID
+        left join AMS_PURCHASE_ORDER APO
+        on APO.PURCHASE_ORDER_ID = OO.ORDER_PLAN_ID
+        left join RMS_SUPPLIER RS
+        on RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
+        left join RMS_CONSIGNEE RCON
+        on RCON.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
+
+        where OO.ORDER_STATUS in (5, 8, 9, 1, 2)
+        and OO.ORDER_TYPE = #{orderTypee}
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_TARE_WEIGHT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_TARE_WEIGHT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_TARE_WEIGHT_TIME
+        </if>
+        )
+        <where>
+            <if test="capacityNumber != null">
+                and
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
                 </foreach>
             </if>
             <if test="warehouseName != null">
@@ -102,16 +258,54 @@
                     "warehouseName" like '%${item}%'
                 </foreach>
             </if>
-            <if test="insertTime != null">
+
+            <if test="resultGrossWeight != null">
                 and
-                <foreach collection="insertTime" item="item" open="(" separator="or" close=")">
-                    "insertTime" like '%${item}%'
+                <foreach collection="resultGrossWeight" item="item" open="(" separator="or" close=")">
+                    "resultGrossWeight" like '%${item}%'
                 </foreach>
             </if>
-            <if test="resultOutGateTime != null">
+
+            <if test="resultTareWeight != null">
                 and
-                <foreach collection="resultOutGateTime" item="item" open="(" separator="or" close=")">
-                    "resultOutGateTime" like '%${item}%'
+                <foreach collection="resultTareWeight" item="item" open="(" separator="or" close=")">
+                    "resultTareWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="enGatepostName != null">
+                and
+                <foreach collection="enGatepostName" item="item" open="(" separator="or" close=")">
+                    "enGatepostName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="outGatepostName != null">
+                and
+                <foreach collection="outGatepostName" item="item" open="(" separator="or" close=")">
+                    "outGatepostName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="purchaseOrderNo != null">
+                and
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="or" close=")">
+                    "purchaseOrderNo" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="supplierName != null">
+                and
+                <foreach collection="supplierName" item="item" open="(" separator="or" close=")">
+                    "supplierName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="receiveName != null">
+                and
+                <foreach collection="receiveName" item="item" open="(" separator="or" close=")">
+                    "receiveName" like '%${item}%'
                 </foreach>
             </if>
         </where>
@@ -122,11 +316,12 @@
     </select>
 
 <!--  查询销售统计报表  -->
+    <!--  查询销售统计报表  -->
     <select id="getAllSaleReport" parameterType="java.util.Map" resultType="java.util.Map">
         select
                *
         from (
-                 select OO.ORDER_NUMBER              "orderNumber",
+                 select DISTINCT OO.ORDER_NUMBER              "orderNumber",
                         RC.CAPACITY_NUMBER           "capacityNumber",
                         TER.RESULT_ENTRY_GATE_TIME   "resultEntryGateTime",
                         TWR.RESULT_TARE_WEIGHT_TIME  "resultTareWeightTime",
@@ -141,43 +336,63 @@
                         RTCPI.TRUCK_CALCULATE_NUMBER        "piCalculate",
                         RGEN.GATEPOST_NAME                  "enGatepostName",
                         RGOUT.GATEPOST_NAME                 "outGatepostName",
-                        RCON.CONSIGNEE_COMPANY_NAME         "receiveName"
+                        RCON.CONSIGNEE_COMPANY_NAME         "receiveName",
+                        RS.SUPPLIER_NAME                    "sendName",
+                        RM.MATERIAL_NAME                     "materialName",
+                        TLR.INSERT_UPDATE_REMARK             "materialRemark",
+                        ASO.SALE_NUMBER                      "saleNumber",
+                        TLR.CASE_NUMBER                      "caseNumber",
+                        RC2.CARRIER_NAME                     "carrierName",
+                        CONCAT(CONCAT(RM.MATERIAL_SPECIFICATION, '('), CONCAT(RM.MATERIAL_MODEL, ')')) "materialCode"
                  from OMSTRUCK_ORDER OO
                           left join AMS_SALE_ORDER_MATERIAL ASOM
                                on ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+                          left join AMS_DISPATCH_SALE_ORDER ADSO
+                               on ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+                          left join RMS_CARRIER RC2
+                               on RC2.CARRIER_ID = ADSO.CARRIER_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 RMS_SUPPLIER RS
+                               on RS.SUPPLIER_ID = ASO.SHIPPER_ID
                           join TMSTRUCK_TOTAL_RESULT TTR
                                on TTR.ORDER_ID = OO.ORDER_ID
                           join TMSTRUCK_LOAD_RESULT TLR
                                on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                          join RMS_WAREHOUSE RW
+                          left join RMS_WAREHOUSE RW
                                on RW.WAREHOUSE_ID = TLR.LOADING_ID
                           join TMSTRUCK_WEIGHT_RESULT TWR
                                on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                          join RMS_TRUCK_CALCULATE RTCMAO
+                          left join RMS_TRUCK_CALCULATE RTCMAO
                                on TWR.RESULT_GROSS_PLACE_ID = RTCMAO.TRUCK_CALCULATE_ID
-                          join RMS_TRUCK_CALCULATE RTCPI
+                          left join RMS_TRUCK_CALCULATE RTCPI
                                on TWR.RESULT_TARE_PLACE_ID = RTCPI.TRUCK_CALCULATE_ID
                           join TMSTRUCK_ENFACTORY_RESULT TER
                                on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                          join RMS_GATEPOST RGEN
+                          left join RMS_GATEPOST RGEN
                                on RGEN.GATEPOST_ID = TER.GATEPOST_ID
                           join TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
                                on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                          join RMS_GATEPOST RGOUT
+                          left join RMS_GATEPOST RGOUT
                                on RGOUT.GATEPOST_ID = TLFR.GATEPOST_ID
                           join RMS_CAPACITY RC
                                on RC.CAPACITY_ID = OO.CAPACITY_ID
-                          <if test="carrierSsoId != null">
-                              join RMS_CARRIER RCA
-                                on RCA.CARRIER_ID = RC.CARRIER_ID
-                          </if>
+                          join OMSTRUCK_ORDER_MATERIAL OOM
+                               on OOM.ORDER_ID = OO.ORDER_ID
+                          join RMS_MATERIAL RM
+                               on RM.MATERIAL_ID = OOM.MATERIAL_ID
                  where OO.ORDER_TYPE in (1, 2)
                           <if test="carrierSsoId != null">
-                              and RCA.CARRIER_SSO_ID = #{carrierSsoId}
+                              and RC2.CARRIER_SSO_ID = #{carrierSsoId}
+                          </if>
+                          <if test="oneDate != null">
+                              and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_GROSS_WEIGHT_TIME
+                          </if>
+                          <if test="startDate != null">
+                              and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_GROSS_WEIGHT_TIME
+                              and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_GROSS_WEIGHT_TIME
                           </if>
              )
         <where>
@@ -186,12 +401,50 @@
                     "orderNumber" like '%${item}%'
                 </foreach>
             </if>
+            <if test="carrierName != null">
+                <foreach collection="carrierName" item="item" open="(" separator="or" close=")">
+                    "carrierName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="enGatepostName != null">
+                <foreach collection="enGatepostName" item="item" open="(" separator="or" close=")">
+                    "enGatepostName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="outGatepostName != null">
+                <foreach collection="outGatepostName" item="item" open="(" separator="or" close=")">
+                    "outGatepostName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="caseNumber != null">
+                <foreach collection="caseNumber" item="item" open="(" separator="or" close=")">
+                    "caseNumber" like '%${item}%'
+                </foreach>
+            </if>
             <if test="capacityNumber != null">
                 and
                 <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
                     "capacityNumber" like '%${item}%'
                 </foreach>
             </if>
+            <if test="receiveName != null">
+                and
+                <foreach collection="receiveName" item="item" open="(" separator="or" close=")">
+                    "receiveName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialRemark != null">
+                and
+                <foreach collection="materialRemark" item="item" open="(" separator="or" close=")">
+                    "materialRemark" = #{item}
+                </foreach>
+            </if>
+            <if test="sendName != null">
+                and
+                <foreach collection="sendName" item="item" open="(" separator="or" close=")">
+                    "sendName" like '%${item}%'
+                </foreach>
+            </if>
             <if test="resultEntryGateTime != null">
                 and
                 <foreach collection="resultEntryGateTime" item="item" open="(" separator="or" close=")">
@@ -234,6 +487,12 @@
                     "resultGrossWeight" like '%${item}%'
                 </foreach>
             </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
             <if test="resultNetWeight != null">
                 and
                 <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
@@ -275,41 +534,92 @@
 --         计皮汽车衡
         RTC1.TRUCK_CALCULATE_NUMBER "truckTareCalculate",
 --         计毛汽车衡
-        RTC2.TRUCK_CALCULATE_NUMBER "truckCrossCalculate"
+        RTC2.TRUCK_CALCULATE_NUMBER "truckCrossCalculate",
+        RCON.CONSIGNEE_COMPANY_NAME "receiveName",
+        RS.SUPPLIER_NAME            "sendName",
+        RM.MATERIAL_NAME                     "materialName",
+        CONCAT(CONCAT(RM.MATERIAL_SPECIFICATION, '('), CONCAT(RM.MATERIAL_MODEL, ')')) "materialCode"
         from OMSTRUCK_ORDER OO
         join TMSTRUCK_TOTAL_RESULT TTR
-        on TTR.ORDER_ID = OO.ORDER_ID
+            on TTR.ORDER_ID = OO.ORDER_ID
         join TMSTRUCK_UNLOAD_RESULT TUR
-        on TUR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        join RMS_WAREHOUSE RW
-        on RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
+            on TUR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_WAREHOUSE RW
+            on RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
         join TMSTRUCK_WEIGHT_RESULT TWR
-        on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-            join RMS_TRUCK_CALCULATE RTC2
+            on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_TRUCK_CALCULATE RTC2
             on RTC2.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
-            join RMS_TRUCK_CALCULATE RTC1
+        left join RMS_TRUCK_CALCULATE RTC1
             on RTC1.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
         join TMSTRUCK_ENFACTORY_RESULT TER
-        on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-            join RMS_GATEPOST RG2
+            on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_GATEPOST RG2
             on RG2.GATEPOST_ID =TER.GATEPOST_ID
         join TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
-        on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        join RMS_GATEPOST RG
+            on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_GATEPOST RG
             on TLFR.GATEPOST_ID =RG.GATEPOST_ID
-        join RMS_CAPACITY RC
-        on RC.CAPACITY_ID = OO.CAPACITY_ID
+        left join RMS_CAPACITY RC
+            on RC.CAPACITY_ID = OO.CAPACITY_ID
+        left join AMSTRUCK_SPORADIC_ORDER ASO
+            on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
+        left join RMS_SUPPLIER RS
+            on RS.SUPPLIER_ID = ASO.SEND_UNIT_ID
+        left join RMS_CONSIGNEE RCON
+            on RCON.CONSIGNEE_ID = ASO.RECEIVE_UNIT_ID
+        join OMSTRUCK_ORDER_MATERIAL OOM
+            on OOM.ORDER_ID = OO.ORDER_ID
+        join RMS_MATERIAL RM
+            on RM.MATERIAL_ID = OOM.MATERIAL_ID
         <if test="carrierSsoId != null">
             join RMS_CARRIER RCA
-            on RCA.CARRIER_ID = RC.CARRIER_ID
+                on RCA.CARRIER_ID = RC.CARRIER_ID
         </if>
-        where OO.ORDER_TYPE = 12
+        where OO.ORDER_TYPE in (12,15)
         <if test="carrierSsoId != null">
             and RCA.CARRIER_SSO_ID = #{carrierSsoId}
         </if>
-        and TO_CHAR(TLFR.RESULT_OUT_GATE_TIME, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD')
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_TARE_WEIGHT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_TARE_WEIGHT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_TARE_WEIGHT_TIME
+        </if>
+        <if test="con!=null">
+            where  "receiveName" like #{con} or  "sendName" like #{con} or "materialName" like #{con}
+            or "capacityNumber" like #{con}
+        </if>
+        <if test="userId!=null">
+            and ASO.INSERT_USERNAME=#{userId}
+        </if>
+        <if test="userIds!=null">
+            and ASO.UPDATE_USERNAME=#{userIds}
+        </if>
+        <if test="orderType!=null">
+            and OO.ORDER_TYPE=#{orderType}
+        </if>
         )
         <where>
+            <if test="receiveName != null">
+                and
+                <foreach collection="receiveName" item="item" open="(" separator="or" close=")">
+                    "receiveName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="sendName != null">
+                and
+                <foreach collection="sendName" item="item" open="(" separator="or" close=")">
+                    "sendName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
             <if test="orderNumber != null">
                 <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
                     "orderNumber" like '%${item}%'
@@ -375,6 +685,18 @@
                     "resultOutGateTime" like '%${item}%'
                 </foreach>
             </if>
+            <if test="gatepostEntryName != null">
+                and
+                <foreach collection="gatepostEntryName" item="item" open="(" separator="or" close=")">
+                    "gatepostEntryName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="gatepostOutName != null">
+                and
+                <foreach collection="gatepostOutName" item="item" open="(" separator="or" close=")">
+                    "gatepostOutName" like '%${item}%'
+                </foreach>
+            </if>
         </where>
         <include refid="orderBy"></include>
         <if test="orderField == null">
@@ -404,41 +726,93 @@
         --         计皮汽车衡
         RTC1.TRUCK_CALCULATE_NUMBER "truckTareCalculate",
         --         计毛汽车衡
-        RTC2.TRUCK_CALCULATE_NUMBER "truckCrossCalculate"
+        RTC2.TRUCK_CALCULATE_NUMBER "truckCrossCalculate",
+        RCON.CONSIGNEE_COMPANY_NAME "receiveName",
+        RS.SUPPLIER_NAME            "sendName",
+        RM.MATERIAL_NAME                     "materialName",
+        CONCAT(CONCAT(RM.MATERIAL_SPECIFICATION, '('), CONCAT(RM.MATERIAL_MODEL, ')')) "materialCode"
+
         from OMSTRUCK_ORDER OO
         join TMSTRUCK_TOTAL_RESULT TTR
-        on TTR.ORDER_ID = OO.ORDER_ID
+            on TTR.ORDER_ID = OO.ORDER_ID
         join TMSTRUCK_LOAD_RESULT TLR
-        on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        join RMS_WAREHOUSE RW
-        on RW.WAREHOUSE_ID = TLR.LOADING_ID
+            on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_WAREHOUSE RW
+            on RW.WAREHOUSE_ID = TLR.LOADING_ID
         join TMSTRUCK_WEIGHT_RESULT TWR
-        on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        join RMS_TRUCK_CALCULATE RTC2
-        on RTC2.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
-        join RMS_TRUCK_CALCULATE RTC1
-        on RTC1.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
+            on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_TRUCK_CALCULATE RTC2
+            on RTC2.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
+        left join RMS_TRUCK_CALCULATE RTC1
+            on RTC1.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
         join TMSTRUCK_ENFACTORY_RESULT TER
-        on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        join RMS_GATEPOST RG2
-        on RG2.GATEPOST_ID =TER.GATEPOST_ID
+            on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_GATEPOST RG2
+            on RG2.GATEPOST_ID =TER.GATEPOST_ID
         join TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
-        on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        join RMS_GATEPOST RG
-        on TLFR.GATEPOST_ID =RG.GATEPOST_ID
-        join RMS_CAPACITY RC
-        on RC.CAPACITY_ID = OO.CAPACITY_ID
+            on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join RMS_GATEPOST RG
+            on TLFR.GATEPOST_ID =RG.GATEPOST_ID
+        left join RMS_CAPACITY RC
+            on RC.CAPACITY_ID = OO.CAPACITY_ID
+        left join AMSTRUCK_SPORADIC_ORDER ASO
+            on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
+        left join RMS_SUPPLIER RS
+            on RS.SUPPLIER_ID = ASO.SEND_UNIT_ID
+        left join RMS_CONSIGNEE RCON
+            on RCON.CONSIGNEE_ID = ASO.RECEIVE_UNIT_ID
+        join OMSTRUCK_ORDER_MATERIAL OOM
+            on OOM.ORDER_ID = OO.ORDER_ID
+        join RMS_MATERIAL RM
+            on RM.MATERIAL_ID = OOM.MATERIAL_ID
         <if test="carrierSsoId != null">
             join RMS_CARRIER RCA
             on RCA.CARRIER_ID = RC.CARRIER_ID
         </if>
-        where OO.ORDER_TYPE = 13
+        where OO.ORDER_TYPE in (13,16)
         <if test="carrierSsoId != null">
             and RCA.CARRIER_SSO_ID = #{carrierSsoId}
         </if>
-        and TO_CHAR(TLFR.RESULT_OUT_GATE_TIME, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD')
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_GROSS_WEIGHT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_GROSS_WEIGHT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_GROSS_WEIGHT_TIME
+        </if>
+        <if test="con!=null">
+            where  "receiveName" like #{con} or  "sendName" like #{con} or "materialName" like #{con}
+           or "capacityNumber" like #{con}
+        </if>
+        <if test="userId!=null">
+            and ASO.INSERT_USERNAME=#{userId}
+        </if>
+        <if test="userIds!=null">
+            and ASO.UPDATE_USERNAME=#{userIds}
+        </if>
+        <if test="orderType!=null">
+            and OO.ORDER_TYPE=#{orderType}
+        </if>
         )
         <where>
+            <if test="receiveName != null">
+                and
+                <foreach collection="receiveName" item="item" open="(" separator="or" close=")">
+                    "receiveName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="sendName != null">
+                and
+                <foreach collection="sendName" item="item" open="(" separator="or" close=")">
+                    "sendName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
             <if test="orderNumber != null">
                 <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
                     "orderNumber" like '%${item}%'
@@ -504,10 +878,616 @@
                     "resultOutGateTime" like '%${item}%'
                 </foreach>
             </if>
+            <if test="gatepostEntryName != null">
+                and
+                <foreach collection="gatepostEntryName" item="item" open="(" separator="or" close=")">
+                    "gatepostEntryName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="gatepostOutName != null">
+                and
+                <foreach collection="gatepostOutName" item="item" open="(" separator="or" close=")">
+                    "gatepostOutName" like '%${item}%'
+                </foreach>
+            </if>
         </where>
         <include refid="orderBy"></include>
         <if test="orderField == null">
             order by "resultOutGateTime" desc, "resultEntryGateTime" desc
         </if>
     </select>
+    <select id="getTotalResultList" resultType="java.util.LinkedHashMap">
+        SELECT DISTINCT
+            TTR.RESULT_TOTAL_ID "totalId"
+        FROM
+            TMSTRUCK_TOTAL_RESULT TTR
+        LEFT JOIN OMSTRUCK_ORDER OO ON OO.ORDER_ID = TTR.ORDER_ID
+        WHERE
+            OO.ORDER_TYPE in (10,20)
+        order by TTR.RESULT_TOTAL_ID desc
+    </select>
+    <select id="getInwardReportResult" resultType="java.util.LinkedHashMap">
+            select * from (select oo.order_id                   "orderId",
+           rm.material_name              "materialName",
+           apo.purchase_order_no         "purchaseNo",
+           rc.capacity_number            "capacityNo",
+           rs.supplier_name              "supplierName",
+           oo.order_number               "orderNumber",
+           rce.consignee_company_name    "consigneeName",
+           ttr.result_total_id           "totalResultId",
+           ter1.result_entry_mode        "entryModeFirst",
+           ter1.result_entry_gate_time   "entryGateTimeFirst",
+           rg1.gatepost_name             "entryGatepostNameFirst",
+           twr1.result_tare_weight       "tareWeightFirst",
+           twr1.result_tare_weight_time  "tareWeightTimeFirst",
+           rtc1.truck_calculate_number   "tareTruckCalculateFirst",
+           tlr.result_load_end_time      "loadTime",
+           rw.warehouse_name             "loadPoint",
+           twr2.result_gross_weight      "grossWeightFirst",
+           twr2.result_gross_weight_time "grossWeigtTimeFirst",
+           rtc2.truck_calculate_number   "grossTruckCalculateFirst",
+           twr2.result_net_weight        "netWeightFirst",
+           tlfr1.result_out_gate_time    "outGatepostTimeFirst",
+           tlfr1.result_out_mode         "outModeFirst",
+           rg2.gatepost_name             "gatepostNameFirst",
+           ter2.result_entry_mode        "entryModeSecond",
+           ter2.result_entry_gate_time   "resultEntryGateTime",
+           ter2.result_entry_gate_time   "entryGateTimeSecond",
+           rg3.gatepost_name             "entryGatepostNameSecond",
+           twr3.result_gross_weight      "grossWeightSecond",
+           twr3.result_gross_weight_time "grossWeigtTimeSecond",
+           rtc3.truck_calculate_number   "grossTruckCalculateSecond",
+           tur.result_end_time           "unloadTime",
+           rw2.warehouse_name            "unloadPoint",
+           twr4.result_tare_weight       "tareWeightSecond",
+           twr4.result_tare_weight_time  "tareWeightTimeSecond",
+           twr4.result_net_weight        "netWeightSecond",
+           rtc4.truck_calculate_number   "tareTruckCalculateSecond",
+           tlfr2.result_out_gate_time    "outGatepostTimeSecond",
+           tlfr2.result_out_gate_time    "resultOutGateTime",
+           tlfr2.result_out_mode         "outModeSecond",
+           rg4.gatepost_name             "gatepostNameSecond"
+      from omstruck_order oo
+      left join omstruck_order_material oom
+        on oom.order_id = oo.order_id
+      left join rms_material rm
+        on rm.material_id = oom.material_id
+      left join rms_capacity rc
+        on rc.capacity_id = oo.capacity_id
+      left join amstruck_inward_plan aip
+        on aip.plan_id = oo.order_plan_id
+      left join amstruck_requirement_plan arp
+        on arp.plan_id = aip.plan_id
+      left join amstruck_inward_requirement air
+        on air.requirement_id = arp.requirement_id
+      left join ams_purchase_order apo
+        on apo.purchase_order_id = air.purchase_order_id
+      left join rms_supplier rs
+        on rs.supplier_id = apo.supplier_unit_id
+      left join rms_consignee rce
+        on rce.consignee_id = apo.receive_unit_id
+      left join tmstruck_total_result ttr
+        on ttr.order_id = oo.order_id
+      left join tmstruck_enfactory_result ter1
+        on ter1.result_total_id = ttr.result_total_id
+      left join rms_gatepost rg1
+        on rg1.gatepost_id = ter1.gatepost_id
+      left join tmstruck_weight_result twr1
+        on twr1.result_total_id = ttr.result_total_id
+      left join rms_truck_calculate rtc1
+        on rtc1.truck_calculate_id = twr1.result_tare_place_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_weight_result twr2
+        on twr2.result_total_id = ttr.result_total_id
+      left join rms_truck_calculate rtc2
+        on rtc2.truck_calculate_id = twr2.result_gross_place_id
+      left join tmstruck_leave_factory_result tlfr1
+        on tlfr1.result_total_id = ttr.result_total_id
+      left join rms_gatepost rg2
+        on tlfr1.gatepost_id = rg2.gatepost_id
+      left join tmstruck_enfactory_result ter2
+        on ter2.result_total_id = ttr.result_total_id
+      left join rms_gatepost rg3
+        on rg3.gatepost_id = ter2.gatepost_id
+      left join tmstruck_weight_result twr3
+        on twr3.result_total_id = ttr.result_total_id
+      left join rms_truck_calculate rtc3
+        on rtc3.truck_calculate_id = twr3.result_gross_place_id
+      left join tmstruck_unload_result tur
+        on tur.result_total_id = ttr.result_total_id
+      left join rms_warehouse rw2
+        on rw2.warehouse_id = tur.result_unload_place_id
+      left join tmstruck_weight_result twr4
+        on twr4.result_total_id = ttr.result_total_id
+      left join rms_truck_calculate rtc4
+        on rtc4.truck_calculate_id = twr4.result_tare_place_id
+      left join tmstruck_leave_factory_result tlfr2
+        on tlfr2.result_total_id = ttr.result_total_id
+      left join rms_gatepost rg4
+        on tlfr2.gatepost_id = rg4.gatepost_id
+     where oo.order_type in (10,20)
+       and ter1.segmen_sqe = 1
+       and twr1.tare_segment_sqe = 2
+       and tlr.segment_sqe = 3
+       and twr2.gross_segment_sqe = 4
+       and tlfr1.segment_sqe = 5
+       and ter2.segmen_sqe = 6
+       and twr3.gross_segment_sqe = 7
+       and tur.segment_sqe = 8
+       and twr4.tare_segment_sqe = 9
+       and tlfr2.segment_sqe = 10
+       and twr2.result_gross_weight_time is not null
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR4.RESULT_TARE_WEIGHT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR4.RESULT_TARE_WEIGHT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR4.RESULT_TARE_WEIGHT_TIME
+        </if>
+    )
+        <where>
+            <if test="consigneeName != null">
+                and
+                <foreach collection="consigneeName" item="item" open="(" separator="or" close=")">
+                    "consigneeName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="supplierName != null">
+                and
+                <foreach collection="supplierName" item="item" open="(" separator="or" close=")">
+                    "supplierName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="orderNumber != null">
+                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+                    "orderNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityNo != null">
+                and
+                <foreach collection="capacityNo" item="item" open="(" separator="or" close=")">
+                    "capacityNo" like '%${item}%'
+                </foreach>
+            </if>
+        </where><include refid="orderBy"></include>
+        <if test="orderField == null">
+            order by "outGatepostTimeFirst" desc, "entryGateTimeFirst" desc
+        </if>
+    </select>
+
+    <select id="getInwardReport" parameterType="map" resultType="java.util.Map">
+        select * from (
+        select
+        OO.ORDER_NUMBER "orderNumber",
+        RC.CAPACITY_NUMBER  "capacityNumber",
+        RS.SHIPPER_NAME     "shipperName",
+        RW1.WAREHOUSE_NAME  "unloadName",
+        RW2.WAREHOUSE_NAME  "loadName",
+        RM.MATERIAL_NAME    "materialName",
+        RTC2.TRUCK_CALCULATE_NUMBER "grossNumber",
+        RTC1.TRUCK_CALCULATE_NUMBER "tareNumber",
+        TWR.RESULT_NET_WEIGHT   "resultNetWeight",
+        TWR.RESULT_TARE_WEIGHT_TIME  "resultTareWeightTime",
+        TWR.RESULT_TARE_WEIGHT      "resultTareWeight",
+        TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
+        TWR.RESULT_GROSS_WEIGHT     "resultGrossWeight"
+        from OMSTRUCK_ORDER OO
+        left join TMSTRUCK_TOTAL_RESULT TTR on OO.ORDER_ID = TTR.ORDER_ID
+        left join TMSTRUCK_WEIGHT_RESULT  TWR  on TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        left join RMS_CAPACITY RC on OO.CAPACITY_ID = RC.CAPACITY_ID
+        left join RMS_TRUCK_CALCULATE RTC1 on RTC1.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
+        left join RMS_TRUCK_CALCULATE RTC2 on RTC2.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
+        left join AMSTRUCK_INWARD_PLAN AIP on AIP.PLAN_ID = OO.ORDER_PLAN_ID
+        left join AMSTRUCK_REQUIREMENT_PLAN ARP on AIP.PLAN_ID = ARP.PLAN_ID
+        left join AMSTRUCK_INWARD_REQUIREMENT AIR   on AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+        left join RMS_SHIPPER   RS on AIR.REQUIREMENT_SHIPPER_ID = RS.SHIPPER_ID
+        left join AMSTRUCK_REQUIREMENT_MATERIAL ARM on AIR.REQUIREMENT_ID = ARM.REQUIREMENT_ID
+        left join RMS_MATERIAL RM on ARM.MATERIAL_ID = RM.MATERIAL_ID
+        left join RMS_WAREHOUSE RW1 on ARM.REQUIREMENT_UNLOAD_UNIT_ID = RW1.WAREHOUSE_ID
+        left join RMS_WAREHOUSE RW2 on ARM.REQUIREMENT_PLATFORM_ID = RW2.WAREHOUSE_ID
+        where OO.ORDER_TYPE = 11 and TWR.RESULT_NET_WEIGHT >= 0
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_TARE_WEIGHT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_TARE_WEIGHT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_TARE_WEIGHT_TIME
+        </if>
+        )
+        <where>
+            <if test="orderNumber != null">
+                and
+                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+                    "orderNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityNumber != null">
+                and
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="shipperName != null">
+                and
+                <foreach collection="shipperName" item="item" open="(" separator="or" close=")">
+                    "shipperName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="unloadName != null">
+                <foreach collection="unloadName" item="item" open="(" separator="or" close=")">
+                    "unloadName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="loadName != null">
+                and
+                <foreach collection="loadName" item="item" open="(" separator="or" close=")">
+                    "loadName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="grossNumber != null">
+                and
+                <foreach collection="grossNumber" item="item" open="(" separator="or" close=")">
+                    "grossNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="tareNumber != null">
+                and
+                <foreach collection="tareNumber" item="item" open="(" separator="or" close=")">
+                    "tareNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultNetWeight != null">
+                and
+                <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
+                    "resultNetWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultTareWeightTime != null">
+                and
+                <foreach collection="resultTareWeightTime" item="item" open="(" separator="or" close=")">
+                    "resultTareWeightTime" like '%${item}%'
+                </foreach>
+            </if>
+
+            <if test="resultTareWeight != null">
+                <foreach collection="resultTareWeight" item="item" open="(" separator="or" close=")">
+                    "resultTareWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultGrossWeightTime != null">
+                and
+                <foreach collection="resultGrossWeightTime" item="item" open="(" separator="or" close=")">
+                    "resultGrossWeightTime" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultGrossWeight != null">
+                and
+                <foreach collection="resultGrossWeight" item="item" open="(" separator="or" close=")">
+                    "resultGrossWeight" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+
+    <select id="getLoading" parameterType="map" resultType="java.util.Map">
+        SELECT * FROM(
+        SELECT MATERIAL_NAME "materialName",
+        COUNT(RC.CAPACITY_NUMBER) "capacityNumber",
+        SUM(TWR.RESULT_NET_WEIGHT)  "resultNetWeight",
+        count(TWR.RESULT_NET_WEIGHT) "number",
+        WAREHOUSE_NAME "warehouseName"
+        FROM TMSTRUCK_LOAD_RESULT TLR
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_ID = TTR.ORDER_ID
+        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+        ON OOM.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+        LEFT JOIN RMS_CAPACITY RC
+        ON RC.CAPACITY_ID = OO.CAPACITY_ID
+        LEFT JOIN RMS_WAREHOUSE RW
+        ON RW.WAREHOUSE_ID = TLR.LOADING_ID
+        WHERE OO.ORDER_TYPE = 11
+        AND TLR.RESULT_LOAD_START_TIME IS NOT NULL
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = TLR.RESULT_LOAD_END_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLR.RESULT_LOAD_END_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLR.RESULT_LOAD_END_TIME
+        </if>
+        GROUP BY MATERIAL_NAME, WAREHOUSE_NAME
+        )
+        <include refid="orderBy"></include>
+        <where>
+        <if test="materialName != null">
+            and
+            <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                "materialName" like '%${item}%'
+            </foreach>
+        </if>
+            <if test="capacityNumber != null">
+                and
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="warehouseName != null">
+                and
+                <foreach collection="warehouseName" item="item" open="(" separator="or" close=")">
+                    "warehouseName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="number != null">
+                and
+                <foreach collection="number" item="item" open="(" separator="or" close=")">
+                    "number" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="getUnLoading" parameterType="map" resultType="java.util.Map">
+        SELECT * FROM (
+        SELECT
+        COUNT(RC.CAPACITY_NUMBER) "capacityNumber",
+	    SUM(TWR.RESULT_NET_WEIGHT)  "resultNetWeight",
+        count(TWR.RESULT_NET_WEIGHT) "number",
+        MATERIAL_NAME          "materialName",
+        WAREHOUSE_NAME         "warehouseName"
+        FROM TMSTRUCK_UNLOAD_RESULT TUR
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
+		LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+		ON TWR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_ID = TTR.ORDER_ID
+        LEFT JOIN RMS_CAPACITY RC
+        ON RC.CAPACITY_ID = OO.CAPACITY_ID
+        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+        ON OOM.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+        LEFT JOIN RMS_WAREHOUSE RW
+        ON RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
+        WHERE TUR.RESULT_END_TIME IS NOT NULL
+        AND OO.ORDER_TYPE = 11
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = TUR.RESULT_END_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TUR.RESULT_END_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TUR.RESULT_END_TIME
+        </if>
+		GROUP BY MATERIAL_NAME, WAREHOUSE_NAME
+		)
+        <include refid="orderBy"></include>
+        <where>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityNumber != null">
+                and
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="warehouseName != null">
+                and
+                <foreach collection="warehouseName" item="item" open="(" separator="or" close=")">
+                    "warehouseName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultNetWeight != null">
+                and
+                <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
+                    "resultNetWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="number != null">
+                and
+                <foreach collection="number" item="item" open="(" separator="or" close=")">
+                    "number" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+
+    <select id="getLXReportResult" parameterType="map" resultType="java.util.LinkedHashMap">
+        SELECT
+               *
+        FROM (
+        SELECT
+        OO.ORDER_ID                   "orderId",
+        RM.MATERIAL_NAME              "materialName",
+        RC.CAPACITY_NUMBER            "capacityNo",
+        RS.SUPPLIER_NAME              "supplierName",
+        OO.ORDER_NUMBER               "orderNumber",
+        RCE.CONSIGNEE_COMPANY_NAME    "consigneeName",
+        TTR.RESULT_TOTAL_ID           "totalResultId",
+        TER1.RESULT_ENTRY_MODE        "entryModeFirst",
+        TER1.RESULT_ENTRY_GATE_TIME   "entryGateTimeFirst",
+        RG1.GATEPOST_NAME             "entryGatepostNameFirst",
+        TWR1.RESULT_TARE_WEIGHT       "tareWeightFirst",
+        TWR1.RESULT_TARE_WEIGHT_TIME  "tareWeightTimeFirst",
+        RTC1.TRUCK_CALCULATE_NUMBER   "tareTruckCalculateFirst",
+        TLR.RESULT_LOAD_END_TIME      "loadTime",
+        RW.WAREHOUSE_NAME             "loadPoint",
+        TWR2.RESULT_GROSS_WEIGHT      "grossWeightFirst",
+        TWR2.RESULT_GROSS_WEIGHT_TIME "grossWeigtTimeFirst",
+        RTC2.TRUCK_CALCULATE_NUMBER   "grossTruckCalculateFirst",
+        TWR2.RESULT_NET_WEIGHT        "netWeightFirst",
+        TLFR1.RESULT_OUT_GATE_TIME    "outGatepostTimeFirst",
+        TLFR1.RESULT_OUT_MODE         "outModeFirst",
+        RG2.GATEPOST_NAME            "gatepostNameFirst",
+        TER2.RESULT_ENTRY_MODE        "entryModeSecond",
+        TER2.RESULT_ENTRY_GATE_TIME   "resultEntryGateTime",
+        TER2.RESULT_ENTRY_GATE_TIME   "entryGateTimeSecond",
+        RG3.GATEPOST_NAME             "entryGatepostNameSecond",
+        TWR3.RESULT_GROSS_WEIGHT      "grossWeightSecond",
+        TWR3.RESULT_GROSS_WEIGHT_TIME "grossWeigtTimeSecond",
+        RTC3.TRUCK_CALCULATE_NUMBER   "grossTruckCalculateSecond",
+        TUR.RESULT_END_TIME           "unloadTime",
+        RW2.WAREHOUSE_NAME            "unloadPoint",
+        TWR4.RESULT_TARE_WEIGHT       "tareWeightSecond",
+        TWR4.RESULT_TARE_WEIGHT_TIME  "tareWeightTimeSecond",
+        TWR4.RESULT_NET_WEIGHT        "netWeightSecond",
+        RTC4.TRUCK_CALCULATE_NUMBER   "tareTruckCalculateSecond",
+        TLFR2.RESULT_OUT_GATE_TIME    "outGatepostTimeSecond",
+        TLFR2.RESULT_OUT_GATE_TIME    "resultOutGateTime",
+        TLFR2.RESULT_OUT_MODE         "outModeSecond",
+        RG4.GATEPOST_NAME             "gatepostNameSecond"
+        FROM OMSTRUCK_ORDER OO
+        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM ON OOM.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+        LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID = OO.CAPACITY_ID
+        LEFT JOIN AMSTRUCK_SPORADIC_ORDER ASO ON ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
+        LEFT JOIN RMS_SUPPLIER RS ON RS.SUPPLIER_ID = ASO.SEND_UNIT_ID
+        LEFT JOIN RMS_CONSIGNEE RCE ON RCE.CONSIGNEE_ID = ASO.SPORADIC_ORDER_ID
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER1  ON TER1.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_GATEPOST RG1 ON RG1.GATEPOST_ID = TER1.GATEPOST_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR1  ON TWR1.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_TRUCK_CALCULATE RTC1  ON RTC1.TRUCK_CALCULATE_ID = TWR1.RESULT_TARE_PLACE_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_WEIGHT_RESULT TWR2 ON TWR2.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_TRUCK_CALCULATE RTC2 ON RTC2.TRUCK_CALCULATE_ID = TWR2.RESULT_GROSS_PLACE_ID
+        LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR1  ON TLFR1.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_GATEPOST RG2 ON TLFR1.GATEPOST_ID = RG2.GATEPOST_ID
+        LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER2 ON TER2.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_GATEPOST RG3  ON RG3.GATEPOST_ID = TER2.GATEPOST_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR3  ON TWR3.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_TRUCK_CALCULATE RTC3 ON RTC3.TRUCK_CALCULATE_ID = TWR3.RESULT_GROSS_PLACE_ID
+        LEFT JOIN TMSTRUCK_UNLOAD_RESULT TUR  ON TUR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_WAREHOUSE RW2 ON RW2.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR4 ON TWR4.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_TRUCK_CALCULATE RTC4  ON RTC4.TRUCK_CALCULATE_ID = TWR4.RESULT_TARE_PLACE_ID
+        LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR2  ON TLFR2.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_GATEPOST RG4  ON TLFR2.GATEPOST_ID = RG4.GATEPOST_ID
+        WHERE OO.ORDER_TYPE = 14
+        AND TER1.SEGMEN_SQE = 1
+        AND TWR1.TARE_SEGMENT_SQE = 2
+        AND TLR.SEGMENT_SQE = 3
+        AND TWR2.GROSS_SEGMENT_SQE = 4
+        AND TLFR1.SEGMENT_SQE = 5
+        AND TER2.SEGMEN_SQE = 6
+        AND TWR3.GROSS_SEGMENT_SQE = 7
+        AND TUR.SEGMENT_SQE = 8
+        AND TWR4.TARE_SEGMENT_SQE = 9
+        AND TLFR2.SEGMENT_SQE = 10
+        AND TWR2.RESULT_GROSS_WEIGHT_TIME IS NOT NULL
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR4.RESULT_TARE_WEIGHT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR4.RESULT_TARE_WEIGHT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR4.RESULT_TARE_WEIGHT_TIME
+        </if>
+        )
+        <where>
+            <if test="consigneeName != null">
+                <foreach collection="consigneeName" item="item" open="(" separator="or" close=")">
+                    "consigneeName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="supplierName != null">
+                and
+                <foreach collection="supplierName" item="item" open="(" separator="or" close=")">
+                    "supplierName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="orderNumber != null">
+                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+                    "orderNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityNo != null">
+                and
+                <foreach collection="capacityNo" item="item" open="(" separator="or" close=")">
+                    "capacityNo" like '%${item}%'
+                </foreach>
+            </if>
+        </where><include refid="orderBy"></include>
+        <if test="orderField == null">
+            order by "outGatepostTimeFirst" desc, "entryGateTimeFirst" desc
+        </if>
+    </select>
+     <!-- 查询装机统计报表-->
+    <select id="getLoaderResult" resultType="java.util.Map" parameterType="java.util.Map">
+        select *
+        from(select
+        COUNT(RC.CAPACITY_NUMBER) "number",
+        sum(TWR.RESULT_NET_WEIGHT) "netWeight",
+        TLR.CAPACITY_REMARK "LoaderCapacityNumber"
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID=OO.ORDER_ID
+        LEFT JOIN RMS_CAPACITY RC
+        ON RC.CAPACITY_ID=OO.CAPACITY_ID
+        LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
+        ON TLR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        where TLR.CAPACITY_REMARK IS NOT NULL
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = TLR.RESULT_LOAD_END_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLR.RESULT_LOAD_END_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLR.RESULT_LOAD_END_TIME
+        </if>
+        GROUP BY TLR.CAPACITY_REMARK
+        )
+        <where>
+        <if test="number != null">
+            and
+            <foreach collection="number" item="item" open="(" separator="or" close=")">
+                "number" like '%${item}%'
+            </foreach>
+        </if>
+        <if test="netWeight != null">
+            and
+            <foreach collection="netWeight" item="item" open="(" separator="or" close=")">
+                "netWeight" like '%${item}%'
+            </foreach>
+        </if>
+        <if test="LoaderCapacityNumber != null">
+            and
+            <foreach collection="LoaderCapacityNumber" item="item" open="(" separator="or" close=")">
+                "LoaderCapacityNumber" like '%${item}%'
+            </foreach>
+        </if>
+        </where>
+    </select>
 </mapper>

+ 152 - 43
src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml

@@ -497,6 +497,13 @@
         left join RMS_GATEPOST RG
         on RG.GATEPOST_ID = TER.GATEPOST_ID
         where TER.RESULT_ENTRY_GATE_TIME is not null and OO.ORDER_TYPE = #{orderTypee}
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TER.RESULT_ENTRY_GATE_TIME
+        </if>
         )
         <where>
             <if test="purchaseOrderId != null">
@@ -589,6 +596,13 @@
         left join RMS_GATEPOST RG
         on RG.GATEPOST_ID = TER.GATEPOST_ID
         where TER.RESULT_ENTRY_GATE_TIME is not null and OO.ORDER_TYPE = 4
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TER.RESULT_ENTRY_GATE_TIME
+        </if>
         )
         <where>
             <if test="materialName != null">
@@ -629,7 +643,9 @@
     <select id="selectTotalResultIdByCpAndOn" parameterType="java.util.Map" resultType="java.util.Map">
         select TTR.RESULT_TOTAL_ID "resultTotalId",
                RC.CAPACITY_NUMBER "capacityNumber",
-               OO.ORDER_TYPE       "orderType"
+               OO.ORDER_TYPE       "orderType",
+               OO.ORDER_ID          "orderId",
+               OO.LINE_ID           "lineId"
         from OMSTRUCK_ORDER OO
         left join TMSTRUCK_TOTAL_RESULT TTR
         on TTR.ORDER_ID = OO.ORDER_ID
@@ -653,26 +669,16 @@
     </select>
 
     <!--  通过运输订单号查找实绩Id -->
-    <select id="selectEnFactoryResultId" parameterType="string" resultType="java.util.Map">
-        select * from (select TER.RESULT_ID              "resultId",
-               OO.ORDER_ID                "orderId",
-               OO.ORDER_TYPE              "orderTypee", --避免与筛选条件重名
-               OO.ORDER_TYPE              "orderType",
-               TER.RESULT_TOTAL_ID        "resultTotalId",
-               RC.CAPACITY_NUMBER         "capacityNumber",
-               TER.SEGMEN_SQE             "segmentSqe", --进厂的路段顺序号
-               ter.result_entry_gate_time
-          from OMSTRUCK_ORDER OO
-          left join TMSTRUCK_TOTAL_RESULT TTR
-            on OO.ORDER_ID = TTR.ORDER_ID
-          left join TMSTRUCK_ENFACTORY_RESULT TER
-            on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-          left join RMS_CAPACITY RC
-            on RC.CAPACITY_ID = OO.CAPACITY_ID
-         where OO.ORDER_NUMBER = #{orderNumber}
-           and ter.result_entry_gate_time is null
-         order by TER.SEGMEN_SQE)
-         where rownum=1
+    <select id="selectEnFactoryResultId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select *
+        from (select TER.RESULT_ID       "resultId",
+                     TER.SEGMEN_SQE      "segmentSqe", --进厂的路段顺序号
+                     TER.RESULT_ENTRY_GATE_TIME
+              from TMSTRUCK_ENFACTORY_RESULT TER
+              where TER.RESULT_TOTAL_ID = #{resultTotalId}
+                and TER.RESULT_ENTRY_GATE_TIME is null
+              order by TER.SEGMEN_SQE)
+        where rownum = 1
     </select>
 
     <!--  查找排队序号 -->
@@ -727,6 +733,13 @@
         LEFT JOIN RMS_CONSIGNEE RCON
         ON RCON.CONSIGNEE_ID = ASO.RECEIVE_ID
         WHERE TER.RESULT_ENTRY_GATE_TIME IS NOT NULL
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TER.RESULT_ENTRY_GATE_TIME
+        </if>
               AND OO.ORDER_TYPE IN (1, 2, 3)
         )
         <where>
@@ -854,6 +867,13 @@
                                     ON RC.CAPACITY_ID = OO.CAPACITY_ID
                  WHERE OO.ORDER_TYPE = 4
                    AND TER.RESULT_ENTRY_GATE_TIME IS NOT NULL
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TER.RESULT_ENTRY_GATE_TIME
+        </if>
              )
         <where>
             <if test="dayplanNo != null">
@@ -947,6 +967,13 @@
                                     on RG.GATEPOST_ID = TER.GATEPOST_ID
                  where TER.RESULT_ENTRY_GATE_TIME is not null
                    and OO.ORDER_TYPE = 9
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TER.RESULT_ENTRY_GATE_TIME
+        </if>
              )
         <where>
             <if test="purchaseOrderId != null">
@@ -1020,7 +1047,6 @@
         OOM.ORDER_MATERIAL_WEIGHT "orderMaterialWeight",
         RW1.WAREHOUSE_NAME "loadingName",
         RW2.WAREHOUSE_NAME "unloadingName"
-
         from TMSTRUCK_ENFACTORY_RESULT TER
         left join TMSTRUCK_TOTAL_RESULT TTR
         on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
@@ -1044,6 +1070,13 @@
         on RG.GATEPOST_ID = TER.GATEPOST_ID
         where TER.RESULT_ENTRY_GATE_TIME is not null
         and OO.ORDER_TYPE = 11
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TER.RESULT_ENTRY_GATE_TIME
+        </if>
         )
         <where>
             <if test="materialName != null">
@@ -1161,7 +1194,7 @@
     <select id="getSporadicSuppliesEnFactoryResult" parameterType="java.util.Map" resultType="java.util.Map">
         select *
         from (
-        select TER.RESULT_ID "resultId",
+        select distinct TER.RESULT_ID "resultId",
                OO.ORDER_ID    "orderId",
                 OO.ORDER_NUMBER "orderNumber",
                 RC.CAPACITY_NUMBER "capacityNumber",
@@ -1170,24 +1203,52 @@
                 TER.RESULT_ENTRY_GATE_TIME "resultEntryGateTime",
                 RM.MATERIAL_NAME "materialName",
                 OOM.ORDER_MATERIAL_NUMBER "materialNumber",
-                OOM.ORDER_MATERIAL_WEIGHT "materialWeight"
+                OOM.ORDER_MATERIAL_WEIGHT "materialWeight",
+                TWR.RESULT_NET_WEIGHT "netWeight"
 
         from TMSTRUCK_ENFACTORY_RESULT TER
         left join TMSTRUCK_TOTAL_RESULT TTR
         on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join TMSTRUCK_WEIGHT_RESULT TWR
+        on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         left join OMSTRUCK_ORDER OO
         on TTR.ORDER_ID = OO.ORDER_ID
         left join OMSTRUCK_ORDER_MATERIAL OOM
         ON OOM.ORDER_ID=OO.ORDER_ID
         left join RMS_MATERIAL RM
-        ON RM.MATERIAL_ID=OOM.MATERIAL_ID
+        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
         left join AMSTRUCK_SPORADIC_ORDER ASO
         on OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
+        left join AMSTRUCK_SPORADIC_MATERIAL ASM
+        on ASM.SPORADIC_ORDER_ID=ASO.SPORADIC_ORDER_ID
         left join RMS_GATEPOST RG
         on RG.GATEPOST_ID = TER.GATEPOST_ID
         left join RMS_CAPACITY RC
         on RC.CAPACITY_ID = OO.CAPACITY_ID
-        WHERE OO.ORDER_TYPE = #{orderTypee}
+        WHERE TER.RESULT_ENTRY_GATE_TIME IS NOT NULL
+            <if test="orderTypee != 100">
+                AND OO.ORDER_TYPE = #{orderTypee}
+            </if>
+            <if test="orderTypee == 100">
+                AND OO.ORDER_TYPE in (12, 13 ,14,19)
+            </if>
+            <if test="oneDate != null">
+                and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+            </if>
+            <if test="startDate != null">
+                and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+                and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TER.RESULT_ENTRY_GATE_TIME
+            </if>
+            <if test="userId!=null">
+               and ASO.INSERT_USERNAME=#{userId}
+            </if>
+            <if test="userIds!=null">
+               and ASO.UPDATE_USERNAME=#{userIds}
+            </if>
+            <if test="con!=null">
+                where "orderNumber" like #{con} or "capacityNumber" like #{con}
+                or "gatepostName" like #{con} or  "materialName" like #{con}
+            </if>
         )
         <where>
             <if test="orderNumber != null">
@@ -1227,18 +1288,16 @@
         select
         *
         from(
-        select TER.RESULT_ID "resultId",
-        APO.PURCHASE_ORDER_NO "purchaseOrderNo",
-        RM.MATERIAL_NAME "materialName",
-        DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
-        OO.ORDER_NUMBER "orderNumber",
-        RC.CAPACITY_NUMBER "capacityNumber",
-        RG.GATEPOST_NAME "gatepostName",
-        TER.RESULT_ENTRY_MODE "resultEntryMode",
-        TER.RESULT_ENTRY_GATE_TIME "resultEntryGateTime",
-        RS.SUPPLIER_NAME "supplierName",
-        OOM.ORDER_MATERIAL_WEIGHT "orderMaterialWeight",
-        TER.INSERT_TIME "insertTime",
+        select TER.RESULT_ID        "resultId",
+        APO.PURCHASE_ORDER_NO       "purchaseOrderNo",
+        RM.MATERIAL_NAME            "materialName",
+        OO.ORDER_NUMBER             "orderNumber",
+        RC.CAPACITY_NUMBER          "capacityNumber",
+        RG.GATEPOST_NAME            "gatepostName",
+        TER.RESULT_ENTRY_MODE       "resultEntryMode",
+        TER.RESULT_ENTRY_GATE_TIME   "resultEntryGateTime",
+        RS.SUPPLIER_NAME            "supplierName",
+        TER.INSERT_TIME             "insertTime",
         RCON.CONSIGNEE_COMPANY_NAME "consigneeCompanyName"
         from TMSTRUCK_ENFACTORY_RESULT TER
         left join TMSTRUCK_TOTAL_RESULT TTR
@@ -1268,7 +1327,17 @@
         left join RMS_GATEPOST RG
         on RG.GATEPOST_ID = TER.GATEPOST_ID
         where TER.RESULT_ENTRY_GATE_TIME is not null
-        and OO.ORDER_TYPE = 10
+        and OO.ORDER_TYPE in (10,20)
+        <if test="userId">
+            and air.INSERT_USERNAME=#{userId}
+        </if>
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TER.RESULT_ENTRY_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TER.RESULT_ENTRY_GATE_TIME
+        </if>
         )
         <where>
             <if test="purchaseOrderId != null">
@@ -1331,12 +1400,11 @@
         select TLFR.RESULT_ID                     "resultId",
        APO.PURCHASE_ORDER_NO              "purchaseOrderNo",
        RM.MATERIAL_NAME                   "materialName",
-       DB.RESULT_FOREIGN_SHIP_NAME        "resultForeignShipName",
        OO.ORDER_NUMBER                    "orderNumber",
        RC.CAPACITY_NUMBER                 "capacityNumber",
        RG.GATEPOST_NAME                   "gatepostName",
        TLFR.RESULT_OUT_MODE               "resultOutMode",
-       TLFR.RESULT_OUT_GATE_TIME          "resultOutGateTime",
+       TLFR.RESULT_OUT_GATE_TIME    "resultOutGateTime",
        TLFR.RESULT_TRUCK_SNAPSHOT_PICTURE "resultTruckSnapshotPicture"
   from TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
   left join TMSTRUCK_TOTAL_RESULT TTR
@@ -1362,7 +1430,48 @@
   left join RMS_GATEPOST RG
     on RG.GATEPOST_ID = TLFR.GATEPOST_ID
  where RESULT_OUT_GATE_TIME is not null
-   and OO.ORDER_TYPE = 10
-    order by tlfr.result_out_gate_time
+   and OO.ORDER_TYPE in (10,20)
+   <if test="userId !=null">
+      and AIR.INSERT_USERNAME = #{userId}
+   </if>
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLFR.RESULT_OUT_GATE_TIME
+        </if>
+    order by tlfr.result_out_gate_time desc
+        <where>
+            <if test="capacityNumber != null">
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
+                </foreach>
+            </if>
+             <if test="materialName != null">
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="gatepostName != null">
+                <foreach collection="gatepostName" item="item" open="(" separator="or" close=")">
+                    "gatepostName" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
     </select>
+
+    <select id="selectAllEnFactoryNum" parameterType="java.math.BigDecimal" resultType="int">
+        select count(TER.RESULT_TOTAL_ID)
+        from TMSTRUCK_ENFACTORY_RESULT TER
+        where TER.RESULT_TOTAL_ID = #{resultTotalId}
+    </select>
+
+    <select id="selectEnFactoryNumber" parameterType="java.math.BigDecimal" resultType="int">
+        select count(TER.RESULT_TOTAL_ID)
+        from TMSTRUCK_ENFACTORY_RESULT TER
+        where TER.RESULT_TOTAL_ID = #{resultTotalId}
+        and TER.RESULT_ENTRY_GATE_TIME is null
+    </select>
+
 </mapper>

+ 107 - 19
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -464,6 +464,7 @@
                 TLFR.RESULT_ID "resultId",
                 APO.PURCHASE_ORDER_NO "purchaseOrderNo",
                 RM.MATERIAL_NAME "materialName",
+                TWR.RESULT_NET_WEIGHT "netWeight",
                 DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
                 OO.ORDER_NUMBER "orderNumber",
                 RC.CAPACITY_NUMBER "capacityNumber",
@@ -471,9 +472,12 @@
                 TLFR.RESULT_OUT_MODE "resultOutMode",
                 TLFR.RESULT_OUT_GATE_TIME "resultOutGateTime",
                 TLFR.RESULT_TRUCK_SNAPSHOT_PICTURE "resultTruckSnapshotPicture"
+
         from TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
         left join TMSTRUCK_TOTAL_RESULT TTR
             on TTR.RESULT_TOTAL_ID = TLFR.RESULT_TOTAL_ID
+        left join TMSTRUCK_WEIGHT_RESULT TWR
+        on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         left join OMSTRUCK_ORDER OO
             on OO.ORDER_ID = TTR.ORDER_ID
         left join AMS_PURCHASE_ORDER APO
@@ -486,10 +490,24 @@
             on RM.MATERIAL_ID = OOM.MATERIAL_ID
         left join RMS_CAPACITY RC
             on RC.CAPACITY_ID = OO.CAPACITY_ID
+        <if test="carrierSsoId != null">
+            left join RMS_CARRIER RCA
+                on RCA.CARRIER_ID = OO.CARRIER_ID
+        </if>
         left join RMS_GATEPOST RG
             on RG.GATEPOST_ID = TLFR.GATEPOST_ID
 
         where RESULT_OUT_GATE_TIME is not null and OO.ORDER_TYPE = #{orderTypee}
+            <if test="carrierSsoId != null">
+                and RCA.CARRIER_SSO_ID = #{carrierSsoId}
+            </if>
+            <if test="oneDate != null">
+              and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+            </if>
+            <if test="startDate != null">
+              and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+              and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLFR.RESULT_OUT_GATE_TIME
+           </if>
         )
         <where>
             <if test="purchaseOrderNo != null">
@@ -503,6 +521,12 @@
                     "materialName" like '%${item}%'
                 </foreach>
             </if>
+            <if test="netWeight != null">
+                and
+                <foreach collection="netWeight" item="item" open="(" separator="or" close=")">
+                    "netWeight" like '%${item}%'
+                </foreach>
+            </if>
             <if test="resultForeignShipName != null">
                 and
                 <foreach collection="resultForeignShipName" item="item" open="(" separator="or" close=")">
@@ -569,24 +593,13 @@
     </select>
 
     <!--  通过运输订单号获取实绩ID -->
-    <select id="selectResultId" parameterType="string" resultType="java.util.Map">
+    <select id="selectResultId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
         select *
         from (
                  select TLFR.RESULT_ID      "resultId",
-                        OO.ORDER_ID         "orderId",
-                        OO.ORDER_TYPE       "orderTypee",
-                        TTR.RESULT_TOTAL_ID "resultTotalId",
-                        OO.CAPACITY_ID      "capacityId",
-                        RC.CAPACITY_NUMBER  "capacityNumber",
                         TLFR.SEGMENT_SQE    "segmentSqe"
-                 from OMSTRUCK_ORDER OO
-                          left join TMSTRUCK_TOTAL_RESULT TTR
-                                    on OO.ORDER_ID = TTR.ORDER_ID
-                          left join TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
-                                    on TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                          left join RMS_CAPACITY RC
-                                    on RC.CAPACITY_ID = OO.CAPACITY_ID
-                 where OO.ORDER_NUMBER = #{orderNumber} and TLFR.RESULT_OUT_GATE_TIME is null
+                 from TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+                 where TLFR.RESULT_TOTAL_ID = #{resultTotalId} and TLFR.RESULT_OUT_GATE_TIME is null
                  order by TLFR.SEGMENT_SQE
              )
         where rownum = 1
@@ -625,6 +638,13 @@
         ON RCON.CONSIGNEE_ID = ASO.RECEIVE_ID
         WHERE TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
         AND OO.ORDER_TYPE IN (1, 2, 3)
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLFR.RESULT_OUT_GATE_TIME
+        </if>
         )
         <where>
             <if test="saleNum != null">
@@ -783,6 +803,13 @@
                                     ON RG.GATEPOST_ID = TLFR.GATEPOST_ID
                  WHERE OO.ORDER_TYPE = 4
                    AND TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLFR.RESULT_OUT_GATE_TIME
+        </if>
              )
         <where>
             <if test="dayplanNo != null">
@@ -864,6 +891,13 @@
 
                  where RESULT_OUT_GATE_TIME is not null
                    and OO.ORDER_TYPE = 9
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLFR.RESULT_OUT_GATE_TIME
+        </if>
              )
         <where>
             <if test="purchaseOrderNo != null">
@@ -943,9 +977,15 @@
         on RC.CAPACITY_ID = OO.CAPACITY_ID
         left join RMS_GATEPOST RG
         on RG.GATEPOST_ID = TLFR.GATEPOST_ID
-
         where RESULT_OUT_GATE_TIME is not null
         and OO.ORDER_TYPE = 11
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLFR.RESULT_OUT_GATE_TIME
+        </if>
         )
         <where>
             <if test="orderNumber != null">
@@ -1070,11 +1110,11 @@
             and twr.MATERIAL_ID = oom.MATERIAL_ID
         where oo.order_number = #{orderNumber}
     </select>
-    <!--零星物资 -->
+    <!--零星物资出厂实绩列表 -->
     <select id="getSporadicLeaveFactory" parameterType="java.util.Map" resultType="java.util.Map">
         select *
         from (
-        select TLFR.RESULT_ID              "resultId",
+        select distinct TLFR.RESULT_ID              "resultId",
         OO.ORDER_NUMBER                    "orderNumber",
         RC.CAPACITY_NUMBER                 "capacityNumber",
         RG.GATEPOST_NAME                   "gatepostName",
@@ -1083,10 +1123,13 @@
         TLFR.RESULT_TRUCK_SNAPSHOT_PICTURE "resultTruckSnapshotPicture",
         RM.MATERIAL_NAME                    "materialName",
         OOM.ORDER_MATERIAL_WEIGHT           "materialWeight",
-        OOM.ORDER_MATERIAL_NUMBER            "materialNumber"
+        OOM.ORDER_MATERIAL_NUMBER           "materialNumber",
+        TWR.RESULT_NET_WEIGHT                "netWeight"
         from TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
         left join TMSTRUCK_TOTAL_RESULT TTR
         on TTR.RESULT_TOTAL_ID = TLFR.RESULT_TOTAL_ID
+        left join TMSTRUCK_WEIGHT_RESULT TWR
+        on TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
         left join OMSTRUCK_ORDER OO
         on OO.ORDER_ID = TTR.ORDER_ID
         left join OMSTRUCK_ORDER_MATERIAL OOM
@@ -1100,7 +1143,29 @@
         left join RMS_GATEPOST RG
         on RG.GATEPOST_ID = TLFR.GATEPOST_ID
         where RESULT_OUT_GATE_TIME is not null
-        and OO.ORDER_TYPE = #{orderTypee}
+            <if test="orderTypee != 100">
+            AND OO.ORDER_TYPE = #{orderTypee}
+            </if>
+            <if test="orderTypee == 100">
+            AND OO.ORDER_TYPE in (12, 13 ,14,19)
+            </if>
+            <if test="userId!=null">
+             AND ASO.INSERT_USERNAME=#{userId}
+            </if>
+            <if test="userIds!=null">
+              AND ASO.UPDATE_USERNAME=#{userIds}
+            </if>
+            <if test="con!=null">
+                where "orderNumber" like #{con} or "capacityNumber" like #{con}
+                or "gatepostName" like #{con}  or  "materialName" like #{con}
+            </if>
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLFR.RESULT_OUT_GATE_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLFR.RESULT_OUT_GATE_TIME
+        </if>
         )
         <where>
             <if test="orderNumber != null">
@@ -1141,4 +1206,27 @@
         </where>
         <include refid="orderByOutTime"></include>
     </select>
+
+
+
+    <!--  根据采购订单ID查询是否为一车多趟  -->
+    <select id="getIsMoreTripsStatus" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select APO.IS_MORE_TRIPS
+        from OMSTRUCK_ORDER OO
+                 left join AMS_PURCHASE_ORDER APO
+                           on APO.PURCHASE_ORDER_ID = OO.ORDER_PLAN_ID
+        where OO.ORDER_ID = #{orderId}
+    </select>
+
+    <select id="getPlanEnable" resultType="java.lang.Integer">
+        select aip.plan_eable_status
+        from omstruck_order oo
+        left join amstruck_inward_plan aip
+        on aip.plan_id = oo.order_plan_id
+        where oo.order_id = #{orderId}
+    </select>
+    <select id="getSeq" resultType="java.lang.Integer">
+        select oo.order_line_sequence from omstruck_order oo
+        where oo.order_id =#{orderId}
+    </select>
 </mapper>

+ 1697 - 1524
src/main/resources/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.xml

@@ -1,1578 +1,1751 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.steerinfo.dil.mapper.TmstruckLoadResultMapper">
-    <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.TmstruckLoadResult">
-        <id column="RESULT_ID" jdbcType="DECIMAL" property="resultId" />
-        <result column="RESULT_TOTAL_ID" jdbcType="DECIMAL" property="resultTotalId" />
-        <result column="RESULT_LOAD_START_TIME" jdbcType="TIMESTAMP" property="resultLoadStartTime" />
-        <result column="RESULT_LOAD_END_TIME" jdbcType="TIMESTAMP" property="resultLoadEndTime" />
-        <result column="RESULT_LOAD_DURATION" jdbcType="DECIMAL" property="resultLoadDuration" />
-        <result column="LOAD_STANDARD_TIME_ID" jdbcType="DECIMAL" property="loadStandardTimeId" />
-        <result column="LOADER_ID" jdbcType="DECIMAL" property="loaderId" />
-        <result column="RESULT_ISCLEAR" jdbcType="VARCHAR" property="resultIsclear" />
-        <result column="DELETE_NAME" jdbcType="VARCHAR" property="deleteName" />
-        <result column="DELETE_TIME" jdbcType="TIMESTAMP" property="deleteTime" />
-        <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername" />
-        <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime" />
-        <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername" />
-        <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
-        <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark" />
-        <result column="STATUS" jdbcType="DECIMAL" property="status" />
-        <result column="RESULT_MEASURED_TONNAGE" jdbcType="DECIMAL" property="resultMeasuredTonnage" />
-        <result column="LOADING_ID" jdbcType="DECIMAL" property="loadingId" />
-        <result column="MATERIAL_ID" jdbcType="DECIMAL" property="materialId" />
-        <result column="LOADING_SEQUENCE" jdbcType="DECIMAL" property="loadingSequence" />
-        <result column="ISDEDUCT" jdbcType="DECIMAL" property="isdeduct" />
-        <result column="SEGMENT_SQE" jdbcType="DECIMAL" property="segmentSqe" />
-    </resultMap>
-    <sql id="columns">
-        RESULT_ID, RESULT_TOTAL_ID, RESULT_LOAD_START_TIME, RESULT_LOAD_END_TIME, RESULT_LOAD_DURATION,
+  <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.TmstruckLoadResult">
+    <id column="RESULT_ID" jdbcType="DECIMAL" property="resultId" />
+    <result column="RESULT_TOTAL_ID" jdbcType="DECIMAL" property="resultTotalId" />
+    <result column="RESULT_LOAD_START_TIME" jdbcType="TIMESTAMP" property="resultLoadStartTime" />
+    <result column="RESULT_LOAD_END_TIME" jdbcType="TIMESTAMP" property="resultLoadEndTime" />
+    <result column="RESULT_LOAD_DURATION" jdbcType="DECIMAL" property="resultLoadDuration" />
+    <result column="LOAD_STANDARD_TIME_ID" jdbcType="DECIMAL" property="loadStandardTimeId" />
+    <result column="LOADER_ID" jdbcType="DECIMAL" property="loaderId" />
+    <result column="RESULT_ISCLEAR" jdbcType="VARCHAR" property="resultIsclear" />
+    <result column="DELETE_NAME" jdbcType="VARCHAR" property="deleteName" />
+    <result column="DELETE_TIME" jdbcType="TIMESTAMP" property="deleteTime" />
+    <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername" />
+    <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime" />
+    <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername" />
+    <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark" />
+    <result column="STATUS" jdbcType="DECIMAL" property="status" />
+    <result column="RESULT_MEASURED_TONNAGE" jdbcType="DECIMAL" property="resultMeasuredTonnage" />
+    <result column="LOADING_ID" jdbcType="DECIMAL" property="loadingId" />
+    <result column="MATERIAL_ID" jdbcType="DECIMAL" property="materialId" />
+    <result column="LOADING_SEQUENCE" jdbcType="DECIMAL" property="loadingSequence" />
+    <result column="ISDEDUCT" jdbcType="DECIMAL" property="isdeduct" />
+    <result column="SEGMENT_SQE" jdbcType="DECIMAL" property="segmentSqe" />
+    <result column="CASE_NUMBER" jdbcType="VARCHAR" property="caseNumber" />
+    <result column="CASE_NUMBERTWO" jdbcType="VARCHAR" property="caseNumbertwo" />
+    <result column="CAPACITY_REMARK" jdbcType="VARCHAR" property="capacityRemark" />
+  </resultMap>
+  <sql id="columns">
+    RESULT_ID, RESULT_TOTAL_ID, RESULT_LOAD_START_TIME, RESULT_LOAD_END_TIME, RESULT_LOAD_DURATION,
     LOAD_STANDARD_TIME_ID, LOADER_ID, RESULT_ISCLEAR, DELETE_NAME, DELETE_TIME, INSERT_USERNAME,
     INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, STATUS, RESULT_MEASURED_TONNAGE,
-    LOADING_ID, MATERIAL_ID, LOADING_SEQUENCE, ISDEDUCT, SEGMENT_SQE
-    </sql>
-    <sql id="columns_alias">
-        t.RESULT_ID, t.RESULT_TOTAL_ID, t.RESULT_LOAD_START_TIME, t.RESULT_LOAD_END_TIME,
+    LOADING_ID, MATERIAL_ID, LOADING_SEQUENCE, ISDEDUCT, SEGMENT_SQE, CASE_NUMBER, CASE_NUMBERTWO,
+    CAPACITY_REMARK
+  </sql>
+  <sql id="columns_alias">
+    t.RESULT_ID, t.RESULT_TOTAL_ID, t.RESULT_LOAD_START_TIME, t.RESULT_LOAD_END_TIME,
     t.RESULT_LOAD_DURATION, t.LOAD_STANDARD_TIME_ID, t.LOADER_ID, t.RESULT_ISCLEAR, t.DELETE_NAME,
     t.DELETE_TIME, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME,
     t.INSERT_UPDATE_REMARK, t.STATUS, t.RESULT_MEASURED_TONNAGE, t.LOADING_ID, t.MATERIAL_ID,
-    t.LOADING_SEQUENCE, t.ISDEDUCT, t.SEGMENT_SQE
-    </sql>
-    <sql id="select">
-        SELECT <include refid="columns"/> FROM TMSTRUCK_LOAD_RESULT
-    </sql>
-    <sql id="select_alias">
-        SELECT <include refid="columns_alias"/> FROM TMSTRUCK_LOAD_RESULT t
-    </sql>
-    <sql id="where">
-        <where>
-            <if test="resultId != null">
-                and RESULT_ID = #{resultId}
-            </if>
-            <if test="resultTotalId != null">
-                and RESULT_TOTAL_ID = #{resultTotalId}
-            </if>
-            <if test="resultLoadStartTime != null">
-                and TO_CHAR(RESULT_LOAD_START_TIME,'yyyy-MM-dd') = #{resultLoadStartTime}
-            </if>
-            <if test="resultLoadEndTime != null">
-                and TO_CHAR(RESULT_LOAD_END_TIME,'yyyy-MM-dd') = #{resultLoadEndTime}
-            </if>
-            <if test="resultLoadDuration != null">
-                and RESULT_LOAD_DURATION = #{resultLoadDuration}
-            </if>
-            <if test="loadStandardTimeId != null">
-                and LOAD_STANDARD_TIME_ID = #{loadStandardTimeId}
-            </if>
-            <if test="loaderId != null">
-                and LOADER_ID = #{loaderId}
-            </if>
-            <if test="resultIsclear != null and resultIsclear != ''">
-                and RESULT_ISCLEAR = #{resultIsclear}
-            </if>
-            <if test="deleteName != null and deleteName != ''">
-                and DELETE_NAME = #{deleteName}
-            </if>
-            <if test="deleteTime != null">
-                and TO_CHAR(DELETE_TIME,'yyyy-MM-dd') = #{deleteTime}
-            </if>
-            <if test="insertUsername != null and insertUsername != ''">
-                and INSERT_USERNAME = #{insertUsername}
-            </if>
-            <if test="insertTime != null">
-                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
-            </if>
-            <if test="updateUsername != null and updateUsername != ''">
-                and UPDATE_USERNAME = #{updateUsername}
-            </if>
-            <if test="updateTime != null">
-                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
-            </if>
-            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
-                and INSERT_UPDATE_REMARK = #{insertUpdateRemark}
-            </if>
-            <if test="status != null">
-                and STATUS = #{status}
-            </if>
-            <if test="resultMeasuredTonnage != null">
-                and RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage}
-            </if>
-            <if test="loadingId != null">
-                and LOADING_ID = #{loadingId}
-            </if>
-            <if test="materialId != null">
-                and MATERIAL_ID = #{materialId}
-            </if>
-            <if test="loadingSequence != null">
-                and LOADING_SEQUENCE = #{loadingSequence}
-            </if>
-            <if test="isdeduct != null">
-                and ISDEDUCT = #{isdeduct}
-            </if>
-            <if test="segmentSqe != null">
-                and SEGMENT_SQE = #{segmentSqe}
-            </if>
-        </where>
-    </sql>
-    <sql id="whereLike">
-        <where>
-            <if test="resultId != null">
-                and RESULT_ID = #{resultId}
-            </if>
-            <if test="resultTotalId != null">
-                and RESULT_TOTAL_ID = #{resultTotalId}
-            </if>
-            <if test="resultLoadStartTime != null">
-                and TO_CHAR(RESULT_LOAD_START_TIME,'yyyy-MM-dd') = #{resultLoadStartTime}
-            </if>
-            <if test="resultLoadEndTime != null">
-                and TO_CHAR(RESULT_LOAD_END_TIME,'yyyy-MM-dd') = #{resultLoadEndTime}
-            </if>
-            <if test="resultLoadDuration != null">
-                and RESULT_LOAD_DURATION = #{resultLoadDuration}
-            </if>
-            <if test="loadStandardTimeId != null">
-                and LOAD_STANDARD_TIME_ID = #{loadStandardTimeId}
-            </if>
-            <if test="loaderId != null">
-                and LOADER_ID = #{loaderId}
-            </if>
-            <if test="resultIsclear != null and resultIsclear != ''">
-                and RESULT_ISCLEAR LIKE '%${resultIsclear}%'
-            </if>
-            <if test="deleteName != null and deleteName != ''">
-                and DELETE_NAME LIKE '%${deleteName}%'
-            </if>
-            <if test="deleteTime != null">
-                and TO_CHAR(DELETE_TIME,'yyyy-MM-dd') = #{deleteTime}
-            </if>
-            <if test="insertUsername != null and insertUsername != ''">
-                and INSERT_USERNAME LIKE '%${insertUsername}%'
-            </if>
-            <if test="insertTime != null">
-                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
-            </if>
-            <if test="updateUsername != null and updateUsername != ''">
-                and UPDATE_USERNAME LIKE '%${updateUsername}%'
-            </if>
-            <if test="updateTime != null">
-                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
-            </if>
-            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
-                and INSERT_UPDATE_REMARK LIKE '%${insertUpdateRemark}%'
-            </if>
-            <if test="status != null">
-                and STATUS = #{status}
-            </if>
-            <if test="resultMeasuredTonnage != null">
-                and RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage}
-            </if>
-            <if test="loadingId != null">
-                and LOADING_ID = #{loadingId}
-            </if>
-            <if test="materialId != null">
-                and MATERIAL_ID = #{materialId}
-            </if>
-            <if test="loadingSequence != null">
-                and LOADING_SEQUENCE = #{loadingSequence}
-            </if>
-            <if test="isdeduct != null">
-                and ISDEDUCT = #{isdeduct}
-            </if>
-            <if test="segmentSqe != null">
-                and SEGMENT_SQE = #{segmentSqe}
-            </if>
-        </where>
-    </sql>
-    <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
-        delete from TMSTRUCK_LOAD_RESULT
-        where RESULT_ID = #{resultId,jdbcType=DECIMAL}
-    </delete>
-    <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
-        delete from TMSTRUCK_LOAD_RESULT
-        where 1!=1
-        <if test="resultTotalId != null">
-            or RESULT_TOTAL_ID = #{resultTotalId}
-        </if>
-        <if test="resultLoadStartTime != null">
-            or TO_CHAR(RESULT_LOAD_START_TIME,'yyyy-MM-dd') = '#{resultLoadStartTime}'
-        </if>
-        <if test="resultLoadEndTime != null">
-            or TO_CHAR(RESULT_LOAD_END_TIME,'yyyy-MM-dd') = '#{resultLoadEndTime}'
-        </if>
-        <if test="resultLoadDuration != null">
-            or RESULT_LOAD_DURATION = #{resultLoadDuration}
-        </if>
-        <if test="loadStandardTimeId != null">
-            or LOAD_STANDARD_TIME_ID = #{loadStandardTimeId}
-        </if>
-        <if test="loaderId != null">
-            or LOADER_ID = #{loaderId}
-        </if>
-        <if test="resultIsclear != null and resultIsclear != ''">
-            or RESULT_ISCLEAR = #{resultIsclear}
-        </if>
-        <if test="deleteName != null and deleteName != ''">
-            or DELETE_NAME = #{deleteName}
-        </if>
-        <if test="deleteTime != null">
-            or TO_CHAR(DELETE_TIME,'yyyy-MM-dd') = '#{deleteTime}'
-        </if>
-        <if test="insertUsername != null and insertUsername != ''">
-            or INSERT_USERNAME = #{insertUsername}
-        </if>
-        <if test="insertTime != null">
-            or TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = '#{insertTime}'
-        </if>
-        <if test="updateUsername != null and updateUsername != ''">
-            or UPDATE_USERNAME = #{updateUsername}
-        </if>
-        <if test="updateTime != null">
-            or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
-        </if>
-        <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
-            or INSERT_UPDATE_REMARK = #{insertUpdateRemark}
-        </if>
-        <if test="status != null">
-            or STATUS = #{status}
-        </if>
-        <if test="resultMeasuredTonnage != null">
-            or RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage}
-        </if>
-        <if test="loadingId != null">
-            or LOADING_ID = #{loadingId}
-        </if>
-        <if test="materialId != null">
-            or MATERIAL_ID = #{materialId}
-        </if>
-        <if test="loadingSequence != null">
-            or LOADING_SEQUENCE = #{loadingSequence}
-        </if>
-        <if test="isdeduct != null">
-            or ISDEDUCT = #{isdeduct}
-        </if>
-        <if test="segmentSqe != null">
-            or SEGMENT_SQE = #{segmentSqe}
-        </if>
-    </delete>
-    <insert id="insert" parameterType="com.steerinfo.dil.model.TmstruckLoadResult">
-        insert into TMSTRUCK_LOAD_RESULT (RESULT_ID, RESULT_TOTAL_ID, RESULT_LOAD_START_TIME,
-                                          RESULT_LOAD_END_TIME, RESULT_LOAD_DURATION,
-                                          LOAD_STANDARD_TIME_ID, LOADER_ID, RESULT_ISCLEAR,
-                                          DELETE_NAME, DELETE_TIME, INSERT_USERNAME,
-                                          INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME,
-                                          INSERT_UPDATE_REMARK, STATUS, RESULT_MEASURED_TONNAGE,
-                                          LOADING_ID, MATERIAL_ID, LOADING_SEQUENCE,
-                                          ISDEDUCT, SEGMENT_SQE)
-        values (#{resultId,jdbcType=DECIMAL}, #{resultTotalId,jdbcType=DECIMAL}, #{resultLoadStartTime,jdbcType=TIMESTAMP},
-                #{resultLoadEndTime,jdbcType=TIMESTAMP}, #{resultLoadDuration,jdbcType=DECIMAL},
-                #{loadStandardTimeId,jdbcType=DECIMAL}, #{loaderId,jdbcType=DECIMAL}, #{resultIsclear,jdbcType=VARCHAR},
-                #{deleteName,jdbcType=VARCHAR}, #{deleteTime,jdbcType=TIMESTAMP}, #{insertUsername,jdbcType=VARCHAR},
-                #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP},
-                #{insertUpdateRemark,jdbcType=VARCHAR}, #{status,jdbcType=DECIMAL}, #{resultMeasuredTonnage,jdbcType=DECIMAL},
-                #{loadingId,jdbcType=DECIMAL}, #{materialId,jdbcType=DECIMAL}, #{loadingSequence,jdbcType=DECIMAL},
-                #{isdeduct,jdbcType=DECIMAL}, #{segmentSqe,jdbcType=DECIMAL})
-    </insert>
-    <insert id="insertSelective" parameterType="com.steerinfo.dil.model.TmstruckLoadResult">
-        insert into TMSTRUCK_LOAD_RESULT
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="resultId != null">
-                RESULT_ID,
-            </if>
-            <if test="resultTotalId != null">
-                RESULT_TOTAL_ID,
-            </if>
-            <if test="resultLoadStartTime != null">
-                RESULT_LOAD_START_TIME,
-            </if>
-            <if test="resultLoadEndTime != null">
-                RESULT_LOAD_END_TIME,
-            </if>
-            <if test="resultLoadDuration != null">
-                RESULT_LOAD_DURATION,
-            </if>
-            <if test="loadStandardTimeId != null">
-                LOAD_STANDARD_TIME_ID,
-            </if>
-            <if test="loaderId != null">
-                LOADER_ID,
-            </if>
-            <if test="resultIsclear != null">
-                RESULT_ISCLEAR,
-            </if>
-            <if test="deleteName != null">
-                DELETE_NAME,
-            </if>
-            <if test="deleteTime != null">
-                DELETE_TIME,
-            </if>
-            <if test="insertUsername != null">
-                INSERT_USERNAME,
-            </if>
-            <if test="insertTime != null">
-                INSERT_TIME,
-            </if>
-            <if test="updateUsername != null">
-                UPDATE_USERNAME,
-            </if>
-            <if test="updateTime != null">
-                UPDATE_TIME,
-            </if>
-            <if test="insertUpdateRemark != null">
-                INSERT_UPDATE_REMARK,
-            </if>
-            <if test="status != null">
-                STATUS,
-            </if>
-            <if test="resultMeasuredTonnage != null">
-                RESULT_MEASURED_TONNAGE,
-            </if>
-            <if test="loadingId != null">
-                LOADING_ID,
-            </if>
-            <if test="materialId != null">
-                MATERIAL_ID,
-            </if>
-            <if test="loadingSequence != null">
-                LOADING_SEQUENCE,
-            </if>
-            <if test="isdeduct != null">
-                ISDEDUCT,
-            </if>
-            <if test="segmentSqe != null">
-                SEGMENT_SQE,
-            </if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="resultId != null">
-                #{resultId,jdbcType=DECIMAL},
-            </if>
-            <if test="resultTotalId != null">
-                #{resultTotalId,jdbcType=DECIMAL},
-            </if>
-            <if test="resultLoadStartTime != null">
-                #{resultLoadStartTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="resultLoadEndTime != null">
-                #{resultLoadEndTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="resultLoadDuration != null">
-                #{resultLoadDuration,jdbcType=DECIMAL},
-            </if>
-            <if test="loadStandardTimeId != null">
-                #{loadStandardTimeId,jdbcType=DECIMAL},
-            </if>
-            <if test="loaderId != null">
-                #{loaderId,jdbcType=DECIMAL},
-            </if>
-            <if test="resultIsclear != null">
-                #{resultIsclear,jdbcType=VARCHAR},
-            </if>
-            <if test="deleteName != null">
-                #{deleteName,jdbcType=VARCHAR},
-            </if>
-            <if test="deleteTime != null">
-                #{deleteTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="insertUsername != null">
-                #{insertUsername,jdbcType=VARCHAR},
-            </if>
-            <if test="insertTime != null">
-                #{insertTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="updateUsername != null">
-                #{updateUsername,jdbcType=VARCHAR},
-            </if>
-            <if test="updateTime != null">
-                #{updateTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="insertUpdateRemark != null">
-                #{insertUpdateRemark,jdbcType=VARCHAR},
-            </if>
-            <if test="status != null">
-                #{status,jdbcType=DECIMAL},
-            </if>
-            <if test="resultMeasuredTonnage != null">
-                #{resultMeasuredTonnage,jdbcType=DECIMAL},
-            </if>
-            <if test="loadingId != null">
-                #{loadingId,jdbcType=DECIMAL},
-            </if>
-            <if test="materialId != null">
-                #{materialId,jdbcType=DECIMAL},
-            </if>
-            <if test="loadingSequence != null">
-                #{loadingSequence,jdbcType=DECIMAL},
-            </if>
-            <if test="isdeduct != null">
-                #{isdeduct,jdbcType=DECIMAL},
-            </if>
-            <if test="segmentSqe != null">
-                #{segmentSqe,jdbcType=DECIMAL},
-            </if>
-        </trim>
-    </insert>
-    <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.TmstruckLoadResult">
-        update TMSTRUCK_LOAD_RESULT
-        set RESULT_TOTAL_ID = #{resultTotalId,jdbcType=DECIMAL},
-            RESULT_LOAD_START_TIME = #{resultLoadStartTime,jdbcType=TIMESTAMP},
-            RESULT_LOAD_END_TIME = #{resultLoadEndTime,jdbcType=TIMESTAMP},
-            RESULT_LOAD_DURATION = #{resultLoadDuration,jdbcType=DECIMAL},
-            LOAD_STANDARD_TIME_ID = #{loadStandardTimeId,jdbcType=DECIMAL},
-            LOADER_ID = #{loaderId,jdbcType=DECIMAL},
-            RESULT_ISCLEAR = #{resultIsclear,jdbcType=VARCHAR},
-            DELETE_NAME = #{deleteName,jdbcType=VARCHAR},
-            DELETE_TIME = #{deleteTime,jdbcType=TIMESTAMP},
-            INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
-            INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
-            UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
-            UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
-            INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
-            STATUS = #{status,jdbcType=DECIMAL},
-            RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage,jdbcType=DECIMAL},
-            LOADING_ID = #{loadingId,jdbcType=DECIMAL},
-            MATERIAL_ID = #{materialId,jdbcType=DECIMAL},
-            LOADING_SEQUENCE = #{loadingSequence,jdbcType=DECIMAL},
-            ISDEDUCT = #{isdeduct,jdbcType=DECIMAL},
-            SEGMENT_SQE = #{segmentSqe,jdbcType=DECIMAL}
-        where RESULT_ID = #{resultId,jdbcType=DECIMAL}
-    </update>
-    <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.TmstruckLoadResult">
-        update TMSTRUCK_LOAD_RESULT
-        <set>
-            <if test="resultTotalId != null">
-                RESULT_TOTAL_ID = #{resultTotalId,jdbcType=DECIMAL},
-            </if>
-            <if test="resultLoadStartTime != null">
-                RESULT_LOAD_START_TIME = #{resultLoadStartTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="resultLoadEndTime != null">
-                RESULT_LOAD_END_TIME = #{resultLoadEndTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="resultLoadDuration != null">
-                RESULT_LOAD_DURATION = #{resultLoadDuration,jdbcType=DECIMAL},
-            </if>
-            <if test="loadStandardTimeId != null">
-                LOAD_STANDARD_TIME_ID = #{loadStandardTimeId,jdbcType=DECIMAL},
-            </if>
-            <if test="loaderId != null">
-                LOADER_ID = #{loaderId,jdbcType=DECIMAL},
-            </if>
-            <if test="resultIsclear != null">
-                RESULT_ISCLEAR = #{resultIsclear,jdbcType=VARCHAR},
-            </if>
-            <if test="deleteName != null">
-                DELETE_NAME = #{deleteName,jdbcType=VARCHAR},
-            </if>
-            <if test="deleteTime != null">
-                DELETE_TIME = #{deleteTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="insertUsername != null">
-                INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
-            </if>
-            <if test="insertTime != null">
-                INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="updateUsername != null">
-                UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
-            </if>
-            <if test="updateTime != null">
-                UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="insertUpdateRemark != null">
-                INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
-            </if>
-            <if test="status != null">
-                STATUS = #{status,jdbcType=DECIMAL},
-            </if>
-            <if test="resultMeasuredTonnage != null">
-                RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage,jdbcType=DECIMAL},
-            </if>
-            <if test="loadingId != null">
-                LOADING_ID = #{loadingId,jdbcType=DECIMAL},
-            </if>
-            <if test="materialId != null">
-                MATERIAL_ID = #{materialId,jdbcType=DECIMAL},
-            </if>
-            <if test="loadingSequence != null">
-                LOADING_SEQUENCE = #{loadingSequence,jdbcType=DECIMAL},
-            </if>
-            <if test="isdeduct != null">
-                ISDEDUCT = #{isdeduct,jdbcType=DECIMAL},
-            </if>
-            <if test="segmentSqe != null">
-                SEGMENT_SQE = #{segmentSqe,jdbcType=DECIMAL},
-            </if>
-        </set>
-        where RESULT_ID = #{resultId,jdbcType=DECIMAL}
-    </update>
-    <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
-        <include refid="select"/>
-        where RESULT_ID = #{resultId,jdbcType=DECIMAL}
-    </select>
-    <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
-        <include refid="select"/>
-        <include refid="where"/>
-    </select>
-    <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
-        <include refid="select"/>
-        <include refid="whereLike"/>
-    </select>
-    <insert id="batchInsert" parameterType="java.util.List">
-        insert into TMSTRUCK_LOAD_RESULT
-        (RESULT_ID,
-        RESULT_TOTAL_ID, RESULT_LOAD_START_TIME,
-        RESULT_LOAD_END_TIME, RESULT_LOAD_DURATION,
-        LOAD_STANDARD_TIME_ID, LOADER_ID,
-        RESULT_ISCLEAR, DELETE_NAME, DELETE_TIME,
-        INSERT_USERNAME, INSERT_TIME,
-        UPDATE_USERNAME, UPDATE_TIME,
-        INSERT_UPDATE_REMARK, STATUS, RESULT_MEASURED_TONNAGE,
-        LOADING_ID, MATERIAL_ID, LOADING_SEQUENCE,
-        ISDEDUCT, SEGMENT_SQE)
-        ( <foreach collection="list" item="item" separator="union all">
-        select
-        #{item.resultId,jdbcType=DECIMAL},
-        #{item.resultTotalId,jdbcType=DECIMAL}, #{item.resultLoadStartTime,jdbcType=TIMESTAMP},
-        #{item.resultLoadEndTime,jdbcType=TIMESTAMP}, #{item.resultLoadDuration,jdbcType=DECIMAL},
-        #{item.loadStandardTimeId,jdbcType=DECIMAL}, #{item.loaderId,jdbcType=DECIMAL},
-        #{item.resultIsclear,jdbcType=VARCHAR}, #{item.deleteName,jdbcType=VARCHAR}, #{item.deleteTime,jdbcType=TIMESTAMP},
-        #{item.insertUsername,jdbcType=VARCHAR}, #{item.insertTime,jdbcType=TIMESTAMP},
-        #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
-        #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.status,jdbcType=DECIMAL}, #{item.resultMeasuredTonnage,jdbcType=DECIMAL},
-        #{item.loadingId,jdbcType=DECIMAL}, #{item.materialId,jdbcType=DECIMAL}, #{item.loadingSequence,jdbcType=DECIMAL},
-        #{item.isdeduct,jdbcType=DECIMAL}, #{item.segmentSqe,jdbcType=DECIMAL} from dual
-    </foreach> )
-    </insert>
-    <update id="batchUpdate" parameterType="java.util.List">
-        update TMSTRUCK_LOAD_RESULT
-        set
-        RESULT_ID=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.resultId,jdbcType=DECIMAL}
-        </foreach>
-        ,RESULT_TOTAL_ID=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.resultTotalId,jdbcType=DECIMAL}
-        </foreach>
-        ,RESULT_LOAD_START_TIME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.resultLoadStartTime,jdbcType=TIMESTAMP}
-        </foreach>
-        ,RESULT_LOAD_END_TIME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.resultLoadEndTime,jdbcType=TIMESTAMP}
-        </foreach>
-        ,RESULT_LOAD_DURATION=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.resultLoadDuration,jdbcType=DECIMAL}
-        </foreach>
-        ,LOAD_STANDARD_TIME_ID=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.loadStandardTimeId,jdbcType=DECIMAL}
-        </foreach>
-        ,LOADER_ID=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.loaderId,jdbcType=DECIMAL}
-        </foreach>
-        ,RESULT_ISCLEAR=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.resultIsclear,jdbcType=VARCHAR}
-        </foreach>
-        ,DELETE_NAME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.deleteName,jdbcType=VARCHAR}
-        </foreach>
-        ,DELETE_TIME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.deleteTime,jdbcType=TIMESTAMP}
-        </foreach>
-        ,INSERT_USERNAME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
-        </foreach>
-        ,INSERT_TIME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
-        </foreach>
-        ,UPDATE_USERNAME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
-        </foreach>
-        ,UPDATE_TIME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
-        </foreach>
-        ,INSERT_UPDATE_REMARK=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
-        </foreach>
-        ,STATUS=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.status,jdbcType=DECIMAL}
-        </foreach>
-        ,RESULT_MEASURED_TONNAGE=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.resultMeasuredTonnage,jdbcType=DECIMAL}
+    t.LOADING_SEQUENCE, t.ISDEDUCT, t.SEGMENT_SQE, t.CASE_NUMBER, t.CASE_NUMBERTWO, t.CAPACITY_REMARK
+  </sql>
+  <sql id="select">
+    SELECT <include refid="columns" /> FROM TMSTRUCK_LOAD_RESULT
+  </sql>
+  <sql id="select_alias">
+    SELECT <include refid="columns_alias" /> FROM TMSTRUCK_LOAD_RESULT t
+  </sql>
+  <sql id="where">
+    <where>
+      <if test="resultId != null">
+        and RESULT_ID = #{resultId}
+      </if>
+      <if test="resultTotalId != null">
+        and RESULT_TOTAL_ID = #{resultTotalId}
+      </if>
+      <if test="resultLoadStartTime != null">
+        and TO_CHAR(RESULT_LOAD_START_TIME,'yyyy-MM-dd') = #{resultLoadStartTime}
+      </if>
+      <if test="resultLoadEndTime != null">
+        and TO_CHAR(RESULT_LOAD_END_TIME,'yyyy-MM-dd') = #{resultLoadEndTime}
+      </if>
+      <if test="resultLoadDuration != null">
+        and RESULT_LOAD_DURATION = #{resultLoadDuration}
+      </if>
+      <if test="loadStandardTimeId != null">
+        and LOAD_STANDARD_TIME_ID = #{loadStandardTimeId}
+      </if>
+      <if test="loaderId != null">
+        and LOADER_ID = #{loaderId}
+      </if>
+      <if test="resultIsclear != null and resultIsclear != ''">
+        and RESULT_ISCLEAR = #{resultIsclear}
+      </if>
+      <if test="deleteName != null and deleteName != ''">
+        and DELETE_NAME = #{deleteName}
+      </if>
+      <if test="deleteTime != null">
+        and TO_CHAR(DELETE_TIME,'yyyy-MM-dd') = #{deleteTime}
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        and INSERT_USERNAME = #{insertUsername}
+      </if>
+      <if test="insertTime != null">
+        and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+      </if>
+      <if test="updateUsername != null and updateUsername != ''">
+        and UPDATE_USERNAME = #{updateUsername}
+      </if>
+      <if test="updateTime != null">
+        and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+      </if>
+      <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+        and INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+      </if>
+      <if test="status != null">
+        and STATUS = #{status}
+      </if>
+      <if test="resultMeasuredTonnage != null">
+        and RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage}
+      </if>
+      <if test="loadingId != null">
+        and LOADING_ID = #{loadingId}
+      </if>
+      <if test="materialId != null">
+        and MATERIAL_ID = #{materialId}
+      </if>
+      <if test="loadingSequence != null">
+        and LOADING_SEQUENCE = #{loadingSequence}
+      </if>
+      <if test="isdeduct != null">
+        and ISDEDUCT = #{isdeduct}
+      </if>
+      <if test="segmentSqe != null">
+        and SEGMENT_SQE = #{segmentSqe}
+      </if>
+      <if test="caseNumber != null and caseNumber != ''">
+        and CASE_NUMBER = #{caseNumber}
+      </if>
+      <if test="caseNumbertwo != null and caseNumbertwo != ''">
+        and CASE_NUMBERTWO = #{caseNumbertwo}
+      </if>
+      <if test="capacityRemark != null and capacityRemark != ''">
+        and CAPACITY_REMARK = #{capacityRemark}
+      </if>
+    </where>
+  </sql>
+  <sql id="whereLike">
+    <where>
+      <if test="resultId != null">
+        and RESULT_ID = #{resultId}
+      </if>
+      <if test="resultTotalId != null">
+        and RESULT_TOTAL_ID = #{resultTotalId}
+      </if>
+      <if test="resultLoadStartTime != null">
+        and TO_CHAR(RESULT_LOAD_START_TIME,'yyyy-MM-dd') = #{resultLoadStartTime}
+      </if>
+      <if test="resultLoadEndTime != null">
+        and TO_CHAR(RESULT_LOAD_END_TIME,'yyyy-MM-dd') = #{resultLoadEndTime}
+      </if>
+      <if test="resultLoadDuration != null">
+        and RESULT_LOAD_DURATION = #{resultLoadDuration}
+      </if>
+      <if test="loadStandardTimeId != null">
+        and LOAD_STANDARD_TIME_ID = #{loadStandardTimeId}
+      </if>
+      <if test="loaderId != null">
+        and LOADER_ID = #{loaderId}
+      </if>
+      <if test="resultIsclear != null and resultIsclear != ''">
+        and RESULT_ISCLEAR LIKE '%${resultIsclear}%'
+      </if>
+      <if test="deleteName != null and deleteName != ''">
+        and DELETE_NAME LIKE '%${deleteName}%'
+      </if>
+      <if test="deleteTime != null">
+        and TO_CHAR(DELETE_TIME,'yyyy-MM-dd') = #{deleteTime}
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        and INSERT_USERNAME LIKE '%${insertUsername}%'
+      </if>
+      <if test="insertTime != null">
+        and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+      </if>
+      <if test="updateUsername != null and updateUsername != ''">
+        and UPDATE_USERNAME LIKE '%${updateUsername}%'
+      </if>
+      <if test="updateTime != null">
+        and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+      </if>
+      <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+        and INSERT_UPDATE_REMARK LIKE '%${insertUpdateRemark}%'
+      </if>
+      <if test="status != null">
+        and STATUS = #{status}
+      </if>
+      <if test="resultMeasuredTonnage != null">
+        and RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage}
+      </if>
+      <if test="loadingId != null">
+        and LOADING_ID = #{loadingId}
+      </if>
+      <if test="materialId != null">
+        and MATERIAL_ID = #{materialId}
+      </if>
+      <if test="loadingSequence != null">
+        and LOADING_SEQUENCE = #{loadingSequence}
+      </if>
+      <if test="isdeduct != null">
+        and ISDEDUCT = #{isdeduct}
+      </if>
+      <if test="segmentSqe != null">
+        and SEGMENT_SQE = #{segmentSqe}
+      </if>
+      <if test="caseNumber != null and caseNumber != ''">
+        and CASE_NUMBER LIKE '%${caseNumber}%'
+      </if>
+      <if test="caseNumbertwo != null and caseNumbertwo != ''">
+        and CASE_NUMBERTWO LIKE '%${caseNumbertwo}%'
+      </if>
+      <if test="capacityRemark != null and capacityRemark != ''">
+        and CAPACITY_REMARK LIKE '%${capacityRemark}%'
+      </if>
+    </where>
+  </sql>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Short">
+    delete from TMSTRUCK_LOAD_RESULT
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </delete>
+  <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
+    delete from TMSTRUCK_LOAD_RESULT
+    where 1!=1
+    <if test="resultTotalId != null">
+      or RESULT_TOTAL_ID = #{resultTotalId}
+    </if>
+    <if test="resultLoadStartTime != null">
+      or TO_CHAR(RESULT_LOAD_START_TIME,'yyyy-MM-dd') = '#{resultLoadStartTime}'
+    </if>
+    <if test="resultLoadEndTime != null">
+      or TO_CHAR(RESULT_LOAD_END_TIME,'yyyy-MM-dd') = '#{resultLoadEndTime}'
+    </if>
+    <if test="resultLoadDuration != null">
+      or RESULT_LOAD_DURATION = #{resultLoadDuration}
+    </if>
+    <if test="loadStandardTimeId != null">
+      or LOAD_STANDARD_TIME_ID = #{loadStandardTimeId}
+    </if>
+    <if test="loaderId != null">
+      or LOADER_ID = #{loaderId}
+    </if>
+    <if test="resultIsclear != null and resultIsclear != ''">
+      or RESULT_ISCLEAR = #{resultIsclear}
+    </if>
+    <if test="deleteName != null and deleteName != ''">
+      or DELETE_NAME = #{deleteName}
+    </if>
+    <if test="deleteTime != null">
+      or TO_CHAR(DELETE_TIME,'yyyy-MM-dd') = '#{deleteTime}'
+    </if>
+    <if test="insertUsername != null and insertUsername != ''">
+      or INSERT_USERNAME = #{insertUsername}
+    </if>
+    <if test="insertTime != null">
+      or TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = '#{insertTime}'
+    </if>
+    <if test="updateUsername != null and updateUsername != ''">
+      or UPDATE_USERNAME = #{updateUsername}
+    </if>
+    <if test="updateTime != null">
+      or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
+    </if>
+    <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+      or INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+    </if>
+    <if test="status != null">
+      or STATUS = #{status}
+    </if>
+    <if test="resultMeasuredTonnage != null">
+      or RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage}
+    </if>
+    <if test="loadingId != null">
+      or LOADING_ID = #{loadingId}
+    </if>
+    <if test="materialId != null">
+      or MATERIAL_ID = #{materialId}
+    </if>
+    <if test="loadingSequence != null">
+      or LOADING_SEQUENCE = #{loadingSequence}
+    </if>
+    <if test="isdeduct != null">
+      or ISDEDUCT = #{isdeduct}
+    </if>
+    <if test="segmentSqe != null">
+      or SEGMENT_SQE = #{segmentSqe}
+    </if>
+    <if test="caseNumber != null and caseNumber != ''">
+      or CASE_NUMBER = #{caseNumber}
+    </if>
+    <if test="caseNumbertwo != null and caseNumbertwo != ''">
+      or CASE_NUMBERTWO = #{caseNumbertwo}
+    </if>
+    <if test="capacityRemark != null and capacityRemark != ''">
+      or CAPACITY_REMARK = #{capacityRemark}
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.steerinfo.dil.model.TmstruckLoadResult">
+    insert into TMSTRUCK_LOAD_RESULT (RESULT_ID, RESULT_TOTAL_ID, RESULT_LOAD_START_TIME,
+                                      RESULT_LOAD_END_TIME, RESULT_LOAD_DURATION,
+                                      LOAD_STANDARD_TIME_ID, LOADER_ID, RESULT_ISCLEAR,
+                                      DELETE_NAME, DELETE_TIME, INSERT_USERNAME,
+                                      INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME,
+                                      INSERT_UPDATE_REMARK, STATUS, RESULT_MEASURED_TONNAGE,
+                                      LOADING_ID, MATERIAL_ID, LOADING_SEQUENCE,
+                                      ISDEDUCT, SEGMENT_SQE, CASE_NUMBER,
+                                      CASE_NUMBERTWO, CAPACITY_REMARK)
+    values (#{resultId,jdbcType=DECIMAL}, #{resultTotalId,jdbcType=DECIMAL}, #{resultLoadStartTime,jdbcType=TIMESTAMP},
+            #{resultLoadEndTime,jdbcType=TIMESTAMP}, #{resultLoadDuration,jdbcType=DECIMAL},
+            #{loadStandardTimeId,jdbcType=DECIMAL}, #{loaderId,jdbcType=DECIMAL}, #{resultIsclear,jdbcType=VARCHAR},
+            #{deleteName,jdbcType=VARCHAR}, #{deleteTime,jdbcType=TIMESTAMP}, #{insertUsername,jdbcType=VARCHAR},
+            #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP},
+            #{insertUpdateRemark,jdbcType=VARCHAR}, #{status,jdbcType=DECIMAL}, #{resultMeasuredTonnage,jdbcType=DECIMAL},
+            #{loadingId,jdbcType=DECIMAL}, #{materialId,jdbcType=DECIMAL}, #{loadingSequence,jdbcType=DECIMAL},
+            #{isdeduct,jdbcType=DECIMAL}, #{segmentSqe,jdbcType=DECIMAL}, #{caseNumber,jdbcType=VARCHAR},
+            #{caseNumbertwo,jdbcType=VARCHAR}, #{capacityRemark,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.steerinfo.dil.model.TmstruckLoadResult">
+    insert into TMSTRUCK_LOAD_RESULT
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="resultId != null">
+        RESULT_ID,
+      </if>
+      <if test="resultTotalId != null">
+        RESULT_TOTAL_ID,
+      </if>
+      <if test="resultLoadStartTime != null">
+        RESULT_LOAD_START_TIME,
+      </if>
+      <if test="resultLoadEndTime != null">
+        RESULT_LOAD_END_TIME,
+      </if>
+      <if test="resultLoadDuration != null">
+        RESULT_LOAD_DURATION,
+      </if>
+      <if test="loadStandardTimeId != null">
+        LOAD_STANDARD_TIME_ID,
+      </if>
+      <if test="loaderId != null">
+        LOADER_ID,
+      </if>
+      <if test="resultIsclear != null">
+        RESULT_ISCLEAR,
+      </if>
+      <if test="deleteName != null">
+        DELETE_NAME,
+      </if>
+      <if test="deleteTime != null">
+        DELETE_TIME,
+      </if>
+      <if test="insertUsername != null">
+        INSERT_USERNAME,
+      </if>
+      <if test="insertTime != null">
+        INSERT_TIME,
+      </if>
+      <if test="updateUsername != null">
+        UPDATE_USERNAME,
+      </if>
+      <if test="updateTime != null">
+        UPDATE_TIME,
+      </if>
+      <if test="insertUpdateRemark != null">
+        INSERT_UPDATE_REMARK,
+      </if>
+      <if test="status != null">
+        STATUS,
+      </if>
+      <if test="resultMeasuredTonnage != null">
+        RESULT_MEASURED_TONNAGE,
+      </if>
+      <if test="loadingId != null">
+        LOADING_ID,
+      </if>
+      <if test="materialId != null">
+        MATERIAL_ID,
+      </if>
+      <if test="loadingSequence != null">
+        LOADING_SEQUENCE,
+      </if>
+      <if test="isdeduct != null">
+        ISDEDUCT,
+      </if>
+      <if test="segmentSqe != null">
+        SEGMENT_SQE,
+      </if>
+      <if test="caseNumber != null">
+        CASE_NUMBER,
+      </if>
+      <if test="caseNumbertwo != null">
+        CASE_NUMBERTWO,
+      </if>
+      <if test="capacityRemark != null">
+        CAPACITY_REMARK,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="resultId != null">
+        #{resultId,jdbcType=DECIMAL},
+      </if>
+      <if test="resultTotalId != null">
+        #{resultTotalId,jdbcType=DECIMAL},
+      </if>
+      <if test="resultLoadStartTime != null">
+        #{resultLoadStartTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="resultLoadEndTime != null">
+        #{resultLoadEndTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="resultLoadDuration != null">
+        #{resultLoadDuration,jdbcType=DECIMAL},
+      </if>
+      <if test="loadStandardTimeId != null">
+        #{loadStandardTimeId,jdbcType=DECIMAL},
+      </if>
+      <if test="loaderId != null">
+        #{loaderId,jdbcType=DECIMAL},
+      </if>
+      <if test="resultIsclear != null">
+        #{resultIsclear,jdbcType=VARCHAR},
+      </if>
+      <if test="deleteName != null">
+        #{deleteName,jdbcType=VARCHAR},
+      </if>
+      <if test="deleteTime != null">
+        #{deleteTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUsername != null">
+        #{insertUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="insertTime != null">
+        #{insertTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUsername != null">
+        #{updateUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUpdateRemark != null">
+        #{insertUpdateRemark,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=DECIMAL},
+      </if>
+      <if test="resultMeasuredTonnage != null">
+        #{resultMeasuredTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="loadingId != null">
+        #{loadingId,jdbcType=DECIMAL},
+      </if>
+      <if test="materialId != null">
+        #{materialId,jdbcType=DECIMAL},
+      </if>
+      <if test="loadingSequence != null">
+        #{loadingSequence,jdbcType=DECIMAL},
+      </if>
+      <if test="isdeduct != null">
+        #{isdeduct,jdbcType=DECIMAL},
+      </if>
+      <if test="segmentSqe != null">
+        #{segmentSqe,jdbcType=DECIMAL},
+      </if>
+      <if test="caseNumber != null">
+        #{caseNumber,jdbcType=VARCHAR},
+      </if>
+      <if test="caseNumbertwo != null">
+        #{caseNumbertwo,jdbcType=VARCHAR},
+      </if>
+      <if test="capacityRemark != null">
+        #{capacityRemark,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.TmstruckLoadResult">
+    update TMSTRUCK_LOAD_RESULT
+    set RESULT_TOTAL_ID = #{resultTotalId,jdbcType=DECIMAL},
+        RESULT_LOAD_START_TIME = #{resultLoadStartTime,jdbcType=TIMESTAMP},
+        RESULT_LOAD_END_TIME = #{resultLoadEndTime,jdbcType=TIMESTAMP},
+        RESULT_LOAD_DURATION = #{resultLoadDuration,jdbcType=DECIMAL},
+        LOAD_STANDARD_TIME_ID = #{loadStandardTimeId,jdbcType=DECIMAL},
+        LOADER_ID = #{loaderId,jdbcType=DECIMAL},
+        RESULT_ISCLEAR = #{resultIsclear,jdbcType=VARCHAR},
+        DELETE_NAME = #{deleteName,jdbcType=VARCHAR},
+        DELETE_TIME = #{deleteTime,jdbcType=TIMESTAMP},
+        INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+        INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+        UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+        UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+        INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+        STATUS = #{status,jdbcType=DECIMAL},
+        RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage,jdbcType=DECIMAL},
+        LOADING_ID = #{loadingId,jdbcType=DECIMAL},
+        MATERIAL_ID = #{materialId,jdbcType=DECIMAL},
+        LOADING_SEQUENCE = #{loadingSequence,jdbcType=DECIMAL},
+        ISDEDUCT = #{isdeduct,jdbcType=DECIMAL},
+        SEGMENT_SQE = #{segmentSqe,jdbcType=DECIMAL},
+        CASE_NUMBER = #{caseNumber,jdbcType=VARCHAR},
+        CASE_NUMBERTWO = #{caseNumbertwo,jdbcType=VARCHAR},
+        CAPACITY_REMARK = #{capacityRemark,jdbcType=VARCHAR}
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.TmstruckLoadResult">
+    update TMSTRUCK_LOAD_RESULT
+    <set>
+      <if test="resultTotalId != null">
+        RESULT_TOTAL_ID = #{resultTotalId,jdbcType=DECIMAL},
+      </if>
+      <if test="resultLoadStartTime != null">
+        RESULT_LOAD_START_TIME = #{resultLoadStartTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="resultLoadEndTime != null">
+        RESULT_LOAD_END_TIME = #{resultLoadEndTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="resultLoadDuration != null">
+        RESULT_LOAD_DURATION = #{resultLoadDuration,jdbcType=DECIMAL},
+      </if>
+      <if test="loadStandardTimeId != null">
+        LOAD_STANDARD_TIME_ID = #{loadStandardTimeId,jdbcType=DECIMAL},
+      </if>
+      <if test="loaderId != null">
+        LOADER_ID = #{loaderId,jdbcType=DECIMAL},
+      </if>
+      <if test="resultIsclear != null">
+        RESULT_ISCLEAR = #{resultIsclear,jdbcType=VARCHAR},
+      </if>
+      <if test="deleteName != null">
+        DELETE_NAME = #{deleteName,jdbcType=VARCHAR},
+      </if>
+      <if test="deleteTime != null">
+        DELETE_TIME = #{deleteTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUsername != null">
+        INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="insertTime != null">
+        INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUsername != null">
+        UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUpdateRemark != null">
+        INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null">
+        STATUS = #{status,jdbcType=DECIMAL},
+      </if>
+      <if test="resultMeasuredTonnage != null">
+        RESULT_MEASURED_TONNAGE = #{resultMeasuredTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="loadingId != null">
+        LOADING_ID = #{loadingId,jdbcType=DECIMAL},
+      </if>
+      <if test="materialId != null">
+        MATERIAL_ID = #{materialId,jdbcType=DECIMAL},
+      </if>
+      <if test="loadingSequence != null">
+        LOADING_SEQUENCE = #{loadingSequence,jdbcType=DECIMAL},
+      </if>
+      <if test="isdeduct != null">
+        ISDEDUCT = #{isdeduct,jdbcType=DECIMAL},
+      </if>
+      <if test="segmentSqe != null">
+        SEGMENT_SQE = #{segmentSqe,jdbcType=DECIMAL},
+      </if>
+      <if test="caseNumber != null">
+        CASE_NUMBER = #{caseNumber,jdbcType=VARCHAR},
+      </if>
+      <if test="caseNumbertwo != null">
+        CASE_NUMBERTWO = #{caseNumbertwo,jdbcType=VARCHAR},
+      </if>
+      <if test="capacityRemark != null">
+        CAPACITY_REMARK = #{capacityRemark,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </update>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Short" resultMap="BaseResultMap">
+    <include refid="select" />
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </select>
+  <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select" />
+    <include refid="where" />
+  </select>
+  <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select" />
+    <include refid="whereLike" />
+  </select>
+  <insert id="batchInsert" parameterType="java.util.List">
+    insert into TMSTRUCK_LOAD_RESULT
+    (RESULT_ID,
+    RESULT_TOTAL_ID, RESULT_LOAD_START_TIME,
+    RESULT_LOAD_END_TIME, RESULT_LOAD_DURATION,
+    LOAD_STANDARD_TIME_ID, LOADER_ID,
+    RESULT_ISCLEAR, DELETE_NAME, DELETE_TIME,
+    INSERT_USERNAME, INSERT_TIME,
+    UPDATE_USERNAME, UPDATE_TIME,
+    INSERT_UPDATE_REMARK, STATUS, RESULT_MEASURED_TONNAGE,
+    LOADING_ID, MATERIAL_ID, LOADING_SEQUENCE,
+    ISDEDUCT, SEGMENT_SQE, CASE_NUMBER,
+    CASE_NUMBERTWO, CAPACITY_REMARK
+    )
+    ( <foreach collection="list" item="item" separator="union all">
+    select
+    #{item.resultId,jdbcType=DECIMAL},
+    #{item.resultTotalId,jdbcType=DECIMAL}, #{item.resultLoadStartTime,jdbcType=TIMESTAMP},
+    #{item.resultLoadEndTime,jdbcType=TIMESTAMP}, #{item.resultLoadDuration,jdbcType=DECIMAL},
+    #{item.loadStandardTimeId,jdbcType=DECIMAL}, #{item.loaderId,jdbcType=DECIMAL},
+    #{item.resultIsclear,jdbcType=VARCHAR}, #{item.deleteName,jdbcType=VARCHAR}, #{item.deleteTime,jdbcType=TIMESTAMP},
+    #{item.insertUsername,jdbcType=VARCHAR}, #{item.insertTime,jdbcType=TIMESTAMP},
+    #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
+    #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.status,jdbcType=DECIMAL}, #{item.resultMeasuredTonnage,jdbcType=DECIMAL},
+    #{item.loadingId,jdbcType=DECIMAL}, #{item.materialId,jdbcType=DECIMAL}, #{item.loadingSequence,jdbcType=DECIMAL},
+    #{item.isdeduct,jdbcType=DECIMAL}, #{item.segmentSqe,jdbcType=DECIMAL}, #{item.caseNumber,jdbcType=VARCHAR},
+    #{item.caseNumbertwo,jdbcType=VARCHAR}, #{item.capacityRemark,jdbcType=VARCHAR}
+    from dual
+  </foreach> )
+  </insert>
+  <update id="batchUpdate" parameterType="java.util.List">
+    update TMSTRUCK_LOAD_RESULT
+    set
+    RESULT_ID=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.resultId,jdbcType=DECIMAL}
+    </foreach>
+    ,RESULT_TOTAL_ID=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.resultTotalId,jdbcType=DECIMAL}
+    </foreach>
+    ,RESULT_LOAD_START_TIME=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.resultLoadStartTime,jdbcType=TIMESTAMP}
+    </foreach>
+    ,RESULT_LOAD_END_TIME=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.resultLoadEndTime,jdbcType=TIMESTAMP}
+    </foreach>
+    ,RESULT_LOAD_DURATION=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.resultLoadDuration,jdbcType=DECIMAL}
+    </foreach>
+    ,LOAD_STANDARD_TIME_ID=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.loadStandardTimeId,jdbcType=DECIMAL}
+    </foreach>
+    ,LOADER_ID=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.loaderId,jdbcType=DECIMAL}
+    </foreach>
+    ,RESULT_ISCLEAR=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.resultIsclear,jdbcType=VARCHAR}
+    </foreach>
+    ,DELETE_NAME=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.deleteName,jdbcType=VARCHAR}
+    </foreach>
+    ,DELETE_TIME=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.deleteTime,jdbcType=TIMESTAMP}
+    </foreach>
+    ,INSERT_USERNAME=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
+    </foreach>
+    ,INSERT_TIME=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
+    </foreach>
+    ,UPDATE_USERNAME=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
+    </foreach>
+    ,UPDATE_TIME=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
+    </foreach>
+    ,INSERT_UPDATE_REMARK=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
+    </foreach>
+    ,STATUS=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.status,jdbcType=DECIMAL}
+    </foreach>
+    ,RESULT_MEASURED_TONNAGE=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.resultMeasuredTonnage,jdbcType=DECIMAL}
+    </foreach>
+    ,LOADING_ID=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.loadingId,jdbcType=DECIMAL}
+    </foreach>
+    ,MATERIAL_ID=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.materialId,jdbcType=DECIMAL}
+    </foreach>
+    ,LOADING_SEQUENCE=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.loadingSequence,jdbcType=DECIMAL}
+    </foreach>
+    ,ISDEDUCT=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.isdeduct,jdbcType=DECIMAL}
+    </foreach>
+    ,SEGMENT_SQE=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.segmentSqe,jdbcType=DECIMAL}
+    </foreach>
+    ,CASE_NUMBER=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.caseNumber,jdbcType=VARCHAR}
+    </foreach>
+    ,CASE_NUMBERTWO=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.caseNumbertwo,jdbcType=VARCHAR}
+    </foreach>
+    ,CAPACITY_REMARK=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.capacityRemark,jdbcType=VARCHAR}
+    </foreach>
+    where RESULT_ID in
+    <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
+      #{item.resultId,jdbcType=DECIMAL}
+    </foreach>
+  </update>
+  <delete id="batchDelete" parameterType="java.util.List">
+    delete from TMSTRUCK_LOAD_RESULT
+    where RESULT_ID in
+    <foreach close=")" collection="list" item="id" open="(" separator=",">
+      #{id}
+    </foreach>
+  </delete>
+  <!-- 友情提示!!!-->
+  <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+  <sql id="orderBy">
+    <if test="orderField != null and orderField != ''">
+      order by "${orderField}"
+      <if test="orderType != null and orderType != ''">
+        ${orderType}
+      </if>
+    </if>
+  </sql>
+
+  <!--  获取所有装车实绩  -->
+  <select id="getCGJKLoadResult" parameterType="java.util.Map" resultType="java.util.LinkedHashMap">
+
+    select *
+    from (
+    select TLR.RESULT_ID "resultId",
+    APO.PURCHASE_ORDER_NO "purchaseOrderNo",
+    RM.MATERIAL_NAME "materialName",
+    OO.ORDER_NUMBER "orderNumber",
+    RC.CAPACITY_NUMBER "capacityNumber",
+    TLR.RESULT_MEASURED_TONNAGE "resultMeasuredTonnage",
+    TLR.RESULT_ISCLEAR "resultIsclear",
+    to_char(TLR.RESULT_LOAD_START_TIME, 'yyyy-mm-dd') "resultLoadStartTime",
+    TLR.INSERT_UPDATE_REMARK "insertUpdateRemark",
+    TLR.INSERT_TIME "insertTime",
+    RCON. CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
+    RS.SUPPLIER_NAME "supplierName"
+    from TMSTRUCK_LOAD_RESULT TLR
+    left join TMSTRUCK_TOTAL_RESULT TTR
+    on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    left join OMSTRUCK_ORDER OO
+    on TTR.ORDER_ID = OO.ORDER_ID
+    left join OMSTRUCK_ORDER_MATERIAL OOM
+    on OO.ORDER_ID = OOM.ORDER_ID
+    left join AMS_PURCHASE_ORDER APO
+    on OO.ORDER_PLAN_ID = APO.PURCHASE_ORDER_ID
+    left join DIL_BATCH DB
+    on DB.BATCH_ID = APO.BATCH_ID
+    left join RMS_MATERIAL RM
+    on OOM.MATERIAL_ID = RM.MATERIAL_ID
+    left join RMS_CAPACITY RC
+    on RC.CAPACITY_ID = OO.CAPACITY_ID
+    left join RMS_SUPPLIER RS
+    on RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
+    left join RMS_CONSIGNEE RCON
+    on RCON.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
+    where TLR.STATUS = #{status} and OO.ORDER_TYPE = #{orderTypee}
+    )
+    <where>
+      <if test="purchaseOrderId != null">
+        <foreach collection="purchaseOrderId" item="item" open="(" separator="or" close=")">
+          "purchaseOrderId" like '%${item}%'
         </foreach>
-        ,LOADING_ID=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.loadingId,jdbcType=DECIMAL}
+      </if>
+      <if test="materialName != null">
+        and
+        <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+          "materialName" like '%${item}%'
         </foreach>
-        ,MATERIAL_ID=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.materialId,jdbcType=DECIMAL}
+      </if>
+      <if test="orderNumber != null">
+        and
+        <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+          "orderNumber" like '%${item}%'
         </foreach>
-        ,LOADING_SEQUENCE=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.loadingSequence,jdbcType=DECIMAL}
+      </if>
+      <if test="capacityNumber != null">
+        and
+        <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+          "capacityNumber" like '%${item}%'
         </foreach>
-        ,ISDEDUCT=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.isdeduct,jdbcType=DECIMAL}
+      </if>
+      <if test="orderMaterialWeight != null">
+        and
+        <foreach collection="orderMaterialWeight" item="item" open="(" separator="or" close=")">
+          "orderMaterialWeight" like '%${item}%'
         </foreach>
-        ,SEGMENT_SQE=
-        <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
-            when #{item.resultId,jdbcType=DECIMAL} then #{item.segmentSqe,jdbcType=DECIMAL}
+      </if>
+      <if test="resultIsclear != null">
+        and
+        <foreach collection="resultIsclear" item="item" open="(" separator="or" close=")">
+          "resultIsclear" like '%${item}%'
         </foreach>
-        where RESULT_ID in
-        <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
-            #{item.resultId,jdbcType=DECIMAL}
+      </if>
+      <if test="resultLoadStartTime != null">
+        and
+        <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
+          "resultLoadStartTime" like '%${item}%'
         </foreach>
-    </update>
-    <delete id="batchDelete" parameterType="java.util.List">
-        delete from TMSTRUCK_LOAD_RESULT
-        where RESULT_ID in
-        <foreach collection="list" item="id" open="(" close=")" separator=",">
-            #{id}
+      </if>
+      <if test="insertUpdateRemark != null">
+        and
+        <foreach collection="insertUpdateRemark" item="item" open="(" separator="or" close=")">
+          "insertUpdateRemark" like '%${item}%'
         </foreach>
-    </delete>
-    <!-- 友情提示!!!-->
-    <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
-    <sql id="orderBy">
-        <if test="orderField != null and orderField != ''">
-            order by "${orderField}"
-            <if test="orderType != null and orderType != ''">
-                ${orderType}
-            </if>
-        </if>
-    </sql>
+      </if>
+    </where>
+    <include refid="orderBy"></include>
+    <if test="orderField == null  ">
+      order by "resultLoadStartTime" desc
+    </if>
+  </select>
 
-    <!--  获取所有装车实绩  -->
-    <select id="getCGJKLoadResult" parameterType="java.util.Map" resultType="java.util.LinkedHashMap">
 
-        select *
-        from (
-        select TLR.RESULT_ID "resultId",
-        APO.PURCHASE_ORDER_NO "purchaseOrderNo",
-        RM.MATERIAL_NAME "materialName",
-        OO.ORDER_NUMBER "orderNumber",
-        RC.CAPACITY_NUMBER "capacityNumber",
-        TLR.RESULT_MEASURED_TONNAGE "resultMeasuredTonnage",
-        TLR.RESULT_ISCLEAR "resultIsclear",
-        to_char(TLR.RESULT_LOAD_START_TIME, 'yyyy-mm-dd') "resultLoadStartTime",
-        TLR.INSERT_UPDATE_REMARK "insertUpdateRemark",
-        TLR.INSERT_TIME "insertTime",
-        RCON. CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
-        RS.SUPPLIER_NAME "supplierName"
-        from TMSTRUCK_LOAD_RESULT TLR
-        left join TMSTRUCK_TOTAL_RESULT TTR
-        on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        left join OMSTRUCK_ORDER OO
-        on TTR.ORDER_ID = OO.ORDER_ID
-        left join OMSTRUCK_ORDER_MATERIAL OOM
-        on OO.ORDER_ID = OOM.ORDER_ID
-        left join AMS_PURCHASE_ORDER APO
-        on OO.ORDER_PLAN_ID = APO.PURCHASE_ORDER_ID
-        left join DIL_BATCH DB
-        on DB.BATCH_ID = APO.BATCH_ID
-        left join RMS_MATERIAL RM
-        on OOM.MATERIAL_ID = RM.MATERIAL_ID
-        left join RMS_CAPACITY RC
-        on RC.CAPACITY_ID = OO.CAPACITY_ID
-        left join RMS_SUPPLIER RS
-        on RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
-        left join RMS_CONSIGNEE RCON
-        on RCON.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
-        where TLR.STATUS = #{status} and OO.ORDER_TYPE = #{orderTypee}
-        )
-        <where>
-            <if test="purchaseOrderId != null">
-                <foreach collection="purchaseOrderId" item="item" open="(" separator="or" close=")">
-                    "purchaseOrderId" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="materialName != null">
-                and
-                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
-                    "materialName" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="orderNumber != null">
-                and
-                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                    "orderNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="capacityNumber != null">
-                and
-                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
-                    "capacityNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="orderMaterialWeight != null">
-                and
-                <foreach collection="orderMaterialWeight" item="item" open="(" separator="or" close=")">
-                    "orderMaterialWeight" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultIsclear != null">
-                and
-                <foreach collection="resultIsclear" item="item" open="(" separator="or" close=")">
-                    "resultIsclear" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultLoadStartTime != null">
-                and
-                <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
-                    "resultLoadStartTime" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="insertUpdateRemark != null">
-                and
-                <foreach collection="insertUpdateRemark" item="item" open="(" separator="or" close=")">
-                    "insertUpdateRemark" like '%${item}%'
-                </foreach>
-            </if>
-        </where>
-        <include refid="orderBy"></include>
-        <if test="orderField == null  ">
-            order by "resultLoadStartTime" desc
-        </if>
-    </select>
+  <!--  通过Id获取装车实绩 数据 用于修改-->
+  <select id="getLoadResultById" parameterType="int" resultType="java.util.LinkedHashMap">
+    select TLR.RESULT_ISCLEAR         "resultIsclear",
+           TLR.RESULT_LOAD_START_TIME "resultLoadStartTime",
+           TLR.INSERT_UPDATE_REMARK   "insertUpdateRemark"
+    from TMSTRUCK_LOAD_RESULT TLR
+    where RESULT_ID = #{resultId}
+  </select>
 
+  <!--  通过发站查询所属港口 -->
+  <select id="getPortIdBySendStationId" parameterType="java.math.BigDecimal" resultType="java.math.BigDecimal">
+    select RAS.OWNED_PORT_ID
+    from RMSTRAIN_ARRIVAL_SEND RAS
+    where RAS.ARRIVAL_ID = #{sendStationId}
+  </select>
 
-    <!--  通过Id获取装车实绩 数据 用于修改-->
-    <select id="getLoadResultById" parameterType="int" resultType="java.util.LinkedHashMap">
-        select TLR.RESULT_ISCLEAR         "resultIsclear",
-               TLR.RESULT_LOAD_START_TIME "resultLoadStartTime",
-               TLR.INSERT_UPDATE_REMARK   "insertUpdateRemark"
-        from TMSTRUCK_LOAD_RESULT TLR
-        where RESULT_ID = #{resultId}
-    </select>
+  <!--  通过运输订单查询批次 -->
+  <select id="getBatchIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.math.BigDecimal">
+    select APO.BATCH_ID
+    from OMSTRUCK_ORDER OO
+           left join AMS_PURCHASE_ORDER APO
+                     on APO.PURCHASE_ORDER_ID = OO.ORDER_PLAN_ID
+    where OO.ORDER_ID = #{orderId}
+  </select>
 
-    <!--  通过发站查询所属港口 -->
-    <select id="getPortIdBySendStationId" parameterType="java.math.BigDecimal" resultType="java.math.BigDecimal">
-        select RAS.OWNED_PORT_ID
-        from RMSTRAIN_ARRIVAL_SEND RAS
-        where RAS.ARRIVAL_ID = #{sendStationId}
-    </select>
+  <!--通过运输订单号查找运输订单类型-->
+  <select id="selectOrderTypeByOrderNumber" resultType="java.lang.Integer" parameterType="java.lang.String">
+    select OO.ORDER_TYPE "orderType"
+    from OMSTRUCK_ORDER OO
+    where OO.ORDER_NUMBER = #{oderNumber}
+  </select>
 
-    <!--  通过运输订单查询批次 -->
-    <select id="getBatchIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.math.BigDecimal">
-        select APO.BATCH_ID
-        from OMSTRUCK_ORDER OO
-                 left join AMS_PURCHASE_ORDER APO
-                           on APO.PURCHASE_ORDER_ID = OO.ORDER_PLAN_ID
-        where OO.ORDER_ID = #{orderId}
-    </select>
+  <!--  通过运输订单号查询 出库实绩 最小Id(第一件扫描时间)  0 成功  1 失败-->
+  <select id="getMinScanIdByOrderNum" parameterType="java.util.Map" resultType="java.util.Map">
+    select *
+    from (
+           select WOSR.RESULT_ID "resultId",
+                  WOSR.LOAD_ID   "loadId"
+           from WMSP_OUTBOUND_RESULT WOR
+                  left join WMSP_OUTBOUND_SCAN_RESULT WOSR
+                            on WOSR.OUTBOUND_RESULT_ID = WOR.RESULT_ID
+                  left join OMSTRUCK_ORDER OO
+                            on OO.ORDER_ID = WOR.BILL_LADING_ID
+           WHERE OO.ORDER_NUMBER = #{orderNumber}
+             and WOR.MATERIAL_ID = #{materialId}
+             and WOSR.RESULT_CHECK = 0
+           ORDER BY WOSR.RESULT_LOAD_TIME
 
-    <!--通过运输订单号查找运输订单类型-->
-    <select id="selectOrderTypeByOrderNumber" resultType="java.lang.Integer" parameterType="java.lang.String">
-        select OO.ORDER_TYPE "orderType"
-        from OMSTRUCK_ORDER OO
-        where OO.ORDER_NUMBER = #{oderNumber}
-    </select>
+         )
+    where rownum = 1
+  </select>
 
-<!--  通过运输订单号查询 出库实绩 最小Id(第一件扫描时间)  0 成功  1 失败-->
-    <select id="getMinScanIdByOrderNum" parameterType="java.util.Map" resultType="java.util.Map">
-        select *
-        from (
-                 select WOSR.RESULT_ID "resultId",
-                        WOSR.LOAD_ID   "loadId"
-                 from WMSP_OUTBOUND_RESULT WOR
-                          left join WMSP_OUTBOUND_SCAN_RESULT WOSR
-                                    on WOSR.OUTBOUND_RESULT_ID = WOR.RESULT_ID
-                          left join OMSTRUCK_ORDER OO
-                                    on OO.ORDER_ID = WOR.BILL_LADING_ID
-                 WHERE OO.ORDER_NUMBER = #{orderNumber}
-                   and WOR.MATERIAL_ID = #{materialId}
-                   and WOSR.RESULT_CHECK = 0
-                 ORDER BY WOSR.RESULT_LOAD_TIME
+  <!-- 根据运输订单号查找 -->
+  <select id="selectResultIdByOrderNumber" resultType="java.lang.Integer" parameterType="java.lang.String">
+    select WOSR.RESULT_ID "resultId"
 
-             )
-        where rownum = 1
-    </select>
+    from OMSTRUCK_ORDER OO
+           left join WMSP_OUTBOUND_RESULT WOR
+                     on OO.ORDER_ID = WOR.BILL_LADING_ID
+           left join WMSP_OUTBOUND_SCAN_RESULT WOSR
+                     on WOSR.OUTBOUND_RESULT_ID = WOR.RESULT_ID
+    WHERE OO.ORDER_NUMBER = #{orderNumber}
+      and WOSR.RESULT_CHECK = 0
+  </select>
 
-    <!-- 根据运输订单号查找 -->
-    <select id="selectResultIdByOrderNumber" resultType="java.lang.Integer" parameterType="java.lang.String">
-        select WOSR.RESULT_ID "resultId"
+  <!-- 根据实绩id查找扫描时间 -->
+  <select id="selectLoadTimeByResultId" resultType="java.util.Date" parameterType="java.math.BigDecimal">
+    select WOSR.RESULT_LOAD_TIME "loadTime"
+    from WMSP_OUTBOUND_SCAN_RESULT WOSR
+    where WOSR.RESULT_ID = #{resultId}
+  </select>
 
-        from OMSTRUCK_ORDER OO
-                 left join WMSP_OUTBOUND_RESULT WOR
-                           on OO.ORDER_ID = WOR.BILL_LADING_ID
-                 left join WMSP_OUTBOUND_SCAN_RESULT WOSR
-                           on WOSR.OUTBOUND_RESULT_ID = WOR.RESULT_ID
-        WHERE OO.ORDER_NUMBER = #{orderNumber}
-          and WOSR.RESULT_CHECK = 0
-    </select>
+  <!-- 根据扫描实绩id查询装卸工id -->
+  <select id="selecLoadIdByresultId" resultType="java.lang.Integer">
+    select WOSR.LOAD_ID "loadId"
+    from WMSP_OUTBOUND_SCAN_RESULT WOSR
+    where WOSR.RESULT_ID = #{resultId}
+  </select>
 
-    <!-- 根据实绩id查找扫描时间 -->
-    <select id="selectLoadTimeByResultId" resultType="java.util.Date" parameterType="java.math.BigDecimal">
-        select WOSR.RESULT_LOAD_TIME "loadTime"
-        from WMSP_OUTBOUND_SCAN_RESULT WOSR
-        where WOSR.RESULT_ID = #{resultId}
-    </select>
+  <!-- 销售装车实绩查询-->
+  <select id="selectLoadResultForSale" resultType="java.util.Map" parameterType="java.lang.Integer">
+    SELECT (SELECT ORDER_MATERIAL_NUMBER
+            FROM OMSTRUCK_ORDER_MATERIAL OOM
+            WHERE OOM.ORDER_ID = OO.ORDER_ID
+              AND TLR.MATERIAL_ID = OOM.MATERIAL_ID) "orderMaterialNumber",
+           TLR.RESULT_LOAD_START_TIME                "startTime",
+           TLR.RESULT_LOAD_END_TIME                  "endTime",
+           TLR.RESULT_LOAD_DURATION                  "loadDuration",
+           RM.MATERIAL_NAME                          "materialName",
+           RP.PERSONNEL_NAME                         "name",
+           RMS.MATERIAL_THEORETICAL_WEIGHT           "theoreticalWeight",
+           OO.ORDER_NUMBER                           "orderNumber",
+           ASO.SALE_NUMBER                           "saleNumber",
+           RC.CAPACITY_NUMBER                        "capacityNumber"
+    FROM TMSTRUCK_LOAD_RESULT TLR
+           LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
+           LEFT JOIN OMSTRUCK_ORDER OO ON OO.ORDER_ID = TTR.ORDER_ID
+           LEFT JOIN RMS_MATERIAL_STEEL RMS ON RMS.MATERIAL_STEEL_ID = TLR.MATERIAL_ID
+           LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID = RMS.MATERIAL_ID
+           LEFT JOIN RMS_PERSONNEL RP ON TLR.LOADER_ID = RP.PERSONNEL_ID
+           LEFT JOIN AMS_SALE_ORDER ASO ON OO.ORDER_PLAN_ID = ASO.SALE_ORDER_ID
+           LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+           LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID = OO.CAPACITY_ID
+    where TLR.STATUS = #{status}
+      and OO.ORDER_TYPE = 1
+  </select>
 
-    <!-- 根据扫描实绩id查询装卸工id -->
-    <select id="selecLoadIdByresultId" resultType="java.lang.Integer">
-        select WOSR.LOAD_ID "loadId"
-        from WMSP_OUTBOUND_SCAN_RESULT WOSR
-        where WOSR.RESULT_ID = #{resultId}
-    </select>
+  <!--通过运输订单号查找物资id-->
+  <select id="selectMaterialIdByOrderNumber" parameterType="java.lang.String" resultType="java.util.Map">
+    SELECT
+    OOM.MATERIAL_ID "materialId"
+    FROM
+    OMSTRUCK_ORDER OO
+    LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM ON OO.ORDER_ID = OOM.ORDER_ID
+    WHERE
+    <if test="orderNumber != null">
+      OO.ORDER_NUMBER = #{orderNumber}
+    </if>
+    <if test="orderId != null">
+      and OO.ORDER_ID = #{orderId}
+    </if>
+  </select>
 
-    <!-- 销售装车实绩查询-->
-    <select id="selectLoadResultForSale" resultType="java.util.Map" parameterType="java.lang.Integer">
-        SELECT (SELECT ORDER_MATERIAL_NUMBER
-                FROM OMSTRUCK_ORDER_MATERIAL OOM
-                WHERE OOM.ORDER_ID = OO.ORDER_ID
-                  AND TLR.MATERIAL_ID = OOM.MATERIAL_ID) "orderMaterialNumber",
-               TLR.RESULT_LOAD_START_TIME                "startTime",
-               TLR.RESULT_LOAD_END_TIME                  "endTime",
-               TLR.RESULT_LOAD_DURATION                  "loadDuration",
-               RM.MATERIAL_NAME                          "materialName",
-               RP.PERSONNEL_NAME                         "name",
-               RMS.MATERIAL_THEORETICAL_WEIGHT           "theoreticalWeight",
-               OO.ORDER_NUMBER                           "orderNumber",
-               ASO.SALE_NUMBER                           "saleNumber",
-               RC.CAPACITY_NUMBER                        "capacityNumber"
-        FROM TMSTRUCK_LOAD_RESULT TLR
-                 LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
-                 LEFT JOIN OMSTRUCK_ORDER OO ON OO.ORDER_ID = TTR.ORDER_ID
-                 LEFT JOIN RMS_MATERIAL_STEEL RMS ON RMS.MATERIAL_STEEL_ID = TLR.MATERIAL_ID
-                 LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID = RMS.MATERIAL_ID
-                 LEFT JOIN RMS_PERSONNEL RP ON TLR.LOADER_ID = RP.PERSONNEL_ID
-                 LEFT JOIN AMS_SALE_ORDER ASO ON OO.ORDER_PLAN_ID = ASO.SALE_ORDER_ID
-                 LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
-                 LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID = OO.CAPACITY_ID
-        where TLR.STATUS = #{status}
-          and OO.ORDER_TYPE = 1
-    </select>
+  <!--  通过订单ID 和物资Id 查询装车实绩ID 可能会有多条-->
+  <select id="getLoadResultId" parameterType="java.util.Map" resultType="java.lang.Integer">
+    select TLR.RESULT_ID
+    from OMSTRUCK_ORDER OO
+           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
+    where OO.ORDER_ID = #{orderId}
+      and TLR.MATERIAL_ID = #{materialId}
+  </select>
 
-    <!--通过运输订单号查找物资id-->
-    <select id="selectMaterialIdByOrderNumber" parameterType="java.lang.String" resultType="java.util.Map">
-        SELECT
-        OOM.MATERIAL_ID "materialId"
-        FROM
-        OMSTRUCK_ORDER OO
-        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM ON OO.ORDER_ID = OOM.ORDER_ID
-        WHERE
-        <if test="orderNumber != null">
-            OO.ORDER_NUMBER = #{orderNumber}
-        </if>
-        <if test="orderId != null">
-            and OO.ORDER_ID = #{orderId}
-        </if>
-    </select>
+  <!--通过运输订单号查找装车实绩id-->
+  <select id="selectLoadResultIdByOrderNumber" resultType="java.lang.Integer" parameterType="java.util.Map">
+    SELECT TLR.RESULT_ID              "loadResultId",
+           TLR.RESULT_LOAD_START_TIME "startTime"
+    FROM OMSTRUCK_ORDER OO
+           LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                     ON OO.ORDER_ID = TTR.ORDER_ID
+           LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
+                     ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    WHERE OO.ORDER_NUMBER = #{orderNumber}
+  </select>
 
-    <!--  通过订单ID 和物资Id 查询装车实绩ID 可能会有多条-->
-    <select id="getLoadResultId" parameterType="java.util.Map" resultType="java.lang.Integer">
-        select TLR.RESULT_ID
-        from OMSTRUCK_ORDER OO
-                 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
-        where OO.ORDER_ID = #{orderId}
-          and TLR.MATERIAL_ID = #{materialId}
-    </select>
+  <!--内转物流查询汽车装车实绩 -->
+  <select id="selectLoadResultForConverted" resultType="java.util.LinkedHashMap">
+    select APO.PURCHASE_ORDER_NO       "orderNo",
+           TLR.INSERT_TIME             "insertTime",
+           RC.CAPACITY_NUMBER          "capacityNumber",
+           TLR.RESULT_MEASURED_TONNAGE "toggage",
+           RAS.ARRIVAL_NAME            "arrivelName",
+           DB.RESULT_FOREIGN_SHIP_NAME "foreignShipName",
+           OO.ORDER_NUMBER             "orderNumber",
+           RM.MATERIAL_NAME            "materialName"
 
-    <!--通过运输订单号查找装车实绩id-->
-    <select id="selectLoadResultIdByOrderNumber" resultType="java.lang.Integer" parameterType="java.util.Map">
-        SELECT TLR.RESULT_ID              "loadResultId",
-               TLR.RESULT_LOAD_START_TIME "startTime"
-        FROM OMSTRUCK_ORDER OO
-                 LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
-                           ON OO.ORDER_ID = TTR.ORDER_ID
-                 LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
-                           ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        WHERE OO.ORDER_NUMBER = #{orderNumber}
-    </select>
+    from TMSTRUCK_LOAD_RESULT TLR
+           LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                     ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
+           LEFT JOIN OMSTRUCK_ORDER OO
+                     ON OO.ORDER_ID = TTR.ORDER_ID
+           left join AMS_PURCHASE_ORDER APO
+                     ON oo.ORDER_PLAN_ID = APO.PURCHASE_ORDER_ID
+           LEFT JOIN DIL_BATCH DB
+                     ON DB.BATCH_ID = APO.BATCH_ID
+           LEFT JOIN RMS_MATERIAL RM
+                     ON RM.MATERIAL_ID = TLR.MATERIAL_ID
+           LEFT JOIN RMS_CAPACITY RC
+                     ON OO.CAPACITY_ID = RC.CAPACITY_ID
+           LEFT JOIN TMSTRAIN_LOADING_RESULT TLR2
+                     ON TLR2.PURCHASE_ORDER_RAIL_PLAN_ID = OO.ORDER_PLAN_ID
+           LEFT JOIN RMSTRAIN_ARRIVAL_SEND RAS
+                     ON RAS.ARRIVAL_ID = TLR.LOADING_ID
 
-    <!--内转物流查询汽车装车实绩 -->
-    <select id="selectLoadResultForConverted" resultType="java.util.LinkedHashMap">
-        select APO.PURCHASE_ORDER_NO       "orderNo",
-               TLR.INSERT_TIME             "insertTime",
-               RC.CAPACITY_NUMBER          "capacityNumber",
-               TLR.RESULT_MEASURED_TONNAGE "toggage",
-               RAS.ARRIVAL_NAME            "arrivelName",
-               DB.RESULT_FOREIGN_SHIP_NAME "foreignShipName",
-               OO.ORDER_NUMBER             "orderNumber",
-               RM.MATERIAL_NAME            "materialName"
+  </select>
 
-        from TMSTRUCK_LOAD_RESULT TLR
-                 LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
-                           ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
-                 LEFT JOIN OMSTRUCK_ORDER OO
-                           ON OO.ORDER_ID = TTR.ORDER_ID
-                 left join AMS_PURCHASE_ORDER APO
-                           ON oo.ORDER_PLAN_ID = APO.PURCHASE_ORDER_ID
-                 LEFT JOIN DIL_BATCH DB
-                           ON DB.BATCH_ID = APO.BATCH_ID
-                 LEFT JOIN RMS_MATERIAL RM
-                           ON RM.MATERIAL_ID = TLR.MATERIAL_ID
-                 LEFT JOIN RMS_CAPACITY RC
-                           ON OO.CAPACITY_ID = RC.CAPACITY_ID
-                 LEFT JOIN TMSTRAIN_LOADING_RESULT TLR2
-                           ON TLR2.PURCHASE_ORDER_RAIL_PLAN_ID = OO.ORDER_PLAN_ID
-                 LEFT JOIN RMSTRAIN_ARRIVAL_SEND RAS
-                           ON RAS.ARRIVAL_ID = TLR.LOADING_ID
+  <!-- 根据实绩id渲染数据 -->
+  <select id="selectLoadResultByResultId" resultType="java.lang.Integer">
+    SELECT TLR.LOADING_ID      "loadingId",
+           TLR.MATERIAL_ID     "materialId",
+           TLR.RESULT_TOTAL_ID "totalId"
+    FROM TMSTRUCK_LOAD_RESULT TLR
+    WHERE TLR.RESULT_ID = #{resultId}
+  </select>
 
-    </select>
+  <!--通过车牌号号查找物资id和运力id以及总实绩id-->
+  <select id="selectMaterialIdAndCapacityId" resultType="java.util.Map" parameterType="java.lang.Integer">
+    select OOM.MATERIAL_ID     "materialId",
+           OO.CAPACITY_ID      "capacityId",
+           TTR.RESULT_TOTAL_ID "resultTotalId"
+    from TMSTRUCK_TOTAL_RESULT TTR
+           left join OMSTRUCK_ORDER OO
+                     on OO.ORDER_ID = TTR.ORDER_ID
+           left join OMSTRUCK_ORDER_MATERIAL OOM
+                     on OOM.ORDER_ID = OO.ORDER_ID
+           LEFT JOIN RMS_CAPACITY RC
+                     ON RC.CAPACITY_ID = OO.CAPACITY_ID
+    where RC.CAPACITY_NUMBER = #{capacityNumber}
+  </select>
+  <!--根据id查找用户名    -->
+  <select id="selectPersonNameByPersonnelId" resultType="java.lang.String" parameterType="java.lang.Integer">
+    select RP.PERSONNEL_NAME "personnelName"
+    from RMS_PERSONNEL RP
+    where RP.PERSONNEL_ID = #{personnelId}
+  </select>
+  <select id="selectMaterialTypeByMaterialId" parameterType="java.lang.Integer" resultType="java.lang.Integer">
+    select RMT.MATERIAL_TYPE_ID "materialTypeId"
+    FROM RMS_MATERIAL RM
+           LEFT JOIN RMS_MATERIAL_TYPE RMT
+                     ON RMT.MATERIAL_TYPE_ID = RM.MATERIAL_TYPE_ID
+    where RM.MATERIAL_ID = #{materialId}
+  </select>
 
-    <!-- 根据实绩id渲染数据 -->
-    <select id="selectLoadResultByResultId" resultType="java.lang.Integer">
-        SELECT TLR.LOADING_ID      "loadingId",
-               TLR.MATERIAL_ID     "materialId",
-               TLR.RESULT_TOTAL_ID "totalId"
-        FROM TMSTRUCK_LOAD_RESULT TLR
-        WHERE TLR.RESULT_ID = #{resultId}
-    </select>
+  <!--  查询销售装车实绩  -->
+  <select id="getXSLoadResult" parameterType="java.util.Map" resultType="java.util.Map">
+    SELECT *
+    FROM (
+    SELECT OO.ORDER_NUMBER "orderNumber",
+    RC.CAPACITY_NUMBER "capacityNumber",
+    TLR.RESULT_LOAD_START_TIME "resultLoadStartTime",
+    TLR.RESULT_LOAD_END_TIME "resultLoadEndTime",
+    TLR.RESULT_LOAD_DURATION "resultLoadDuration",
+    RP.PERSONNEL_NAME "personnelName",
+    RM.MATERIAL_THEORETICAL_WEIGHT "materialTheoreticalWeight",
+    RM.MATERIAL_NAME "materialName",
+    ASO.SALE_NUMBER  "no",
+    (CASE WHEN  OOM.ORDER_MATERIAL_NUMBER is not null
+    THEN OOM.ORDER_MATERIAL_NUMBER
+    ELSE OOM.ORDER_MATERIAL_WEIGHT
+    END) "materialNumWei",
+    TLR.INSERT_UPDATE_REMARK "insertUpdateRemark",
+    TLR.CASE_NUMBER "caseNumber"
+    FROM TMSTRUCK_LOAD_RESULT TLR
+    LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+    ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    LEFT JOIN OMSTRUCK_ORDER OO
+    ON OO.ORDER_ID = TTR.ORDER_ID
+    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 OMSTRUCK_ORDER_MATERIAL OOM
+    ON OOM.ORDER_ID = OO.ORDER_ID
+    LEFT JOIN RMS_MATERIAL RM
+    ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+    LEFT JOIN RMS_CAPACITY RC
+    ON RC.CAPACITY_ID = OO.CAPACITY_ID
+    LEFT JOIN RMS_PERSONNEL RP
+    ON TLR.LOADER_ID = RP.PERSONNEL_ID
+    where
+    OO.ORDER_TYPE in (1, 2, 3)
+    and TLR.STATUS = #{status}
+    )
+    <where>
+      <if test="orderNumber != null">
+        <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+          "orderNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="materialName != null">
+        and
+        <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+          "materialName" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="no != null">
+        and
+        <foreach collection="no" item="item" open="(" separator="or" close=")">
+          "no" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="materialNumWei != null">
+        and
+        <foreach collection="materialNumWei" item="item" open="(" separator="or" close=")">
+          "materialNumWei" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="materialTheoreticalWeight != null">
+        and
+        <foreach collection="materialTheoreticalWeight" item="item" open="(" separator="or" close=")">
+          "materialTheoreticalWeight" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="capacityNumber != null">
+        and
+        <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+          "capacityNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="resultLoadStartTime != null">
+        and
+        <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
+          "resultLoadStartTime" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="resultLoadEndTime != null">
+        and
+        <foreach collection="resultLoadEndTime" item="item" open="(" separator="or" close=")">
+          "resultLoadEndTime" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="resultLoadDuration != null">
+        and
+        <foreach collection="resultLoadDuration" item="item" open="(" separator="or" close=")">
+          "resultLoadDuration" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="standardDataMax != null">
+        and
+        <foreach collection="standardDataMax" item="item" open="(" separator="or" close=")">
+          "standardDataMax" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="personnelName != null">
+        and
+        <foreach collection="personnelName" item="item" open="(" separator="or" close=")">
+          "personnelName" like '%${item}%'
+        </foreach>
+      </if>
+    </where>
+    <include refid="orderBy"></include>
+    <if test="orderField == null  ">
+      order by "resultLoadStartTime" desc
+    </if>
+  </select>
 
-    <!--通过车牌号号查找物资id和运力id以及总实绩id-->
-    <select id="selectMaterialIdAndCapacityId" resultType="java.util.Map" parameterType="java.lang.Integer">
-        select OOM.MATERIAL_ID     "materialId",
-               OO.CAPACITY_ID      "capacityId",
-               TTR.RESULT_TOTAL_ID "resultTotalId"
-        from TMSTRUCK_TOTAL_RESULT TTR
-                 left join OMSTRUCK_ORDER OO
-                           on OO.ORDER_ID = TTR.ORDER_ID
-                 left join OMSTRUCK_ORDER_MATERIAL OOM
-                           on OOM.ORDER_ID = OO.ORDER_ID
-                 LEFT JOIN RMS_CAPACITY RC
-                           ON RC.CAPACITY_ID = OO.CAPACITY_ID
-        where RC.CAPACITY_NUMBER = #{capacityNumber}
-    </select>
-    <!--根据id查找用户名    -->
-    <select id="selectPersonNameByPersonnelId" resultType="java.lang.String" parameterType="java.lang.Integer">
-        select RP.PERSONNEL_NAME "personnelName"
-        from RMS_PERSONNEL RP
-        where RP.PERSONNEL_ID = #{personnelId}
-    </select>
-    <select id="selectMaterialTypeByMaterialId" parameterType="java.lang.Integer" resultType="java.lang.Integer">
-        select RMT.MATERIAL_TYPE_ID "materialTypeId"
-        FROM RMS_MATERIAL RM
-                 LEFT JOIN RMS_MATERIAL_TYPE RMT
-                           ON RMT.MATERIAL_TYPE_ID = RM.MATERIAL_TYPE_ID
-        where RM.MATERIAL_ID = #{materialId}
-    </select>
+  <!--  通过港口ID获取仓库ID  -->
+  <select id="getWarehouseIdByPortId" parameterType="java.math.BigDecimal" resultType="java.math.BigDecimal">
+    select RW.WAREHOUSE_ID
+    from RMS_WAREHOUSE RW
+    where RW.WAREHOUSE_TYPE_ID = 4 and RW.PORT_ID = #{portId}
+  </select>
 
-    <!--  查询销售装车实绩  -->
-    <select id="getXSLoadResult" parameterType="java.util.Map" resultType="java.util.Map">
-        SELECT *
-        FROM (
-            SELECT OO.ORDER_NUMBER "orderNumber",
-                   RC.CAPACITY_NUMBER "capacityNumber",
-                   TLR.RESULT_LOAD_START_TIME "resultLoadStartTime",
-                   TLR.RESULT_LOAD_END_TIME "resultLoadEndTime",
-                   TLR.RESULT_LOAD_DURATION "resultLoadDuration",
-                   RP.PERSONNEL_NAME "personnelName",
-                   RM.MATERIAL_THEORETICAL_WEIGHT "materialTheoreticalWeight",
-                   RM.MATERIAL_NAME "materialName",
-                   ASO.SALE_NUMBER  "no",
-                   (CASE WHEN  OOM.ORDER_MATERIAL_NUMBER is not null
-                         THEN OOM.ORDER_MATERIAL_NUMBER
-                         ELSE OOM.ORDER_MATERIAL_WEIGHT
-                     END) "materialNumWei",
-                   TLR.INSERT_UPDATE_REMARK "insertUpdateRemark"
-            FROM TMSTRUCK_LOAD_RESULT TLR
-            LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
-                ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-            LEFT JOIN OMSTRUCK_ORDER OO
-                ON OO.ORDER_ID = TTR.ORDER_ID
-            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 OMSTRUCK_ORDER_MATERIAL OOM
-                ON OOM.ORDER_ID = OO.ORDER_ID
-            LEFT JOIN RMS_MATERIAL RM
-                ON RM.MATERIAL_ID = OOM.MATERIAL_ID
-            LEFT JOIN RMS_CAPACITY RC
-                ON RC.CAPACITY_ID = OO.CAPACITY_ID
-            LEFT JOIN RMS_PERSONNEL RP
-                ON TLR.LOADER_ID = RP.PERSONNEL_ID
-            where
-                  OO.ORDER_TYPE in (1, 2, 3)
-              and TLR.STATUS = #{status}
-        )
-        <where>
-            <if test="orderNumber != null">
-                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                    "orderNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="materialName != null">
-                and
-                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
-                    "materialName" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="no != null">
-                and
-                <foreach collection="no" item="item" open="(" separator="or" close=")">
-                    "no" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="materialNumWei != null">
-                and
-                <foreach collection="materialNumWei" item="item" open="(" separator="or" close=")">
-                    "materialNumWei" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="materialTheoreticalWeight != null">
-                and
-                <foreach collection="materialTheoreticalWeight" item="item" open="(" separator="or" close=")">
-                    "materialTheoreticalWeight" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="capacityNumber != null">
-                and
-                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
-                    "capacityNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultLoadStartTime != null">
-                and
-                <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
-                    "resultLoadStartTime" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultLoadEndTime != null">
-                and
-                <foreach collection="resultLoadEndTime" item="item" open="(" separator="or" close=")">
-                    "resultLoadEndTime" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultLoadDuration != null">
-                and
-                <foreach collection="resultLoadDuration" item="item" open="(" separator="or" close=")">
-                    "resultLoadDuration" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="standardDataMax != null">
-                and
-                <foreach collection="standardDataMax" item="item" open="(" separator="or" close=")">
-                    "standardDataMax" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="personnelName != null">
-                and
-                <foreach collection="personnelName" item="item" open="(" separator="or" close=")">
-                    "personnelName" like '%${item}%'
-                </foreach>
-            </if>
-        </where>
-        <include refid="orderBy"></include>
-        <if test="orderField == null  ">
-            order by "resultLoadStartTime" desc
-        </if>
-    </select>
+  <!--  通过物资ID和总实绩Id查询唯一的装车实绩Id  -->
+  <select id="getLoadResultIdByMIdAndTotalId" parameterType="java.util.Map" resultType="java.util.Map">
+    select
+    *
+    from(
+    select TLR.RESULT_ID "resultId",
+    TLR.SEGMENT_SQE "segmentSqe"
+    from TMSTRUCK_LOAD_RESULT TLR
+    where TLR.RESULT_TOTAL_ID = #{resultTotalId}
+    <if test="updateUnloadResult != null">
+      and TLR.RESULT_LOAD_END_TIME is null
+    </if>
+    order by TLR.SEGMENT_SQE
+    )
+    where rownum = 1
+  </select>
 
-<!--  通过港口ID获取仓库ID  -->
-    <select id="getWarehouseIdByPortId" parameterType="java.math.BigDecimal" resultType="java.math.BigDecimal">
-        select RW.WAREHOUSE_ID
-        from RMS_WAREHOUSE RW
-        where RW.WAREHOUSE_TYPE_ID = 4 and RW.PORT_ID = #{portId}
-    </select>
+  <!--    通过物资唯一编码 查找物资ID -->
+  <select id="getMaterialIdByMaterialCode" parameterType="string" resultType="java.math.BigDecimal">
+    select MATERIAL_ID
+    from RMS_MATERIAL_STEEL
+    where MATERIAL_ONLY_CODE = #{materialOnlyCode}
+  </select>
 
-<!--  通过物资ID和总实绩Id查询唯一的装车实绩Id  -->
-    <select id="getLoadResultIdByMIdAndTotalId" parameterType="int" resultType="java.util.Map">
-        select TLR.RESULT_ID "resultId",
-               TLR.SEGMENT_SQE "segmentSqe"
-        from TMSTRUCK_LOAD_RESULT TLR
-        <where>
-            TLR.RESULT_TOTAL_ID = #{resultTotalId}
-            <if test="materialId != null">
-                and TLR.MATERIAL_ID = #{materialId}
-            </if>
-        </where>
-    </select>
+  <!--   查询所有正在进行进厂排队的销售订单  -->
+  <select id="getSaleOrderOnQueue" parameterType="java.util.Map" resultType="java.util.Map">
+    select *
+    from (
+    select OO.ORDER_ID        "orderId",
+    OO.ORDER_NUMBER    "orderNumber",
+    ASO.SALE_NUMBER    "saleNumber",
+    RC.CAPACITY_NUMBER "capacityNumber",
+    OO.ORDER_ISSUE_TIME "orderIssueTime"
+    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_CAPACITY RC
+    on OO.CAPACITY_ID = RC.CAPACITY_ID
+    where OO.ORDER_ID in (select OO.ORDER_ID
+    from QMS_QUEUE_RESULT QQR
+    left join TMSTRUCK_TOTAL_RESULT TTR
+    on TTR.RESULT_TOTAL_ID = QQR.RESULT_TOTAL_ID
+    left join OMSTRUCK_ORDER OO
+    on OO.ORDER_ID = TTR.ORDER_ID
+    where QQR.RESULT_START_TIME is not null
+    and QQR.RESULT_END_TIME is null
+    and OO.ORDER_TYPE = 1)
+    )
+    <where>
+      <if test="orderNumber != null">
+        <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+          "orderNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="saleNumber != null">
+        and
+        <foreach collection="saleNumber" item="item" open="(" separator="or" close=")">
+          "saleNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="driverName != null">
+        and
+        <foreach collection="driverName" item="item" open="(" separator="or" close=")">
+          "driverName" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="capacityNumber != null">
+        and
+        <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+          "capacityNumber" like '%${item}%'
+        </foreach>
+      </if>
+    </where>
+    <include refid="orderBy"></include>
+    <if test="orderField == null  ">
+      order by "orderIssueTime" desc
+    </if>
+  </select>
 
-<!--    通过物资唯一编码 查找物资ID -->
-    <select id="getMaterialIdByMaterialCode" parameterType="string" resultType="java.math.BigDecimal">
-        select MATERIAL_ID
-        from RMS_MATERIAL_STEEL
-        where MATERIAL_ONLY_CODE = #{materialOnlyCode}
-    </select>
+  <!--    通过订单Id和物资Id确定唯一的装车实绩Id -->
+  <select id="getLoadIdByOrderIdAndMId" parameterType="java.util.Map" resultType="java.lang.Integer">
+    select TLR.RESULT_ID
+    from OMSTRUCK_ORDER OO
+           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
+    where OO.ORDER_ID = #{orderId}
+      and TLR.MATERIAL_ID = #{materialId}
+  </select>
 
-<!--   查询所有正在进行进厂排队的销售订单  -->
-    <select id="getSaleOrderOnQueue" parameterType="java.util.Map" resultType="java.util.Map">
-        select *
-        from (
-                 select OO.ORDER_ID        "orderId",
-                        OO.ORDER_NUMBER    "orderNumber",
-                        ASO.SALE_NUMBER    "saleNumber",
-                        RC.CAPACITY_NUMBER "capacityNumber",
-                        OO.ORDER_ISSUE_TIME "orderIssueTime"
-                 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_CAPACITY RC
-                                    on OO.CAPACITY_ID = RC.CAPACITY_ID
-                 where OO.ORDER_ID in (select OO.ORDER_ID
-                                       from QMS_QUEUE_RESULT QQR
-                                                left join TMSTRUCK_TOTAL_RESULT TTR
-                                                          on TTR.RESULT_TOTAL_ID = QQR.RESULT_TOTAL_ID
-                                                left join OMSTRUCK_ORDER OO
-                                                          on OO.ORDER_ID = TTR.ORDER_ID
-                                       where QQR.RESULT_START_TIME is not null
-                                         and QQR.RESULT_END_TIME is null
-                                         and OO.ORDER_TYPE = 1)
-             )
-        <where>
-            <if test="orderNumber != null">
-                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                    "orderNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="saleNumber != null">
-                and
-                <foreach collection="saleNumber" item="item" open="(" separator="or" close=")">
-                    "saleNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="driverName != null">
-                and
-                <foreach collection="driverName" item="item" open="(" separator="or" close=")">
-                    "driverName" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="capacityNumber != null">
-                and
-                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
-                    "capacityNumber" like '%${item}%'
-                </foreach>
-            </if>
-        </where>
-        <include refid="orderBy"></include>
-        <if test="orderField == null  ">
-            order by "orderIssueTime" desc
+  <!--  查询内转钢材到异地库装车实绩  -->
+  <select id="getSteelNzLoadResult" parameterType="java.util.Map" resultType="java.util.Map">
+    SELECT *
+    FROM (
+    select TLR.RESULT_ID                  "resultId",
+    AROD.DAYPLAN_NO                "dayplanNo",
+    OO.ORDER_NUMBER                "orderNumber",
+    RC.CAPACITY_NUMBER             "capacityNumber",
+    TLR.RESULT_LOAD_START_TIME     "resultLoadStartTime",
+    TLR.RESULT_LOAD_END_TIME       "resultLoadEndTime",
+    TLR.RESULT_LOAD_DURATION       "resultLoadDuration",
+    RSD.STANDARD_DATA_MIN          "standardDataMin",
+    RM.MATERIAL_NAME               "materialName",
+    OOM.ORDER_MATERIAL_NUMBER      "orderMaterialNumber",
+    RM.MATERIAL_THEORETICAL_WEIGHT "materialTheoreticalWeight",
+    RP.PERSONNEL_NAME              "personnelName"
+    from TMSTRUCK_LOAD_RESULT TLR
+    left join TMSTRUCK_TOTAL_RESULT TTR
+    ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    LEFT JOIN OMSTRUCK_ORDER OO
+    ON OO.ORDER_ID = TTR.ORDER_ID
+    LEFT JOIN AMS_RAIL_OFFSET_DAYPLAN AROD
+    ON AROD.DAYPLAN_ID = OO.ORDER_PLAN_ID
+    LEFT JOIN RMS_CAPACITY RC
+    ON RC.CAPACITY_ID = OO.CAPACITY_ID
+    LEFT JOIN RMS_PERSONNEL RP
+    ON RP.PERSONNEL_ID = TLR.LOADER_ID
+    LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+    ON OO.ORDER_ID = OOM.ORDER_ID AND OOM.MATERIAL_ID = TLR.MATERIAL_ID
+    LEFT JOIN RMS_MATERIAL RM
+    ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+    LEFT JOIN RMS_STANDARD_DATA RSD
+    ON RSD.STANDARD_DATA_ID = TLR.LOAD_STANDARD_TIME_ID
+    WHERE OO.ORDER_TYPE = 4
+    AND TLR.RESULT_LOAD_START_TIME IS NOT NULL
+    AND TLR.STATUS = 0
+    )
+    <where>
+      <if test="dayplanNo != null">
+        <foreach collection="dayplanNo" item="item" open="(" separator="or" close=")">
+          "dayplanNo" like '%${item}%'
+        </foreach>
+        <if test="orderNumber != null">
+          and
+          <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+            "orderNumber" like '%${item}%'
+          </foreach>
+        </if>
+        <if test="capacityNumber != null">
+          and
+          <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+            "capacityNumber" like '%${item}%'
+          </foreach>
+        </if>
+        <if test="resultLoadStartTime != null">
+          and
+          <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
+            "resultLoadStartTime" like '%${item}%'
+          </foreach>
         </if>
-    </select>
+        <if test="resultLoadEndTime != null">
+          and
+          <foreach collection="resultLoadEndTime" item="item" open="(" separator="or" close=")">
+            "resultLoadEndTime" like '%${item}%'
+          </foreach>
+        </if>
+        <if test="resultLoadDuration != null">
+          and
+          <foreach collection="resultLoadDuration" item="item" open="(" separator="or" close=")">
+            "resultLoadDuration" like '%${item}%'
+          </foreach>
+        </if>
+        <if test="standardDataMin != null">
+          and
+          <foreach collection="standardDataMin" item="item" open="(" separator="or" close=")">
+            "standardDataMin" like '%${item}%'
+          </foreach>
+        </if>
+        <if test="materialName != null">
+          and
+          <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+            "materialName" like '%${item}%'
+          </foreach>
+        </if>
+        <if test="orderMaterialNumber != null">
+          and
+          <foreach collection="orderMaterialNumber" item="item" open="(" separator="or" close=")">
+            "orderMaterialNumber" like '%${item}%'
+          </foreach>
+        </if>
+        <if test="materialTheoreticalWeight != null">
+          and
+          <foreach collection="materialTheoreticalWeight" item="item" open="(" separator="or" close=")">
+            "materialTheoreticalWeight" like '%${item}%'
+          </foreach>
+        </if>
+        <if test="personnelName != null">
+          and
+          <foreach collection="personnelName" item="item" open="(" separator="or" close=")">
+            "personnelName" like '%${item}%'
+          </foreach>
+        </if>
+      </if>
+    </where>
+    <include refid="orderBy"></include>
+    <if test="orderField == null  ">
+      order by "resultLoadStartTime" desc
+    </if>
+  </select>
+
+  <!-- 查询内转进口矿/国产矿装车实绩   -->
+  <select id="getImportedDomesticNzLoadResult" parameterType="java.util.Map" resultType="java.util.Map">
+    SELECT
+    *
+    FROM (
+    SELECT APO.PURCHASE_ORDER_NO       "purchaseOrderNo",
+    RM.MATERIAL_NAME            "materialName",
+    OO.ORDER_NUMBER             "orderNumber",
+    RC.CAPACITY_NUMBER          "capacityNumber",
+    TLR.RESULT_LOAD_START_TIME   "resultLoadStartTime",
+    RW.WAREHOUSE_NAME           "warehouseName",
+    TLR.RESULT_LOAD_END_TIME   "resultLoadEndTime",
+    TLR.RESULT_LOAD_DURATION  "loadDuration"
+    FROM TMSTRUCK_LOAD_RESULT TLR
+    LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+    ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
+    LEFT JOIN OMSTRUCK_ORDER OO
+    ON OO.ORDER_ID = TTR.ORDER_ID
+    left join amstruck_inward_plan aip
+    on aip.plan_id = oo.order_plan_id
+    left join amstruck_requirement_plan arp
+    on arp.plan_id = aip.plan_id
+    left join amstruck_inward_requirement air
+    on air.requirement_id = arp.requirement_id
+    LEFT JOIN AMS_PURCHASE_ORDER APO
+    ON APO.PURCHASE_ORDER_ID = air.PURCHASE_ORDER_ID
+    LEFT JOIN DIL_BATCH DB
+    ON DB.BATCH_ID = APO.BATCH_ID
+    LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+    ON OOM.ORDER_ID = OO.ORDER_ID
+    LEFT JOIN RMS_MATERIAL RM
+    ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+    LEFT JOIN RMS_CAPACITY RC
+    ON RC.CAPACITY_ID = OO.CAPACITY_ID
+    LEFT JOIN RMS_WAREHOUSE RW
+    ON RW.WAREHOUSE_ID = TLR.LOADING_ID
+    WHERE OO.ORDER_TYPE in (10,20)
+    AND TLR.RESULT_LOAD_START_TIME IS NOT NULL
+    <if test="userId !=null">
+      and AIR.INSERT_USERNAME = #{userId}
+    </if>
+    order by tlr.result_load_end_time
+    )
+    <where>
+      <if test="purchaseOrderNo != null">
+        <foreach collection="purchaseOrderNo" item="item" open="(" separator="or" close=")">
+          "purchaseOrderNo" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="materialName != null">
+        and
+        <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+          "materialName" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="orderNumber != null">
+        and
+        <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+          "orderNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="capacityNumber != null">
+        and
+        <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+          "capacityNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="resultLoadStartTime != null">
+        and
+        <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
+          "resultLoadStartTime" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="resultLoadEndTime != null">
+        and
+        <foreach collection="resultLoadEndTime" item="item" open="(" separator="or" close=")">
+          "resultLoadEndTime" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="warehouseName != null">
+        and
+        <foreach collection="warehouseName" item="item" open="(" separator="or" close=")">
+          "warehouseName" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="loadDuration != null">
+        and
+        <foreach collection="loadDuration" item="item" open="(" separator="or" close=")">
+          "loadDuration" like '%${item}%'
+        </foreach>
+      </if>
+    </where>
+    <include refid="orderBy"></include>
+    <if test="orderField == null  ">
+      order by "resultLoadStartTime" desc
+    </if>
+  </select>
+
+  <!--  查询内转厂内物资装车实绩  -->
+  <select id="getInFactoryLoadResult" parameterType="java.util.Map" resultType="java.util.Map">
 
-<!--    通过订单Id和物资Id确定唯一的装车实绩Id -->
-    <select id="getLoadIdByOrderIdAndMId" parameterType="java.util.Map" resultType="java.lang.Integer">
-        select TLR.RESULT_ID
-        from OMSTRUCK_ORDER OO
-        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
-        where OO.ORDER_ID = #{orderId}
-          and TLR.MATERIAL_ID = #{materialId}
-    </select>
+    SELECT *
+    FROM (
+    SELECT RM.MATERIAL_NAME           "materialName",
+    OO.ORDER_NUMBER            "orderNumber",
+    RC.CAPACITY_NUMBER         "capacityNumber",
+    OOM.ORDER_MATERIAL_NUMBER  "orderMaterialNumber",
+    TLR.RESULT_LOAD_START_TIME "resultLoadStartTime",
+    TLR.RESULT_LOAD_END_TIME   "resultLoadEndTime",
+    TLR.RESULT_LOAD_DURATION   "resultLoadDuration",
+    RW.WAREHOUSE_NAME          "warehouseName"
+    FROM TMSTRUCK_LOAD_RESULT TLR
+    LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+    ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
+    LEFT JOIN OMSTRUCK_ORDER OO
+    ON OO.ORDER_ID = TTR.ORDER_ID
+    LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+    ON OOM.ORDER_ID = OO.ORDER_ID
+    LEFT JOIN RMS_MATERIAL RM
+    ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+    LEFT JOIN RMS_CAPACITY RC
+    ON RC.CAPACITY_ID = OO.CAPACITY_ID
+    LEFT JOIN RMS_WAREHOUSE RW
+    ON RW.WAREHOUSE_ID = TLR.LOADING_ID
+    WHERE OO.ORDER_TYPE = #{orderTypee}
+    AND TLR.RESULT_LOAD_START_TIME IS NOT NULL
+    )
+    <where>
+      <if test="resultLoadEndTime != null">
+        <foreach collection="resultLoadEndTime" item="item" open="(" separator="or" close=")">
+          "resultLoadEndTime" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="materialName != null">
+        and
+        <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+          "materialName" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="resultLoadDuration != null">
+        and
+        <foreach collection="resultLoadDuration" item="item" open="(" separator="or" close=")">
+          "resultLoadDuration" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="orderNumber != null">
+        and
+        <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+          "orderNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="capacityNumber != null">
+        and
+        <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+          "capacityNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="orderMaterialWeight != null">
+        and
+        <foreach collection="orderMaterialWeight" item="item" open="(" separator="or" close=")">
+          "orderMaterialWeight" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="resultLoadStartTime != null">
+        and
+        <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
+          "resultLoadStartTime" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="warehouseName != null">
+        and
+        <foreach collection="warehouseName" item="item" open="(" separator="or" close=")">
+          "warehouseName" like '%${item}%'
+        </foreach>
+      </if>
+    </where>
+    <include refid="orderBy"></include>
+    <if test="orderField == null  ">
+      order by "resultLoadStartTime" desc
+    </if>
 
-<!--  查询内转钢材到异地库装车实绩  -->
-    <select id="getSteelNzLoadResult" parameterType="java.util.Map" resultType="java.util.Map">
-        SELECT *
-        FROM (
-                 select TLR.RESULT_ID                  "resultId",
-                        AROD.DAYPLAN_NO                "dayplanNo",
-                        OO.ORDER_NUMBER                "orderNumber",
-                        RC.CAPACITY_NUMBER             "capacityNumber",
-                        TLR.RESULT_LOAD_START_TIME     "resultLoadStartTime",
-                        TLR.RESULT_LOAD_END_TIME       "resultLoadEndTime",
-                        TLR.RESULT_LOAD_DURATION       "resultLoadDuration",
-                        RSD.STANDARD_DATA_MIN          "standardDataMin",
-                        RM.MATERIAL_NAME               "materialName",
-                        OOM.ORDER_MATERIAL_NUMBER      "orderMaterialNumber",
-                        RM.MATERIAL_THEORETICAL_WEIGHT "materialTheoreticalWeight",
-                        RP.PERSONNEL_NAME              "personnelName"
-                 from TMSTRUCK_LOAD_RESULT TLR
+  </select>
+  <select id="getResultId" resultType="java.math.BigDecimal" parameterType="DeCimal">
+    select tlr.result_id "resultId" from tmstruck_load_result tlr
+    where tlr.result_total_id=#{totalId}
+  </select>
+
+  <select id="getOrderType" resultType="java.lang.Integer">
+    select oo.order_type
+    from tmstruck_total_result ttr
+           left join omstruck_order oo
+                     on oo.order_id = ttr.order_id
+    where ttr.result_total_id = #{totalId}
+  </select>
+
+  <!--    根据订单id查询所有的零星物资出厂实绩-->
+  <select id="getSporadicSuppliesLoadResult" resultType="java.util.Map">
+    select *
+    from (
+    select distinct
+    TLR.RESULT_ID "resultId",
+    OO.ORDER_NUMBER "orderNumber",
+    RC.CAPACITY_NUMBER "capacityNumber",
+    TLR.RESULT_MEASURED_TONNAGE "resultMeasuredTonnage",
+    TLR.RESULT_ISCLEAR "resultIsclear",
+    to_char(TLR.RESULT_LOAD_START_TIME, 'yyyy-mm-dd') "resultLoadStartTime",
+    TLR.INSERT_UPDATE_REMARK "insertUpdateRemark",
+    TLR.INSERT_TIME "insertTime",
+    RM.MATERIAL_NAME "materialName",
+    OOM.ORDER_MATERIAL_NUMBER "materialNumber",
+    OOM.ORDER_MATERIAL_WEIGHT "materialWeight",
+    TWR.RESULT_NET_WEIGHT "netWeight"
+    from TMSTRUCK_LOAD_RESULT TLR
+    left join TMSTRUCK_TOTAL_RESULT TTR
+    on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    left join TMSTRUCK_WEIGHT_RESULT TWR
+    on TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+    left join OMSTRUCK_ORDER OO
+    on TTR.ORDER_ID = OO.ORDER_ID
+    left join OMSTRUCK_ORDER_MATERIAL OOM
+    on OOM.ORDER_ID=OO.ORDER_ID
+    left join RMS_MATERIAL RM
+    on RM.MATERIAL_ID = OOM.MATERIAL_ID
+    left join AMSTRUCK_SPORADIC_ORDER ASO
+    on OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
+    left join RMS_CAPACITY RC
+    on RC.CAPACITY_ID = OO.CAPACITY_ID
+    where TLR.STATUS = #{status}
+    and TLR.RESULT_LOAD_START_TIME IS NOT NULL
+    <if test="orderTypee != 100">
+      AND OO.ORDER_TYPE = #{orderTypee}
+    </if>
+    <if test="orderTypee == 100">
+      AND OO.ORDER_TYPE in (12, 13 ,14,19)
+    </if>
+    <if test="userId!=null">
+      AND  ASO.INSERT_USERNAME=#{userId}
+    </if>
+    <if test="userIds!=null">
+      and ASO.UPDATE_USERNAME = #{userIds}
+    </if>
+    )
+    <where>
+      <if test="orderNumber != null">
+        and
+        <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+          "orderNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="capacityNumber != null">
+        and
+        <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+          "capacityNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="resultIsclear != null">
+        and
+        <foreach collection="resultIsclear" item="item" open="(" separator="or" close=")">
+          "resultIsclear" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="resultLoadStartTime != null">
+        and
+        <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
+          "resultLoadStartTime" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="insertUpdateRemark != null">
+        and
+        <foreach collection="insertUpdateRemark" item="item" open="(" separator="or" close=")">
+          "insertUpdateRemark" like '%${item}%'
+        </foreach>
+      </if>
+    </where>
+    <include refid="orderBy"></include>
+    <if test="orderField == null  ">
+      order by "resultLoadStartTime" desc
+    </if>
+  </select>
+  <!--  获取采购内转装车实绩  -->
+  <select id="getCgNzLoadingResult" resultType="java.util.Map" parameterType="java.lang.Integer">
+    select *from ( select OO.ORDER_NUMBER              "orderNumber",
+                          OOM.ORDER_MATERIAL_WEIGHT    "orderMaterialWeight",
+                          OO.ORDER_RECEIVE_REFUSE_TIME "orderReceiveRefuseTime",
+                          RW.WAREHOUSE_NAME            "warehouseName",
+                          RM.MATERIAL_NAME             "materialName",
+                          RC.CAPACITY_NUMBER           "capacityNumber",
+                          RW2.WAREHOUSE_NAME           "warehouseName2",
+                          OO.INSERT_UPDATE_REMARK      "insertUpdateRemark",
+                          TTR.RESULT_TOTAL_ID          "resultTotalId"
+                   from OMSTRUCK_ORDER OO
+                          left join RMS_CAPACITY RC
+                                    on RC.CAPACITY_ID = OO.CAPACITY_ID
+                          left join OMSTRUCK_ORDER_MATERIAL OOM
+                                    on OOM.ORDER_ID = OO.ORDER_ID
+                          left join RMS_MATERIAL RM
+                                    on RM.MATERIAL_ID = OOM.MATERIAL_ID
+                          left join RMS_WAREHOUSE RW
+                                    on RW.WAREHOUSE_ID = OO.UNLOAD_POINT_ID
                           left join TMSTRUCK_TOTAL_RESULT TTR
-                                    ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                          LEFT JOIN OMSTRUCK_ORDER OO
-                                    ON OO.ORDER_ID = TTR.ORDER_ID
-                          LEFT JOIN AMS_RAIL_OFFSET_DAYPLAN AROD
-                                    ON AROD.DAYPLAN_ID = OO.ORDER_PLAN_ID
-                          LEFT JOIN RMS_CAPACITY RC
-                                    ON RC.CAPACITY_ID = OO.CAPACITY_ID
-                          LEFT JOIN RMS_PERSONNEL RP
-                                    ON RP.PERSONNEL_ID = TLR.LOADER_ID
-                          LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
-                                    ON OO.ORDER_ID = OOM.ORDER_ID AND OOM.MATERIAL_ID = TLR.MATERIAL_ID
-                          LEFT JOIN RMS_MATERIAL RM
-                                    ON RM.MATERIAL_ID = OOM.MATERIAL_ID
-                          LEFT JOIN RMS_STANDARD_DATA RSD
-                                    ON RSD.STANDARD_DATA_ID = TLR.LOAD_STANDARD_TIME_ID
-                 WHERE OO.ORDER_TYPE = 4
-                   AND TLR.RESULT_LOAD_START_TIME IS NOT NULL
-                   AND TLR.STATUS = 0
-             )
-        <where>
-            <if test="dayplanNo != null">
-                <foreach collection="dayplanNo" item="item" open="(" separator="or" close=")">
-                    "dayplanNo" like '%${item}%'
-                </foreach>
-                <if test="orderNumber != null">
-                    and
-                    <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                        "orderNumber" like '%${item}%'
-                    </foreach>
-                </if>
-                <if test="capacityNumber != null">
-                    and
-                    <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
-                        "capacityNumber" like '%${item}%'
-                    </foreach>
-                </if>
-                <if test="resultLoadStartTime != null">
-                    and
-                    <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
-                        "resultLoadStartTime" like '%${item}%'
-                    </foreach>
-                </if>
-                <if test="resultLoadEndTime != null">
-                    and
-                    <foreach collection="resultLoadEndTime" item="item" open="(" separator="or" close=")">
-                        "resultLoadEndTime" like '%${item}%'
-                    </foreach>
-                </if>
-                <if test="resultLoadDuration != null">
-                    and
-                    <foreach collection="resultLoadDuration" item="item" open="(" separator="or" close=")">
-                        "resultLoadDuration" like '%${item}%'
-                    </foreach>
-                </if>
-                <if test="standardDataMin != null">
-                    and
-                    <foreach collection="standardDataMin" item="item" open="(" separator="or" close=")">
-                        "standardDataMin" like '%${item}%'
-                    </foreach>
-                </if>
-                <if test="materialName != null">
-                    and
-                    <foreach collection="materialName" item="item" open="(" separator="or" close=")">
-                        "materialName" like '%${item}%'
-                    </foreach>
-                </if>
-                <if test="orderMaterialNumber != null">
-                    and
-                    <foreach collection="orderMaterialNumber" item="item" open="(" separator="or" close=")">
-                        "orderMaterialNumber" like '%${item}%'
-                    </foreach>
-                </if>
-                <if test="materialTheoreticalWeight != null">
-                    and
-                    <foreach collection="materialTheoreticalWeight" item="item" open="(" separator="or" close=")">
-                        "materialTheoreticalWeight" like '%${item}%'
-                    </foreach>
-                </if>
-                <if test="personnelName != null">
-                    and
-                    <foreach collection="personnelName" item="item" open="(" separator="or" close=")">
-                        "personnelName" like '%${item}%'
-                    </foreach>
-                </if>
-            </if>
-        </where>
-        <include refid="orderBy"></include>
-        <if test="orderField == null  ">
-            order by "resultLoadStartTime" desc
-        </if>
-    </select>
+                                    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 RW2
+                                    on RW2.WAREHOUSE_ID = TLR.LOADING_ID
+                   where OO.ORDER_STATUS = #{orderStatus}
+                     and TLR.RESULT_LOAD_END_TIME IS NULL
+                     and OO.ORDER_TYPE = #{orderType})
+  </select>
+  <select id="getInsertUpdateRemark" resultType="java.util.Map" parameterType="java.util.Map">
+    select OO.LINE_ID "lineId",
+           OO.ORDER_ID "orderId"
+    from OMSTRUCK_ORDER OO
+           left join TMSTRUCK_TOTAL_RESULT TTR
+                     on TTR.ORDER_ID=OO.ORDER_ID
+           left join TMSTRUCK_LOAD_RESULT TLR
+                     on  TTR.RESULT_TOTAL_ID=TLR.RESULT_TOTAL_ID
+    where TTR.RESULT_TOTAL_ID=#{resultTotalId}
+  </select>
 
-<!-- 查询内转进口矿/国产矿装车实绩   -->
-    <select id="getImportedDomesticNzLoadResult" parameterType="java.util.Map" resultType="java.util.Map">
-        SELECT
-               *
-        FROM (
-        SELECT APO.PURCHASE_ORDER_NO       "purchaseOrderNo",
-        RM.MATERIAL_NAME            "materialName",
-        DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
-        OO.ORDER_NUMBER             "orderNumber",
-        RC.CAPACITY_NUMBER          "capacityNumber",
-        OOM.ORDER_MATERIAL_WEIGHT   "orderMaterialWeight",
-        TLR.RESULT_LOAD_START_TIME  "resultLoadStartTime",
-        RW.WAREHOUSE_NAME           "warehouseName"
-        FROM TMSTRUCK_LOAD_RESULT TLR
-        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
-        ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
-        LEFT JOIN OMSTRUCK_ORDER OO
-        ON OO.ORDER_ID = TTR.ORDER_ID
-        left join amstruck_inward_plan aip
-        on aip.plan_id = oo.order_plan_id
-        left join amstruck_requirement_plan arp
-        on arp.plan_id = aip.plan_id
-        left join amstruck_inward_requirement air
-        on air.requirement_id = arp.requirement_id
-        LEFT JOIN AMS_PURCHASE_ORDER APO
-        ON APO.PURCHASE_ORDER_ID = air.PURCHASE_ORDER_ID
-        LEFT JOIN DIL_BATCH DB
-        ON DB.BATCH_ID = APO.BATCH_ID
-        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
-        ON OOM.ORDER_ID = OO.ORDER_ID
-        LEFT JOIN RMS_MATERIAL RM
-        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
-        LEFT JOIN RMS_CAPACITY RC
-        ON RC.CAPACITY_ID = OO.CAPACITY_ID
-        LEFT JOIN RMS_WAREHOUSE RW
-        ON RW.WAREHOUSE_ID = TLR.LOADING_ID
-        WHERE OO.ORDER_TYPE =#{orderTypee}
-        AND TLR.RESULT_LOAD_START_TIME IS NOT NULL
-        order by tlr.result_load_end_time
-             )
-        <where>
-            <if test="purchaseOrderNo != null">
-                <foreach collection="purchaseOrderNo" item="item" open="(" separator="or" close=")">
-                    "purchaseOrderNo" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="materialName != null">
-                and
-                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
-                    "materialName" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultForeignShipName != null">
-                and
-                <foreach collection="resultForeignShipName" item="item" open="(" separator="or" close=")">
-                    "resultForeignShipName" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="orderNumber != null">
-                and
-                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                    "orderNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="capacityNumber != null">
-                and
-                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
-                    "capacityNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="orderMaterialWeight != null">
-                and
-                <foreach collection="orderMaterialWeight" item="item" open="(" separator="or" close=")">
-                    "orderMaterialWeight" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultLoadStartTime != null">
-                and
-                <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
-                    "resultLoadStartTime" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="warehouseName != null">
-                and
-                <foreach collection="warehouseName" item="item" open="(" separator="or" close=")">
-                    "warehouseName" like '%${item}%'
-                </foreach>
-            </if>
-        </where>
-        <include refid="orderBy"></include>
-        <if test="orderField == null  ">
-            order by "resultLoadStartTime" desc
-        </if>
-    </select>
+  <select id="allOutFactoryNum" resultType="int" parameterType="java.math.BigDecimal">
+    select TLFR.RESULT_ID
+    from OMSTRUCK_ORDER OO
+           left join TMSTRUCK_TOTAL_RESULT TTR on TTR.ORDER_ID = OO.ORDER_ID
+           left join TMSTRUCK_LEAVE_FACTORY_RESULT TLFR on TTR.RESULT_TOTAL_ID = TLFR.RESULT_TOTAL_ID
+    where OO.ORDER_ID = #{orderId}
+      and TLFR.RESULT_OUT_GATE_TIME is null
+    order by TLFR.SEGMENT_SQE
+  </select>
 
-<!--  查询内转厂内物资装车实绩  -->
-    <select id="getInFactoryLoadResult" parameterType="java.util.Map" resultType="java.util.Map">
+  <update id="updateSqe" parameterType="java.util.Map">
+    update OMSTRUCK_ORDER OO
+    set OO.ORDER_LINE_SEQUENCE =
+            (
+              select MAX(RLS.SEGMENT_SQE)
+              from OMSTRUCK_ORDER OO
+                     left join RMS_LINE RL
+                               on OO.LINE_ID = RL.LINE_ID
+                     left join RMS_LINE_SEGEMNT RLS
+                               on RL.LINE_ID = RLS.LINE_ID
+              where OO.ORDER_ID = #{orderId}
+            ) - 1
+    where OO.ORDER_ID = #{orderId}
+  </update>
 
-        SELECT *
-        FROM (
-                 SELECT RM.MATERIAL_NAME           "materialName",
-                        OO.ORDER_NUMBER            "orderNumber",
-                        RC.CAPACITY_NUMBER         "capacityNumber",
-                        OOM.ORDER_MATERIAL_NUMBER  "orderMaterialNumber",
-                        TLR.RESULT_LOAD_START_TIME "resultLoadStartTime",
-                        TLR.RESULT_LOAD_END_TIME   "resultLoadEndTime",
-                        TLR.RESULT_LOAD_DURATION   "resultLoadDuration",
-                        RW.WAREHOUSE_NAME          "warehouseName"
-                 FROM TMSTRUCK_LOAD_RESULT TLR
-                          LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
-                                    ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
-                          LEFT JOIN OMSTRUCK_ORDER OO
-                                    ON OO.ORDER_ID = TTR.ORDER_ID
-                          LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
-                                    ON OOM.ORDER_ID = OO.ORDER_ID
-                          LEFT JOIN RMS_MATERIAL RM
-                                    ON RM.MATERIAL_ID = OOM.MATERIAL_ID
-                          LEFT JOIN RMS_CAPACITY RC
-                                    ON RC.CAPACITY_ID = OO.CAPACITY_ID
-                          LEFT JOIN RMS_WAREHOUSE RW
-                                    ON RW.WAREHOUSE_ID = TLR.LOADING_ID
-                 WHERE OO.ORDER_TYPE = 11
-                   AND TLR.RESULT_LOAD_START_TIME IS NOT NULL
-        )
-        <where>
-            <if test="resultLoadEndTime != null">
-                <foreach collection="resultLoadEndTime" item="item" open="(" separator="or" close=")">
-                    "resultLoadEndTime" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="materialName != null">
-                and
-                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
-                    "materialName" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultLoadDuration != null">
-                and
-                <foreach collection="resultLoadDuration" item="item" open="(" separator="or" close=")">
-                    "resultLoadDuration" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="orderNumber != null">
-                and
-                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                    "orderNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="capacityNumber != null">
-                and
-                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
-                    "capacityNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="orderMaterialWeight != null">
-                and
-                <foreach collection="orderMaterialWeight" item="item" open="(" separator="or" close=")">
-                    "orderMaterialWeight" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultLoadStartTime != null">
-                and
-                <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
-                    "resultLoadStartTime" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="warehouseName != null">
-                and
-                <foreach collection="warehouseName" item="item" open="(" separator="or" close=")">
-                    "warehouseName" like '%${item}%'
-                </foreach>
-            </if>
-        </where>
-        <include refid="orderBy"></include>
-        <if test="orderField == null  ">
-            order by "resultLoadStartTime" desc
-        </if>
+  <select id="checkMaterialIdLoad" resultType="java.lang.Integer">
+    select TLR.RESULT_ID
+    from TMSTRUCK_LOAD_RESULT TLR
+    where TLR.RESULT_TOTAL_ID = #{resultTotalId}
+      and  TLR.MATERIAL_ID = #{materialId}
+  </select>
 
-    </select>
-    <select id="getResultId" resultType="java.math.BigDecimal" parameterType="DeCimal">
-        select tlr.result_id "resultId" from tmstruck_load_result tlr
-        where tlr.result_total_id=#{totalId}
-    </select>
 
-        <select id="getOrderType" resultType="java.lang.Integer">
-                select oo.order_type
-          from tmstruck_total_result ttr
-          left join omstruck_order oo
-            on oo.order_id = ttr.order_id
-         where ttr.result_total_id = #{totalId}
-        </select>
+  <select id="getSteelLoadResult" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+    SELECT *
+    FROM (
+           SELECT OO.ORDER_ID         "orderId",
+                  OO.ORDER_TYPE       "orderType",
+                  TTR.RESULT_TOTAL_ID "resultTotalId",
+                  TLR.RESULT_ID       "resultId",
+                  TLR.SEGMENT_SQE     "segmentSqe",
+                  RC.CAPACITY_NUMBER   "capacityNumber"
+
+           FROM OMSTRUCK_ORDER OO
+                  LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON OO.ORDER_ID = TTR.ORDER_ID
+                  LEFT JOIN TMSTRUCK_LOAD_RESULT TLR ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
+                  LEFT JOIN RMS_CAPACITY RC ON OO.CAPACITY_ID = RC.CAPACITY_ID
+           WHERE TLR.RESULT_LOAD_END_TIME IS NULL
+                 <if test="orderId != null">
+                   AND  OO.ORDER_ID = #{orderId}
+                 </if>
+                 <if test="orderNumber != null">
+                   AND  OO.ORDER_NUMBER = #{orderNumber}
+                 </if>
+           ORDER BY TLR.SEGMENT_SQE
+         )
+    WHERE ROWNUM = 1
+  </select>
 
-    <!--    根据订单id查询所有的零星物资出厂实绩-->
-    <select id="getSporadicSuppliesLoadResult" resultType="java.util.Map">
-        select *
-        from (
-        select
-        TLR.RESULT_ID "resultId",
-        OO.ORDER_NUMBER "orderNumber",
-        RC.CAPACITY_NUMBER "capacityNumber",
-        TLR.RESULT_MEASURED_TONNAGE "resultMeasuredTonnage",
-        TLR.RESULT_ISCLEAR "resultIsclear",
-        to_char(TLR.RESULT_LOAD_START_TIME, 'yyyy-mm-dd') "resultLoadStartTime",
-        TLR.INSERT_UPDATE_REMARK "insertUpdateRemark",
-        TLR.INSERT_TIME "insertTime",
-        RM.MATERIAL_NAME "materialName",
-        OOM.ORDER_MATERIAL_NUMBER "materialNumber",
-        OOM.ORDER_MATERIAL_WEIGHT "materialWeight"
-        from TMSTRUCK_LOAD_RESULT TLR
-        left join TMSTRUCK_TOTAL_RESULT TTR
-        on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        left join OMSTRUCK_ORDER OO
-        on TTR.ORDER_ID = OO.ORDER_ID
-        left join OMSTRUCK_ORDER_MATERIAL OOM
-        on OOM.ORDER_ID=OOM.ORDER_ID
-        left join RMS_MATERIAL RM
-        on RM.MATERIAL_ID = OOM.MATERIAL_ID
-        left join AMSTRUCK_SPORADIC_ORDER ASO
-        on OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
-        left join RMS_CAPACITY RC
-        on RC.CAPACITY_ID = OO.CAPACITY_ID
-        where TLR.STATUS = #{status} and OO.ORDER_TYPE = #{orderTypee}
-        )
-        <where>
-            <if test="orderNumber != null">
-                and
-                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                    "orderNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="capacityNumber != null">
-                and
-                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
-                    "capacityNumber" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultIsclear != null">
-                and
-                <foreach collection="resultIsclear" item="item" open="(" separator="or" close=")">
-                    "resultIsclear" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultLoadStartTime != null">
-                and
-                <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
-                    "resultLoadStartTime" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="insertUpdateRemark != null">
-                and
-                <foreach collection="insertUpdateRemark" item="item" open="(" separator="or" close=")">
-                    "insertUpdateRemark" like '%${item}%'
-                </foreach>
-            </if>
-        </where>
-        <include refid="orderBy"></include>
-        <if test="orderField == null  ">
-            order by "resultLoadStartTime" desc
-        </if>
-    </select>
-<!--  获取采购内转装车实绩  -->
-    <select id="getCgNzLoadingResult" resultType="java.util.Map" parameterType="java.lang.Integer">
-          select *from ( select OO.ORDER_NUMBER              "orderNumber",
-                       OOM.ORDER_MATERIAL_WEIGHT    "orderMaterialWeight",
-                       OO.ORDER_RECEIVE_REFUSE_TIME "orderReceiveRefuseTime",
-                       RW.WAREHOUSE_NAME            "warehouseName",
-                       RM.MATERIAL_NAME             "materialName",
-                       RC.CAPACITY_NUMBER           "capacityNumber",
-                       RW2.WAREHOUSE_NAME           "warehouseName2",
-                       OO.INSERT_UPDATE_REMARK      "insertUpdateRemark",
-                       TTR.RESULT_TOTAL_ID          "resultTotalId"
-                  from OMSTRUCK_ORDER OO
-                  left join RMS_CAPACITY RC
-                    on RC.CAPACITY_ID = OO.CAPACITY_ID
-                  left join OMSTRUCK_ORDER_MATERIAL OOM
-                    on OOM.ORDER_ID = OO.ORDER_ID
-                  left join RMS_MATERIAL RM
-                    on RM.MATERIAL_ID = OOM.MATERIAL_ID
-                  left join RMS_WAREHOUSE RW
-                    on RW.WAREHOUSE_ID = OO.UNLOAD_POINT_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 RW2
-                    on RW2.WAREHOUSE_ID = TLR.LOADING_ID
-                 where OO.ORDER_STATUS = #{orderStatus}
-                   and TLR.RESULT_LOAD_END_TIME IS NULL
-                   and OO.ORDER_TYPE = #{orderType})
-    </select>
 </mapper>

+ 300 - 12
src/main/resources/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.xml

@@ -742,16 +742,17 @@
         WHERE OO.ORDER_NUMBER = #{orderNumber}
     </select>
     
-<!--  采购辅料计量委托  -->
+<!--  采购计量委托  -->
     <select id="purchaseMeasure" parameterType="map" resultType="java.util.Map">
         select
             APO.PURCHASE_ORDER_NO   "purchaseOrder",
+            APO.SUPPLIER_SCREEN_INFO    "supplierScreenInfo",
             OO.ORDER_NUMBER         "transportNum",
             RC.CAPACITY_NUMBER      "carNum",
             RTC.TRUCK_CALCULATE_NUMBER "steelyardNum",
             RS.SUPPLIER_NAME            "sendUnit",
             RSH.SHIPPER_NAME            "ReceivUnit",
-            RM.MATERIAL_NAME            "materiaName",
+            CONCAT(RM.MATERIAL_NAME ,CONCAT(RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL))    "materiaName",
             RM.MATERIAL_ID              "materialId",
             CONCAT(RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL) "goodsType",
             RW.WAREHOUSE_NAME           "unloadPlace",
@@ -802,7 +803,7 @@
                    )                                                                          "receiverNo",
                RM.MATERIAL_ID || ''                                                                "item",
                RM.MATERIAL_CODE                                                               "goodsNo",
-               CONCAT(RM.MATERIAL_NAME, CONCAT(RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL)) "goodsName",
+               CONCAT(RM.MATERIAL_NAME, CONCAT(RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL)) || 'null' "goodsName",
                (case
                    when OOM.ORDER_MATERIAL_WEIGHT  is null
                     then 0
@@ -833,9 +834,9 @@
         where OO.ORDER_ID = #{orderId}
     </select>
 
-<!--   通过订单ID查询收货单位ID -->
+<!--   通过订单ID查询组织ID -->
     <select id="getReceiveIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
-        select APO.RECEIVE_UNIT_ID
+        select APO.PURCHASING_ORGANIZATION_ID
         from OMSTRUCK_ORDER OO
         left join AMS_PURCHASE_ORDER APO
             on APO.PURCHASE_ORDER_ID = OO.ORDER_PLAN_ID
@@ -902,13 +903,15 @@
                 and rownum = 1
     </select>
 <!--  通过订单ID查询发货单位ID  -->
-    <select id="getShipperIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
-        select ASO.SHIPPER_ID
+    <select id="getShipperIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select ASO.SHIPPER_ID "shipperId",
+               ASM.SALE_WAREHOUSE   "saleWarehouse"
         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 ASM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
         where OO.ORDER_ID = #{orderId}
     </select>
 
@@ -934,6 +937,37 @@
                 LEFT JOIN rms_consignee rce ON rce.consignee_id = aso.receive_unit_id
         where oo.order_id = #{orderId} and oom.material_id = #{materialId}
     </select>
+    <select id="sproadicMeasure" parameterType="map" resultType="java.util.Map">
+        select RM.MATERIAL_NAME                                     "materiaName",
+               OO.ORDER_NUMBER                                      "transportNum",
+               RC.CAPACITY_NUMBER                                   "carNum",
+               RS.SUPPLIER_NAME                                     "sendUnit",
+               RC2.CONSIGNEE_COMPANY_NAME                           "ReceivUnit",
+               RM.MATERIAL_ID                                       "materialId",
+               CONCAT(RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL) "goodsType",
+               RC2.CONSIGNEE_COMPANY_NAME                           "unloadPlace"
+
+        from OMSTRUCK_ORDER OO
+                 left join TMSTRUCK_TOTAL_RESULT TTR
+                           ON TTR.ORDER_ID = OO.ORDER_ID
+                 LEFT JOIN OMSTRUCK_ORDER_MATERIAL oom
+                           ON OO.ORDER_ID = oom.ORDER_ID
+                 LEFT JOIN RMS_CAPACITY RC
+                           ON RC.CAPACITY_ID = OO.CAPACITY_ID
+                 LEFT JOIN RMS_MATERIAL RM
+                           ON RM.MATERIAL_ID = oom.MATERIAL_ID
+                 LEFT JOIN AMSTRUCK_SPORADIC_ORDER ASO
+                           ON ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
+                 LEFT JOIN RMS_SUPPLIER RS
+                           ON RS.SUPPLIER_ID = ASO.SEND_UNIT_ID
+                 LEFT JOIN RMS_CONSIGNEE RC2
+                           ON RC2.CONSIGNEE_ID = ASO.RECEIVE_UNIT_ID
+        WHERE OO.ORDER_ID = #{orderId} and oom.MATERIAL_ID = #{materialId}
+    </select>
+
+
+
+
     <select id="getReceiveIdByRequirementOrderId" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
         select apo.receive_unit_id
   from omstruck_order oo
@@ -1039,10 +1073,10 @@
     <select id="getLxRealSendUnitIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
         select RS.SUPPLIER_FAR_ID
         from OMSTRUCK_ORDER OO
-            left join AMSTRUCK_SPORADIC_ORDER ASO
-                    on OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
-            left join RMS_SUPPLIER RS
-                    on RS.SUPPLIER_ID = ASO.SEND_UNIT_ID
+        left join AMSTRUCK_SPORADIC_ORDER ASO
+        on OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
+        left join RMS_SUPPLIER RS
+        on RS.SUPPLIER_ID = ASO.SEND_UNIT_ID
         where OO.ORDER_ID = #{orderId}
     </select>
 
@@ -1051,7 +1085,7 @@
         select ASO.RECEIVE_UNIT_ID
         from OMSTRUCK_ORDER OO
         left join AMSTRUCK_SPORADIC_ORDER ASO
-            on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
+        on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
         where OO.ORDER_ID = #{orderId}
     </select>
 
@@ -1063,4 +1097,258 @@
                            on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
         where OO.ORDER_ID = #{orderId}
     </select>
+<!--  老厂区采购内转计量委托 -->
+    <select id="purchaseXqCgNzMeasure" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    OO.ORDER_NUMBER "transportNum",
+                    RC.CAPACITY_NUMBER "carNum",
+                    APO.PURCHASE_ORDER_NO "purchaseOrder",
+                    RS.SUPPLIER_NAME "sendUnit",
+                    RCE.CONSIGNEE_COMPANY_NAME "ReceivUnit",
+                    RW.WAREHOUSE_NAME "unloadPlace",
+                    TWR.INSERT_UPDATE_REMARK "demo",
+                    RM.MATERIAL_ID "materialId",
+                    RM.MATERIAL_NAME "materiaName",
+                    concat( RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL ) "goodsType",
+                    RTC.TRUCK_CALCULATE_NUMBER "steelyardNum"
+                FROM
+                    OMSTRUCK_ORDER OO
+                        LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID = OO.CAPACITY_ID
+                        LEFT JOIN AMSTRUCK_INWARD_PLAN AIP ON AIP.PLAN_ID = OO.ORDER_PLAN_ID
+                        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP ON ARP.PLAN_ID = AIP.PLAN_ID
+                        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+                        LEFT JOIN AMS_PURCHASE_ORDER APO ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+                        LEFT JOIN RMS_SUPPLIER RS ON RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
+                        LEFT JOIN RMS_CONSIGNEE RCE ON RCE.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
+                        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR.ORDER_ID = OO.ORDER_ID
+                        LEFT JOIN TMSTRUCK_UNLOAD_RESULT TUR ON TUR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                        LEFT JOIN RMS_WAREHOUSE RW ON RW.WAREHOUSE_ID = AIR.REQUIREMENT_UNLOAD_UNIT_ID
+                        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM ON OOM.ORDER_ID = OO.ORDER_ID
+                        LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+                        LEFT JOIN RMS_TRUCK_CALCULATE RTC ON RTC.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
+                WHERE
+                    OO.ORDER_ID = #{orderId}
+                ORDER BY
+                    TWR.TARE_SEGMENT_SQE DESC
+                )
+        WHERE
+            ROWNUM = 1
+    </select>
+
+<!--  查询内转计量委托  -->
+    <select id="purchaseNzMeasure" resultType="java.util.Map" parameterType="java.util.Map">
+       select OO.ORDER_NUMBER       "transportNum",
+              RC.CAPACITY_NUMBER    "carNum",
+              RM.MATERIAL_NAME      "materiaName",
+              CONCAT(RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL) "goodsType",
+              OO.INSERT_UPDATE_REMARK   "demo",
+              RM.MATERIAL_ID          "materialId",
+              RW.WAREHOUSE_NAME       "unloadPlace",
+              RW.WAREHOUSE_NAME       "ReceivUnit",
+              RW2.WAREHOUSE_NAME      "sendUnit"
+       from OMSTRUCK_ORDER OO
+        left join AMSTRUCK_INWARD_PLAN  AIP on OO.ORDER_PLAN_ID = AIP.PLAN_ID
+        left join AMSTRUCK_REQUIREMENT_PLAN ARP on ARP.PLAN_ID = AIP.PLAN_ID
+        left join AMSTRUCK_INWARD_REQUIREMENT AIR ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+        LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM ON ARM.REQUIREMENT_ID = AIR.REQUIREMENT_ID
+        LEFT JOIN RMS_WAREHOUSE RW on RW.WAREHOUSE_ID = ARM.REQUIREMENT_UNLOAD_UNIT_ID
+        left join RMS_WAREHOUSE RW2 on RW2.WAREHOUSE_ID = ARM.REQUIREMENT_PLATFORM_ID
+        left join OMSTRUCK_ORDER_MATERIAL OOM  on OO.ORDER_ID = OOM.ORDER_ID
+        left join RMS_MATERIAL  RM on OOM.MATERIAL_ID = RM.MATERIAL_ID
+        left join RMS_CAPACITY  RC on OO.CAPACITY_ID = RC.CAPACITY_ID
+        where OOM.ORDER_ID = #{orderId}
+              and OOM.MATERIAL_ID = #{materialId}
+              AND ARM.MATERIAL_ID = #{materialId}
+    </select>
+
+<!--  查找未计量完成的物资  -->
+    <select id="getMaterialIdAndCalculateId" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT
+            OO.ORDER_NUMBER "transportNum",
+            RC.CAPACITY_NUMBER "carNum",
+            APO.PURCHASE_ORDER_NO "purchaseOrder",
+            RW.WAREHOUSE_NAME "unloadPlace",
+            TWR.INSERT_UPDATE_REMARK "demo",
+            RM.MATERIAL_ID "materialId",
+            RM.MATERIAL_NAME "materiaName",
+            concat( RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL ) "goodsType",
+            RTC.TRUCK_CALCULATE_NUMBER "steelyardNum"
+        FROM
+            OMSTRUCK_ORDER OO
+                LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID = OO.CAPACITY_ID
+                LEFT JOIN AMSTRUCK_INWARD_PLAN AIP ON AIP.PLAN_ID = OO.ORDER_PLAN_ID
+                LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP ON ARP.PLAN_ID = AIP.PLAN_ID
+                LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+                LEFT JOIN AMS_PURCHASE_ORDER APO ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+                LEFT JOIN RMS_SUPPLIER RS ON RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
+                LEFT JOIN RMS_CONSIGNEE RCE ON RCE.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
+                LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR.ORDER_ID = OO.ORDER_ID
+                LEFT JOIN TMSTRUCK_UNLOAD_RESULT TUR ON TUR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_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 = AIR.REQUIREMENT_UNLOAD_UNIT_ID
+                LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM ON OOM.ORDER_ID = OO.ORDER_ID
+                LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+                LEFT JOIN RMS_TRUCK_CALCULATE RTC ON RTC.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
+        WHERE
+            OO.ORDER_ID = #{orderId} AND TLR.RESULT_LOAD_END_TIME IS NOT NULL
+        ORDER BY
+            TWR.TARE_SEGMENT_SQE DESC,
+            TLR.SEGMENT_SQE DESC,
+            OOM.MATERIAL_PRIORITY DESC
+
+    </select>
+
+    <select id="checkoutWeightCommission" parameterType="map" resultType="java.lang.Integer">
+        select TWR.WEIGHT_TASK_RESULT_ID
+        from TMSTRUCK_TOTAL_RESULT TTR
+            left join TMSTRUCK_WEIGHT_RESULT TWR
+                on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+            where TTR.ORDER_ID = #{orderId} and TWR.MATERIAL_ID = #{materialId}
+    </select>
+
+    <select id="checkoutWeightCommission2" parameterType="map" resultType="java.util.Map">
+        select TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId",
+               TWR.RESULT_NET_WEIGHT    "resultNetWeight"
+        from TMSTRUCK_WEIGHT_RESULT TWR
+                 left join TMSTRUCK_TOTAL_RESULT TTR
+                           on TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        where TTR.ORDER_ID = #{orderId}
+          and TWR.MATERIAL_ID = #{checkMaterialId}
+
+    </select>
+
+    <select id="getAlreadySentMaterialId" parameterType="map" resultType="java.lang.Integer">
+        select *
+        from (
+                 select OOM.MATERIAL_ID
+                 from OMSTRUCK_ORDER_MATERIAL OOM
+                 where OOM.MATERIAL_MEASSION = 1
+                   and OOM.ORDER_ID = #{orderId}
+                 order by OOM.UPDATE_TIME DESC
+             )
+        where rownum = 1
+    </select>
+
+
+    <update id="updateOmsTruckMaterial" parameterType="map">
+        update OMSTRUCK_ORDER_MATERIAL OOM
+            <set>
+                OOM.UPDATE_TIME = SYSDATE,
+                <if test="deletedCommission == null">
+                     OOM.MATERIAL_MEASSION = 1
+                </if>
+                <if test="deletedCommission != null">
+                     OOM.MATERIAL_MEASSION = null
+                </if>
+            </set>
+        where OOM.ORDER_ID = #{orderId} and OOM.MATERIAL_ID = #{materialId}
+    </update>
+
+
+
+   <!--发送委托给达钢-->
+    <select id="selectXsMeasuresion" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+        select *
+        from (
+                 select ASO.SALE_NUMBER                                      "purchaseOrder",
+                        OO.ORDER_NUMBER                                      "transportNum",
+                        RM.MATERIAL_ID                                       "materialId",
+                        RM.MATERIAL_NAME                                     "materiaName",
+                        concat(RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL) "goodsType",
+                        RS.SHIPPER_NAME                                      "sendUnit",
+                        RC.CONSIGNEE_COMPANY_NAME                            "ReceivUnit",
+                        RC2.CAPACITY_NUMBER                                  "carNum",
+                        RTC.TRUCK_CALCULATE_NUMBER                           "steelyardNum",
+                        ASO.SALE_REMARK                                      "shipNum",
+                        OO.INSERT_UPDATE_REMARK                              "demo",
+                        ASM.EAS_PRIMARY_ID                                   "FLID"
+
+                 from OMSTRUCK_ORDER oo
+                          left join OMSTRUCK_ORDER_MATERIAL OOM
+                                    ON OO.ORDER_ID = OOM.ORDER_ID
+                          LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+                                    ON ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+                          LEFT JOIN RMS_MATERIAL RM
+                                    ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+                          LEFT JOIN AMS_SALE_ORDER ASO
+                                    ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+                          LEFT JOIN AMS_SALE_MATERIAL ASM
+                                    ON ASM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+                          LEFT JOIN RMS_CONSIGNEE RC
+                                    ON RC.CONSIGNEE_ID = ASO.RECEIVE_ID
+                          LEFT JOIN RMS_SHIPPER RS
+                                    ON RS.SHIPPER_ID = ASO.SHIPPER_ID
+                          LEFT JOIN RMS_CAPACITY RC2
+                                    ON RC2.CAPACITY_ID = OO.CAPACITY_ID
+                          LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                                    ON TTR.ORDER_ID = oo.ORDER_ID
+                          LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+                                    ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                          LEFT JOIN RMS_TRUCK_CALCULATE RTC
+                                    ON RTC.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
+                 WHERE OO.ORDER_ID = #{orderId}
+             )
+        where rownum = 1
+    </select>
+
+    <select id="getSteelMeasureCommission" parameterType="map" resultType="map">
+        select *
+        from (
+                 select ASO.SALE_NUMBER                                      "purchaseOrder",
+                        OO.ORDER_NUMBER                                      "transportNum",
+                        RM.MATERIAL_ID                                       "materialId",
+                        RM.MATERIAL_SPECIFICATION || '(' || RM.MATERIAL_MODEL || ') ' ||
+                        RM.MATERIAL_NAME                                     "materiaName",
+                        CONCAT(RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL) "goodsType",
+                        RS.SHIPPER_NAME                                      "sendUnit",
+                        OOM.ORDER_MATERIAL_NUMBER                            "packagesNum",
+                        RCON.CONSIGNEE_COMPANY_NAME                          "ReceivUnit",
+                        RC.CAPACITY_NUMBER                                   "carNum",
+                        ASO.SALE_REMARK                                      "shipNum",
+                        OO.INSERT_UPDATE_REMARK                              "demo",
+                        ASM.EAS_PRIMARY_ID                                   "FLID",
+                        MAORTC.TRUCK_CALCULATE_NUMBER                        "steelyardNum",
+                        ASM.METER_WEIGHT                                     "meterWeight",
+                        ASM.IS_POUND_SALE                                    "isPoundSale"
+                 from OMSTRUCK_ORDER OO
+                          left join OMSTRUCK_ORDER_MATERIAL OOM on OO.ORDER_ID = OOM.ORDER_ID
+                          left join RMS_MATERIAL RM on OOM.MATERIAL_ID = RM.MATERIAL_ID
+                          left join AMS_SALE_ORDER_MATERIAL ASOM on OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_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_SHIPPER RS on ASO.SHIPPER_ID = RS.SHIPPER_ID
+                          left join RMS_CONSIGNEE RCON on ASO.RECEIVE_ID = RCON.CONSIGNEE_ID
+                          left join RMS_CAPACITY RC on OO.CAPACITY_ID = RC.CAPACITY_ID
+                          left join TMSTRUCK_TOTAL_RESULT TTR on OO.ORDER_ID = TTR.ORDER_ID
+                          left join TMSTRUCK_WEIGHT_RESULT TWR on TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+                          left join RMS_TRUCK_CALCULATE MAORTC on TWR.RESULT_GROSS_PLACE_ID = MAORTC.TRUCK_CALCULATE_ID
+                 where OO.ORDER_ID = #{orderId}
+                   and OOM.MATERIAL_ID = #{materialId}
+                   and ASM.MATERIAL_ID = #{materialId}
+                   and TWR.RESULT_NET_WEIGHT is null
+                 order by TWR.TARE_SEGMENT_SQE
+            )
+        where rownum = 1
+
+    </select>
+
+    <select id="getAlreadyWeightMaterialNum" parameterType="java.math.BigDecimal" resultType="int">
+        select count(OOM.MATERIAL_ID)
+        from OMSTRUCK_ORDER_MATERIAL OOM
+        where OOM.ORDER_ID = #{orderId}
+          AND EXISTS(select TWR.MATERIAL_ID
+                         from TMSTRUCK_TOTAL_RESULT TTR
+                                  left join TMSTRUCK_WEIGHT_RESULT TWR
+                                            on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                         where TTR.ORDER_ID = OOM.ORDER_ID
+                           and OOM.MATERIAL_ID = TWR.MATERIAL_ID
+            )
+    </select>
+
 </mapper>

+ 1 - 3
src/main/resources/com/steerinfo/dil/mapper/TmstruckQualityResultMapper.xml

@@ -553,10 +553,8 @@
     on OO.ORDER_ID = TTR.ORDER_ID
     left join tmstruck_weight_result twr
     on twr.result_total_id = ttr.result_total_id
-    left join rms_driver_capacity rdc
-    on rdc.driver_capacity_id = OO.driver_capacity_id
     left join rms_capacity rc
-    on rc.capacity_id = rdc.capacity_id
+    on rc.capacity_id = oo.capacity_id
     left join amstruck_inward_plan aip
     on aip.plan_id = oo.order_plan_id
     left join amstruck_requirement_plan arp

+ 335 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckTareReturnResultMapper.xml

@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.steerinfo.dil.mapper.TmstruckTareReturnResultMapper">
+  <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.TmstruckTareReturnResult">
+    <id column="RESULT_ID" jdbcType="DECIMAL" property="resultId" />
+    <result column="CAPACITY_ID" jdbcType="DECIMAL" property="capacityId" />
+    <result column="RETURN_NUM" jdbcType="VARCHAR" property="returnNum" />
+    <result column="RETURN_TIME" jdbcType="TIMESTAMP" property="returnTime" />
+    <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername" />
+    <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime" />
+    <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername" />
+    <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark" />
+  </resultMap>
+  <sql id="columns">
+    RESULT_ID, CAPACITY_ID, RETURN_NUM, RETURN_TIME, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, 
+    UPDATE_TIME, INSERT_UPDATE_REMARK
+  </sql>
+  <sql id="columns_alias">
+    t.RESULT_ID, t.CAPACITY_ID, t.RETURN_NUM, t.RETURN_TIME, t.INSERT_USERNAME, t.INSERT_TIME, 
+    t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK
+  </sql>
+  <sql id="select">
+    SELECT <include refid="columns"/> FROM TMSTRUCK_TARE_RETURN_RESULT
+  </sql>
+  <sql id="select_alias">
+    SELECT <include refid="columns_alias"/> FROM TMSTRUCK_TARE_RETURN_RESULT t
+  </sql>
+  <sql id="where">
+    <where> 
+      <if test="resultId != null">
+        and RESULT_ID = #{resultId}
+      </if>
+      <if test="capacityId != null">
+        and CAPACITY_ID = #{capacityId}
+      </if>
+      <if test="returnNum != null and returnNum != ''">
+        and RETURN_NUM = #{returnNum}
+      </if>
+      <if test="returnTime != null">
+        and TO_CHAR(RETURN_TIME,'yyyy-MM-dd') = #{returnTime}
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        and INSERT_USERNAME = #{insertUsername}
+      </if>
+      <if test="insertTime != null">
+        and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+      </if>
+      <if test="updateUsername != null and updateUsername != ''">
+        and UPDATE_USERNAME = #{updateUsername}
+      </if>
+      <if test="updateTime != null">
+        and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+      </if>
+      <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+        and INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+      </if>
+    </where>
+  </sql>
+  <sql id="whereLike">
+    <where> 
+      <if test="resultId != null">
+        and RESULT_ID = #{resultId}
+      </if>
+      <if test="capacityId != null">
+        and CAPACITY_ID = #{capacityId}
+      </if>
+      <if test="returnNum != null and returnNum != ''">
+        and RETURN_NUM LIKE '%${returnNum}%'
+      </if>
+      <if test="returnTime != null">
+        and TO_CHAR(RETURN_TIME,'yyyy-MM-dd') = #{returnTime}
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        and INSERT_USERNAME LIKE '%${insertUsername}%'
+      </if>
+      <if test="insertTime != null">
+        and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+      </if>
+      <if test="updateUsername != null and updateUsername != ''">
+        and UPDATE_USERNAME LIKE '%${updateUsername}%'
+      </if>
+      <if test="updateTime != null">
+        and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+      </if>
+      <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+        and INSERT_UPDATE_REMARK LIKE '%${insertUpdateRemark}%'
+      </if>
+    </where>
+  </sql>
+  <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
+    delete from TMSTRUCK_TARE_RETURN_RESULT
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </delete>
+  <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
+    delete from TMSTRUCK_TARE_RETURN_RESULT
+    where 1!=1 
+      <if test="capacityId != null">
+        or CAPACITY_ID = #{capacityId}
+      </if>
+      <if test="returnNum != null and returnNum != ''">
+        or RETURN_NUM = #{returnNum}
+      </if>
+      <if test="returnTime != null">
+        or TO_CHAR(RETURN_TIME,'yyyy-MM-dd') = '#{returnTime}'
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        or INSERT_USERNAME = #{insertUsername}
+      </if>
+      <if test="insertTime != null">
+        or TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = '#{insertTime}'
+      </if>
+      <if test="updateUsername != null and updateUsername != ''">
+        or UPDATE_USERNAME = #{updateUsername}
+      </if>
+      <if test="updateTime != null">
+        or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
+      </if>
+      <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+        or INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+      </if>
+  </delete>
+  <insert id="insert" parameterType="com.steerinfo.dil.model.TmstruckTareReturnResult">
+    insert into TMSTRUCK_TARE_RETURN_RESULT (RESULT_ID, CAPACITY_ID, RETURN_NUM, 
+      RETURN_TIME, INSERT_USERNAME, INSERT_TIME, 
+      UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK
+      )
+    values (#{resultId,jdbcType=DECIMAL}, #{capacityId,jdbcType=DECIMAL}, #{returnNum,jdbcType=VARCHAR}, 
+      #{returnTime,jdbcType=TIMESTAMP}, #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, 
+      #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.steerinfo.dil.model.TmstruckTareReturnResult">
+    insert into TMSTRUCK_TARE_RETURN_RESULT
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="resultId != null">
+        RESULT_ID,
+      </if>
+      <if test="capacityId != null">
+        CAPACITY_ID,
+      </if>
+      <if test="returnNum != null">
+        RETURN_NUM,
+      </if>
+      <if test="returnTime != null">
+        RETURN_TIME,
+      </if>
+      <if test="insertUsername != null">
+        INSERT_USERNAME,
+      </if>
+      <if test="insertTime != null">
+        INSERT_TIME,
+      </if>
+      <if test="updateUsername != null">
+        UPDATE_USERNAME,
+      </if>
+      <if test="updateTime != null">
+        UPDATE_TIME,
+      </if>
+      <if test="insertUpdateRemark != null">
+        INSERT_UPDATE_REMARK,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="resultId != null">
+        #{resultId,jdbcType=DECIMAL},
+      </if>
+      <if test="capacityId != null">
+        #{capacityId,jdbcType=DECIMAL},
+      </if>
+      <if test="returnNum != null">
+        #{returnNum,jdbcType=VARCHAR},
+      </if>
+      <if test="returnTime != null">
+        #{returnTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUsername != null">
+        #{insertUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="insertTime != null">
+        #{insertTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUsername != null">
+        #{updateUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUpdateRemark != null">
+        #{insertUpdateRemark,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.TmstruckTareReturnResult">
+    update TMSTRUCK_TARE_RETURN_RESULT
+    set CAPACITY_ID = #{capacityId,jdbcType=DECIMAL},
+      RETURN_NUM = #{returnNum,jdbcType=VARCHAR},
+      RETURN_TIME = #{returnTime,jdbcType=TIMESTAMP},
+      INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+      INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+      UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+      UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+      INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR}
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.TmstruckTareReturnResult">
+    update TMSTRUCK_TARE_RETURN_RESULT
+    <set>
+      <if test="capacityId != null">
+        CAPACITY_ID = #{capacityId,jdbcType=DECIMAL},
+      </if>
+      <if test="returnNum != null">
+        RETURN_NUM = #{returnNum,jdbcType=VARCHAR},
+      </if>
+      <if test="returnTime != null">
+        RETURN_TIME = #{returnTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUsername != null">
+        INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="insertTime != null">
+        INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUsername != null">
+        UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUpdateRemark != null">
+        INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </update>
+  <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+    <include refid="select"/>
+    where RESULT_ID = #{resultId,jdbcType=DECIMAL}
+  </select>
+  <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select"/>
+    <include refid="where"/>
+  </select>
+  <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select"/>
+    <include refid="whereLike"/>
+  </select>
+  <insert id="batchInsert" parameterType="java.util.List">
+    insert into TMSTRUCK_TARE_RETURN_RESULT 
+      (RESULT_ID, 
+      CAPACITY_ID, RETURN_NUM, RETURN_TIME, 
+      INSERT_USERNAME, INSERT_TIME, 
+      UPDATE_USERNAME, UPDATE_TIME, 
+      INSERT_UPDATE_REMARK)
+    ( <foreach collection="list" item="item" separator="union all"> 
+   select  
+      #{item.resultId,jdbcType=DECIMAL}, 
+      #{item.capacityId,jdbcType=DECIMAL}, #{item.returnNum,jdbcType=VARCHAR}, #{item.returnTime,jdbcType=TIMESTAMP}, 
+      #{item.insertUsername,jdbcType=VARCHAR}, #{item.insertTime,jdbcType=TIMESTAMP}, 
+      #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP}, 
+      #{item.insertUpdateRemark,jdbcType=VARCHAR} from dual  
+   </foreach> )
+  </insert>
+  <update id="batchUpdate" parameterType="java.util.List">
+     update TMSTRUCK_TARE_RETURN_RESULT
+     set
+       RESULT_ID=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.resultId,jdbcType=DECIMAL}
+       </foreach>
+       ,CAPACITY_ID=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.capacityId,jdbcType=DECIMAL}
+       </foreach>
+       ,RETURN_NUM=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.returnNum,jdbcType=VARCHAR}
+       </foreach>
+       ,RETURN_TIME=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.returnTime,jdbcType=TIMESTAMP}
+       </foreach>
+       ,INSERT_USERNAME=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
+       </foreach>
+       ,INSERT_TIME=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
+       </foreach>
+       ,UPDATE_USERNAME=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
+       </foreach>
+       ,UPDATE_TIME=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
+       </foreach>
+       ,INSERT_UPDATE_REMARK=
+       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
+       </foreach>
+     where RESULT_ID in 
+     <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+    #{item.resultId,jdbcType=DECIMAL}
+     </foreach> 
+  </update>
+  <delete id="batchDelete" parameterType="java.util.List">
+    delete from TMSTRUCK_TARE_RETURN_RESULT
+    where RESULT_ID in 
+    <foreach collection="list" item="id" open="(" close=")" separator=",">
+      #{id}
+    </foreach>
+  </delete>
+  <!-- 友情提示!!!-->
+  <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+
+<!-- 通过车牌号查询委托信息 -->
+  <select id="getMesByCapacityNum" parameterType="string" resultType="java.util.Map">
+    select *
+    from (
+           select TTRR.CAPACITY_ID "capacityId",
+                  TTRR.RETURN_TIME "returnTime",
+                  TTRR.RETURN_NUM   "returnNum"
+           from TMSTRUCK_TARE_RETURN_RESULT TTRR
+           where CAPACITY_ID = (
+             select RC.CAPACITY_ID
+             from RMS_CAPACITY RC
+             where RC.CAPACITY_NUMBER = #{capacityNumber})
+           order by TTRR.RETURN_TIME DESC
+         )
+    where rownum = 1
+  </select>
+
+</mapper>

+ 116 - 55
src/main/resources/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.xml

@@ -626,6 +626,19 @@
     where rownum = 1
   </select>
 
+
+  <select id="getLastTimeEnd" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+    select *
+    from(
+          SELECT TTTR.RESULT_TIME "resultTime"
+          FROM TMSTRUCK_TIME_TASK_RESULT TTTR
+          WHERE TTTR.RESULT_TOTAL_ID = #{resultTotalId}
+            AND TTTR.RESULT_TIME_TYPE = 7
+          ORDER BY "resultTime" DESC
+        )
+    where rownum = 1
+  </select>
+
 <!--  查询用车单位确认开始时间-->
   <select id="getStartTime" parameterType="java.math.BigDecimal" resultType="java.util.Map">
     SELECT TTTR.RESULT_TIME "resultTime"
@@ -654,61 +667,76 @@
 
   <!-- 查询计时作业 -->
   <select id="getAllTimeTaskResult" resultType="java.util.Map">
-    SELECT *
-    FROM (
-           SELECT
-                  TTTR.TIME_TASK_RESULT_ID  "timeTaskResultId",
-                  TTTR.INSERT_TIME      "insertTime",
-                  OO.ORDER_NUMBER "orderNumber",
-                  RC.CAPACITY_NUMBER "capacityNumber",
-                  RCD.DRIVER_NAME "driverName",
-                  RCT.CAPACITY_TYPE_NAME "capacityTypeName",
-                  RM.MATERIAL_NAME "materialName",
-                  RS.SHIPPER_NAME "shipperName",
-                  (
-                      SELECT TTTR2.RESULT_TIME
-                      FROM TMSTRUCK_TIME_TASK_RESULT TTTR2
-                      WHERE TTTR2.RESULT_TOTAL_ID = TTTR.RESULT_TOTAL_ID
-                            AND TTTR2.RESULT_TIME_TYPE = 1
-                      ) "startTime",
-                  TTTR.RESULT_TIME "endTime",
-                  TTTR.RESULT_VALUE "timingTime",
-                  (
-                      SELECT FLOOR (SUM(TTTR3.RESULT_VALUE) / 60000)
-                      FROM TMSTRUCK_TIME_TASK_RESULT TTTR3
-                      WHERE TTTR3.RESULT_TIME_TYPE = 7
-                        AND TTTR3.RESULT_TOTAL_ID = TTTR.RESULT_TOTAL_ID
-                    ) "allTimeout"
-
-           FROM TMSTRUCK_TIME_TASK_RESULT TTTR
-                  LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
-                            ON TTR.RESULT_TOTAL_ID = TTTR.RESULT_TOTAL_ID
-                  LEFT JOIN OMSTRUCK_ORDER OO
-                            ON OO.ORDER_ID = TTR.ORDER_ID
-                  LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
-                            ON OOM.ORDER_ID = OO.ORDER_ID
-                  LEFT JOIN RMS_MATERIAL RM
-                            ON RM.MATERIAL_ID = OOM.MATERIAL_ID
-
-                  LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
-                            ON AIP.PLAN_ID = OO.ORDER_PLAN_ID AND OO.ORDER_TYPE = 11
-                  LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
-                            ON ARP.PLAN_ID = AIP.PLAN_ID
-                  LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
-                            ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
-                  LEFT JOIN RMS_SHIPPER RS
-                            ON RS.SHIPPER_ID = AIR.REQUIREMENT_SHIPPER_ID
-
-                  LEFT JOIN RMS_DRIVER_CAPACITY RDC
-                            ON RDC.DRIVER_CAPACITY_ID = OO.DRIVER_CAPACITY_ID
-                  LEFT JOIN RMS_CAPACITY RC
-                            ON RC.CAPACITY_ID = RDC.CAPACITY_ID
-                  LEFT JOIN RMS_CAR_DRIVER RCD
-                            ON RCD.DRIVER_ID = RDC.DRIVER_ID
-                  LEFT JOIN RMS_CAPACITY_TYPE RCT
-                            ON RCT.CAPACITY_TYPE_ID = RC.CAPACITY_TYPE_ID
-                  WHERE RESULT_TIME_TYPE = 3
-        )
+    select RC.CAPACITY_NUMBER "capacityNumber",
+           OO.ORDER_ID "orderId",
+    OO.ORDER_NUMBER "orderNumber",
+    CONCAT(TTTR.RESULT_VALUE,RUOM.UNIT_OF_MEASURE_NAME)  AS "resultTime",
+    RCT.CAPACITY_TYPE_NAME "capacityTypeName",
+    TTTR.INSERT_TIME "insertTime",
+    (
+    SELECT TTTR2.RESULT_TIME
+    FROM TMSTRUCK_TIME_TASK_RESULT TTTR2
+    WHERE TTTR2.RESULT_TOTAL_ID = TTTR.RESULT_TOTAL_ID
+    AND TTTR2.RESULT_TIME_TYPE = 1
+    ) "startTime",
+    (
+    SELECT TTTR2.RESULT_TIME
+    FROM TMSTRUCK_TIME_TASK_RESULT TTTR2
+    WHERE TTTR2.RESULT_TOTAL_ID = TTTR.RESULT_TOTAL_ID
+    AND TTTR2.RESULT_TIME_TYPE = 3
+    ) "endTime",
+    (
+    SELECT count(TTTR2.RESULT_VALUE)
+    FROM TMSTRUCK_TIME_TASK_RESULT TTTR2
+    WHERE TTTR2.RESULT_TOTAL_ID = TTTR.RESULT_TOTAL_ID
+    AND TTTR2.RESULT_TIME_TYPE = 7
+    ) "pauseTime",
+    RM.MATERIAL_NAME "materialName",
+    RS.SHIPPER_NAME "shipperName",
+    RW.WAREHOUSE_NAME "unloadPointName",
+    RW2.WAREHOUSE_NAME "loadPointName"
+    from OMSTRUCK_ORDER OO
+    LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
+    ON AIP.PLAN_ID=OO.ORDER_PLAN_ID
+    LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+    ON ARP.PLAN_ID=AIP.PLAN_ID
+    LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+    ON AIR.REQUIREMENT_ID=ARP.REQUIREMENT_ID
+    LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM
+    ON ARM.REQUIREMENT_ID=AIR.REQUIREMENT_ID
+    LEFT JOIN RMS_WAREHOUSE RW
+    ON ARM.REQUIREMENT_UNLOAD_UNIT_ID =RW.WAREHOUSE_ID
+    LEFT JOIN RMS_WAREHOUSE RW2
+    ON RW2.WAREHOUSE_ID=ARM.REQUIREMENT_PLATFORM_ID
+    LEFT JOIN RMS_MATERIAL RM
+    ON RM.MATERIAL_ID=ARM.MATERIAL_ID
+    LEFT JOIN RMS_SHIPPER RS
+    ON RS.SHIPPER_ID = AIR.REQUIREMENT_SHIPPER_ID
+    LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+    ON TTR.ORDER_ID=OO.ORDER_ID
+    LEFT JOIN TMSTRUCK_TIME_TASK_RESULT TTTR
+    ON  TTR.RESULT_TOTAL_ID=TTTR.RESULT_TOTAL_ID
+    LEFT JOIN RMS_UNIT_OF_MEASURE RUOM
+    ON TTTR.RESULT_UOM_ID=RUOM.UNIT_OF_MEASURE_ID
+    LEFT JOIN  RMS_CAPACITY RC
+    ON RC.CAPACITY_ID=OO.CAPACITY_ID
+    LEFT JOIN RMS_CAPACITY_TYPE RCT
+    ON RCT.CAPACITY_TYPE_ID=RC.CAPACITY_TYPE_ID
+    where TTTR.RESULT_TIME_TYPE = 3  AND   TTTR.RESULT_VALUE IS NOT NULL
+    <if test="con!=null">
+      AND RC.CAPACITY_NUMBER LIKE #{con} or  RM.MATERIAL_NAME LIKE  #{con}
+      or  RS.SHIPPER_NAME LIKE #{con}
+    </if>
+    <if test="userId!=null">
+      AND oo.INSERT_USERNAME LIKE #{userId}
+    </if>
+    <if test="oneDate != null">
+      and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TTTR.INSERT_TIME
+    </if>
+    <if test="startDate != null">
+      and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TTTR.INSERT_TIME
+      and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TTTR.INSERT_TIME
+    </if>
     <where>
       <if test="orderNumber != null">
         <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
@@ -775,5 +803,38 @@
       order by "insertTime" desc
     </if>
   </select>
+<!--  根据运输订单id查找实绩是否已经计时结束-->
+  <select id="CountTimeTaskByOrderId" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
+    select COUNT(*)
+    from OMSTRUCK_ORDER OO
+    LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+    ON TTR.ORDER_ID=OO.ORDER_ID
+    LEFT JOIN TMSTRUCK_TIME_TASK_RESULT TTTR
+    ON TTR.RESULT_TOTAL_ID=TTTR.RESULT_TOTAL_ID
+    WHERE OO.ORDER_ID=#{orderId} and TTTR.RESULT_TIME_TYPE=3 and TTTR.RESULT_VALUE IS not NULL
+  </select>
+
+    <select id="selectInwardDueTimeByOrderId" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+      select AIR.DUE_DATE  "dueTime",
+             AIR.INSERT_UPDATE_REMARK "remark"
+      from OMSTRUCK_ORDER OO
+      left join AMSTRUCK_INWARD_PLAN AIP
+                       on AIP.PLAN_ID=OO.ORDER_PLAN_ID
+             left join AMSTRUCK_REQUIREMENT_PLAN ARP
+                       on ARP.PLAN_ID=AIP.PLAN_ID
+             left join AMSTRUCK_INWARD_REQUIREMENT AIR
+                       on AIR.REQUIREMENT_ID=ARP.REQUIREMENT_ID
+      where OO.ORDER_ID=#{orderId}
+    </select>
+  <select id="getRequirementInfo" resultType="java.util.Map" parameterType="decimal">
+      select AIR.CAPACITY_TYPE_ID "capacityTypeId" ,AIR.REQUIREMENT_TYPE "requirementType" from OMSTRUCK_ORDER OO
+      left join AMSTRUCK_INWARD_PLAN AIP
+      on aip.PLAN_ID = OO.ORDER_PLAN_ID
+      LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+      ON ARP.PLAN_ID = AIP.PLAN_ID
+      LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+      ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+      where oo.ORDER_ID = #{orderId1}
+  </select>
 
 </mapper>

+ 36 - 26
src/main/resources/com/steerinfo/dil/mapper/TmstruckTotalResultMapper.xml

@@ -353,32 +353,42 @@
                       RCT.CAPACITY_TYPE_NAME       "capacityTypeName",
                       RS.SHIPPER_NAME              "shipperName",
                       AIR.REQUIREMENT_WORK_CONTENT "requirmentWorkContent",
-                      AIR.INSERT_TIME           "insertTime"
-               FROM AMSTRUCK_INWARD_REQUIREMENT AIR
-                        LEFT JOIN OMSTRUCK_ORDER OO
-                                  ON OO.ORDER_PLAN_ID = AIR.PURCHASE_ORDER_ID
-                        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
-                                  ON OO.ORDER_ID = OOM.ORDER_ID
-                        LEFT JOIN RMS_MATERIAL RM
-                                  ON RM.MATERIAL_ID = OOM.MATERIAL_ID
-                        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
-                                  ON TTR.ORDER_ID = OO.ORDER_ID
-                        LEFT JOIN TMSTRUCK_UNLOAD_RESULT TUR
-                                  ON TTR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
-                        LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
-                                  ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-                        LEFT JOIN RMS_WAREHOUSE RW1
-                                  ON TLR.LOADING_ID = RW1.WAREHOUSE_ID
-                        LEFT JOIN RMS_WAREHOUSE RW2
-                                  ON RW2.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
-                        LEFT JOIN RMS_CAPACITY RC
-                                  ON OO.CAPACITY_ID = RC.CAPACITY_ID
-                        LEFT JOIN RMS_CAPACITY_TYPE RCT
-                                  ON RCT.CAPACITY_TYPE_ID = RC.CAPACITY_TYPE_ID
-                        LEFT JOIN RMS_SHIPPER RS
-                                  ON AIR.REQUIREMENT_SHIPPER_ID = RS.SHIPPER_ID
-               WHERE AIR.REQUIREMENT_TYPE = '计时'
-                 AND OO.ORDER_STATUS = 11
+                      AIR.INSERT_TIME           "insertTime",
+                      (
+                          select TWR.RESULT_NET_WEIGHT
+                          from  TMSTRUCK_WEIGHT_RESULT TWR
+                          where TWR.RESULT_TOTAL_ID=TWR2.RESULT_TOTAL_ID
+                          and   TWR.RESULT_NET_WEIGHT is not null
+                      )
+                    "netweight"
+                   FROM AMSTRUCK_INWARD_PLAN AIP
+                   LEFT JOIN OMSTRUCK_ORDER OO
+                   ON OO.ORDER_PLAN_ID = AIP.PLAN_ID
+                   LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+                   ON ARP.PLAN_ID=AIP.PLAN_ID
+                   LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+                   ON AIR.REQUIREMENT_ID=ARP.REQUIREMENT_ID
+                   LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+                   ON OO.ORDER_ID = OOM.ORDER_ID
+                   LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM
+                   ON ARM.REQUIREMENT_ID=AIR.REQUIREMENT_ID
+                   LEFT JOIN RMS_MATERIAL RM
+                   ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+                   LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                   ON TTR.ORDER_ID = OO.ORDER_ID
+                   LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR2
+                   ON TTR.RESULT_TOTAL_ID = TWR2.RESULT_TOTAL_ID
+                   LEFT JOIN RMS_WAREHOUSE RW1
+                   ON ARM.REQUIREMENT_PLATFORM_ID = RW1.WAREHOUSE_ID
+                   LEFT JOIN RMS_WAREHOUSE RW2
+                   ON ARM.REQUIREMENT_UNLOAD_UNIT_ID = RW2.WAREHOUSE_ID
+                   LEFT JOIN RMS_CAPACITY RC
+                   ON OO.CAPACITY_ID = RC.CAPACITY_ID
+                   LEFT JOIN RMS_CAPACITY_TYPE RCT
+                   ON RCT.CAPACITY_TYPE_ID = RC.CAPACITY_TYPE_ID
+                   LEFT JOIN RMS_SHIPPER RS
+                   ON AIR.REQUIREMENT_SHIPPER_ID = RS.SHIPPER_ID
+                   WHERE AIR.REQUIREMENT_TYPE = '计次' and OO.ORDER_STATUS = 2
            )
     <where>
         <if test="materialName != null">

+ 113 - 42
src/main/resources/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.xml

@@ -19,17 +19,18 @@
         <result column="RESULT_UNLOAD_PLACE_ID" jdbcType="DECIMAL" property="resultUnloadPlaceId" />
         <result column="SEGMENT_SQE" jdbcType="DECIMAL" property="segmentSqe" />
         <result column="MATERIAL_ID" jdbcType="DECIMAL" property="materialId" />
+        <result column="UNLOADER_ID" jdbcType="DECIMAL" property="unloaderId" />
     </resultMap>
     <sql id="columns">
-        RESULT_ID, RESULT_NUMBER, RESULT_TOTAL_ID, RESULT_START_TIME, RESULT_END_TIME, RESULT_DURATION,
-    UNLOAD_STATUS, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
-    DELETE_NAME, DELETE_TIME, RESULT_UNLOAD_PLACE_ID, SEGMENT_SQE, MATERIAL_ID
+        RESULT_ID, RESULT_NUMBER, RESULT_TOTAL_ID, RESULT_START_TIME, RESULT_END_TIME, RESULT_DURATION, 
+    UNLOAD_STATUS, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, 
+    DELETE_NAME, DELETE_TIME, RESULT_UNLOAD_PLACE_ID, SEGMENT_SQE, MATERIAL_ID, UNLOADER_ID
     </sql>
     <sql id="columns_alias">
-        t.RESULT_ID, t.RESULT_NUMBER, t.RESULT_TOTAL_ID, t.RESULT_START_TIME, t.RESULT_END_TIME,
-    t.RESULT_DURATION, t.UNLOAD_STATUS, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME,
-    t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.DELETE_NAME, t.DELETE_TIME, t.RESULT_UNLOAD_PLACE_ID,
-    t.SEGMENT_SQE, t.MATERIAL_ID
+        t.RESULT_ID, t.RESULT_NUMBER, t.RESULT_TOTAL_ID, t.RESULT_START_TIME, t.RESULT_END_TIME, 
+    t.RESULT_DURATION, t.UNLOAD_STATUS, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, 
+    t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.DELETE_NAME, t.DELETE_TIME, t.RESULT_UNLOAD_PLACE_ID, 
+    t.SEGMENT_SQE, t.MATERIAL_ID, t.UNLOADER_ID
     </sql>
     <sql id="select">
         SELECT <include refid="columns" /> FROM TMSTRUCK_UNLOAD_RESULT
@@ -90,6 +91,9 @@
             <if test="materialId != null">
                 and MATERIAL_ID = #{materialId}
             </if>
+            <if test="unloaderId != null">
+                and UNLOADER_ID = #{unloaderId}
+            </if>
         </where>
     </sql>
     <sql id="whereLike">
@@ -145,6 +149,9 @@
             <if test="materialId != null">
                 and MATERIAL_ID = #{materialId}
             </if>
+            <if test="unloaderId != null">
+                and UNLOADER_ID = #{unloaderId}
+            </if>
         </where>
     </sql>
     <delete id="deleteByPrimaryKey" parameterType="java.lang.Short">
@@ -202,6 +209,9 @@
         <if test="materialId != null">
             or MATERIAL_ID = #{materialId}
         </if>
+        <if test="unloaderId != null">
+            or UNLOADER_ID = #{unloaderId}
+        </if>
     </delete>
     <insert id="insert" parameterType="com.steerinfo.dil.model.TmstruckUnloadResult">
         insert into TMSTRUCK_UNLOAD_RESULT (RESULT_ID, RESULT_NUMBER, RESULT_TOTAL_ID,
@@ -209,13 +219,15 @@
                                             UNLOAD_STATUS, INSERT_USERNAME, INSERT_TIME,
                                             UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
                                             DELETE_NAME, DELETE_TIME, RESULT_UNLOAD_PLACE_ID,
-                                            SEGMENT_SQE, MATERIAL_ID)
+                                            SEGMENT_SQE, MATERIAL_ID, UNLOADER_ID
+        )
         values (#{resultId,jdbcType=DECIMAL}, #{resultNumber,jdbcType=VARCHAR}, #{resultTotalId,jdbcType=DECIMAL},
                 #{resultStartTime,jdbcType=TIMESTAMP}, #{resultEndTime,jdbcType=TIMESTAMP}, #{resultDuration,jdbcType=DECIMAL},
                 #{unloadStatus,jdbcType=VARCHAR}, #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP},
                 #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR},
                 #{deleteName,jdbcType=VARCHAR}, #{deleteTime,jdbcType=TIMESTAMP}, #{resultUnloadPlaceId,jdbcType=DECIMAL},
-                #{segmentSqe,jdbcType=DECIMAL}, #{materialId,jdbcType=DECIMAL})
+                #{segmentSqe,jdbcType=DECIMAL}, #{materialId,jdbcType=DECIMAL}, #{unloaderId,jdbcType=DECIMAL}
+               )
     </insert>
     <insert id="insertSelective" parameterType="com.steerinfo.dil.model.TmstruckUnloadResult">
         insert into TMSTRUCK_UNLOAD_RESULT
@@ -271,6 +283,9 @@
             <if test="materialId != null">
                 MATERIAL_ID,
             </if>
+            <if test="unloaderId != null">
+                UNLOADER_ID,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="resultId != null">
@@ -324,6 +339,9 @@
             <if test="materialId != null">
                 #{materialId,jdbcType=DECIMAL},
             </if>
+            <if test="unloaderId != null">
+                #{unloaderId,jdbcType=DECIMAL},
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.TmstruckUnloadResult">
@@ -343,7 +361,8 @@
             DELETE_TIME = #{deleteTime,jdbcType=TIMESTAMP},
             RESULT_UNLOAD_PLACE_ID = #{resultUnloadPlaceId,jdbcType=DECIMAL},
             SEGMENT_SQE = #{segmentSqe,jdbcType=DECIMAL},
-            MATERIAL_ID = #{materialId,jdbcType=DECIMAL}
+            MATERIAL_ID = #{materialId,jdbcType=DECIMAL},
+            UNLOADER_ID = #{unloaderId,jdbcType=DECIMAL}
         where RESULT_ID = #{resultId,jdbcType=DECIMAL}
     </update>
     <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.TmstruckUnloadResult">
@@ -397,6 +416,9 @@
             <if test="materialId != null">
                 MATERIAL_ID = #{materialId,jdbcType=DECIMAL},
             </if>
+            <if test="unloaderId != null">
+                UNLOADER_ID = #{unloaderId,jdbcType=DECIMAL},
+            </if>
         </set>
         where RESULT_ID = #{resultId,jdbcType=DECIMAL}
     </update>
@@ -422,7 +444,8 @@
         UPDATE_USERNAME, UPDATE_TIME,
         INSERT_UPDATE_REMARK, DELETE_NAME,
         DELETE_TIME, RESULT_UNLOAD_PLACE_ID,
-        SEGMENT_SQE, MATERIAL_ID)
+        SEGMENT_SQE, MATERIAL_ID, UNLOADER_ID
+        )
         ( <foreach collection="list" item="item" separator="union all">
         select
         #{item.resultId,jdbcType=DECIMAL},
@@ -433,7 +456,8 @@
         #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
         #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.deleteName,jdbcType=VARCHAR},
         #{item.deleteTime,jdbcType=TIMESTAMP}, #{item.resultUnloadPlaceId,jdbcType=DECIMAL},
-        #{item.segmentSqe,jdbcType=DECIMAL}, #{item.materialId,jdbcType=DECIMAL} from dual
+        #{item.segmentSqe,jdbcType=DECIMAL}, #{item.materialId,jdbcType=DECIMAL}, #{item.unloaderId,jdbcType=DECIMAL}
+        from dual
     </foreach> )
     </insert>
     <update id="batchUpdate" parameterType="java.util.List">
@@ -507,6 +531,10 @@
         <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
             when #{item.resultId,jdbcType=DECIMAL} then #{item.materialId,jdbcType=DECIMAL}
         </foreach>
+        ,UNLOADER_ID=
+        <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+            when #{item.resultId,jdbcType=DECIMAL} then #{item.unloaderId,jdbcType=DECIMAL}
+        </foreach>
         where RESULT_ID in
         <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
             #{item.resultId,jdbcType=DECIMAL}
@@ -627,21 +655,21 @@
     </select>
 
     <!--  通过运输订单号 查询实绩Id、总实绩ID -->
-    <select id="selectTotalIdByOrderNo" parameterType="java.lang.String" resultType="java.util.Map">
-        select OO.ORDER_ID         "orderId",
-               OO.ORDER_TYPE       "orderTypee",
-               TUR.RESULT_ID       "resultId",
-               TTR.RESULT_TOTAL_ID "resultTotalId",
-               RC.CAPACITY_NUMBER "capacityNumber",
-               TUR.SEGMENT_SQE      "segmentSqe"
-        from OMSTRUCK_ORDER OO
-                 left join TMSTRUCK_TOTAL_RESULT TTR
-                           on OO.ORDER_ID = TTR.ORDER_ID
-                 left join TMSTRUCK_UNLOAD_RESULT TUR
-                           on TTR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
-                 left join RMS_CAPACITY RC
-                           on RC.CAPACITY_ID = OO.CAPACITY_ID
-        where OO.ORDER_NUMBER = #{orderNumber}
+    <select id="selectUnloadMesByOrderNo" parameterType="java.util.Map" resultType="java.util.Map">
+        select *
+        from (
+                 select
+                        TUR.RESULT_ID       "resultId",
+                        TUR.SEGMENT_SQE     "segmentSqe",
+                        TUR.RESULT_TOTAL_ID "resultTotalId"
+                 from TMSTRUCK_UNLOAD_RESULT TUR
+                 where TUR.RESULT_TOTAL_ID = #{resultTotalId}
+                   <if test="updateLoadResult != null">
+                       and TUR.RESULT_END_TIME is null
+                   </if>
+                 order by TUR.SEGMENT_SQE
+             )
+        where rownum = 1
     </select>
 
     <!--  通过卸货地点查询 仓库ID-->
@@ -763,12 +791,12 @@
     <select id="getImportedDomesticNzUnload2Result" parameterType="java.util.Map" resultType="java.util.Map">
         SELECT *
         FROM (     SELECT TUR.RESULT_ID         "resultId",
+        APO.PURCHASE_ORDER_NO "purchaseOrderNo",
         OO.ORDER_NUMBER       "orderNumber",
         RC.CAPACITY_NUMBER    "capacityNumber",
         RM.MATERIAL_NAME      "materialName",
-        TWR.RESULT_NET_WEIGHT "resultNetWeight",
         RW.WAREHOUSE_NAME     "warehouseName",
-        TUR.RESULT_END_TIME "resultEndTime"
+        TUR.RESULT_END_TIME   "resultEndTime"
         FROM TMSTRUCK_UNLOAD_RESULT TUR
         LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
         ON TTR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
@@ -778,14 +806,23 @@
         ON RC.CAPACITY_ID = OO.CAPACITY_ID
         LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
         ON OOM.ORDER_ID = OO.ORDER_ID
+        left join amstruck_inward_plan aip
+        on aip.plan_id = oo.order_plan_id
+        left join amstruck_requirement_plan arp
+        on arp.plan_id = aip.plan_id
+        left join amstruck_inward_requirement air
+        on air.requirement_id = arp.requirement_id
+        LEFT JOIN AMS_PURCHASE_ORDER APO
+        ON APO.PURCHASE_ORDER_ID = air.PURCHASE_ORDER_ID
         LEFT JOIN RMS_MATERIAL RM
         ON RM.MATERIAL_ID = OOM.MATERIAL_ID
-        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
-        ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         LEFT JOIN RMS_WAREHOUSE RW
         ON RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
         WHERE TUR.RESULT_END_TIME IS NOT NULL
-        AND OO.ORDER_TYPE = 10
+        AND OO.ORDER_TYPE in (10,20)
+        <if test="userId !=null">
+            AND AIR.INSERT_USERNAME = #{userId}
+        </if>
         )
         <where>
             <if test="orderNumber != null">
@@ -793,6 +830,11 @@
                     "orderNumber" like '%${item}%'
                 </foreach>
             </if>
+            <if test="purchaseOrderNo != null">
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="or" close=")">
+                    "purchaseOrderNo" like '%${item}%'
+                </foreach>
+            </if>
             <if test="capacityNumber != null">
                 and
                 <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
@@ -805,12 +847,6 @@
                     "materialName" like '%${item}%'
                 </foreach>
             </if>
-            <if test="resultNetWeight != null">
-                and
-                <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
-                    "resultNetWeight" like '%${item}%'
-                </foreach>
-            </if>
             <if test="warehouseName != null">
                 and
                 <foreach collection="warehouseName" item="item" open="(" separator="or" close=")">
@@ -855,7 +891,7 @@
         LEFT JOIN RMS_WAREHOUSE RW
         ON RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
         WHERE TUR.RESULT_START_TIME IS NOT NULL
-        AND OO.ORDER_TYPE = 11
+        AND OO.ORDER_TYPE = #{orderTypee}
         )
         <where>
             <if test="orderNumber != null">
@@ -913,7 +949,7 @@
     <select id="getSporadicSuppliesUnloadResult" resultType="java.util.Map">
         SELECT *
         FROM (
-        SELECT
+        SELECT distinct
         TUR.RESULT_ID             "resultId",
         OO.ORDER_NUMBER           "orderNumber",
         RC.CAPACITY_NUMBER        "capacityNumber",
@@ -923,11 +959,14 @@
         RW.WAREHOUSE_NAME         "warehouseName",
         RM.MATERIAL_NAME          "materialName",
         OOM.ORDER_MATERIAL_WEIGHT  "materialWeight",
-        OOM.ORDER_MATERIAL_NUMBER  "materialNumber"
+        OOM.ORDER_MATERIAL_NUMBER  "materialNumber",
+        TWR.RESULT_NET_WEIGHT       "orderMaterialNetWeight"
 
         FROM TMSTRUCK_UNLOAD_RESULT TUR
         LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
         ON TTR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
         LEFT JOIN OMSTRUCK_ORDER OO
         ON OO.ORDER_ID = TTR.ORDER_ID
         LEFT JOIN  OMSTRUCK_ORDER_MATERIAL OOM
@@ -941,7 +980,18 @@
         LEFT JOIN RMS_WAREHOUSE RW
         ON RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
         WHERE TUR.RESULT_END_TIME IS NOT NULL
-        AND OO.ORDER_TYPE = 12
+        <if test="orderTypee != 100">
+            AND OO.ORDER_TYPE = #{orderTypee}
+        </if>
+        <if test="orderTypee == 100">
+            AND OO.ORDER_TYPE in (12, 13 ,14,19)
+        </if>
+         <if test="userId != null">
+             and ASO.INSERT_USERNAME=#{userId}
+         </if>
+         <if test="userIds!=null">
+              and ASO.UPDATE_USERNAME=#{userIds}
+         </if>
         )
         <where>
             <if test="orderNumber != null">
@@ -1003,5 +1053,26 @@
                 LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         WHERE OOM.MATERIAL_ID=#{materialId}  AND OO.ORDER_ID=#{orderId}
     </select>
+    <select id="selectOrderId" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT OO.ORDER_ID "orderId",
+               oo.ORDER_NUMBER "orderNumber",
+
+               TTR.RESULT_TOTAL_ID "totalId"
+               FROM OMSTRUCK_ORDER OO
+               LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+               ON TTR.ORDER_ID = OO.ORDER_ID
+               WHERE OO.ORDER_NUMBER = #{orderNumber}
+    </select>
+
+    <select id="getNetWeightByTotalId" parameterType="java.math.BigDecimal" resultType="int">
+        select COUNT(TWR.RESULT_NET_WEIGHT) from TMSTRUCK_WEIGHT_RESULT TWR  where TWR.RESULT_TOTAL_ID = #{totalId}
+    </select>
+
+    <select id="checkMaterialIdUnload" resultType="java.lang.Integer">
+        select TUR.RESULT_ID
+        from TMSTRUCK_UNLOAD_RESULT TUR
+        where TUR.RESULT_TOTAL_ID = #{resultTotalId}
+          and  TUR.MATERIAL_ID = #{materialId}
+    </select>
 
 </mapper>

+ 252 - 31
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -1866,13 +1866,11 @@
         OO.ORDER_NUMBER              "orderNumber",
         RC.CAPACITY_NUMBER           "capacityNumber",
         RTC.TRUCK_CALCULATE_NUMBER   "truckCalculateNumber",
-        TWR.RESULT_GROSS_WEIGHT      "resultGrossWeight",
-        TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
-        DB.RESULT_FOREIGN_SHIP_NAME  "resultForeignShipName",
         TWR.RESULT_TARE_WEIGHT       "resultTareWeight",
         TWR.RESULT_TARE_WEIGHT_TIME  "resultTareWeightTime",
         TWR.RESULT_NET_WEIGHT        "resultNetWeight",
-        TWR.RESULT_POUND_NO          "resultPoundNo"
+        TWR.RESULT_POUND_NO          "resultPoundNo",
+        TWR.RESULT_NET_WEIGHT "netWeight"
         from TMSTRUCK_WEIGHT_RESULT TWR
         left join TMSTRUCK_TOTAL_RESULT TTR
         on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
@@ -1897,7 +1895,10 @@
         left join RMS_MATERIAL RM
         on RM.MATERIAL_ID = OOM.MATERIAL_ID
         where RESULT_TARE_WEIGHT_TIME is not null
-        and OO.ORDER_TYPE = 10
+        and OO.ORDER_TYPE in (10,20)
+        <if test="userId!=null">
+            AND  air.INSERT_USERNAME =#{userId}
+        </if>
         )
         <where>
             <if test="purchaseOrderNo != null">
@@ -1929,24 +1930,6 @@
                     "truckCalculateNumber" like '%${item}%'
                 </foreach>
             </if>
-            <if test="resultGrossWeight != null">
-                and
-                <foreach collection="resultGrossWeight" item="item" open="(" separator="or" close=")">
-                    "resultGrossWeight" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultForeignShipName != null">
-                and
-                <foreach collection="resultForeignShipName" item="item" open="(" separator="or" close=")">
-                    "resultForeignShipName" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultGrossWeightTime != null">
-                and
-                <foreach collection="resultGrossWeightTime" item="item" open="(" separator="or" close=")">
-                    "resultGrossWeightTime" like '%${item}%'
-                </foreach>
-            </if>
             <if test="resultTareWeight != null">
                 and
                 <foreach collection="resultTareWeight" item="item" open="(" separator="or" close=")">
@@ -1986,7 +1969,6 @@
         APO.PURCHASE_ORDER_NO        "purchaseOrderNo",
         RM.MATERIAL_NAME             "materialName",
         OO.ORDER_NUMBER              "orderNumber",
-        DB.RESULT_FOREIGN_SHIP_NAME  "resultForeignShipName",
         RC.CAPACITY_NUMBER           "capacityNumber",
         RTC.TRUCK_CALCULATE_NUMBER   "truckCalculateNumber",
         TWR.RESULT_GROSS_WEIGHT      "resultGrossWeight",
@@ -2021,7 +2003,10 @@
         left join rms_shipper rsr
         on rsr.shipper_id = APO.RECEIVE_UNIT_ID
         where RESULT_GROSS_WEIGHT_TIME is not null
-        and OO.ORDER_TYPE = 10
+        and OO.ORDER_TYPE in (10,20)
+        <if test="userId !=null">
+            AND AIR.INSERT_USERNAME = #{userId}
+        </if>
         )
         <where>
             <if test="purchaseOrderNo != null">
@@ -2114,7 +2099,7 @@
         left join RMS_MATERIAL RM
         on RM.MATERIAL_ID = OOM.MATERIAL_ID
         where RESULT_TARE_WEIGHT_TIME is not null
-        and OO.ORDER_TYPE = 11
+        and OO.ORDER_TYPE = #{orderTypee}
         )
         <where>
             <if test="materialName != null">
@@ -2187,17 +2172,17 @@
     <select id="getSporadicSuppliesJiMiaoResult" resultType="java.util.Map">
         select *
         from (
-        select
+        select distinct
         TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId",
         OO.ORDER_NUMBER "orderNumber",
         RC.CAPACITY_NUMBER "capacityNumber",
         RTC.TRUCK_CALCULATE_NUMBER "truckCalculateNumber",
         TWR.RESULT_GROSS_WEIGHT "resultGrossWeight",
         TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
+        TWR.RESULT_NET_WEIGHT "netWeight",
         RM.MATERIAL_NAME "materialName",
         OO.ORDER_ID "orderId",
         OO.ORDER_STATUS "orderStatus"
-
         from TMSTRUCK_WEIGHT_RESULT TWR
         left join TMSTRUCK_TOTAL_RESULT TTR
         on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
@@ -2213,8 +2198,16 @@
         on RC.CAPACITY_ID = OO.CAPACITY_ID
         left join RMS_TRUCK_CALCULATE RTC
         on RTC.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
-        where RESULT_GROSS_WEIGHT_TIME is not null and
-        OO.ORDER_TYPE = 12
+        where RESULT_GROSS_WEIGHT_TIME is not null
+        <if test="orderTypee != 100">
+            AND OO.ORDER_TYPE = #{orderTypee}
+        </if>
+        <if test="orderTypee == 100">
+            AND OO.ORDER_TYPE in (12, 13 ,14,19)
+        </if>
+            <if test="userId!=null">
+                and ASO.INSERT_USERNAME=#{userId}
+            </if>
         )
         <where>
             <if test="purchaseOrderNo != null">
@@ -2291,7 +2284,132 @@
         on OOM.ORDER_ID = OO.ORDER_ID
         left join RMS_MATERIAL RM
         on RM.MATERIAL_ID = OOM.MATERIAL_ID
-        where RESULT_TARE_WEIGHT_TIME is not null and OO.ORDER_TYPE = 12
+        where RESULT_TARE_WEIGHT_TIME is not null
+              and OO.ORDER_TYPE = 12
+        )
+        <where>
+            <if test="purchaseOrderNo != null">
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="or" close=")">
+                    "purchaseOrderNo" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="orderNumber != null">
+                and
+                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+                    "orderNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityNumber != null">
+                and
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="truckCalculateNumber != null">
+                and
+                <foreach collection="truckCalculateNumber" item="item" open="(" separator="or" close=")">
+                    "truckCalculateNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultGrossWeight != null">
+                and
+                <foreach collection="resultGrossWeight" item="item" open="(" separator="or" close=")">
+                    "resultGrossWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultForeignShipName != null">
+                and
+                <foreach collection="resultForeignShipName" item="item" open="(" separator="or" close=")">
+                    "resultForeignShipName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultGrossWeightTime != null">
+                and
+                <foreach collection="resultGrossWeightTime" item="item" open="(" separator="or" close=")">
+                    "resultGrossWeightTime" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultTareWeight != null">
+                and
+                <foreach collection="resultTareWeight" item="item" open="(" separator="or" close=")">
+                    "resultTareWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultPoundNo != null">
+                and
+                <foreach collection="resultPoundNo" item="item" open="(" separator="or" close=")">
+                    "resultPoundNo" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultTareWeightTime != null">
+                and
+                <foreach collection="resultTareWeightTime" item="item" open="(" separator="or" close=")">
+                    "resultTareWeightTime" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultNetWeight != null">
+                and
+                <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
+                    "resultNetWeight" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+        <if test="orderField == null  ">
+            order by "resultTareWeightTime" desc
+        </if>
+    </select>
+<!--  一车多趟获取计重实绩(零星物资)  -->
+    <select id="getFactorySkinSporadicWeight" resultType="java.util.Map">
+        select *
+        from (
+        select distinct
+        TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId",
+        ASO.SPORADIC_ORDER_NO "purchaseOrderNo",
+        RM.MATERIAL_NAME "materialName",
+        OO.ORDER_NUMBER "orderNumber",
+        RC.CAPACITY_NUMBER "capacityNumber",
+        RTC.TRUCK_CALCULATE_NUMBER "truckCalculateNumber",
+        TWR.RESULT_GROSS_WEIGHT "resultGrossWeight",
+        TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
+        TWR.RESULT_TARE_WEIGHT "resultTareWeight",
+        TWR.RESULT_TARE_WEIGHT_TIME "resultTareWeightTime",
+        TWR.RESULT_NET_WEIGHT "resultNetWeight",
+        TWR.RESULT_POUND_NO "resultPoundNo"
+        from TMSTRUCK_WEIGHT_RESULT TWR
+        left join TMSTRUCK_TOTAL_RESULT TTR
+        on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join OMSTRUCK_ORDER OO
+        on TTR.ORDER_ID = OO.ORDER_ID
+        left join AMSTRUCK_SPORADIC_ORDER ASO
+        on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
+        left join RMS_CAPACITY RC
+        on RC.CAPACITY_ID = OO.CAPACITY_ID
+        left join RMS_TRUCK_CALCULATE RTC
+        on RTC.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
+        left join OMSTRUCK_ORDER_MATERIAL OOM
+        on OOM.ORDER_ID = OO.ORDER_ID
+        left join RMS_MATERIAL RM
+        on RM.MATERIAL_ID = OOM.MATERIAL_ID
+        where RESULT_TARE_WEIGHT_TIME is not null
+        <if test="orderTypee != 100">
+            AND OO.ORDER_TYPE = #{orderTypee}
+        </if>
+        <if test="orderTypee == 100">
+            AND OO.ORDER_TYPE in (12, 13 ,14,19)
+        </if>
+        <if test="userId!=null">
+            and ASO.INSERT_USERNAME=#{userId}
+        </if>
+        <if test="userIds!=null">
+            and ASO.UPDATE_USERNAME=#{userIds}
+        </if>
         )
         <where>
             <if test="purchaseOrderNo != null">
@@ -2471,6 +2589,109 @@
             order by "resultGrossWeightTime" desc
         </if>
     </select>
+<!-- 根据运输订单id获取计量实绩-->
+    <select id="getFactorySporadicJiMiaoResult" resultType="java.util.Map">
+        select *
+        from (
+        select
+        TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId",
+        OO.ORDER_NUMBER "orderNumber",
+        RC.CAPACITY_NUMBER "capacityNumber",
+        RTC.TRUCK_CALCULATE_NUMBER "truckCalculateNumber",
+        TWR.RESULT_GROSS_WEIGHT "resultGrossWeight",
+        TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
+        TWR.RESULT_NET_WEIGHT "resultNetWeight",
+        TWR.RESULT_TARE_WEIGHT "resultTareWeight",
+        TWR.RESULT_TARE_WEIGHT_TIME "resultTareWeightTime",
+        RM.MATERIAL_NAME "materialName"
+        from TMSTRUCK_WEIGHT_RESULT TWR
+        left join TMSTRUCK_TOTAL_RESULT TTR
+        on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        left join OMSTRUCK_ORDER OO
+        on TTR.ORDER_ID = OO.ORDER_ID
+        left join OMSTRUCK_ORDER_MATERIAL OOM
+        on OOM.ORDER_ID=OO.ORDER_ID
+        left join RMS_MATERIAL RM
+        on RM.MATERIAL_ID=OOM.MATERIAL_ID
+        left join AMSTRUCK_SPORADIC_ORDER ASO
+        on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
+        left join RMS_CAPACITY RC
+        on RC.CAPACITY_ID = OO.CAPACITY_ID
+        left join RMS_TRUCK_CALCULATE RTC
+        on RTC.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
+        where RESULT_GROSS_WEIGHT_TIME is not null and
+        OO.ORDER_TYPE in (15,16)
+        )
+        <where>
+            <if test="purchaseOrderNo != null">
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="or" close=")">
+                    "purchaseOrderNo" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="orderNumber != null">
+                and
+                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+                    "orderNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityNumber != null">
+                and
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="truckCalculateNumber != null">
+                and
+                <foreach collection="truckCalculateNumber" item="item" open="(" separator="or" close=")">
+                    "truckCalculateNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultGrossWeight != null">
+                and
+                <foreach collection="resultGrossWeight" item="item" open="(" separator="or" close=")">
+                    "resultGrossWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultGrossWeightTime != null">
+                and
+                <foreach collection="resultGrossWeightTime" item="item" open="(" separator="or" close=")">
+                    "resultGrossWeightTime" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultTareWeight != null">
+                and
+                <foreach collection="resultTareWeight" item="item" open="(" separator="or" close=")">
+                    "resultTareWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultTareWeightTime != null">
+                and
+                <foreach collection="resultTareWeightTime" item="item" open="(" separator="or" close=")">
+                    "resultTareWeightTime" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultNetWeight != null">
+                and
+                <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
+                    "resultNetWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultGrossWeightTime != null">
+                and
+                <foreach collection="resultGrossWeightTime" item="item" open="(" separator="or" close=")">
+                    "resultGrossWeightTime" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+        <if test="orderField == null  ">
+            order by "resultGrossWeightTime" desc
+        </if>
+    </select>
+
+
+
+
 <!--  零星计皮 -->
     <select id="getFactorySkinSporadicJIPi"  parameterType="java.util.Map"  resultType="java.util.Map">
         select *

+ 203 - 0
src/main/resources/com/steerinfo/dil/mapper/UtilsMapper.xml

@@ -168,4 +168,207 @@
         from OMSTRUCK_ORDER OO
         where OO.ORDER_ID = #{orderId}
     </select>
+
+    <!--  通过路段顺序号和线路ID查找 线路子表的子表的ID 和门岗ID或汽车衡ID   -->
+    <select id="getLineSegmentGateCalcId" parameterType="map" resultType="java.lang.Integer">
+        select
+            RLGC.GATE_CAL_ID "gateCalId"
+        from RMS_LINE_SEGEMNT RLS
+                 left join RMS_LINE_GATEPOST_CALCULATE RLGC
+                           on RLGC.SEGMENT_ID = RLS.SEGMENT_ID
+        where RLS.LINE_ID = #{lineId} and RLS.SEGMENT_SQE = #{segmentSqe}
+    </select>
+    <select id="getOrderMesByOrderId" resultType="java.util.Map">
+        select OO.ORDER_TYPE "orderTypee",
+               TTR.RESULT_TOTAL_ID  "resultTotalId",
+               OOM.MATERIAL_ID  "materialId"
+        from OMSTRUCK_ORDER OO
+        left join TMSTRUCK_TOTAL_RESULT TTR
+            on OO.ORDER_ID = TTR.ORDER_ID
+        left join OMSTRUCK_ORDER_MATERIAL OOM
+            on OOM.ORDER_ID = OO.ORDER_ID
+        where  OO.ORDER_ID=#{orderId} and rownum = 1
+    </select>
+     <!-- 根据运输订单id查找是否有多个物资 -->
+    <select id="countMaterialByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select count(MATERIAL_ID)
+        from OMSTRUCK_ORDER_MATERIAL OOM
+        where OOM.ORDER_ID=#{orderId}
+    </select>
+
+    <select id="getOrderTypeByOrderNumber" parameterType="string" resultType="map">
+        select OO.ORDER_TYPE "orderType",
+               OO.ORDER_TYPE "orderTypee",
+               OO.ORDER_ID      "orderId",
+               OO.ORDER_LINE_SEQUENCE "Sqe",
+               OO.LINE_ID           "lineId",
+               OO.ORDER_LINE_SEQUENCE      "orderSegmentSqe",
+               OO.PRICE_ID      "priceId",
+               OO.CAPACITY_ID   "capacityId",
+               RC.CAPACITY_NUMBER   "capacityNumber",
+               TTR.RESULT_TOTAL_ID "totalId",
+               TTR.RESULT_TOTAL_ID "resultTotalId"
+        from OMSTRUCK_ORDER OO
+        left join TMSTRUCK_TOTAL_RESULT TTR
+            on TTR.ORDER_ID = OO.ORDER_ID
+        left join RMS_CAPACITY RC
+            on OO.CAPACITY_ID = RC.CAPACITY_ID
+        where  OO.order_Number=#{orderNumber}
+    </select>
+
+    <select id="getLineSequenceByOrderNumber" parameterType="string" resultType="java.lang.Integer">
+        select OO.ORDER_LINE_SEQUENCE
+        from OMSTRUCK_ORDER OO
+        where OO.ORDER_NUMBER = #{orderNumber}
+    </select>
+
+    <select id="getCapacityIdByNum" parameterType="string" resultType="java.math.BigDecimal">
+        select RC.CAPACITY_ID from RMS_CAPACITY RC where RC.CAPACITY_NUMBER = #{capacityNumber}
+    </select>
+
+    <select id="getLastGatepostId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select *
+        from (
+                 select TER.GATEPOST_ID
+                 from TMSTRUCK_ENFACTORY_RESULT TER
+                 where TER.RESULT_TOTAL_ID = #{resultTotalId}
+                   and TER.RESULT_ENTRY_GATE_TIME is not null
+                 order by TER.SEGMEN_SQE DESC
+             )
+        where rownum = 1
+    </select>
+    <select id="getNextMaterialId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select *
+        from (
+                 select OOM.MATERIAL_ID
+                 from OMSTRUCK_ORDER_MATERIAL OOM
+                 where OOM.ORDER_ID = #{orderId}
+                   AND NOT EXISTS(select TWR.MATERIAL_ID
+                                  from TMSTRUCK_TOTAL_RESULT TTR
+                                           left join TMSTRUCK_WEIGHT_RESULT TWR
+                                                     on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                                  where TTR.ORDER_ID = OOM.ORDER_ID
+                                    and OOM.MATERIAL_ID = TWR.MATERIAL_ID
+                     )
+                 order by OOM.MATERIAL_PRIORITY
+             )
+        where rownum = 1
+    </select>
+
+    <select id="timeTaskResult" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+        select   TTTR.TIME_TASK_RESULT_ID "timeTaskResultId"
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON OO.ORDER_ID=TTR.ORDER_ID
+        LEFT JOIN TMSTRUCK_TIME_TASK_RESULT TTTR
+        ON TTTR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        where oo.ORDER_ID=#{orderId}
+    </select>
+
+
+    <sql id="orderBy">
+        <if test="orderField != null and orderField != ''">
+            order by "${orderField}"
+            <if test="orderType != null and orderType != ''">
+                ${orderType}
+            </if>
+        </if>
+    </sql>
+
+    <select id="getTimeStatus" resultType="java.util.Map" parameterType="java.util.Map">
+     select TTTR.TIME_TASK_RESULT_ID "timeTaskResultId",
+            TTTR.RESULT_TIME_TYPE "timeType",
+            TTTR.INSERT_TIME "insertTime",
+            TTTR.RESULT_TIME "resultTime"
+     FROM OMSTRUCK_ORDER OO
+     LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+     ON TTR.ORDER_ID=OO.ORDER_ID
+     LEFT JOIN TMSTRUCK_TIME_TASK_RESULT TTTR
+     ON TTTR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+     WHERE  OO.ORDER_ID=#{orderId} and TTTR.RESULT_TIME_TYPE = 1
+     <include refid="orderBy"/>
+     <if test="orderField == null  ">
+        order by "insertTime" desc
+     </if>
+    </select>
+<!-- 根据运输订单id查找计时结束时间-->
+    <select id="FristTimeTask" resultType="java.util.Map" parameterType="java.util.Map">
+        select   TTTR.RESULT_TIME "resultTime",
+                 TTTR.TIME_TASK_RESULT_ID "timeResultId"
+        from OMSTRUCK_ORDER OO
+                 LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                           ON OO.ORDER_ID=TTR.ORDER_ID
+                 LEFT JOIN TMSTRUCK_TIME_TASK_RESULT TTTR
+                           ON TTTR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        where OO.ORDER_ID=#{orderId} and TTTR.RESULT_TIME_TYPE =3
+    </select>
+    <select id="getTime" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        select TTTR.TIME_TASK_RESULT_ID "timeTaskResultId"
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID=OO.ORDER_ID
+        left join TMSTRUCK_TIME_TASK_RESULT TTTR
+        on  TTR.RESULT_TOTAL_ID=TTTR.RESULT_TOTAL_ID
+        WHERE OO.ORDER_ID=#{orderId} and TTTR.RESULT_TIME_TYPE  = 1
+    </select>
+<!-- 根据运输订单id查找总实绩id-->
+    <select id="getTotalIdByOrderId" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        select TTR.RESULT_TOTAL_ID "resultTotalId"
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON OO.ORDER_ID=TTR.ORDER_ID
+       WHERE  OO.ORDER_ID=#{orderId}
+    </select>
+    <select id="getInwardType" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        select TTTR.RESULT_TIME_TYPE "resultType"
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON OO.ORDER_ID=TTR.ORDER_ID
+        LEFT JOIN TMSTRUCK_TIME_TASK_RESULT TTTR
+        ON TTTR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        WHERE  OO.ORDER_ID=#{orderId}
+    </select>
+    <select id="TimeTaskPause" resultType="java.math.BigDecimal" parameterType="java.util.Map">
+        select sum(TTTR.RESULT_VALUE) "resultPauseTime"
+        from OMSTRUCK_ORDER OO
+        left join TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID=OO.ORDER_ID
+        LEFT JOIN TMSTRUCK_TIME_TASK_RESULT TTTR
+        ON TTTR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        WHERE OO.ORDER_ID=#{orderId} and TTTR.RESULT_TIME_TYPE= #{type}
+    </select>
+    <select id="getInwardStartTime" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        select COUNT(TTTR.TIME_TASK_RESULT_ID)
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID=OO.ORDER_ID
+        left join TMSTRUCK_TIME_TASK_RESULT TTTR
+        on  TTR.RESULT_TOTAL_ID=TTTR.RESULT_TOTAL_ID
+        WHERE OO.ORDER_ID=#{orderId} and TTTR.RESULT_TIME_TYPE  = 5
+    </select>
+
+    <select id="getInwardEndTime" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        select COUNT(TTTR.TIME_TASK_RESULT_ID)
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID=OO.ORDER_ID
+        left join TMSTRUCK_TIME_TASK_RESULT TTTR
+        on  TTR.RESULT_TOTAL_ID=TTTR.RESULT_TOTAL_ID
+        WHERE OO.ORDER_ID=#{orderId} and TTTR.RESULT_TIME_TYPE  = 7
+    </select>
+    <select id="getCapacityNameBySsoId" resultType="java.lang.String" parameterType="java.lang.String">
+        select
+               RC.CAPACITY_NUMBER "capacityNumber"
+        from RMS_CAPACITY RC
+        where RC.CAPACITY_SSO_ID = #{userId}
+    </select>
+    <select id="getLoadResultId" resultType="java.math.BigDecimal" parameterType="java.util.Map">
+        select TLR.RESULT_ID "resultId"
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON OO.ORDER_ID=TTR.ORDER_ID
+        LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
+        ON TTR.RESULT_TOTAL_ID=TLR.RESULT_TOTAL_ID
+        WHERE OO.ORDER_NUMBER=#{orderNumber} and TLR.CAPACITY_REMARK =#{capacityName}
+    </select>
 </mapper>