瀏覽代碼

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

Tiroble 3 年之前
父節點
當前提交
ecb2803fae
共有 35 個文件被更改,包括 1177 次插入807 次删除
  1. 84 0
      src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java
  2. 0 28
      src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java
  3. 9 0
      src/main/java/com/steerinfo/dil/mapper/RulesMapper.java
  4. 8 0
      src/main/java/com/steerinfo/dil/mapper/StatisticalReportMapper.java
  5. 1 1
      src/main/java/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.java
  6. 1 1
      src/main/java/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.java
  7. 12 0
      src/main/java/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.java
  8. 3 0
      src/main/java/com/steerinfo/dil/mapper/TmstruckReceiptResultMapper.java
  9. 1 1
      src/main/java/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.java
  10. 10 6
      src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java
  11. 5 1
      src/main/java/com/steerinfo/dil/mapper/UtilsMapper.java
  12. 17 0
      src/main/java/com/steerinfo/dil/service/IStatisticalReportService.java
  13. 0 7
      src/main/java/com/steerinfo/dil/service/ITmstruckWeightResultService.java
  14. 88 1
      src/main/java/com/steerinfo/dil/service/impl/RulesServiceImpl.java
  15. 76 15
      src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java
  16. 52 32
      src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java
  17. 19 11
      src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java
  18. 21 11
      src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java
  19. 35 1
      src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java
  20. 7 1
      src/main/java/com/steerinfo/dil/service/impl/TmstruckReceiptResultServiceImpl.java
  21. 21 15
      src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java
  22. 15 324
      src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java
  23. 16 19
      src/main/java/com/steerinfo/dil/util/DataChange.java
  24. 28 28
      src/main/resources/bootstrap.yml
  25. 29 0
      src/main/resources/com/steerinfo/dil/mapper/RulesMapper.xml
  26. 391 1
      src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml
  27. 50 123
      src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml
  28. 54 139
      src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml
  29. 18 23
      src/main/resources/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.xml
  30. 43 1
      src/main/resources/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.xml
  31. 8 0
      src/main/resources/com/steerinfo/dil/mapper/TmstruckReceiptResultMapper.xml
  32. 4 5
      src/main/resources/com/steerinfo/dil/mapper/TmstruckSmsRusultMapper.xml
  33. 14 7
      src/main/resources/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.xml
  34. 28 3
      src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml
  35. 9 2
      src/main/resources/com/steerinfo/dil/mapper/UtilsMapper.xml

+ 84 - 0
src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java

@@ -57,4 +57,88 @@ 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(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("/getAllSaleReport")
+    public RESTfulResult getAllSaleReport(@RequestBody(required=false) Map<String,Object> mapValue,
+                                       Integer apiId,
+                                       Integer pageNum,
+                                       Integer pageSize,
+                                       String carrierSsoId
+    ){
+        if(carrierSsoId != null){
+            if(!"null".equals(carrierSsoId)){
+                mapValue.put("carrierSsoId", carrierSsoId);
+            }
+        }
+        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);
+        return success(pageList);
+    }
+
+    @ApiOperation(value="查询零星物资进厂统计报表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId(424)", 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("/getSporadicSuppliesReport1")
+    public RESTfulResult getSporadicSuppliesReport1(@RequestBody(required=false) Map<String,Object> mapValue,
+                                          Integer apiId,
+                                          Integer pageNum,
+                                          Integer pageSize,
+                                          String carrierSsoId
+    ){
+        if(carrierSsoId != null){
+            if(!"null".equals(carrierSsoId)){
+                mapValue.put("carrierSsoId", carrierSsoId);
+            }
+        }
+        List<Map<String, Object>> allReport =  statisticalReportService.getSporadicSuppliesReportNum1(mapValue);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getSporadicSuppliesReport1(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allReport, report);
+        return success(pageList);
+    }
+
+    @ApiOperation(value="查询零星物资出厂统计报表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId(425)", 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("/getSporadicSuppliesReport2")
+    public RESTfulResult getSporadicSuppliesReport2(@RequestBody(required=false) Map<String,Object> mapValue,
+                                                   Integer apiId,
+                                                   Integer pageNum,
+                                                   Integer pageSize,
+                                                   String carrierSsoId
+    ){
+        if(carrierSsoId != null){
+            if(!"null".equals(carrierSsoId)){
+                mapValue.put("carrierSsoId", carrierSsoId);
+            }
+        }
+        List<Map<String, Object>> allReport =  statisticalReportService.getSporadicSuppliesReportNum2(mapValue);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getSporadicSuppliesReport2(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allReport, report);
+        return success(pageList);
+    }
 }

+ 0 - 28
src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java

@@ -56,15 +56,6 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
         return success(i);
     }
 
-    @ApiOperation(value="更新计量实绩 ")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "mapList", value = "计量数据", required = false, dataType = "List<Map>"),
-    })
-    @PostMapping("/updateTruckWeight")
-    public RESTfulResult updateTruckWeight(@RequestBody List<Map<String, Object>> mapList){
-        int i = tmstruckWeightResultService.updateTruckWeight(mapList);
-        return success(i);
-    }
 
     @ApiOperation(value="查询计毛实绩")
     @ApiImplicitParams({
@@ -169,25 +160,6 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
         return success(pageList);
     }
 
-    @ApiOperation(value="采集新增计毛实绩 ")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "mapValue", value = "采集的数据", required = false, dataType = "Map"),
-    })
-    @PostMapping("/addJiMaoResult")
-    public RESTfulResult addJiMaoResult(@RequestBody Map<String, Object> mapValue){
-        int i = tmstruckWeightResultService.addJiMaoResult(mapValue);
-        return success(i);
-    }
-
-    @ApiOperation(value="采集新增计皮实绩 ")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "mapValue", value = "采集的数据", required = false, dataType = "Map"),
-    })
-    @PostMapping("/addJiPiResult")
-    public RESTfulResult addJiPiResult(@RequestBody Map<String, Object> mapValue){
-        int i = tmstruckWeightResultService.addJiPiResult(mapValue);
-        return success(i);
-    }
 
     /**
      *通过运输订单判断下一步是否需要计量,更新汽车衡到计量实绩中

+ 9 - 0
src/main/java/com/steerinfo/dil/mapper/RulesMapper.java

@@ -35,4 +35,13 @@ public interface RulesMapper {
 
     //通过月台Id 查询月台当前排队车辆数
     BigDecimal queueCountByPlatformId(BigDecimal platformId);
+
+    //通过订单ID查询路线类型
+    Integer getLineIsSteel(BigDecimal orderId);
+
+    //查询还没有净重的计量实绩数量
+    Integer getNoNetWeightResult(BigDecimal orderId);
+
+    //查询还没有出厂门岗ID的实绩
+    Integer getNoGatepostIdResult(BigDecimal orderId);
 }

+ 8 - 0
src/main/java/com/steerinfo/dil/mapper/StatisticalReportMapper.java

@@ -15,4 +15,12 @@ public interface StatisticalReportMapper {
     //查询采购统计报表 (辅料、燃料、内转)
     List<Map<String, Object>> getAllPurchaseFLRLReport(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);
 }

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

@@ -58,7 +58,7 @@ public interface TmstruckEnfactoryResultMapper extends IBaseMapper<TmstruckEnfac
 
     List<Map<String, Object>> getBillOrderMaterial(String orderNumber);
 
-//    通过运输订单获取零星物资进厂实绩
+     //通过运输订单获取零星物资进厂实绩
     List<Map<String, Object>> getSporadicSuppliesEnFactoryResult(Map<String, Object> map);
 
     List<Map<String, Object>> getCGNZEnFactory(Map<String, Object> map);

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

@@ -108,7 +108,7 @@ public interface TmstruckLoadResultMapper extends IBaseMapper<TmstruckLoadResult
     //根据总实绩id查询运输订单类型
     Integer getOrderType(BigDecimal totalId);
 
-    //根据运输id查询所有的零星物资出厂实绩
+    //根据运输id查询所有的零星物资装车实绩
     List<Map<String, Object>> getSporadicSuppliesLoadResult(Map<String, Object> map);
 
    //获取达州钢铁内转实绩

+ 12 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.java

@@ -67,8 +67,20 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
     //零星物资进厂计量委托
     Map<String, Object> sporadicDXMeasure(Map<String, Object> map);
 
+    //内转
     Integer getReceiveIdByRequirementOrderId(Object orderId);
 
     Map<String, Object> purchaseXqCgNzDXMeasure(Map<String, Object> map);
 
+    //通过订单ID获取零星订单父级收货单位
+    Integer getLxRealReceiveIdByOrderId(BigDecimal orderId);
+
+    //通过订单ID获取零星订单父级收发货单位
+    Integer getLxRealSendUnitIdByOrderId(BigDecimal orderId);
+
+    //查询零星订单收货单位ID
+    Integer getPtLxReceiveIdByOrderId(BigDecimal orderId);
+
+    //查询零星订单发货单位ID
+    Integer getPtLxSendUnitIdByOrderId(BigDecimal orderId);
 }

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

@@ -29,4 +29,7 @@ public interface TmstruckReceiptResultMapper extends IBaseMapper<TmstruckReceipt
 
     //获取内转收货实绩
     List<Map<String, Object>> getInwardReceipt(Map<String, Object> map);
+
+    //查询是否已收过货
+    Integer getReceiptResult(BigDecimal resultTotalId);
 }

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

@@ -41,7 +41,7 @@ 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优先级

+ 10 - 6
src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java

@@ -68,21 +68,25 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
     //查询订单下所有的物资件数和物资理重
     List<Map<String, Object>> getMaterialMes(Integer orderId);
 
-
     //通过运输订单id获取路段顺序号、物资类型、计量实绩主键、line_id
     Map<String, BigDecimal> selectByOrderId(BigDecimal orderId);
 
-    //    根据运输订单Id获取计皮实绩
+    //零星物资根据运输订单Id获取计毛实绩
     List<Map<String, Object>> getFactorySkinSporadicJiMiao(Map<String, Object> map);
 
-    //    根据运输订单Id获取计皮实绩
+    //零星物资根据运输订单Id获取计皮实绩
     List<Map<String, Object>> getFactorySkinSporadicJIPi(Map<String, Object> map);
-//    根据运输订单Id获取计皮实绩
+
+    //根据运输订单Id获取计皮实绩
     List<Map<String, Object>> getSporadicSuppliesJiPiResult(Map<String, Object> map);
 
-//    根据运输订单Id获取计毛实绩
+     //根据运输订单Id获取计毛实绩
     List<Map<String, Object>> getSporadicSuppliesJiMiaoResult(Map<String, Object> map);
 
-    BigDecimal getXqCgWeightIdByLineAndOrderId(Map<String, Object> map);
+//    BigDecimal getXqCgWeightIdByLineAndOrderId(Map<String, Object> map);
+
+    //通过总实绩ID查询订单类型
+    Integer getOrderTypeByTotalId(BigDecimal resultTotalId);
+
 
 }

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

@@ -58,7 +58,7 @@ public interface UtilsMapper {
     BigDecimal getTotalIdByOrderNumber(String orderNumber);
 
     //通过总实绩ID查找订单类型
-    Integer getOrderTypeByTotalId(BigDecimal resultTotalId);
+    Map<String, Object> getOrderTypeByTotalId(BigDecimal resultTotalId);
 
     //查询最大路段顺序号 以及当前订单路段顺序号(执行到哪一步)
     Map<String, Object> getLineSeqAndOrderSeq(Map<String, Object> map);
@@ -68,4 +68,8 @@ public interface UtilsMapper {
 
     //查询订单ID查询第一个计量的物资Id(物资子表)
     Integer getLxFirstMaterialId(BigDecimal orderId);
+
+    //通过人员管理SSOID查询人员ID
+    Integer getPersonnelIdBySsoId(String personnelSsoId);
+
 }

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

@@ -16,4 +16,21 @@ public interface IStatisticalReportService {
 
     //查询采购统计报表 (辅料、燃料、内转)
     List<Map<String, Object>> getAllPurchaseFLRLReport(Map<String, Object> map);
+
+    //查询销售统计报表
+    List<Map<String, Object>> getAllSaleReport(Map<String, Object> map);
+
+    //查询销售统计报表
+    List<Map<String, Object>> getAllSaleReportNum(Map<String, Object> map);
+
+//    查询零星物资统计报表
+    List<Map<String, Object>> getSporadicSuppliesReportNum1(Map<String, Object> mapValue);
+//    查询零星物资统计报表
+    List<Map<String, Object>> getSporadicSuppliesReport1(Map<String, Object> mapValue);
+
+    //    查询零星物资统计报表
+    List<Map<String, Object>> getSporadicSuppliesReportNum2(Map<String, Object> mapValue);
+    //    查询零星物资统计报表
+    List<Map<String, Object>> getSporadicSuppliesReport2(Map<String, Object> mapValue);
 }
+

+ 0 - 7
src/main/java/com/steerinfo/dil/service/ITmstruckWeightResultService.java

@@ -18,11 +18,6 @@ import java.util.Map;
  * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  */
 public interface ITmstruckWeightResultService{
-    //更新计毛实绩
-    int addJiMaoResult(Map<String, Object> map);
-
-    //计量接口更新实绩
-    int updateTruckWeight(List<Map<String, Object>> mapList);
 
     //查询所有计毛实绩
     List<Map<String, Object>> getAllJiMaoResult(Map<String, Object> map);
@@ -30,8 +25,6 @@ public interface ITmstruckWeightResultService{
     //查询所有计皮实绩
     List<Map<String, Object>> getAllJiPiResult(Map<String, Object> map);
 
-    //更新计皮实绩
-    int addJiPiResult(Map<String, Object> map);
 
     //新增计皮计毛实绩
     int addWeightResult(Map<String, Object> map);

+ 88 - 1
src/main/java/com/steerinfo/dil/service/impl/RulesServiceImpl.java

@@ -29,6 +29,8 @@ public class RulesServiceImpl implements IRulesService {
     @Autowired
     private TmstruckLeaveFactoryResultMapper tmstruckLeaveFactoryResultMapper;
 
+    @Autowired
+
     /**
      * 通过运输订单号查询物资并根据门岗规则计算出厂门岗
      * @param map
@@ -89,7 +91,55 @@ public class RulesServiceImpl implements IRulesService {
     public int calculateWeighbridge(Map<String, Object> map){
         //物资类型:无法计算汽车衡 返回所有1
         if(map != null){
-            return 18;
+            BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+            //生成随机数
+            Random random = new Random();
+            int randomNum = random.nextInt(10);
+            //针对新厂区
+            int orderType = DataChange.dataToBigDecimal(map.get("orderType")).intValue();
+
+            if(orderType == 1 || orderType == 2){//销售
+                //通过订单ID获取线路类型为哪种类型 钢材 焦炭 危化品
+                Integer isSteel = rulesMapper.getLineIsSteel(orderId);
+                if(isSteel == 3){
+                    return 16; //化工厂
+                }
+                if(isSteel == 4){
+                    if(randomNum < 5){
+                        return 19;
+                    }else {
+                        return 20;
+                    }
+                }
+            }
+            if(orderType == 7 || orderType == 13){//采购燃料  零星进厂
+                if(randomNum < 5){
+                    return 17;
+                }else{
+                    return 18;
+                }
+            }
+            if(orderType == 14){ // 零星出厂
+                if(randomNum < 5){
+                    return 19;
+                }else {
+                    return 20;
+                }
+            }
+            if(orderType == 10){
+                //查询还没有净重的实绩
+                Integer resultCount = rulesMapper.getNoNetWeightResult(orderId);
+                if(resultCount == 2){
+                    return 15; //
+                }else {
+                    if(randomNum < 5){
+                        return 17;
+                    }else{
+                        return 18;
+                    }
+                }
+            }
+            return 0;
         }
         List<Integer> calculateList = queryTruckCalculate(map);
         //暂时不考虑优先级 随机进行取值
@@ -254,4 +304,41 @@ public class RulesServiceImpl implements IRulesService {
         }
         return map;
     }
+
+    /**
+     * 计算门岗
+     * @param map
+     * @return
+     */
+    public int calculateDxGatepostId(Map<String, Object> map){
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        //针对新厂区
+        int orderType = DataChange.dataToBigDecimal(map.get("orderType")).intValue();
+        if(orderType == 1 || orderType == 2){ //销售
+            //通过订单ID获取线路类型为哪种类型 钢材 焦炭 危化品
+            Integer isSteel = rulesMapper.getLineIsSteel(orderId);
+            if(isSteel == 3){
+                return 12; //化工厂  化工厂二号门
+            }
+            if(isSteel == 4){
+                return 9; //焦化厂  达兴二号门
+                }
+            }
+        if(orderType == 7){
+            return 10; // 采购燃料
+        }
+        if (orderType == 12 || orderType == 13){
+            return 9; //内转  达兴二号门
+        }
+        if(orderType == 10){
+            //查询还没有出厂门岗ID的实绩
+            Integer resultCount = rulesMapper.getNoGatepostIdResult(orderId);
+            if(resultCount == 0){
+                return 13;
+            }else {
+                return 10;
+            }
+        }
+        return 0;
+    }
 }

+ 76 - 15
src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java

@@ -20,25 +20,34 @@ public class StatisticalReportImpl implements IStatisticalReportService {
     @Autowired
     StatisticalReportMapper statisticalReportMapper;
 
+
+    /**
+     * 计算相差时间
+     * @return
+     */
+    public void calculateDifferenceTime(Map<String, Object> mesMap){
+        Object resultEntryGateTime = mesMap.get("resultEntryGateTime");
+        Object resultOutGateTime = mesMap.get("resultOutGateTime");
+        if(resultEntryGateTime != null && resultOutGateTime != null){
+            Date enterDate = (Date) resultEntryGateTime;
+            Date outDate = (Date) resultOutGateTime;
+            //计算相差时间
+            long dTime = outDate.getTime() - enterDate.getTime();
+            mesMap.put("inPlantDwellTime", dTime / 60000 + "分钟");
+        }
+        if(resultEntryGateTime != null && resultOutGateTime == null){
+            //如果没有出厂时间则以当前时间减去进厂时间
+            Date enterDate = (Date) resultEntryGateTime;
+            long dTime = new Date().getTime() - enterDate.getTime();
+            mesMap.put("inPlantDwellTime", dTime / 60000 + "分钟");
+        }
+    }
+
     //查询辅料燃料统计报表
     public List<Map<String, Object>> getRLFLReport(Map<String, Object> map){
         List<Map<String, Object>> mapList = statisticalReportMapper.getAllPurchaseFLRLReport(map);
         for (Map<String, Object> mesMap : mapList) {
-            Object resultEntryGateTime = mesMap.get("resultEntryGateTime");
-            Object resultOutGateTime = mesMap.get("resultOutGateTime");
-            if(resultEntryGateTime != null && resultOutGateTime != null){
-                Date enterDate = (Date) resultEntryGateTime;
-                Date outDate = (Date) resultOutGateTime;
-                //计算相差时间
-                long dTime = outDate.getTime() - enterDate.getTime();
-                mesMap.put("inPlantDwellTime", dTime / 60000 + "分钟");
-            }
-            if(resultEntryGateTime != null && resultOutGateTime == null){
-                //如果没有出厂时间则以当前时间减去进厂时间
-                Date enterDate = (Date) resultEntryGateTime;
-                long dTime = new Date().getTime() - enterDate.getTime();
-                mesMap.put("inPlantDwellTime", dTime / 60000 + "分钟");
-            }
+            calculateDifferenceTime(mesMap);
         }
         return mapList;
     }
@@ -48,5 +57,57 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         return statisticalReportMapper.getAllPurchaseFLRLReport(map);
     }
 
+    /**
+     * 查询销售统计报表
+     * @param map
+     * @return
+     */
+    @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);
+        }
+        return mapList;
+    }
+
+    @Override
+    public List<Map<String, Object>> getAllSaleReportNum(Map<String, Object> map) {
+        return statisticalReportMapper.getAllSaleReport(map);
+    }
+
+    /**
+     * 查询零星物资进厂统计报表
+     */
+    @Override
+    public List<Map<String, Object>> getSporadicSuppliesReportNum1(Map<String, Object> mapValue) {
+        return statisticalReportMapper.getSporadicSuppliesReport1(mapValue);
+    }
+
+    @Override
+    public List<Map<String, Object>> getSporadicSuppliesReport1(Map<String, Object> mapValue) {
+        List<Map<String, Object>> mapList = statisticalReportMapper.getSporadicSuppliesReport1(mapValue);
+        for (Map<String, Object> mesMap : mapList) {
+            calculateDifferenceTime(mesMap);
+        }
+        return mapList;
+    }
 
+    /**
+     * 查询零星物资出厂统计报表
+     */
+    @Override
+    public List<Map<String, Object>> getSporadicSuppliesReportNum2(Map<String, Object> mapValue) {
+        return statisticalReportMapper.getSporadicSuppliesReport1(mapValue);
+    }
+
+    @Override
+    public List<Map<String, Object>> getSporadicSuppliesReport2(Map<String, Object> mapValue) {
+        List<Map<String, Object>> mapList = statisticalReportMapper.getSporadicSuppliesReport2(mapValue);
+        for (Map<String, Object> mesMap : mapList) {
+            calculateDifferenceTime(mesMap);
+        }
+        return mapList;
+    }
 }

+ 52 - 32
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -65,11 +65,10 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         //添加主键
         tmstruckEnfactoryResult.setResultId(tmstruckEnfactoryResultMapper.selectMaxId());
         //通过总实绩ID查询订单类型
-        Integer orderType = utilsMapper.getOrderTypeByTotalId(resultTotalId);
-        if(!"123".contains(orderType.toString())){
-            //通过物资计算门岗 (暂时定死)
-            tmstruckEnfactoryResult.setGatepostId(new BigDecimal(1));
-        }
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByTotalId(resultTotalId);
+        int gatepostId = rulesService.calculateDxGatepostId(mesMap);
+        //添加门岗ID
+        tmstruckEnfactoryResult.setGatepostId(new BigDecimal(gatepostId));
         //添加实绩总表Id
         tmstruckEnfactoryResult.setResultTotalId(resultTotalId);
         // 添加路段顺序号
@@ -116,9 +115,9 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
             case 11:
                 return tmstruckEnfactoryResultMapper.getInFactoryMaterialEnFactoryResult(map); //apiId:357
             case 12:
-                return tmstruckEnfactoryResultMapper.getSporadicSuppliesEnFactoryResult(map);// apiId:403
             case 13:
-                return tmstruckEnfactoryResultMapper.getSporadicSuppliesEnFactoryResult(map);// apiId:403
+            case 15:
+                return tmstruckEnfactoryResultMapper.getSporadicSuppliesEnFactoryResult(map);// apiId:416
         }
         return null;
     }
@@ -147,15 +146,13 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         int i = 0;
         //通过运输订单号查询订单类型
         String orderNumber = (String) map.get("orderNumber");
-
-        String substring = orderNumber.substring(0, orderNumber.length() - 1);
-        Map<String, Object> selectMap = tmstruckEnfactoryResultMapper.selectEnFactoryResultId(substring);
+        Map<String, Object> selectMap = tmstruckEnfactoryResultMapper.selectEnFactoryResultId(orderNumber);
         if(selectMap == null){
             throw new Exception("该车已进厂!!");
         }
         map.putAll(selectMap);
         BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
-        BigDecimal lineSqe = DataChange.dataToBigDecimal(map.get("segmentSqe"));
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         i += updateEnFactoryResultByPDA(map); //添加进厂实绩
         //修改路段顺序号
         i += utilsService.updateOrderLineSequence(map);
@@ -172,7 +169,8 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                     mesMap.put("materialId",mapList.get(0).get("materialId"));
                     map.put("materialId", mapList.get(0).get("materialId"));
                     mesMap.put("nature", 1);
-                    mesMap.put("orderId", map.get("orderId"));
+                    mesMap.put("orderId", orderId);
+                    mesMap.put("orderType", orderType);
                     //计算计皮汽车衡
                     int tarePlaceId = rulesService.calculateWeighbridge(mesMap);
                     mesMap.put("tarePlaceId", tarePlaceId);
@@ -196,10 +194,14 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                 break;
             case 2:
             case 3:
-                //计算计皮汽车衡并更新计量实绩
-                i += tmstruckWeightResultService.calculateTruckCalculateByOne(map, 1);
-                //焦炭 水渣 等只会有一种物资
-                checkMeasureCommission += tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计量委托
+                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:
             case 6:
@@ -207,36 +209,54 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
             case 8:
             case 9:
                 //计算计毛汽车衡并更新计量实绩 (暂时无法计算汽车衡)  需要写一个单独的方法 先计皮再计毛的
-                map.put("grossPlaceId", 18);
-                i += tmstruckWeightResultService.updateWeightResult(map);
+                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 10: // 采购内转(老区-厂内) 没有进厂
-                if(lineSqe.intValue() == 1){
-                   //计算计皮汽车衡并更新计量实绩
-                    map.put("tarePlaceId",15);
-                    i += tmstruckWeightResultService.updateWeightResult(map);
-                    checkMeasureCommission = tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计量委托
-                }else{
-                    map.put("grossPlaceId",18);
-                    i += tmstruckWeightResultService.updateWeightResult(map);
-                    checkMeasureCommission = tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计量委托
-
+            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:
                 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);
+                //发送计量委托(查询物资顺序第一个装卸货的物资)
+                //拿到需要计量的物资ID
                 Integer materialId = utilsMapper.getLxFirstMaterialId(DataChange.dataToBigDecimal(map.get("orderId")));
                 map.put("materialId", materialId);
-                //默认收货单位为新厂区
-                 checkMeasureCommission += tmstruckMeasureCommissionService.addLXMeasureCommission(map);
+                checkMeasureCommission += tmstruckMeasureCommissionService.addLXMeasureCommission(map);
 
         }
         if(checkMeasureCommission == 0){

+ 19 - 11
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -5,6 +5,7 @@ import com.steerinfo.dil.feign.BmsTruckFeign;
 import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper;
 import com.steerinfo.dil.mapper.TmstruckLeaveFactoryResultMapper;
+import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
 import com.steerinfo.dil.service.ITmstruckLeaveFactoryResultService;
 import com.steerinfo.dil.service.IUtilsService;
@@ -46,10 +47,10 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
     private IUtilsService utilsService;
 
     @Autowired
-    private BmsShipFeign bmsShipFeign;
+    private UtilsMapper utilsMapper;
 
     @Autowired
-    private BmsTruckFeign bmsTruckFeign;
+    private RulesServiceImpl rulesService;
 
     @Autowired
     OmsFeign omsFeign;
@@ -77,11 +78,15 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         //添加主键
         tmstruckLeaveFactoryResult.setId(tmstruckLeaveFactoryResultMapper.selectMaxId());
         //添加总实绩ID
-        tmstruckLeaveFactoryResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
+        tmstruckLeaveFactoryResult.setResultTotalId(resultTotalId);
+        //通过总实绩ID查询订单类型
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByTotalId(resultTotalId);
+        int gatepostId = rulesService.calculateDxGatepostId(mesMap);
+        tmstruckLeaveFactoryResult.setGatepostId(new BigDecimal(gatepostId));
         //添加路段顺序号
         tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("segmentSqe")));
         //添加门岗ID 出厂门岗为线路的终点
-//        tmstruckLeaveFactoryResult.setGatepostId(DataChange.dataToBigDecimal(map.get("lineEndNodeId")));
         return tmstruckLeaveFactoryResultMapper.insertSelective(tmstruckLeaveFactoryResult);
     }
 
@@ -130,9 +135,9 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
             case 11:
                 return tmstruckLeaveFactoryResultMapper.getInFactoryOutFactoryResult(map); //apiId:361
             case 12:
-                return tmstruckLeaveFactoryResultMapper.getSporadicLeaveFactory(map);
             case 13:
-                return tmstruckLeaveFactoryResultMapper.getSporadicLeaveFactory(map);
+            case 15:
+                return tmstruckLeaveFactoryResultMapper.getSporadicLeaveFactory(map);//apiId:421
         }
         return null;
     }
@@ -161,11 +166,10 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         i += utilsService.updateOrderLineSequence(map);
         switch (orderType.intValue()){
             case 1:
-                i += utilsService.closeOrderNormally(map);
                 break;
             case 2:
-                break;
             case 3:
+                i += utilsService.closeOrderNormally(map);
                 break;
             case 4:
                 break;
@@ -217,9 +221,13 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
         tmstruckLeaveFactoryResult.setResultId(DataChange.dataToBigDecimal(mapValue.get("resultId")));
         //通过门岗名称获取门岗ID
-        Integer gatepostId = tmstruckEnfactoryResultMapper.selectGatepostIdByGatepostName((String) mapValue.get("gatepostName"));
-        if(gatepostId != null){
-            tmstruckLeaveFactoryResult.setGatepostId(new BigDecimal(gatepostId));
+        if(mapValue.get("gatepostId") == null){
+            Integer gatepostId = tmstruckEnfactoryResultMapper.selectGatepostIdByGatepostName((String) mapValue.get("gatepostName"));
+            if(gatepostId != null){
+                tmstruckLeaveFactoryResult.setGatepostId(new BigDecimal(gatepostId));
+            }
+        }else {
+            tmstruckLeaveFactoryResult.setGatepostId(DataChange.dataToBigDecimal(mapValue.get("gatepostId")));
         }
         //设置常规字段 添加 出厂时间 和 出厂方式
         tmstruckLeaveFactoryResult.setResultOutGateTime(new Date());

+ 21 - 11
src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java

@@ -6,6 +6,7 @@ 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.model.TmstruckLoadResult;
 import com.steerinfo.dil.service.ITmstruckLoadResultService;
 import com.steerinfo.dil.util.DataChange;
@@ -51,7 +52,7 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
     private WmshBoundFeign wmshBoundFeign;
 
     @Autowired
-    private WMSFeign wmsFeign;
+    private UtilsMapper utilsMapper;
 
     @Autowired
     OmsFeign omsFeign;
@@ -61,6 +62,7 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
 
     @Autowired
     private TmstruckMeasureCommissionServiceImpl tmstruckMeasureCommissionService;
+
     /**
      * 查询所有装车实绩
      * @param map
@@ -90,9 +92,9 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
                 return tmstruckLoadResultMapper.getImportedDomesticNzLoadResult(map); //apiId = 353
             case 11:
                 return tmstruckLoadResultMapper.getInFactoryLoadResult(map); //apiId = 359
-            case  12:
-                return tmstruckLoadResultMapper.getSporadicSuppliesLoadResult(map); //apiId = 404
+            case 12:
             case 13:
+            case 15:
                 return tmstruckLoadResultMapper.getSporadicSuppliesLoadResult(map); //apiId = 404
         }
         return null;
@@ -270,23 +272,31 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         //计算装车时长 取分钟
         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.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"));
-        if(orderType.intValue() == 10){
-            //如果订单是采购内转类型订单
-            map.put("grossPlaceId", 15);
-            i += tmstruckWeightResultService.updateWeightResult(map);
-        }else {
-            i += tmstruckWeightResultService.calculateTruckCalculateByOne(map, 2);
-        }
+        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);
         //推送消息到websocket
-        utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "装货");
+        utilsService.pushMesToWebsocket((String) orderMap.get("capacityNumber"), "装货");
         return i;
     }
 

+ 35 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java

@@ -129,8 +129,42 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
      * @return
      */
     public int addLXMeasureCommission(Map<String, Object> map){
+        Integer 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);
+            if(receiveId == 1){
+                //给达钢发送委托
+
+            }else if(receiveId == 2){
+                //给达兴发送委托
+                i = sendDXMeasureCommissionMes(map);
+            }
+        }else if(orderType == 13){
+            Integer sendId = tmstruckMeasureCommissionMapper.getPtLxSendUnitIdByOrderId(orderId);
+            if(sendId == 1){
+                //给达钢发送委托
+
+            }else if(sendId == 2){
+                //给达兴发送委托
+                i = sendDXMeasureCommissionMes(map);
+            }
+
+        }else if(orderType == 15){
+            //如果是15类型的订单寻找订单父级发货单位  (现只有出厂)
+            Integer sendUnitId = tmstruckMeasureCommissionMapper.getLxRealSendUnitIdByOrderId(orderId);
+            if(sendUnitId == 1){
+                //给达钢发送委托
+
+            }else if (sendUnitId == 2){
+                //给达兴发送委托
+                i = sendDXMeasureCommissionMes(map);
+            }
+        }
         addMeasureCommission(map); // 添加计毛委托
-        return sendDXMeasureCommissionMes(map);
+        return i;
     }
 
 

+ 7 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckReceiptResultServiceImpl.java

@@ -72,10 +72,16 @@ public class TmstruckReceiptResultServiceImpl implements ITmstruckReceiptResultS
      * @return
      */
     public int addReceiptResult(Map<String, Object> map){
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
+        //根据总实绩ID查询收货实绩查看是否已收货
+        Integer receiptResult = tmstruckReceiptResultMapper.getReceiptResult(resultTotalId);
+        if(receiptResult != null){
+            return 0;
+        }
         //新增完卸车实绩后新增一条收货实绩
         TmstruckReceiptResult tmstruckReceiptResult = new TmstruckReceiptResult();
         tmstruckReceiptResult.setId(tmstruckReceiptResultMapper.selectMaxId());//添加主键
-        tmstruckReceiptResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));//添加总实绩Id
+        tmstruckReceiptResult.setResultTotalId(resultTotalId);//添加总实绩Id
         tmstruckReceiptResult.setStatus(new BigDecimal(0)); // 卸货完成后添加的为虚拟收货实绩
         return tmstruckReceiptResultMapper.insertSelective(tmstruckReceiptResult);
     }

+ 21 - 15
src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java

@@ -56,6 +56,9 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
 
     @Autowired
     TmstruckLeaveFactoryResultServiceImpl tmstruckLeaveFactoryResultService;
+
+    @Autowired
+    private RulesServiceImpl rulesService;
     /**
      * 新增卸货实绩
      * 总实绩ID、卸货点
@@ -111,7 +114,9 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
             case 11:
                 return tmstruckUnloadResultMapper.getInFactoryUnloadResult(map); //apiId:360
             case 12:
-                return tmstruckUnloadResultMapper.getSporadicSuppliesUnloadResult(map);//apiId:389
+            case 13:
+            case 15:
+                return  tmstruckUnloadResultMapper.getSporadicSuppliesUnloadResult(map);//apiId:389
         }
         return null;
     }
@@ -137,6 +142,10 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
         //路段顺序号 + 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;
@@ -152,33 +161,30 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
             case 8:
             case 9:
                 //计算计皮汽车衡 (当前无法计算汽车衡)
-                map.put("tarePlaceId", 6);
-                i += tmstruckWeightResultService.updateWeightResult(map);
-                //通过订单ID查询物资Id
-//                List<Integer> materialIdList = utilsMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-//                map.put("materialId", materialIdList.get(0));
+                int placeId = rulesService.calculateWeighbridge(mesMap);
+                mesMap.put("tarePlaceId", placeId);
+                i += tmstruckWeightResultService.updateWeightResult(mesMap);
                 i += tmstruckReceiptResultService.addReceiptResult(map); //新增完卸车实绩后新增一条收货实绩
 
                 //计算出厂门岗 (暂时定死)
-                Integer gatepostId = 2;
+//                Integer gatepostId = 2;
                 //计皮委托发送后更新出厂门岗
-                i += tmstruckLeaveFactoryResultService.updateLeaveFactoryGatepostId(resultTotalId.intValue(), gatepostId);
+//                i += tmstruckLeaveFactoryResultService.updateLeaveFactoryGatepostId(resultTotalId.intValue(), gatepostId);
                 break;
             case 10:
                 //计算计皮汽车衡 (当前无法计算汽车衡)
-                map.put("tarePlaceId", 18);
-                i += tmstruckWeightResultService.updateWeightResult(map);
-                //计算出厂门岗 (暂时定死)
-                Integer gatepostId2 = 9;
-                //计皮委托发送后更新出厂门岗
-                i += tmstruckLeaveFactoryResultService.updateLeaveFactoryGatepostId(resultTotalId.intValue(), gatepostId2);
+                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);
                 break;

+ 15 - 324
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -79,11 +79,9 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         Integer orderType = (Integer) map.get("orderTypee");
         switch (orderType){
             case 1:
-                return tmstruckWeightResultMapper.getXSAllJiMaoResult(map); // apiID:212
             case 2:
-                break;
             case 3:
-                break;
+                return tmstruckWeightResultMapper.getXSAllJiMaoResult(map); // apiID:212
             case 4:
                 return tmstruckWeightResultMapper.getSteelNzJiMaoResult(map); //apiId:264
             case 5:
@@ -100,7 +98,7 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             case 12:
                 return tmstruckWeightResultMapper.getSporadicSuppliesJiMiaoResult(map);//apiId:405
             case 13:
-                return tmstruckWeightResultMapper.getFactorySkinSporadicJiMiao(map);//apiId:402
+                return tmstruckWeightResultMapper.getFactorySkinSporadicJiMiao(map);//apiId:422
         }
         return null;
     }
@@ -115,12 +113,9 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         Integer orderType = (Integer) map.get("orderTypee");
         switch (orderType){
             case 1:
-                return tmstruckWeightResultMapper.getXSAllJiPiResult(map); //apiId:211
             case 2:
-                break;
             case 3:
-
-                break;
+                return tmstruckWeightResultMapper.getXSAllJiPiResult(map); //apiId:211
             case 4:
                 return tmstruckWeightResultMapper.getSteelNzJiPiResult(map); //apiId:262
             case 5:
@@ -152,9 +147,18 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
         //生成最大主键ID
         tmstruckWeightResult.setWeightTaskResultId(tmstruckWeightResultMapper.selectMaxId());
-        tmstruckWeightResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
-        //添加是否需要扣水扣杂
-        tmstruckWeightResult.setIsdeduct(DataChange.dataToBigDecimal(map.get("isdeduct")));
+        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")));
@@ -166,215 +170,6 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         return tmstruckWeightResultMapper.insertSelective(tmstruckWeightResult);
     }
 
-    /**
-     * 更新计毛实绩 采集需要的数据
-     *  运输订单号
-     *  汽车衡编号
-     *  物资ID
-     *  毛重
-     *  毛重时间
-     *  磅单号
-     * @return
-     */
-    @Override
-    @Transactional
-    public int addJiMaoResult(Map<String, Object> map) {
-        TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
-        //通过传来的运输订单号与物资ID查询计重实绩
-        map.putAll(tmstruckWeightResultMapper.selectTotalIdByOrderNo(map));
-        generateMaoWeightResult(map, tmstruckWeightResult);
-        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
-        int i = 0;
-        switch (orderType.intValue()){
-            case 1:
-            case 4:
-                //添加第二次计量常规字段
-                addUpdateRegularField(tmstruckWeightResult);
-                //查询当前计毛是否为最后一拼(针对多拼) (查询是否还有装车实绩没有数据)
-                List<Map<String, Object>> list = rulesMapper.judgeLastMaterial(orderId);
-                if(list.size() == 0){
-                    //如果没有未装车的装车实绩则计算出厂门岗并更新出厂实绩
-                    BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
-                    //计算出厂门岗 更新出厂门岗
-                    int gatepostId = rulesService.calculateGatepost(map);
-                    i += tmstruckLeaveFactoryResultService.updateLeaveFactoryGatepostId(resultTotalId.intValue(), gatepostId);
-                }else {
-                    //如果还有未装车的实绩 则代表还有未装车的物资 计算下一装车物资ID 更新下一物资的计皮实绩
-                    Map<String, Object> platIdMap = rulesService.calculateMaterial(list); //获得materialId  loadingId
-                    platIdMap.put("orderId", map.get("orderId"));
-                    //更新下一计量实绩以当前毛重为皮重  以当前汽车衡为下一计量实绩的计皮汽车衡
-                    platIdMap.put("tarePlaceId", tmstruckWeightResult.getResultTarePlaceId());
-                    platIdMap.put("resultTareWeight", map.get("resultGrossWeight"));
-                    i += updateWeightResult(platIdMap);
-                    //添加仓库排队
-//                    platIdMap.put("orderNumber", map.get("orderNumber"));
-//                    qmsFeign.addQueueResultByCk(platIdMap);
-                }
-                break;
-            case 2:
-            case 3:
-                break;
-            case 5:
-            case 6:
-            case 7:
-            case 8:
-            case 9: //采购订单记录计毛为第一次计重 添加磅单号
-                addInsertRegularField(tmstruckWeightResult); //插入第一次计重时间常规字段
-                break;
-            case 10:
-                break;
-            case 11:
-                break;
-            case 12:
-
-                break;
-        }
-        i += tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
-        //路段顺序号 + 1
-        omsFeign.pushMesToWebsocket(map);
-        return i;
-    }
-
-    /**
-     * 生成计毛实体类
-     * @param map
-     * @return
-     */
-    public void generateMaoWeightResult(Map<String, Object> map, TmstruckWeightResult tmstruckWeightResult){
-        //添加磅单号
-        tmstruckWeightResult.setResultPoundNo((String) map.get("resultPoundNo"));
-        //添加查询出来的主键
-        BigDecimal weightTaskResultId = DataChange.dataToBigDecimal(map.get("weightTaskResultId"));
-        tmstruckWeightResult.setWeightTaskResultId(weightTaskResultId);
-        //添加毛重
-        DecimalFormat df =  new DecimalFormat("0.00");
-        String resultGrossWeight = df.format(DataChange.dataToBigDecimal(map.get("resultGrossWeight")).doubleValue());
-        tmstruckWeightResult.setResultGrossWeight(new BigDecimal(resultGrossWeight));
-        //添加毛重时间
-        long resultGrossWeightTime = (long) map.get("resultGrossWeightTime");
-        tmstruckWeightResult.setResultGrossWeightTime(new Date(resultGrossWeightTime));
-        //添加净重 (如果传入的净重不为0)
-        BigDecimal resultNetWeight = DataChange.dataToBigDecimal(map.get("resultNetWeight"));
-        if(resultNetWeight.intValue() != 0){
-            tmstruckWeightResult.setResultNetWeight(resultNetWeight);
-        }
-        //通过汽车衡编号查询汽车衡ID
-        String truckCalculateNumber = (String) map.get("truckCalculateNumber");
-        if(truckCalculateNumber != null) {
-            Integer calculateId = tmstruckWeightResultMapper.selectTruckCalculateId(truckCalculateNumber);
-            //添加计毛汽车衡
-            if (calculateId != null) {
-                tmstruckWeightResult.setResultGrossPlaceId(new BigDecimal(calculateId));
-            }
-        }
-    }
-
-    /**
-     * 更新计皮实绩  需要采集的数据
-     * 运输订单号 orderNumber
-     * 汽车衡编号 truckCalculateNumber
-     * 皮重 resultTareWeight
-     * 皮重时间 resultTareWeightTime
-     * 净重
-     * @param map
-     * @return
-     */
-    @Override
-    @Transactional
-    public int addJiPiResult(Map<String, Object> map) {
-        TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
-        //通过传来的运输订单号 与 物资ID查询计重实绩ID
-        map.putAll(tmstruckWeightResultMapper.selectTotalIdByOrderNo(map));
-        generatePiWeightResult(map, tmstruckWeightResult);
-        int i = 0;
-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
-        switch (orderType.intValue()){
-            case 1:
-            case 4:
-                //销售订单计皮为第一次计重
-                addInsertRegularField(tmstruckWeightResult);// 添加插入常规字段 就是第一次计重时间;
-                //查询还未装车的物资
-                List<Map<String, Object>> mapList = rulesService.judgeLastMaterial(DataChange.dataToBigDecimal(map.get("orderId")));
-                if(mapList.size() == 1){
-                    //如果是单拼 则直接
-                    Map<String, Object> mesMap = mapList.get(0);
-                    i += tmstruckLoadResultService.updateLoadingId(mesMap); //更新装货点
-                    //添加仓库排队
-                    mesMap.put("orderNumber", map.get("orderNumber"));
-//                    qmsFeign.addQueueResultByCk(mesMap);
-                }else {
-                    //如果是多拼 使用多种物资计算第一个装货的物资和装车点
-                    Map<String, Object> platIdMap = rulesService.calculateMaterial(mapList); //获得materialId  loadingId
-                    platIdMap.put("orderId", map.get("orderId"));
-                    i += tmstruckLoadResultService.updateLoadingId(platIdMap); //更新装货点
-                    //添加仓库排队
-                    platIdMap.put("orderNumber", map.get("orderNumber"));
-//                    qmsFeign.addQueueResultByCk(platIdMap);
-                }
-                break;
-            case 2:
-            case 3:
-                //销售订单计皮为第一次计重
-                addInsertRegularField(tmstruckWeightResult);// 添加插入常规字段 就是第一次计重时间;
-                //焦炭、水渣只有一种物资  装货点是通过发运计划的时候填写的
-                break;
-            case 5:
-            case 6:
-            case 7:
-            case 8:
-            case 9:
-                //如果订单类型为采购订单 则执行采购订单计皮规则
-                addUpdateRegularField(tmstruckWeightResult); // 添加更新常规字段 就是第二次计重时间
-                //计皮作业完成后自动完成签收
-                i += autoReceipt(DataChange.dataToBigDecimal(map.get("resultTotalId")));
-                //计皮完成后计算出厂门岗并更新实绩出厂门岗ID
-                i += rulesService.calculateGatepost(map);
-                break;
-            case 10:
-                break;
-            case 11:
-                break;
-        }
-        i += tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
-        //路段顺序号 + 1
-        i += utilsService.updateOrderLineSequence(map);
-        return i;
-    }
-
-
-
-
-    /**
-     * 生成计皮实绩
-     * @param tmstruckWeightResult
-     * @return
-     */
-    public void generatePiWeightResult(Map<String, Object> map, TmstruckWeightResult tmstruckWeightResult){
-        //添加磅单号
-        tmstruckWeightResult.setResultPoundNo((String) map.get("resultPoundNo"));
-        //添加查询出来的主键
-        BigDecimal resultId = (BigDecimal) map.get("weightTaskResultId");
-        tmstruckWeightResult.setWeightTaskResultId(resultId);
-        //添加皮重
-        DecimalFormat df =  new DecimalFormat("0.00");
-        String resultTareWeight = df.format((double) map.get("resultTareWeight"));
-        tmstruckWeightResult.setResultTareWeight(new BigDecimal(resultTareWeight));
-        //添加皮重时间
-        long resultTareWeightTime = (long) map.get("resultTareWeightTime");
-        tmstruckWeightResult.setResultTareWeightTime(new Date(resultTareWeightTime));
-        //添加净重 (如果传入的净重不为0)
-        BigDecimal resultNetWeight = DataChange.dataToBigDecimal(map.get("resultNetWeight"));
-        if(resultNetWeight.intValue() != 0){
-            tmstruckWeightResult.setResultNetWeight(resultNetWeight);
-        }
-        //通过汽车衡编号查询汽车衡ID 添加计皮汽车衡
-        Integer calculateId = tmstruckWeightResultMapper.selectTruckCalculateId((String) map.get("truckCalculateNumber"));
-        if(calculateId != null){
-            tmstruckWeightResult.setResultTarePlaceId(new BigDecimal(calculateId));
-        }
-    }
-
     /**
      * 更新计量实绩  计皮点  计毛点  皮重
      * @param map
@@ -409,24 +204,6 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         return tmstruckReceiptResultMapper.updateByTotalResultId(tmstruckReceiptResult);
     }
 
-    /**
-     * 添加首次计重时的常规字段
-     * @param tmstruckWeightResult
-     */
-    public void addInsertRegularField(TmstruckWeightResult tmstruckWeightResult){
-        tmstruckWeightResult.setInsertTime(new Date());
-        tmstruckWeightResult.setInsertUsername("admin");
-        tmstruckWeightResult.setInsertUpdateRemark("无");
-    }
-
-    /**
-     * 添加第二次计重时的常规字段
-     * @param tmstruckWeightResult
-     */
-    public void addUpdateRegularField(TmstruckWeightResult tmstruckWeightResult){
-        tmstruckWeightResult.setUpdateTime(new Date());
-        tmstruckWeightResult.setUpdateUsername("admin");
-    }
 
     /**
      * 多拼计算计毛汽车衡
@@ -481,90 +258,4 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         return updateWeightResult(oIdAndMidMap);
     }
 
-
-    /**
-     * 添加计量实绩
-     * 传参样式:
-     * {
-         "orderNumber":"WYSDD2021091000000002",
-         "resultTareCalculateNumber":"1号汽车衡",
-         "resultCrossCalculateNumber":"1号汽车衡",
-         "resultTareWeight":40.00,
-         "resultCrossWeight":40.00,
-         "resultNetWeight":0,
-         "resultTareWeightTime":"2021-09-10 09:05:22",
-         "resultCrossWeightTime":"2021-09-10 09:05:22",
-         "resultNetWeightTime":"2021-09-10 09:05:22",
-         "resultPoundNo":"Bd123456780",
-         "materialId":40
-          --“IsAssembly”:”false”
-     * }
-     * @param mapList
-     * @return
-     */
-    public int updateTruckWeight(List<Map<String, Object>> mapList){
-        //遍历列表
-        int count = 0;
-        for (Map<String, Object> map : mapList) {
-            //通过传来的运输订单号 与 物资ID查询计重实绩ID
-            Map<String, Object> stringObjectMap = tmstruckWeightResultMapper.selectTotalIdByOrderNo(map);
-            map.putAll(stringObjectMap);
-            try {
-                TmstruckWeightResult tmstruckWeightResult = generateWeightResult(map);
-                count += tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
-                utilsService.pushMesToWebsocket((String) stringObjectMap.get("capacityNumber"), "计量");
-            } catch (ParseException e) {
-                e.printStackTrace();
-            }
-        }
-        return count;
-    }
-
-    /**
-     * 生成计量实体类
-     * @param map
-     * @return
-     */
-    public TmstruckWeightResult generateWeightResult(Map<String, Object> map) throws ParseException {
-        TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
-        tmstruckWeightResult.setId(DataChange.dataToBigDecimal(map.get("weightTaskResultId")));
-        //磅单号
-        tmstruckWeightResult.setResultPoundNo((String) map.get("resultPoundNo"));
-        //如果计皮汽车衡不为空 查询汽车衡ID
-        if(map.get("resultTareCalculateNumber") != null){
-            Integer tareId = tmstruckWeightResultMapper.selectTruckCalculateId((String) map.get("resultTareCalculateNumber"));
-            tmstruckWeightResult.setResultTarePlaceId(new BigDecimal(tareId));
-        }
-        //如果计毛汽车衡不为空 查询计毛汽车衡
-        if(map.get("resultCrossCalculateNumber") != null){
-            Integer crossId = tmstruckWeightResultMapper.selectTruckCalculateId((String) map.get("resultCrossCalculateNumber"));
-            tmstruckWeightResult.setResultGrossPlaceId(new BigDecimal(crossId));
-        }
-        //毛重
-        BigDecimal resultCrossWeight = DataChange.dataToBigDecimal(map.get("resultCrossWeight"));
-        tmstruckWeightResult.setResultGrossWeight(resultCrossWeight);
-        //皮重
-        BigDecimal resultTareWeight = DataChange.dataToBigDecimal(map.get("resultTareWeight"));
-        tmstruckWeightResult.setResultTareWeight(resultTareWeight);
-        //净重
-        tmstruckWeightResult.setResultNetWeight(DataChange.dataToBigDecimal(map.get("resultNetWeight")));
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        //毛重时间
-        Object resultCrossWeightTime =  map.get("resultCrossWeightTime");
-        if(resultCrossWeightTime != null)
-            tmstruckWeightResult.setResultGrossWeightTime(sdf.parse((String) resultCrossWeightTime));
-        //皮重时间
-        Object resultTareWeightTime = map.get("resultTareWeightTime");
-        if(resultTareWeightTime != null)
-            tmstruckWeightResult.setResultTareWeightTime(sdf.parse((String) resultCrossWeightTime));
-        //如果皮重毛重都有数据则是第二次计量设置更新 否则为第一次计量
-        if(resultCrossWeight.intValue() != 0 && resultTareWeight.intValue() != 0){
-            tmstruckWeightResult.setUpdateTime(new Date());
-            tmstruckWeightResult.setUpdateUsername("admin");
-        }else {
-            tmstruckWeightResult.setInsertTime(new Date());
-            tmstruckWeightResult.setInsertUsername("admin");
-        }
-        return tmstruckWeightResult;
-    }
 }

+ 16 - 19
src/main/java/com/steerinfo/dil/util/DataChange.java

@@ -1,9 +1,5 @@
 package com.steerinfo.dil.util;
 
-import org.apache.poi.ss.formula.functions.T;
-import org.omg.IOP.Encoding;
-import org.springframework.web.context.request.WebRequest;
-
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.ParseException;
@@ -46,22 +42,20 @@ public class DataChange {
      */
     public static BigDecimal dataToBigDecimal(Object data){
         if (data != null){
-            if(data instanceof String){
-                String data1 = (String) data;
-                if(data1.length()==0)
-                    return new BigDecimal(0);
-                return new BigDecimal(data1);
-            }
-            if(data instanceof Integer){
-                Integer data2 = (Integer) data;
-                return new BigDecimal(data2);
-            }
-            if(data instanceof Double){
-                Double data3 = (Double) data;
-                return new BigDecimal(data3.toString());
-            }
             if(data instanceof BigDecimal){
                 return (BigDecimal) data;
+            }else{
+                String str = String.valueOf(data);
+                BigDecimal decimal = null;
+                if(!"".equals(str)){
+                    try {
+                        decimal = new BigDecimal(str);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        return new BigDecimal(0);
+                    }
+                }
+                return decimal;
             }
         }
         return new BigDecimal(0);
@@ -75,6 +69,8 @@ public class DataChange {
     public static String dateToDayDate(Object date){
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Date changeDate = null;
+        if(date == null)
+            return null;
         try{
              changeDate = (Date) date;
         }catch (Exception e){
@@ -165,8 +161,9 @@ public class DataChange {
                         ? "0000" + id : id < 100000
                         ? "000" + id : id < 1000000
                         ? "00" + id : id < 10000000
-                        ? "0" + id : id
+                        ? "0" + id : id.toString()
         );
         return sb.toString();
     }
+
 }

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

@@ -3,9 +3,9 @@ spring:
   profiles:
     include: ${SPRING_PROFILES:dev}
   jackson:
-      date-format: yyyy-MM-dd HH:mm:ss
-      time-zone: GMT+8
-#    serialization: {WRITE_DATES_AS_TIMESTAMPS: true}
+    date-format: yyyy-MM-dd HH:mm:ss
+    time-zone: GMT+8
+  #    serialization: {WRITE_DATES_AS_TIMESTAMPS: true}
   messages:
     basename: message
     encoding: UTF-8
@@ -16,28 +16,28 @@ spring:
 #feign设置
 openfeign:
 
-#    正式环境
-#  ColumnDataFeign:
-#    url: ${COLUMNDATAFEIGN_URL:172.16.33.166:8083}
-#  BmsShipFeign:
-#    url: ${BMSSHIPFEIGN_URL:172.16.33.166:8078}
-#  BmsTruckFeign:
-#    url: ${BMSTRUCKFEIGN_URL:172.16.33.166:8076}
-#  WmshBoundFeign:
-#    url: ${WMSHBOUNDFEIGN_URL:172.16.33.166:8070}
-#  WMSFeign:
-#    url: ${WMSFEIGN_URL:172.16.33.166:8093}
-#  OmsFeign:
-#    url: ${OMSFEIGN_URL:172.16.33.166:8095}
-#  JoinFeign:
-#    url: ${JOINFEIGN_URL:172.16.33.166:8066}
-#  QmsFeign:
-#    url: ${QMSFEIGN_URL:172.16.33.166:8047}
-#  ImFeign:
-#    url: ${IMFEIGN_URL:172.16.33.161:8055}
-
-
-##    测试环境
+  #    正式环境
+  #  ColumnDataFeign:
+  #    url: ${COLUMNDATAFEIGN_URL:172.16.33.166:8083}
+  #  BmsShipFeign:
+  #    url: ${BMSSHIPFEIGN_URL:172.16.33.166:8078}
+  #  BmsTruckFeign:
+  #    url: ${BMSTRUCKFEIGN_URL:172.16.33.166:8076}
+  #  WmshBoundFeign:
+  #    url: ${WMSHBOUNDFEIGN_URL:172.16.33.166:8070}
+  #  WMSFeign:
+  #    url: ${WMSFEIGN_URL:172.16.33.166:8093}
+  #  OmsFeign:
+  #    url: ${OMSFEIGN_URL:172.16.33.166:8095}
+  #  JoinFeign:
+  #    url: ${JOINFEIGN_URL:172.16.33.166:8066}
+  #  QmsFeign:
+  #    url: ${QMSFEIGN_URL:172.16.33.166:8047}
+  #  ImFeign:
+  #    url: ${IMFEIGN_URL:172.16.33.161:8055}
+
+
+  ##    测试环境
   ColumnDataFeign:
     url: ${COLUMNDATAFEIGN_URL:172.16.33.162:8001}
   BmsShipFeign:
@@ -86,7 +86,7 @@ redis:
     time: 864000000
   database: 0
 
-#自定义配置Redis相关配置
+  #自定义配置Redis相关配置
   prefix:
     order: order
     line: line
@@ -108,7 +108,7 @@ str:
     abnMins: 60
       #处理类型type=1 异常线路预警
       #type=2 异常线路预警
-      #+停车
+    #+停车
     #type=3 异常线路预警
     #+离线
     #type=4 异常线路预警
@@ -125,7 +125,7 @@ mybatis:
 
 server:
   #正式环境
-#  port: 8088
+  #  port: 8088
   #测试环境
   port: 8008
 

+ 29 - 0
src/main/resources/com/steerinfo/dil/mapper/RulesMapper.xml

@@ -115,5 +115,34 @@
           and DELETED = 0
     </select>
 
+    <!--  通过订单ID查询路线类型  -->
+    <select id="getLineIsSteel" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select RL.IS_STEEL
+        from OMSTRUCK_ORDER OO
+                 left join RMS_LINE RL
+                           on RL.LINE_ID = OO.LINE_ID
+        where OO.ORDER_ID = #{orderId}
+    </select>
 
+<!--  查询还没有净重的计量实绩数量  -->
+    <select id="getNoNetWeightResult" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select COUNT(TWR.WEIGHT_TASK_RESULT_ID)
+        from OMSTRUCK_ORDER OO
+        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
+        where TWR.RESULT_NET_WEIGHT is null and OO.ORDER_ID = #{orderId}
+    </select>
+
+<!--  查询还没有出厂门岗ID的实绩  -->
+    <select id="getNoGatepostIdResult" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select count(TLFR.RESULT_ID)
+        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
+        where OO.ORDER_ID = #{orderId}
+    </select>
 </mapper>

+ 391 - 1
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -102,8 +102,398 @@
             </if>
         </where>
         <include refid="orderBy"></include>
-        <if test="orderField == null  ">
+        <if test="orderField == null">
             order by "insertTimee" desc
         </if>
     </select>
+
+<!--  查询销售统计报表  -->
+    <select id="getAllSaleReport" parameterType="java.util.Map" resultType="java.util.Map">
+        select
+               *
+        from (
+                 select OO.ORDER_NUMBER              "orderNumber",
+                        RC.CAPACITY_NUMBER           "capacityNumber",
+                        TER.RESULT_ENTRY_GATE_TIME   "resultEntryGateTime",
+                        TWR.RESULT_TARE_WEIGHT_TIME  "resultTareWeightTime",
+                        TWR.RESULT_TARE_WEIGHT       "resultTareWeight",
+                        TLR.RESULT_LOAD_END_TIME     "resultLoadEndTime",
+                        RW.WAREHOUSE_NAME            "warehouseName",
+                        TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
+                        TWR.RESULT_GROSS_WEIGHT      "resultGrossWeight",
+                        TWR.RESULT_NET_WEIGHT        "resultNetWeight",
+                        TLFR.RESULT_OUT_GATE_TIME    "resultOutGateTime",
+                        RTCMAO.TRUCK_CALCULATE_NUMBER       "maoCalculate",
+                        RTCPI.TRUCK_CALCULATE_NUMBER        "piCalculate",
+                        RGEN.GATEPOST_NAME                  "enGatepostName",
+                        RGOUT.GATEPOST_NAME                 "outGatepostName",
+                        RCON.CONSIGNEE_COMPANY_NAME         "receiveName"
+                 from OMSTRUCK_ORDER OO
+                          left join AMS_SALE_ORDER_MATERIAL ASOM
+                               on ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+                          left join AMS_SALE_ORDER ASO
+                               on ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+                          left join RMS_CONSIGNEE RCON
+                               on RCON.CONSIGNEE_ID = ASO.RECEIVE_ID
+                          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
+                               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
+                               on TWR.RESULT_GROSS_PLACE_ID = RTCMAO.TRUCK_CALCULATE_ID
+                          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
+                               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
+                               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>
+                 where OO.ORDER_TYPE = 1
+                          <if test="carrierSsoId != null">
+                              and RCA.CARRIER_SSO_ID = #{carrierSsoId}
+                          </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">
+                and
+                <foreach collection="resultEntryGateTime" item="item" open="(" separator="or" close=")">
+                    "resultEntryGateTime" 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">
+                and
+                <foreach collection="resultTareWeight" item="item" open="(" separator="or" close=")">
+                    "resultTareWeight" 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="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>
+            <if test="resultNetWeight != null">
+                and
+                <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
+                    "resultNetWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultOutGateTime != null">
+                and
+                <foreach collection="resultOutGateTime" item="item" open="(" separator="or" close=")">
+                    "resultOutGateTime" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+        <if test="orderField == null">
+            order by "resultOutGateTime" desc, "resultEntryGateTime" desc
+        </if>
+    </select>
+<!--    查询零星进厂物资统计报表-->
+    <select id="getSporadicSuppliesReport1" resultType="java.util.Map">
+        select
+        *
+        from (
+        select OO.ORDER_NUMBER              "orderNumber",
+        RC.CAPACITY_NUMBER           "capacityNumber",
+        TER.RESULT_ENTRY_GATE_TIME   "resultEntryGateTime",
+        TWR.RESULT_TARE_WEIGHT_TIME  "resultTareWeightTime",
+        TWR.RESULT_TARE_WEIGHT       "resultTareWeight",
+        TUR.RESULT_END_TIME     "resultEndTime",
+        RW.WAREHOUSE_NAME            "warehouseName",
+        TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
+        TWR.RESULT_GROSS_WEIGHT      "resultGrossWeight",
+        TWR.RESULT_NET_WEIGHT        "resultNetWeight",
+        TLFR.RESULT_OUT_GATE_TIME    "resultOutGateTime",
+--         查询进厂门岗
+        RG2.GATEPOST_NAME "gatepostEntryName",
+--         出厂门岗
+        RG.GATEPOST_NAME "gatepostOutName",
+--         计皮汽车衡
+        RTC1.TRUCK_CALCULATE_NUMBER "truckTareCalculate",
+--         计毛汽车衡
+        RTC2.TRUCK_CALCULATE_NUMBER "truckCrossCalculate"
+        from OMSTRUCK_ORDER OO
+        join TMSTRUCK_TOTAL_RESULT TTR
+        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
+        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
+        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
+        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
+        <if test="carrierSsoId != null">
+            join RMS_CARRIER RCA
+            on RCA.CARRIER_ID = RC.CARRIER_ID
+        </if>
+        where OO.ORDER_TYPE = 12
+        <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')
+        )
+        <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">
+                and
+                <foreach collection="resultEntryGateTime" item="item" open="(" separator="or" close=")">
+                    "resultEntryGateTime" 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">
+                and
+                <foreach collection="resultTareWeight" item="item" open="(" separator="or" close=")">
+                    "resultTareWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultEndTime != null">
+                and
+                <foreach collection="resultEndTime" item="item" open="(" separator="or" close=")">
+                    "resultEndTime" 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="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>
+            <if test="resultNetWeight != null">
+                and
+                <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
+                    "resultNetWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultOutGateTime != null">
+                and
+                <foreach collection="resultOutGateTime" item="item" open="(" separator="or" close=")">
+                    "resultOutGateTime" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+        <if test="orderField == null">
+            order by "resultOutGateTime" desc, "resultEntryGateTime" desc
+        </if>
+    </select>
+<!--    查询零星出厂物资统计报表-->
+    <select id="getSporadicSuppliesReport2" resultType="java.util.Map">
+        select
+        *
+        from (
+        select OO.ORDER_NUMBER              "orderNumber",
+        RC.CAPACITY_NUMBER           "capacityNumber",
+        TER.RESULT_ENTRY_GATE_TIME   "resultEntryGateTime",
+        TWR.RESULT_TARE_WEIGHT_TIME  "resultTareWeightTime",
+        TWR.RESULT_TARE_WEIGHT       "resultTareWeight",
+        TLR.RESULT_LOAD_END_TIME     "resultLoadEndTime",
+        RW.WAREHOUSE_NAME            "warehouseName",
+        TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
+        TWR.RESULT_GROSS_WEIGHT      "resultGrossWeight",
+        TWR.RESULT_NET_WEIGHT        "resultNetWeight",
+        TLFR.RESULT_OUT_GATE_TIME    "resultOutGateTime",
+--         查询进厂门岗
+        RG2.GATEPOST_NAME "gatepostEntryName",
+        --         出厂门岗
+        RG.GATEPOST_NAME "gatepostOutName",
+        --         计皮汽车衡
+        RTC1.TRUCK_CALCULATE_NUMBER "truckTareCalculate",
+        --         计毛汽车衡
+        RTC2.TRUCK_CALCULATE_NUMBER "truckCrossCalculate"
+        from OMSTRUCK_ORDER OO
+        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
+        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
+        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
+        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
+        <if test="carrierSsoId != null">
+            join RMS_CARRIER RCA
+            on RCA.CARRIER_ID = RC.CARRIER_ID
+        </if>
+        where OO.ORDER_TYPE = 13
+        <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')
+        )
+        <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">
+                and
+                <foreach collection="resultEntryGateTime" item="item" open="(" separator="or" close=")">
+                    "resultEntryGateTime" 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">
+                and
+                <foreach collection="resultTareWeight" item="item" open="(" separator="or" close=")">
+                    "resultTareWeight" 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="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>
+            <if test="resultNetWeight != null">
+                and
+                <foreach collection="resultNetWeight" item="item" open="(" separator="or" close=")">
+                    "resultNetWeight" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultOutGateTime != null">
+                and
+                <foreach collection="resultOutGateTime" item="item" open="(" separator="or" close=")">
+                    "resultOutGateTime" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+        <if test="orderField == null">
+            order by "resultOutGateTime" desc, "resultEntryGateTime" desc
+        </if>
+    </select>
 </mapper>

+ 50 - 123
src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml

@@ -697,122 +697,37 @@
 
     <!--查询销售进厂实绩 -->
     <select id="getXSEnFactoryResult" parameterType="java.util.Map" resultType="java.util.Map">
-        select
-        *
+        select *
         from (
-        SELECT
-        -- 进厂时间
-        TER.RESULT_ENTRY_GATE_TIME "resultEntryGateTime",
-        -- 进厂方式
-        TER.RESULT_ENTRY_MODE "resultEntryMode",
-        -- 门岗名称
-        RG.GATEPOST_NAME "gatepostName",
-        -- 运输订单号
-        OO.ORDER_NUMBER "orderNumber",
-        -- 车牌号
-        RC.CAPACITY_NUMBER "capacityNumber",
-        -- 运输订单id
-        OO.ORDER_ID "orderId",
-        -- 根据订单类型查询销售订单号/发运计划号
-        (CASE
-        -- 运输订单类型等于1的查询销售订单表
-        WHEN OO.ORDER_TYPE = 1
-        THEN (
-        SELECT
-        -- 销售订单号
-        ASO.SALE_NUMBER
-        FROM
-        -- 销售订单
-        AMS_SALE_ORDER_MATERIAL ASOM
-        JOIN AMS_SALE_ORDER ASO
-        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
-        WHERE OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
-        )
-        -- 运输订单类型等于2,3的查询发运计划表
-        WHEN OO.ORDER_TYPE IN ( 2, 3 )
-        THEN(
-        SELECT
-        -- 发运计划号
-        ARD.DAYPLAN_NO
-        -- 发运计划
-        FROM
-        AMSTRUCK_RAIL_DAYPLAN ARD
-        WHERE OO.ORDER_PLAN_ID = ARD.DAYPLAN_ID
-        )
-        END) "saleNum",
-        --根据订单类型查询发货单位
-        (CASE
-        WHEN OO.ORDER_TYPE = 1
-        THEN(
-        SELECT
-        -- 发货单位
-        RS.SHIPPER_NAME
-        FROM
-        -- 托运人
-        AMS_SALE_ORDER_MATERIAL ASOM
-        JOIN AMS_SALE_ORDER ASO
-        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
-        JOIN RMS_SHIPPER RS
-        ON RS.SHIPPER_ID = ASO.SHIPPER_ID
-        WHERE OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
-        )
-        -- 运输订单类型等于2,3的查询发运计划表
-        WHEN OO.ORDER_TYPE IN ( 2, 3 )
-        THEN(
-        SELECT
-        -- 发货单位
-        RS.SHIPPER_NAME
-        -- 发运计划
-        FROM AMSTRUCK_RAIL_DAYPLAN ARD
-        -- 托运人
-        LEFT JOIN RMS_SHIPPER RS ON ARD.SHIPMENT_UNIT_ID = RS.SHIPPER_ID
-        WHERE OO.ORDER_PLAN_ID = ARD.DAYPLAN_ID
-        )
-        END) "shipperName",
-        --根据订单类型查询收货单位
-        (CASE
-        WHEN OO.ORDER_TYPE = 1
-        THEN(
-        SELECT
-        -- 收货单位
-        RC.CONSIGNEE_COMPANY_NAME
-        FROM
-        AMS_SALE_ORDER_MATERIAL ASOM
-        JOIN AMS_SALE_ORDER ASO
-        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
-        JOIN RMS_CONSIGNEE RC
-        ON ASO.RECEIVE_ID = RC.CONSIGNEE_ID
-        WHERE OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
-        )
-        -- 运输订单类型等于2,3的查询发运计划表
-        WHEN OO.ORDER_TYPE IN ( 2, 3 )
-        THEN(
-        SELECT
-        --发货单位
-        RS.SUPPLIER_NAME
-        FROM
-        -- 发运计划
-        AMSTRUCK_RAIL_DAYPLAN ARD
-        --托运人
-        LEFT JOIN RMS_SUPPLIER RS ON ARD.SHIPMENT_UNIT_ID = RS.SUPPLIER_ID
-        WHERE OO.ORDER_PLAN_ID = ARD.DAYPLAN_ID
-        )
-        END) "supplierName"
-        FROM
-        -- 进厂实绩
-        TMSTRUCK_ENFACTORY_RESULT TER
-        -- 门岗
-        LEFT JOIN RMS_GATEPOST RG ON TER.GATEPOST_ID = RG.GATEPOST_ID
-        -- 总实绩
-        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        -- 运输订单
-        LEFT JOIN OMSTRUCK_ORDER OO ON TTR.ORDER_ID = OO.ORDER_ID
-        -- 运力信息
-        LEFT JOIN RMS_CAPACITY RC ON OO.CAPACITY_ID = RC.CAPACITY_ID
-        -- 判断进厂实绩的进厂时间不为空
+        select
+            TER.RESULT_ENTRY_GATE_TIME  "resultEntryGateTime",
+            TER.RESULT_ENTRY_MODE       "resultEntryMode",
+            RG.GATEPOST_NAME            "gatepostName",
+            OO.ORDER_NUMBER             "orderNumber",
+            RC.CAPACITY_NUMBER          "capacityNumber",
+            OO.ORDER_ID                 "orderId",
+            ASO.SALE_NUMBER             "saleNum",
+            RS.SUPPLIER_NAME            "shipperName",
+            RCON.CONSIGNEE_COMPANY_NAME "supplierName"
+        FROM TMSTRUCK_ENFACTORY_RESULT TER
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.RESULT_TOTAL_ID = TER.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 RMS_GATEPOST RG
+        ON RG.GATEPOST_ID = TER.GATEPOST_ID
+        LEFT JOIN RMS_CAPACITY RC
+        ON RC.CAPACITY_ID = OO.CAPACITY_ID
+        LEFT JOIN RMS_SUPPLIER RS
+        ON RS.SUPPLIER_ID = ASO.SHIPPER_ID
+        LEFT JOIN RMS_CONSIGNEE RCON
+        ON RCON.CONSIGNEE_ID = ASO.RECEIVE_ID
         WHERE TER.RESULT_ENTRY_GATE_TIME IS NOT NULL
-        -- 并且订单类型等于1(销售订单),2(焦炭发运计划),3(水渣发运计划)
-        AND OO.ORDER_TYPE IN ( 1, 2, 3 )
+              AND OO.ORDER_TYPE IN (1, 2, 3)
         )
         <where>
             <if test="saleNum != null">
@@ -866,6 +781,10 @@
         <include refid="orderByEnterTime"></include>
     </select>
 
+    <select id="ads">
+
+
+    </select>
     <select id="getMaterial" parameterType="int" resultType="java.util.Map">
         SELECT RM.MATERIAL_NAME                                                               "materialName",
                CONCAT(CONCAT(RM.MATERIAL_SPECIFICATION, '('), CONCAT(RM.MATERIAL_MODEL, ')')) "specificationModel",
@@ -1243,23 +1162,31 @@
         select *
         from (
         select TER.RESULT_ID "resultId",
-               OO.ORDER_ID      "orderId",
+               OO.ORDER_ID    "orderId",
                 OO.ORDER_NUMBER "orderNumber",
                 RC.CAPACITY_NUMBER "capacityNumber",
                 RG.GATEPOST_NAME "gatepostName",
                 TER.RESULT_ENTRY_MODE "resultEntryMode",
-                TER.RESULT_ENTRY_GATE_TIME "resultEntryGateTime"
+                TER.RESULT_ENTRY_GATE_TIME "resultEntryGateTime",
+                RM.MATERIAL_NAME "materialName",
+                OOM.ORDER_MATERIAL_NUMBER "materialNumber",
+                OOM.ORDER_MATERIAL_WEIGHT "materialWeight"
+
         from TMSTRUCK_ENFACTORY_RESULT TER
         left join TMSTRUCK_TOTAL_RESULT TTR
-            on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         left join OMSTRUCK_ORDER OO
-            on TTR.ORDER_ID = OO.ORDER_ID
+        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_GATEPOST RG
-                   on RG.GATEPOST_ID = TER.GATEPOST_ID
-                          left join RMS_CAPACITY RC
-                          on RC.CAPACITY_ID = OO.CAPACITY_ID
+        on OO.ORDER_PLAN_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>

+ 54 - 139
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -594,140 +594,42 @@
 
     <!--销售物流查询所有的出厂实绩-->
     <select id="selectAllLeaveFacatoryForSale" resultType="java.util.Map">
-        SELECT
-        *
-        FROM
-        (
-        SELECT
-        -- 出厂时间
-        TLFR.RESULT_OUT_GATE_TIME "resultOutGateTime",
-        --出厂抓拍图片
-        TLFR.RESULT_TRUCK_SNAPSHOT_PICTURE "resultTruckSnapshotPicture",
-        -- 	出厂方式
-        TLFR.RESULT_OUT_MODE "resultOutMode",
-        -- 	门岗名称
-        RG.GATEPOST_NAME "gatepostName",
-        -- 运输订单号
-        OO.ORDER_NUMBER "orderNumber",
-        -- 车牌号
-        RC.CAPACITY_NUMBER "capacityNumber",
-        -- 运输订单id
-        OO.ORDER_ID "orderId",
-        -- 根据订单类型查询销售订单号/发运计划号
-        ( CASE
-        -- 	运输订单类型等于1的查询销售订单表
-        WHEN OO.ORDER_TYPE = 1
-        THEN (
-        SELECT
-        -- 销售订单号
-        ASO.SALE_NUMBER
-        FROM
-        -- 销售订单
-        AMS_SALE_ORDER_MATERIAL ASOM
-        LEFT JOIN AMS_SALE_ORDER ASO
-        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
-        WHERE OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
-        )
-        -- 	运输订单类型等于2,3的查询发运计划表
-        WHEN OO.ORDER_TYPE IN ( 2, 3 )
-        THEN(
-        SELECT
-        -- 发运计划号
-        ARD.DAYPLAN_NO
-        -- 发运计划
-        FROM AMSTRUCK_RAIL_DAYPLAN ARD
-        WHERE OO.ORDER_PLAN_ID = ARD.DAYPLAN_ID
-        )
-        END) "saleNum",
-        --根据订单类型查询发货单位
-        (CASE
-        WHEN OO.ORDER_TYPE = 1
-        THEN (
-        SELECT
-        -- 发货单位
-        RS.SHIPPER_NAME
-        -- 销售订单
-        FROM
-        AMS_SALE_ORDER_MATERIAL ASOM
-        LEFT JOIN AMS_SALE_ORDER ASO
-        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
-        LEFT JOIN RMS_SHIPPER RS ON ASO.SHIPPER_ID = RS.SHIPPER_ID
-        WHERE OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
-        )
-        -- 	运输订单类型等于2,3的查询发运计划表
-        WHEN OO.ORDER_TYPE IN ( 2, 3 )
-        THEN (
-        SELECT
-        --发货单位
-        RS.SHIPPER_NAME
-        --发运计划
-        FROM
-        AMSTRUCK_RAIL_DAYPLAN ARD
-        -- 托运人
-        LEFT JOIN RMS_SHIPPER RS ON ARD.SHIPMENT_UNIT_ID = RS.SHIPPER_ID
-        WHERE OO.ORDER_PLAN_ID = ARD.DAYPLAN_ID
-        )
-        END) "shipperName",
-        --根据订单类型查询收货单位
-        ( CASE
-        WHEN OO.ORDER_TYPE = 1
-        THEN (
-        SELECT
-        --收货单位
-        RC.CONSIGNEE_COMPANY_NAME
-        FROM
-        AMS_SALE_ORDER_MATERIAL ASOM
+        select *
+        from (
+        select
+        TLFR.RESULT_OUT_GATE_TIME  "resultOutGateTime",
+        TLFR.RESULT_OUT_MODE       "resultOutMode",
+        RG.GATEPOST_NAME            "gatepostName",
+        OO.ORDER_NUMBER             "orderNumber",
+        RC.CAPACITY_NUMBER          "capacityNumber",
+        OO.ORDER_ID                 "orderId",
+        ASO.SALE_NUMBER             "saleNum",
+        RS.SUPPLIER_NAME            "shipperName",
+        RCON.CONSIGNEE_COMPANY_NAME "supplierName"
+        FROM TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.RESULT_TOTAL_ID = TLFR.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 ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
-        -- 托运人
-        LEFT JOIN RMS_CONSIGNEE RC ON ASO.RECEIVE_ID = RC.CONSIGNEE_ID
-        WHERE OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
-        ) -- 	运输订单类型等于2,3的查询发运计划表
-        WHEN OO.ORDER_TYPE IN ( 2, 3 )
-        THEN (
-        SELECT
-        --发货单位
-        RS.SUPPLIER_NAME --发运计划
-        FROM
-        AMSTRUCK_RAIL_DAYPLAN ARD
-        --托运人
-        LEFT JOIN RMS_SUPPLIER RS ON ARD.SHIPMENT_UNIT_ID = RS.SUPPLIER_ID
-        WHERE OO.ORDER_PLAN_ID = ARD.DAYPLAN_ID
-        )
-        END) "supplierName"
-        FROM
-        -- 出厂实绩
-        TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
-        -- 	门岗
-        LEFT JOIN RMS_GATEPOST RG ON TLFR.GATEPOST_ID = RG.GATEPOST_ID
-        -- 	总实绩
-        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        -- 运输订单
-        LEFT JOIN OMSTRUCK_ORDER OO ON TTR.ORDER_ID = OO.ORDER_ID
-        -- 运力信息
-        LEFT JOIN RMS_CAPACITY RC ON OO.CAPACITY_ID = RC.CAPACITY_ID
-        WHERE
-        -- 判断出厂实绩的出厂时间不为空
-        TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
-        -- 	并且订单类型等于1(销售订单),2(焦炭发运计划),3(水渣发运计划)
-        AND OO.ORDER_TYPE IN ( 1, 2, 3 )
+        ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+        LEFT JOIN RMS_GATEPOST RG
+        ON RG.GATEPOST_ID = TLFR.GATEPOST_ID
+        LEFT JOIN RMS_CAPACITY RC
+        ON RC.CAPACITY_ID = OO.CAPACITY_ID
+        LEFT JOIN RMS_SUPPLIER RS
+        ON RS.SUPPLIER_ID = ASO.SHIPPER_ID
+        LEFT JOIN RMS_CONSIGNEE RCON
+        ON RCON.CONSIGNEE_ID = ASO.RECEIVE_ID
+        WHERE TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
+        AND OO.ORDER_TYPE IN (1, 2, 3)
         )
         <where>
-            <if test="resultOutGateTime != null">
-                <foreach collection="resultOutGateTime" item="item" open="(" separator="or" close=")">
-                    "resultOutGateTime" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultTruckSnapshotPicture != null">
-            and
-                <foreach collection="resultTruckSnapshotPicture" item="item" open="(" separator="or" close=")">
-                    "resultTruckSnapshotPicture" like '%${item}%'
-                </foreach>
-            </if>
-            <if test="resultOutMode != null">
-            and
-                <foreach collection="resultOutMode" item="item" open="(" separator="or" close=")">
-                    "resultOutMode" like '%${item}%'
+            <if test="saleNum != null">
+                <foreach collection="saleNum" item="item" open="(" separator="or" close=")">
+                    "saleNum" like '%${item}%'
                 </foreach>
             </if>
             <if test="gatepostName != null">
@@ -748,18 +650,24 @@
                     "capacityNumber" like '%${item}%'
                 </foreach>
             </if>
-            <if test="saleNum != null">
-                and
-                <foreach collection="saleNum" item="item" open="(" separator="or" close=")">
-                    "saleNum" 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="resultEntryMode != null">
+                and
+                <foreach collection="resultEntryMode" item="item" open="(" separator="or" close=")">
+                    "resultEntryMode" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultEntryGateTime != null">
+                and
+                <foreach collection="resultEntryGateTime" item="item" open="(" separator="or" close=")">
+                    "resultEntryGateTime" like '%${item}%'
+                </foreach>
+            </if>
             <if test="supplierName != null">
                 and
                 <foreach collection="supplierName" item="item" open="(" separator="or" close=")">
@@ -1162,7 +1070,7 @@
             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 (
@@ -1172,12 +1080,19 @@
         RG.GATEPOST_NAME                   "gatepostName",
         TLFR.RESULT_OUT_MODE               "resultOutMode",
         TLFR.RESULT_OUT_GATE_TIME          "resultOutGateTime",
-        TLFR.RESULT_TRUCK_SNAPSHOT_PICTURE "resultTruckSnapshotPicture"
+        TLFR.RESULT_TRUCK_SNAPSHOT_PICTURE "resultTruckSnapshotPicture",
+        RM.MATERIAL_NAME                    "materialName",
+        OOM.ORDER_MATERIAL_WEIGHT           "materialWeight",
+        OOM.ORDER_MATERIAL_NUMBER            "materialNumber"
         from TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
         left join TMSTRUCK_TOTAL_RESULT TTR
         on TTR.RESULT_TOTAL_ID = TLFR.RESULT_TOTAL_ID
         left join OMSTRUCK_ORDER OO
         on OO.ORDER_ID = TTR.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 AMSTRUCK_SPORADIC_ORDER ASO
         on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
         left join RMS_CAPACITY RC

+ 18 - 23
src/main/resources/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.xml

@@ -976,42 +976,30 @@
                    TLR.RESULT_LOAD_START_TIME "resultLoadStartTime",
                    TLR.RESULT_LOAD_END_TIME "resultLoadEndTime",
                    TLR.RESULT_LOAD_DURATION "resultLoadDuration",
-                   RSD.STANDARD_DATA_MAX "standardDataMax",
                    RP.PERSONNEL_NAME "personnelName",
                    RM.MATERIAL_THEORETICAL_WEIGHT "materialTheoreticalWeight",
                    RM.MATERIAL_NAME "materialName",
-                    (CASE WHEN OO.ORDER_TYPE = 1
-                        THEN (
-                                SELECT ASO.SALE_NUMBER
-                                FROM AMS_SALE_ORDER_MATERIAL ASOM
-                                LEFT JOIN AMS_SALE_ORDER ASO ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
-                                WHERE ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
-                            )
-                        WHEN OO.ORDER_TYPE IN (2, 3)
-                        THEN (
-                                SELECT ARD.DAYPLAN_NO
-                                FROM AMSTRUCK_RAIL_DAYPLAN ARD
-                                WHERE ARD.DAYPLAN_ID = OO.ORDER_PLAN_ID
-                            )
-                   END) "no",
-                   (CASE WHEN   OO.ORDER_TYPE = 1
-                        THEN OOM.ORDER_MATERIAL_NUMBER
-                        WHEN OO.ORDER_TYPE IN (2, 3)
-                        THEN OOM.ORDER_MATERIAL_WEIGHT
-                     END) "materialNumWei"
+                   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_STANDARD_DATA RSD
-                ON RSD.STANDARD_DATA_ID = TLR.LOAD_STANDARD_TIME_ID
             LEFT JOIN RMS_PERSONNEL RP
                 ON TLR.LOADER_ID = RP.PERSONNEL_ID
             where
@@ -1501,12 +1489,19 @@
         TLR.RESULT_ISCLEAR "resultIsclear",
         to_char(TLR.RESULT_LOAD_START_TIME, 'yyyy-mm-dd') "resultLoadStartTime",
         TLR.INSERT_UPDATE_REMARK "insertUpdateRemark",
-        TLR.INSERT_TIME "insertTime"
+        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

+ 43 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.xml

@@ -896,7 +896,9 @@
                 <if test="weightTaskResultId != null">
                     and TWR.WEIGHT_TASK_RESULT_ID = #{weightTaskResultId}
                 </if>
-                and ASM.MATERIAL_ID = #{materialId}
+                <if test="materialId != null">
+                    and ASM.MATERIAL_ID = #{materialId}
+                </if>
                 and rownum = 1
     </select>
 <!--  通过订单ID查询发货单位ID  -->
@@ -1021,4 +1023,44 @@
         from TMSTRUCK_WEIGHT_RESULT TWR
         where TWR.RESULT_NET_WEIGHT is null and TWR.RESULT_TOTAL_ID = #{resultTotalId}
     </select>
+
+<!--  通过订单ID获取零星订单父级收货单位  -->
+    <select id="getLxRealReceiveIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select  RCON.CONSIGNEE_FAR_ID
+        from OMSTRUCK_ORDER OO
+            left join AMSTRUCK_SPORADIC_ORDER ASO
+                on OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
+            left join RMS_CONSIGNEE RCON
+                on RCON.CONSIGNEE_ID = ASO.RECEIVE_UNIT_ID
+        where OO.ORDER_ID = #{orderId}
+    </select>
+
+<!--   通过订单ID获取零星订单父级收货单位 -->
+    <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
+        where OO.ORDER_ID = #{orderId}
+    </select>
+
+<!--  查询零星订单收货单位ID  -->
+    <select id="getPtLxReceiveIdByOrderId" resultType="java.lang.Integer">
+        select ASO.RECEIVE_UNIT_ID
+        from OMSTRUCK_ORDER OO
+        left join AMSTRUCK_SPORADIC_ORDER ASO
+            on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
+        where OO.ORDER_ID = #{orderId}
+    </select>
+
+<!--  查询零星订单发货单位ID  -->
+    <select id="getPtLxSendUnitIdByOrderId" resultType="java.lang.Integer">
+        select ASO.SEND_UNIT_ID
+        from OMSTRUCK_ORDER OO
+                 left join AMSTRUCK_SPORADIC_ORDER ASO
+                           on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
+        where OO.ORDER_ID = #{orderId}
+    </select>
 </mapper>

+ 8 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckReceiptResultMapper.xml

@@ -718,4 +718,12 @@
     </where>
     <include refid="orderBy"></include>
   </select>
+
+<!-- 查询是否已收过货 -->
+    <select id="getReceiptResult" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select TRR.RESULT_ID
+        from TMSTRUCK_RECEIPT_RESULT TRR
+        where TRR.RESULT_TOTAL_ID = #{resultTotalId}
+    </select>
+
 </mapper>

+ 4 - 5
src/main/resources/com/steerinfo/dil/mapper/TmstruckSmsRusultMapper.xml

@@ -369,10 +369,9 @@
     on TSR.SENDER_ID=RS.SHIPPER_ID
   </select>
     <select id="selectIdApp" resultType="java.util.Map">
-      select
-      rs.SHIPPER_APPID "AppId",
-        rs.SHIPPER_SECRETKEY "secretKey"
-      from RMS_SHIPPER RS
-      where rs.SHIPPER_ID=#{bigDecimal}
+      select rs.SHIPPER_APPID "AppId",
+             rs.SHIPPER_SECRETKEY "secretKey"
+      from   RMS_SHIPPER RS
+      where  rs.SHIPPER_ID=#{bigDecimal}
     </select>
 </mapper>

+ 14 - 7
src/main/resources/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.xml

@@ -920,21 +920,28 @@
         TUR.RESULT_START_TIME     "resultStartTime",
         TUR.RESULT_END_TIME       "resultEndTime",
         TUR.RESULT_DURATION       "resultDuration",
-        RW.WAREHOUSE_NAME         "warehouseName"
+        RW.WAREHOUSE_NAME         "warehouseName",
+        RM.MATERIAL_NAME          "materialName",
+        OOM.ORDER_MATERIAL_WEIGHT  "materialWeight",
+        OOM.ORDER_MATERIAL_NUMBER  "materialNumber"
 
         FROM TMSTRUCK_UNLOAD_RESULT TUR
         LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
-            ON TTR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
+        ON TTR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
         LEFT JOIN OMSTRUCK_ORDER OO
-            ON OO.ORDER_ID = TTR.ORDER_ID
+        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_SPORADIC_ORDER ASO
-            ON OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
+        ON OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
         LEFT JOIN RMS_CAPACITY RC
-            ON RC.CAPACITY_ID = OO.CAPACITY_ID
+        ON RC.CAPACITY_ID = OO.CAPACITY_ID
         LEFT JOIN RMS_WAREHOUSE RW
-            ON RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
+        ON RW.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
         WHERE TUR.RESULT_END_TIME IS NOT NULL
-                AND OO.ORDER_TYPE = 12
+        AND OO.ORDER_TYPE = 12
         )
         <where>
             <if test="orderNumber != null">

+ 28 - 3
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -2194,6 +2194,7 @@
         RTC.TRUCK_CALCULATE_NUMBER "truckCalculateNumber",
         TWR.RESULT_GROSS_WEIGHT "resultGrossWeight",
         TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
+        RM.MATERIAL_NAME "materialName",
         OO.ORDER_ID "orderId",
         OO.ORDER_STATUS "orderStatus"
 
@@ -2204,6 +2205,10 @@
         on TTR.ORDER_ID = OO.ORDER_ID
         left join AMSTRUCK_SPORADIC_ORDER ASO
         on ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_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_TRUCK_CALCULATE RTC
@@ -2380,12 +2385,17 @@
         TWR.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
         TWR.RESULT_NET_WEIGHT "resultNetWeight",
         TWR.RESULT_TARE_WEIGHT "resultTareWeight",
-        TWR.RESULT_TARE_WEIGHT_TIME "resultTareWeightTime"
+        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
@@ -2461,7 +2471,7 @@
             order by "resultGrossWeightTime" desc
         </if>
     </select>
-
+<!--  零星计皮 -->
     <select id="getFactorySkinSporadicJIPi"  parameterType="java.util.Map"  resultType="java.util.Map">
         select *
         from (
@@ -2473,12 +2483,17 @@
         RTC.TRUCK_CALCULATE_NUMBER "truckCalculateNumber",
         TWR.RESULT_TARE_WEIGHT "resultTareWeight",
         TWR.RESULT_TARE_WEIGHT_TIME "resultTareWeightTime",
-        TWR.RESULT_POUND_NO "resultPoundNo"
+        TWR.RESULT_POUND_NO "resultPoundNo",
+        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 OO.ORDER_ID=OOM.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
@@ -2542,4 +2557,14 @@
             order by "resultTareWeightTime" desc
         </if>
     </select>
+
+<!--  通过总实绩ID查询订单类型  -->
+    <select id="getOrderTypeByTotalId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select OO.ORDER_TYPE
+        from OMSTRUCK_ORDER OO
+        where OO.ORDER_ID =
+              (select TTR.ORDER_ID from TMSTRUCK_TOTAL_RESULT TTR where TTR.RESULT_TOTAL_ID = #{resultTotalId})
+    </select>
+
+
 </mapper>

+ 9 - 2
src/main/resources/com/steerinfo/dil/mapper/UtilsMapper.xml

@@ -110,8 +110,9 @@
 
 
 <!--   通过总实绩ID查询订单类型 -->
-    <select id="getOrderTypeByTotalId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
-        select OO.ORDER_TYPE
+    <select id="getOrderTypeByTotalId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select OO.ORDER_TYPE "orderType",
+               OO.ORDER_ID "orderId"
         from TMSTRUCK_TOTAL_RESULT TTR
         left join OMSTRUCK_ORDER OO
             on OO.ORDER_ID = TTR.ORDER_ID
@@ -154,4 +155,10 @@
              )
         where rownum = 1
     </select>
+
+    <select id="getPersonnelIdBySsoId" parameterType="java.lang.String" resultType="java.lang.Integer">
+        select RP.PERSONNEL_ID
+        from RMS_PERSONNEL RP
+        where RP.PERSONNEL_SSO_ID = #{personnelSsoId}
+    </select>
 </mapper>