Selaa lähdekoodia

修改销售装车

txf 3 vuotta sitten
vanhempi
commit
d4d2cd5d9f

+ 11 - 1
src/main/java/com/steerinfo/dil/controller/TmstruckLoadResultController.java

@@ -143,6 +143,16 @@ public class TmstruckLoadResultController extends BaseRESTfulController {
         return success(i);
     }
 
+    @ApiOperation(value="生成装车实绩 :远程调用专用")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "resultId", value = "装车作业实绩ID", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/addLoadResult")
+    public RESTfulResult addLoadResult(@RequestBody(required=false) Map<String,Object> map){
+        int i = tmstruckLoadResultService.addLoadResult(map);
+        return success(i);
+    }
+
     @ApiOperation(value="修改n个装车点 ")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "resultId", value = "装车作业实绩ID", required = false, dataType = "Integer"),
@@ -201,7 +211,7 @@ public class TmstruckLoadResultController extends BaseRESTfulController {
     })
     @PostMapping("addSaleLoadResult")
     public RESTfulResult addSaleLoadResult(@RequestBody(required=false) Map<String, Object> map){
-        int i = tmstruckLoadResultService.addSaleLoadResult(map);
+        int i = tmstruckLoadResultService.addXSLoadResult(map);
         return success(i);
     }
     //内转物流新增装车实绩

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

@@ -3,6 +3,7 @@ package com.steerinfo.dil.mapper;
 import com.steerinfo.dil.model.TmstruckLoadResult;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.math.BigDecimal;
@@ -70,4 +71,16 @@ public interface TmstruckLoadResultMapper extends IBaseMapper<TmstruckLoadResult
 
     //通过港口ID查询仓库表中的港存库ID
     BigDecimal getWarehouseIdByPortId(BigDecimal portId);
+
+    /*
+    TangXiaoFeng
+     */
+    //通过物资ID和总实绩Id查询唯一的装车实绩Id
+    Integer getLoadResultIdByMIdAndTotalId(@Param("resultTotalId") Integer resultTotalId, @Param("materialId") Integer materialId);
+
+    //通过物资ID和运输订单号 查找最先扫描Id
+    Integer getMinScanIdByOrderNum(Map<String, Object> map);
+
+    //通过物资唯一编码 查找物资ID
+    BigDecimal getMaterialIdByMaterialCode(String materialCode);
 }

+ 6 - 4
src/main/java/com/steerinfo/dil/service/ITmstruckLoadResultService.java

@@ -23,11 +23,14 @@ public interface ITmstruckLoadResultService{
     //查询所有的装车实绩
     List<Map<String, Object>> getAllLoadResult(Map<String, Object> map);
 
-    //新增装车实绩
+    //生成装车实绩(销售)
+    int addLoadResult(Map<String, Object> map);
+
+    //新增采购装车实绩
     int addCGLoadResult(Map<String, Object> map);
 
-    //新增虚拟装车实绩
-    int addSaleLoadResult(Map<String, Object> map);
+    //修改销售装车实绩  (如果是多种物资【多拼】,通过物资Id和运输订单号来确定唯一的装车实绩进行修改)
+    int addXSLoadResult(Map<String, Object> map);
 
     //修改装车作业
     int updateLoadResult(TmstruckLoadResult tmstruckLoadResult);
@@ -38,7 +41,6 @@ public interface ITmstruckLoadResultService{
     //逻辑删除装车作业
     int deleteLoadResult(Integer resultId);
 
-
     //修改装车作业作业点
     int updateLoadingId(List<Map<String, Object>> map);
 

+ 75 - 206
src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java

@@ -51,71 +51,45 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
 
 
     /**
-     * 新增装车实绩
-     * 运输订单号 或 运输订单Id
-     * 是否清场
-     * 装车日期
-     * 备注
-     * 计量吨位
-     *
+     * 查询所有装车实绩
      * @param map
      * @return
      */
-    @Transactional
-    public int addLoadResult11(Map<String, Object> map) {
-        //通过运输订单号 或 运单Id 查询实绩总表ID  此方法在 进厂作业mapper中
-        Integer totalId = tmstruckEnfactoryResultMapper.selectOrderIdByCpAndOn(map);
-        // 新增装车实绩
-        TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
-        //添加主键Id
-        tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
-        //新增计量吨位 装车所装的重量
-        BigDecimal resultMeasuredTonnage = DataChange.dataToBigDecimal(map.get("resultMeasuredTonnage"));
-        tmstruckLoadResult.setResultMeasuredTonnage(resultMeasuredTonnage);
-        tmstruckLoadResult.setStatus(new BigDecimal(0));
-        tmstruckLoadResult.setResultTotalId(new BigDecimal(totalId));
-        String resultIsclear = (String) (map.get("resultIsclear"));
-        tmstruckLoadResult.setResultIsclear(resultIsclear);
-        tmstruckLoadResult.setResultLoadStartTime(new Date((long) map.get("resultLoadStartTime")));
-        tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
-        int i = tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
-
-        //修改订单状态为执行中 1
-        int i1 = utilsService.updateOrderStatus(map, 1);
+    @Override
+    public List<Map<String, Object>> getAllLoadResult(Map<String, Object> map) {
+        Integer orderType = (Integer) map.get("orderTypee");
+        switch (orderType) {
+            case 1:
+            case 2:
+            case 3:
+            case 4:
+                map.put("status", 0);
+                return tmstruckLoadResultMapper.getXSLoadResult(map);
+            case 5:
+                break;
+            case 6:
+                break;
+            case 7:
+                break;
+            case 8:
+                return tmstruckLoadResultMapper.getCGJKLoadResult(map);
+            case 9:
 
-        //修改运力状态为执行中 1
-        int i2 = utilsService.updateCapacityStatus(map, 1);
+                break;
+            case 10:
 
-        //新增港存库出库实绩 并修改实时库存
-        BigDecimal portId = tmstruckLoadResultMapper.getPortIdBySendStationId(DataChange.dataToBigDecimal(map.get("loadingId")));
-        if (portId != null) {
-            BigDecimal batchId = tmstruckLoadResultMapper.getBatchIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-            if (batchId != null) {
-                Map<String, Object> hashMap = new HashMap<>();
-                hashMap.put("batchId", batchId);
-                hashMap.put("portId", portId);
-                hashMap.put("resultTonnage", resultMeasuredTonnage);
-                hashMap.put("isClean", resultIsclear);
-                wmshBoundFeign.addResult(hashMap);
-            }
+                break;
+            case 11:
         }
-        return i + i1 + i2;
+        return null;
     }
 
-    /**
 
-     * 添加装货实绩
-     *
-     * @param map
-     * @return
+    /**
+     * 新增采购装车实绩
+     * @param map  resultMeasuredTonnage :计量吨位  portId:港口ID
+     *             resultLoadStartTime:装车时间 resultIsclear:是否清场
      */
-    public int addLoadResult(Map<String, Object> map) {
-        return 0;
-    }
-
-        /**
-         *
-         */
     @Transactional
     public int addCGLoadResult(Map<String,Object> map){
         //通过运输订单号 或 运单Id 查询实绩总表ID  此方法在 进厂作业mapper中
@@ -150,10 +124,8 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
             }
         }
         int i = tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
-
         //修改订单状态为执行中 1
         int i1 = utilsService.updateOrderStatus(map, 1);
-
         //修改运力状态为执行中 1
 //        int i2 = utilsService.updateCapacityStatus(map, 1);
         return i + i1;
@@ -161,91 +133,58 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
 
 
     /**
-     * 遗留问题  (销售装车)
-     *
+     * 生成销售装车实绩(虚拟装车实绩)
      * @param map
      * @return
      */
-    public int addLoadResult1(Map<String, Object> map) {
-//        String orderNumber = map.get("orderNumber").toString();
-        //通过运输订单号查找物资
-        List<Map<String, Object>> materialList = tmstruckLoadResultMapper.selectMaterialIdByOrderNumber(map);
-        for (int i = 0; i < materialList.size(); i++) {
-            Map<String, Object> map3 = materialList.get(i);
-            BigDecimal materialId = (BigDecimal) map3.get("materialId");
-            //通过运输订单号 或 运单Id 查询实绩总表ID  此方法在 进厂作业mapper中
-            Integer totalId = tmstruckEnfactoryResultMapper.selectOrderIdByCpAndOn(map);
-            // 新增装车实绩
-            TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
-            //添加主键Id
-            tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
-            //新增计量吨位 装车所装的重量
-            BigDecimal resultMeasuredTonnage = DataChange.dataToBigDecimal(map.get("resultMeasuredTonnage"));
-            tmstruckLoadResult.setResultMeasuredTonnage(resultMeasuredTonnage);
-            tmstruckLoadResult.setStatus(new BigDecimal(0));
-            tmstruckLoadResult.setResultTotalId(new BigDecimal(totalId));
-            String resultIsclear = (String) (map.get("resultIsclear"));
-            tmstruckLoadResult.setResultIsclear(resultIsclear);
-            //根据运输订单号查找运输订单类型
-            Integer orderType = tmstruckLoadResultMapper.selectOrderTypeByOrderNumber((String) map.get("orderNumber"));
-            int i2 = 0;
-            int i1 = 0;
-            switch (orderType) {
-                case 3:
-                    tmstruckLoadResult.setResultLoadStartTime(new Date((long) map.get("resultLoadStartTime")));
-                    //修改订单状态为执行中 1
-                    i1 = utilsService.updateOrderStatus(map, 1);
-                    //修改运力状态为执行中 1
-                    i2 = utilsService.updateCapacityStatus(map, 1);
-                    //新增出库实绩 并修改实时库存
-                    BigDecimal portId = tmstruckLoadResultMapper.getPortIdBySendStationId(DataChange.dataToBigDecimal(map.get("loadingId")));
-                    if (portId != null) {
-                        BigDecimal batchId = tmstruckLoadResultMapper.getBatchIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-                        if (batchId != null) {
-                            HashMap<String, Object> hashMap = new HashMap<>();
-                            hashMap.put("batchId", batchId);
-                            hashMap.put("portId", portId);
-                            hashMap.put("resultTonnage", resultMeasuredTonnage);
-                            hashMap.put("isClean", resultIsclear);
-                            wmshBoundFeign.addResult(hashMap);
-                        }
-                    }
-                case 1:
-                    List list = tmstruckLoadResultMapper.selectResultIdByOrderNumber((String) map.get("orderNumber"));
-                    //查询最大id和最小id
-                    Integer maxResultId = (Integer) Collections.max(list);
-                    Integer minResultId = (Integer) Collections.min(list);
-                    //根据最大id查找扫描时间
-                    Map map1 = tmstruckLoadResultMapper.selectLoadTimeByResultId(minResultId);
-                    Date startdate = (Date) map1.get("loadTime");
-                    Integer loaderId = tmstruckLoadResultMapper.selecLoadIdByresultId(minResultId);
-                    //根据最小id查找扫描时间
-                    Map map2 = tmstruckLoadResultMapper.selectLoadTimeByResultId(maxResultId);
-                    Date endDate = (Date) map2.get("loadTime");
-                    tmstruckLoadResult.setResultLoadStartTime(startdate);
-                    tmstruckLoadResult.setResultLoadEndTime(endDate);
-                    //开始时间
-                    long startTime = startdate.getTime();
-                    long endTime = endDate.getTime();
-                    long time = endTime - startTime;
-                    long l = time / 1000;
-                    tmstruckLoadResult.setResultLoadDuration(new BigDecimal(l));
-                    tmstruckLoadResult.setLoaderId(new BigDecimal(loaderId));
-                    //新增出库实绩
-                    wmsFeign.insertOutBoundResult(map);
-
-            }
-            tmstruckLoadResult.setMaterialId(materialId);
-            tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
-            int i3 = tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
-            return i3 + i1 + i2;
-        }
-
-        return 6;
+    public int addLoadResult(Map<String, Object> map){
+        TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
+        //添加主键Id
+        tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
+        //添加物资Id
+        tmstruckLoadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
+        //添加总实绩ID
+        tmstruckLoadResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+        return tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
     }
+
     /**
-     * 新增销售装车
+     * 修改销售装车实绩  (如果是多种物资【多拼】,通过物资Id和运输订单号来确定唯一的装车实绩进行修改)
+     * @param map 物资唯一编码  运输订单号
+     * @return
      */
+    public int addXSLoadResult(Map<String, Object> map){
+        //通过物资唯一编码查找物资Id
+        BigDecimal materialId = tmstruckLoadResultMapper.getMaterialIdByMaterialCode((String) map.get("materialCode"));
+        //通过运输订单号查找总实绩ID
+        Integer resultTotalId = tmstruckEnfactoryResultMapper.selectOrderIdByCpAndOn(map);
+        //通过总实绩ID与物资ID查找装车实绩主键ID
+        Integer resultId = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId, materialId.intValue());
+        TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
+        tmstruckLoadResult.setStatus(new BigDecimal(0)); // 添加状态0:正常
+        //添加主键
+        tmstruckLoadResult.setResultId(new BigDecimal(resultId));
+        //新增计量吨位 装车所装的重量
+        tmstruckLoadResult.setResultMeasuredTonnage(DataChange.dataToBigDecimal(map.get("resultMeasuredTonnage")));
+        //获取扫描实绩最小Id  添加扫描开始时间
+        Integer scanId = tmstruckLoadResultMapper.getMinScanIdByOrderNum(map);
+        Map timeMap = tmstruckLoadResultMapper.selectLoadTimeByResultId(scanId);
+        Date resultLoadStartTime = (Date) timeMap.get("loadTime");
+        tmstruckLoadResult.setResultLoadStartTime(resultLoadStartTime);
+        //添加扫描结束时间
+        Date resultLoadEndTime = new Date();
+        tmstruckLoadResult.setResultLoadEndTime(resultLoadEndTime);
+        //添加装车实绩时长  ----  计算装车时长
+        long time = (resultLoadEndTime.getTime() - resultLoadStartTime.getTime()) / 60000; // 分钟
+        tmstruckLoadResult.setResultLoadDuration(new BigDecimal(time));
+        //添加装卸工Id
+        tmstruckLoadResult.setLoaderId(new BigDecimal(1));
+        //添加备注
+        tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
+        //新增出库实绩
+//        wmsFeign.insertOutBoundResult(map);
+        return tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
+    }
 
     /**
      * 修改装车作业
@@ -271,7 +210,6 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
 
     /**
      * 逻辑删除装车实绩 状态 1
-     *
      * @param resultId
      * @return
      */
@@ -285,7 +223,6 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
 
     /**
      * 修改装车作业点 多个装车点随机分配给多个装车实绩
-     *
      * @param mapList
      * @return
      */
@@ -307,7 +244,6 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
 
     /**
      * 查询销售合同装车实绩
-     *
      * @param map
      * @return
      */
@@ -316,73 +252,6 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         return tmstruckLoadResultMapper.selectLoadResultForSale(map);
     }
 
-    /**
-     * 新增销售装车实绩(虚拟)
-     *
-     * @param map {orderId 运输订单Id}
-     * @return
-     */
-    public int addSaleLoadResult(Map<String, Object> map) {
-//        String orderNumber = (String) map.get("orderNumber");
-        List<Map<String, Object>> materialList = tmstruckLoadResultMapper.selectMaterialIdByOrderNumber(map);
-        int i = 0;
-        for (Map<String, Object> materialMap : materialList) {
-            TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
-            //添加物资ID
-            tmstruckLoadResult.setMaterialId(DataChange.dataToBigDecimal(materialMap.get("materialId")));
-            //添加总实绩ID
-            Integer totalId = tmstruckEnfactoryResultMapper.selectOrderIdByCpAndOn(map);
-            tmstruckLoadResult.setResultTotalId(new BigDecimal(totalId));
-            //添加主键
-            tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
-            i += tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
-        }
-        return i;
-    }
-
-    /**
-     * 查询所有装车实绩
-     *
-     * @param map
-     * @return
-     */
-    @Override
-    public List<Map<String, Object>> getAllLoadResult(Map<String, Object> map) {
-        Integer orderType = (Integer) map.get("orderTypee");
-        switch (orderType) {
-            case 1:
-                return tmstruckLoadResultMapper.getXSLoadResult(map);
-            case 2:
-
-                break;
-            case 3:
-
-                break;
-            case 4:
-
-                break;
-            case 5:
-
-                break;
-            case 6:
-
-                break;
-            case 7:
-
-                break;
-            case 8:
-                return tmstruckLoadResultMapper.getCGJKLoadResult(map);
-            case 9:
-
-                break;
-            case 10:
-
-                break;
-            case 11:
-        }
-        return null;
-    }
-
     //内转物流,新增装车实绩
     @Override
     public int addLoadResultForconverted(Map<String, Object> map) {

+ 0 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml

@@ -621,7 +621,6 @@
             <if test="orderId != null">
                 OO.ORDER_ID = #{orderId}
             </if>
-
             <if test="orderNumber != null">
                 and OO.ORDER_NUMBER = #{orderNumber}
             </if>

+ 122 - 55
src/main/resources/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.xml

@@ -719,6 +719,18 @@
         where OO.ORDER_NUMBER = #{oderNumber}
     </select>
 
+<!--  通过运输订单号查询 出库实绩 最小Id(第一件扫描时间)  0 成功  1 失败-->
+    <select id="getMinScanIdByOrderNum" parameterType="string" resultType="int">
+        select MIN(WOSR.RESULT_ID)
+        from OMSTRUCK_ORDER OO
+                 left join WMSP_OUTBOUND_RESULT WOR
+                           on OO.ORDER_ID = WOR.BILL_LADING_ID
+                 left join WMSP_OUTBOUND_SCAN_RESULT WOSR
+                           on WOSR.OUTBOUND_RESULT_ID = WOR.RESULT_ID
+        WHERE OO.ORDER_NUMBER = #{orderNumber} and WOR.MATERIAL_ID = #{materailId}
+          and WOSR.RESULT_CHECK = 0
+    </select>
+
     <!-- 根据运输订单号查找 -->
     <select id="selectResultIdByOrderNumber" resultType="java.lang.Integer" parameterType="java.lang.String">
         select WOSR.RESULT_ID "resultId"
@@ -729,7 +741,7 @@
                  left join WMSP_OUTBOUND_SCAN_RESULT WOSR
                            on WOSR.OUTBOUND_RESULT_ID = WOR.RESULT_ID
         WHERE OO.ORDER_NUMBER = #{orderNumber}
-          and WOSR.RESULT_CHECK = 1
+          and WOSR.RESULT_CHECK = 0
     </select>
 
     <!-- 根据实绩id查找扫描时间 -->
@@ -882,47 +894,75 @@
 
     <!--  查询销售装车实绩  -->
     <select id="getXSLoadResult" parameterType="java.util.Map" resultType="java.util.Map">
-        select *
-        from (
-        select TLR.RESULT_ID "resultId",
-        APO.PURCHASE_ORDER_NO "purchaseOrderNo",
-        RM.MATERIAL_NAME "materialName",
-        OO.ORDER_NUMBER "orderNumber",
-        RC.CAPACITY_NUMBER "capacityNumber",
-        TLR.RESULT_MEASURED_TONNAGE "resultMeasuredTonnage",
-        TLR.RESULT_ISCLEAR "resultIsclear",
-        TLR.RESULT_LOAD_START_TIME "resultLoadStartTime",
-        TLR.INSERT_UPDATE_REMARK "insertUpdateRemark",
-        TLR.INSERT_TIME "insertTime",
-        RCON. CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
-        RS.SUPPLIER_NAME "supplierName"
-        from TMSTRUCK_LOAD_RESULT TLR
-        left join TMSTRUCK_TOTAL_RESULT TTR
-        on TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        left join OMSTRUCK_ORDER OO
-        on TTR.ORDER_ID = OO.ORDER_ID
-        left join OMSTRUCK_ORDER_MATERIAL OOM
-        on OO.ORDER_ID = OOM.ORDER_ID
-        left join AMS_PURCHASE_ORDER APO
-        on OO.ORDER_PLAN_ID = APO.PURCHASE_ORDER_ID
-        left join DIL_BATCH DB
-        on DB.BATCH_ID = APO.BATCH_ID
-        left join RMS_MATERIAL RM
-        on OOM.MATERIAL_ID = RM.MATERIAL_ID
-        left join RMS_DRIVER_CAPACITY RDC
-        on RDC.DRIVER_CAPACITY_ID = OO.DRIVER_CAPACITY_ID
-        left join RMS_CAPACITY RC
-        on RC.CAPACITY_ID = RDC.CAPACITY_ID
-        left join RMS_SUPPLIER RS
-        on RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
-        left join RMS_CONSIGNEE RCON
-        on RCON.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
-        where TLR.STATUS = #{status} and OO.ORDER_TYPE = #{orderTypee}
+        SELECT *
+        FROM (
+            SELECT OO.ORDER_NUMBER "orderNumber",
+                   RC.CAPACITY_NUMBER "capacityNumber",
+                   TLR.RESULT_LOAD_START_TIME "resultLoadStartTime",
+                   TLR.RESULT_LOAD_END_TIME "resultLoadEndTime",
+                   TLR.RESULT_LOAD_DURATION "resultLoadDuration",
+                   RSD.STANDARD_DATA_MAX "standardDataMax",
+                   RP.PERSONNEL_NAME "personnelName",
+                   (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) "saleNum",
+                   (CASE WHEN   OO.ORDER_TYPE = 1
+                        THEN (
+                                SELECT RM.MATERIAL_NAME
+                                FROM RMS_MATERIAL_STEEL RMS
+                                LEFT JOIN RMS_MATERIAL RM ON RMS.MATERIAL_ID = RM.MATERIAL_ID
+                                WHERE RMS.MATERIAL_STEEL_ID = OOM.MATERIAL_ID
+                            )
+                        WHEN OO.ORDER_TYPE IN (2, 3)
+                        THEN (
+                                SELECT RM2.MATERIAL_NAME
+                                FROM RMS_MATERIAL RM2
+                                WHERE RM2.MATERIAL_ID = OOM.MATERIAL_ID
+                            )
+                    END) "materialName",
+                   (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",
+                   (CASE WHEN   OO.ORDER_TYPE = 1
+                        THEN   (SELECT MATERIAL_THEORETICAL_WEIGHT
+                                FROM RMS_MATERIAL_STEEL RMS2
+                                WHERE OOM.MATERIAL_ID = RMS2.MATERIAL_STEEL_ID
+                            )
+                     END) "materialTheoreticalWeight"
+            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 OMSTRUCK_ORDER_MATERIAL OOM
+                ON OOM.ORDER_ID = OO.ORDER_ID
+            LEFT JOIN RMS_DRIVER_CAPACITY RDC
+                ON RDC.DRIVER_CAPACITY_ID = OO.DRIVER_CAPACITY_ID
+            LEFT JOIN RMS_CAPACITY RC
+                ON RC.CAPACITY_ID = RDC.CAPACITY_ID
+            LEFT JOIN RMS_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>
-            <if test="purchaseOrderId != null">
-                <foreach collection="purchaseOrderId" item="item" open="(" separator="or" close=")">
-                    "purchaseOrderId" like '%${item}%'
+            <if test="orderNumber != null">
+                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+                    "orderNumber" like '%${item}%'
                 </foreach>
             </if>
             <if test="materialName != null">
@@ -931,10 +971,16 @@
                     "materialName" like '%${item}%'
                 </foreach>
             </if>
-            <if test="orderNumber != null">
+            <if test="materialNumWei != null">
                 and
-                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                    "orderNumber" like '%${item}%'
+                <foreach collection="materialNumWei" item="item" open="(" separator="or" close=")">
+                    "materialNumWei" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialTheoreticalWeight != null">
+                and
+                <foreach collection="materialTheoreticalWeight" item="item" open="(" separator="or" close=")">
+                    "materialTheoreticalWeight" like '%${item}%'
                 </foreach>
             </if>
             <if test="capacityNumber != null">
@@ -943,28 +989,34 @@
                     "capacityNumber" like '%${item}%'
                 </foreach>
             </if>
-            <if test="orderMaterialWeight != null">
+            <if test="resultLoadStartTime != null">
                 and
-                <foreach collection="orderMaterialWeight" item="item" open="(" separator="or" close=")">
-                    "orderMaterialWeight" like '%${item}%'
+                <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
+                    "resultLoadStartTime" like '%${item}%'
                 </foreach>
             </if>
-            <if test="resultIsclear != null">
+            <if test="resultLoadEndTime != null">
                 and
-                <foreach collection="resultIsclear" item="item" open="(" separator="or" close=")">
-                    "resultIsclear" like '%${item}%'
+                <foreach collection="resultLoadEndTime" item="item" open="(" separator="or" close=")">
+                    "resultLoadEndTime" like '%${item}%'
                 </foreach>
             </if>
-            <if test="resultLoadStartTime != null">
+            <if test="resultLoadDuration != null">
                 and
-                <foreach collection="resultLoadStartTime" item="item" open="(" separator="or" close=")">
-                    "resultLoadStartTime" like '%${item}%'
+                <foreach collection="resultLoadDuration" item="item" open="(" separator="or" close=")">
+                    "resultLoadDuration" like '%${item}%'
                 </foreach>
             </if>
-            <if test="insertUpdateRemark != null">
+            <if test="standardDataMax != null">
                 and
-                <foreach collection="insertUpdateRemark" item="item" open="(" separator="or" close=")">
-                    "insertUpdateRemark" like '%${item}%'
+                <foreach collection="standardDataMax" item="item" open="(" separator="or" close=")">
+                    "standardDataMax" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="personnelName != null">
+                and
+                <foreach collection="personnelName" item="item" open="(" separator="or" close=")">
+                    "personnelName" like '%${item}%'
                 </foreach>
             </if>
         </where>
@@ -981,4 +1033,19 @@
         where RW.WAREHOUSE_TYPE_ID = 4 and RW.PORT_ID = #{portId}
     </select>
 
+<!--  通过物资ID和总实绩Id查询唯一的装车实绩Id  -->
+    <select id="getLoadResultIdByMIdAndTotalId" parameterType="int" resultType="java.lang.Integer">
+        select TLR.RESULT_ID
+        from TMSTRUCK_LOAD_RESULT TLR
+        where TLR.RESULT_TOTAL_ID = #{resultTotalId}
+          and TLR.MATERIAL_ID = #{materialId}
+    </select>
+
+<!--    通过物资唯一编码 查找物资ID -->
+    <select id="getMaterialIdByMaterialCode" parameterType="string" resultType="java.math.BigDecimal">
+        select MATERIAL_ID
+        from RMS_MATERIAL
+        where MATERIAL_CODE = #{materialCode}
+    </select>
+
 </mapper>