Redeem 1 سال پیش
والد
کامیت
4f076e9067

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

@@ -1403,4 +1403,71 @@ public class StatisticalReportController extends BaseRESTfulController {
         PageListAdd pageList = columnDataUtil.tableColumnData5(apiId, null, report);
         PageListAdd pageList = columnDataUtil.tableColumnData5(apiId, null, report);
         return success(pageList);
         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("/getOyeSteelReport")
+    public RESTfulResult getOyeSteelReport(@RequestBody(required=false) Map<String,Object> map,
+                                            String startTime,
+                                            String endTime,
+                                            String carrierSsoId,
+                                            String receiveName,
+                                            String materialName,
+                                            String specification,
+                                            String remark,
+                                            String capacityNo,
+                                            String carrierName,
+                                            String consigneeName,
+                                            String saler,
+                                            String easPrimaryId
+    ){
+        DataChange.queryDataByDateTimeYestDay(startTime, endTime, map, sdfDateTime);//根据时间段查询数据
+        if(carrierSsoId != null){
+            if(!"null".equals(carrierSsoId) && carrierSsoId != null){
+                map.put("carrierSsoId", carrierSsoId);
+            }
+        }
+        if (receiveName != null && !"null".equals(receiveName)) {
+            map.put("receivName","%" + receiveName + "%");
+        }
+        if (remark != null && !"".equals(remark) && !"null".equals(remark)) {
+            map.put("remark","%" + remark + "%");
+        }
+        if (capacityNo != null && !"".equals(capacityNo) && !"null".equals(capacityNo)) {
+            map.put("capacityNum","%" + capacityNo + "%");
+        }
+        if (carrierName != null && !"".equals(carrierName) && !"null".equals(carrierName)) {
+            map.put("carrierNames","%" + carrierName + "%");
+        }
+        if (consigneeName != null && !"".equals(consigneeName) && !"null".equals(consigneeName)) {
+            map.put("consigneeNames","%" + consigneeName + "%");
+        }
+        if (saler != null && !"".equals(saler) && !"null".equals(saler)) {
+            //如果业务员登录进来,就去查询业务员所关联的片区
+            List<String> saleAreaRemark = statisticalReportService.getSaleAreaRemark(saler);
+            if(saleAreaRemark.size() > 0) {
+                map.put("saleAreaRemark",saleAreaRemark);
+            }
+            map.put("salers",saler);
+        }
+        if (easPrimaryId != null && !"".equals(easPrimaryId) && !"null".equals(easPrimaryId)) {
+            map.put("easPrimaryId",easPrimaryId);
+        }
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getOyeSteelReport(map);
+        return success(report);
+    }
+
+    @ApiOperation(value="根据车序号查询欧冶转运计划状态")
+    @PostMapping("/getOyeSteelReportDetailsBySmId")
+    public RESTfulResult getOyeSteelReportDetailsBySmId(@RequestParam BigDecimal saleOrderMaterialId){
+        return success(statisticalReportService.getOyeSteelReportDetailsBySmId(saleOrderMaterialId));
+    }
+
 }
 }

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

@@ -133,4 +133,11 @@ public interface StatisticalReportMapper {
 
 
     Map<String, Object> getPreMap(Map<String, Object> mapValue);
     Map<String, Object> getPreMap(Map<String, Object> mapValue);
 
 
+    List<Map<String, Object>> getOyeSteelReport(Map<String, Object> map);
+
+
+    Map<String, Object> getOyeSteelReportDetailsBySmId(BigDecimal saleOrderMaterialId);
+
+    List<Map<String, Object>> getOyeSteelReportDetailsListBySmId(BigDecimal saleOrderMaterialId);
+
 }
 }

+ 199 - 0
src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java

@@ -779,4 +779,203 @@ public class StatisticalReportImpl implements IStatisticalReportService {
     public Map<String, Object> getPreMap(Map<String, Object> mapValue) {
     public Map<String, Object> getPreMap(Map<String, Object> mapValue) {
         return statisticalReportMapper.getPreMap(mapValue);
         return statisticalReportMapper.getPreMap(mapValue);
     }
     }
+
+    public List<Map<String, Object>> getOyeSteelReport(Map<String, Object> map) {
+        List<Map<String, Object>> saleSteelReport = statisticalReportMapper.getOyeSteelReport(map);
+        HashSet set = new HashSet<>();
+        HashSet quxiaoSet = new HashSet();
+        HashSet<Map<String,Object>> filterConsigneeList = new HashSet<>();
+        HashSet<Map<String,Object>> filterCarrierList = new HashSet<>();
+        HashSet<Map<String,Object>> filterCapacityList = new LinkedHashSet<>();
+        HashSet<Map<String,Object>> filtermaterialNameList = new HashSet<>();
+        HashSet<Map<String,Object>> filterorderStatus = new HashSet<>();
+        HashSet<Map<String,Object>> filterorderStatusActually = new HashSet<>();
+        HashSet<Map<String,Object>> filteraddressPlace = new HashSet<>();
+        HashSet<Map<String,Object>> filtermaterialSpe = new HashSet<>();
+        HashSet<Map<String,Object>> filterSaleRemark = new HashSet<>();
+        HashSet<Map<String,Object>> filterTruckRemark = new HashSet<>();
+        HashSet<Map<String,Object>> filterAreaName = new HashSet<>();
+        int totalNumber = 0;
+        BigDecimal totalNetWeight = new BigDecimal(0);
+        for (int j = 0; j < saleSteelReport.size();j++) {
+            Map<String,Object> stringObjectMap = saleSteelReport.get(j);
+            //车牌号筛选
+
+            stringObjectMap.put("rowKey",j + 1);
+            if(j == 0) {
+                stringObjectMap.put("group",j);
+                //根据车序号ID去查询正常状态分录的个数
+                //BigDecimal spellNum = statisticalReportMapper.getSpellNum(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
+                //stringObjectMap.put("spellNum",spellNum);
+                Map<String,Object> filterCapacityMap = new HashMap<>();
+                filterCapacityMap.put("text","空白");
+                filterCapacityMap.put("value","空白");
+                filterCapacityList.add(filterCapacityMap);
+                Map<String,Object> filterCapacityMap1 = new HashMap<>();
+                filterCapacityMap1.put("text","取消");
+                filterCapacityMap1.put("value","取消");
+                filterCapacityList.add(filterCapacityMap1);
+            }else{
+                if((saleSteelReport.get(j-1).get("saleOrderMaterialId")).equals(stringObjectMap.get("saleOrderMaterialId"))){
+                    stringObjectMap.put("group",saleSteelReport.get(j-1).get("group"));
+                    //stringObjectMap.put("spellNum",saleSteelReport.get(j-1).get("spellNum"));
+                }else{
+                    stringObjectMap.put("group",Integer.parseInt(saleSteelReport.get(j-1).get("group").toString()) + 1);
+                    //BigDecimal spellNum = statisticalReportMapper.getSpellNum(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
+                    //stringObjectMap.put("spellNum",spellNum);
+                }
+            }
+            if(!"取消".equals(stringObjectMap.get("newCapacityNo"))) {
+                set.add(stringObjectMap.get("saleOrderMaterialId"));
+            }else{
+                quxiaoSet.add(stringObjectMap.get("saleOrderMaterialId"));
+            }
+            Map<String,Object> filterCapacityMap = new HashMap<>();
+            if(stringObjectMap.get("newCapacityNo") == null) {
+                filterCapacityMap.put("text","空白");
+                filterCapacityMap.put("value","空白");
+            }else{
+                filterCapacityMap.put("text",stringObjectMap.get("newCapacityNo"));
+                filterCapacityMap.put("value",stringObjectMap.get("newCapacityNo"));
+            }
+            filterCapacityList.add(filterCapacityMap);
+            calculateDifferenceTime(stringObjectMap);
+            //收货客户筛选
+            Map<String, Object> filterConsigneeMap = new HashMap<>();
+            filterConsigneeMap.put("text",stringObjectMap.get("consigneeName"));
+            filterConsigneeMap.put("value",stringObjectMap.get("consigneeName"));
+            filterConsigneeList.add(filterConsigneeMap);
+            //承运商筛选
+            Map<String,Object> filterCarrierMap = new HashMap<>();
+            filterCarrierMap.put("text",stringObjectMap.get("carrierName"));
+            filterCarrierMap.put("value",stringObjectMap.get("carrierName"));
+            filterCarrierList.add(filterCarrierMap);
+            //物资筛选
+            Map<String,Object> filtermaterialNameMap = new HashMap<>();
+            filtermaterialNameMap.put("text",stringObjectMap.get("materialName"));
+            filtermaterialNameMap.put("value",stringObjectMap.get("materialName"));
+            filtermaterialNameList.add(filtermaterialNameMap);
+            //运单状态筛选
+            Map<String,Object> filterorderStatusMap = new HashMap<>();
+            filterorderStatusMap.put("text",stringObjectMap.get("orderStatus"));
+            filterorderStatusMap.put("value",stringObjectMap.get("orderStatus"));
+            filterorderStatus.add(filterorderStatusMap);
+            //运单实际状态筛选
+            Map<String,Object> filterorderStatusActuallyMap = new HashMap<>();
+            filterorderStatusActuallyMap.put("text",stringObjectMap.get("orderStatusActually"));
+            if("已派单".equals(stringObjectMap.get("orderStatusActually"))) {
+                filterorderStatusActuallyMap.put("text","未接收");
+            }
+            filterorderStatusActuallyMap.put("value",stringObjectMap.get("orderStatusActually"));
+            filterorderStatusActually.add(filterorderStatusActuallyMap);
+            //收货地址筛选
+            Map<String,Object> filteraddressPlaceMap = new HashMap<>();
+            filteraddressPlaceMap.put("text",stringObjectMap.get("addressPlace"));
+            filteraddressPlaceMap.put("value",stringObjectMap.get("addressPlace"));
+            filteraddressPlace.add(filteraddressPlaceMap);
+            //物资规格筛选
+            Map<String,Object> filtermaterialSpeMap = new HashMap<>();
+            filtermaterialSpeMap.put("text",stringObjectMap.get("materialSpe"));
+            filtermaterialSpeMap.put("value",stringObjectMap.get("materialSpe"));
+            filtermaterialSpe.add(filtermaterialSpeMap);
+            //摘要筛选
+            Map<String,Object> filterSaleRemarkMap = new HashMap<>();
+            filterSaleRemarkMap.put("text",stringObjectMap.get("saleRemark"));
+            filterSaleRemarkMap.put("value",stringObjectMap.get("saleRemark"));
+            filterSaleRemark.add(filterSaleRemarkMap);
+            //备注筛选
+            Map<String,Object> filterTruckRemarkMap = new HashMap<>();
+            filterTruckRemarkMap.put("text",stringObjectMap.get("truckRemark"));
+            filterTruckRemarkMap.put("value",stringObjectMap.get("truckRemark"));
+            filterTruckRemark.add(filterTruckRemarkMap);
+            //片区筛选
+            Map<String,Object> filterAreaNameMap = new HashMap<>();
+            filterAreaNameMap.put("text",stringObjectMap.get("areaName"));
+            filterAreaNameMap.put("value",stringObjectMap.get("areaName"));
+            filterAreaName.add(filterAreaNameMap);
+            if(!"取消".equals(stringObjectMap.get("newCapacityNo"))) {
+                totalNumber += Integer.parseInt(stringObjectMap.get("materialNum").toString());
+                if(j == 0) {
+                    totalNetWeight = totalNetWeight.add(DataChange.dataToBigDecimal(stringObjectMap.get("netWeight")));
+                }
+                if(j > 0 && DataChange.dataToBigDecimal(stringObjectMap.get("weightBatchId")).compareTo(DataChange.dataToBigDecimal(saleSteelReport.get(j-1).get("weightBatchId"))) != 0) {
+                    totalNetWeight = totalNetWeight.add(DataChange.dataToBigDecimal(stringObjectMap.get("netWeight")));
+                }
+            }
+            String capacityNumbers= (String) stringObjectMap.get("capacityNumbers");
+            //确认是否有多个收货单位
+            //if (shippingAddressIds !=null && !("".equals(shippingAddressIds))){
+            //    String[] split = shippingAddressIds.split(",");
+            //    String address="";
+            //    int i=0;
+            //    for (String s : split) {
+            //        i++;
+            //        String getaddress = getaddress(DataChange.dataToBigDecimal(s));
+            //        if (i==1){
+            //            address+="旧地址:"+getaddress+",";
+            //        }else if (i==2){
+            //            address+="新地址:"+getaddress;
+            //        }
+            //    }
+            //    stringObjectMap.put("addressPlace",address);
+            //}
+            //确认是否有多个车牌号
+            if (capacityNumbers!=null &&!("".equals(capacityNumbers))){
+                String[] split = capacityNumbers.split(",");
+                String capacityNumber="";
+                int flag=0;
+                for (String s : split) {
+                    flag++;
+                    String s1 = getcapacityNumber(DataChange.dataToBigDecimal(s));
+                    if (flag==1){
+                        capacityNumber+="旧车号:"+s1+",";
+                    }else if (flag==2){
+                        capacityNumber+="新车号:"+s1;
+                        break;
+                    }
+                }
+                stringObjectMap.put("capacityNo",capacityNumber);
+            }
+        }
+        if(saleSteelReport.size() > 0 && saleSteelReport.get(0) != null){
+            saleSteelReport.get(0).put("quxiaoCapacityNum",quxiaoSet.size());
+            saleSteelReport.get(0).put("totalCapacity",set.size());
+            saleSteelReport.get(0).put("totalNumber",totalNumber);
+            saleSteelReport.get(0).put("totalNetWeight",totalNetWeight);
+            saleSteelReport.get(0).put("filterConsigneeList",filterConsigneeList);
+            saleSteelReport.get(0).put("filtermaterialNameList",filtermaterialNameList);
+            saleSteelReport.get(0).put("filterorderStatus",filterorderStatus);
+            saleSteelReport.get(0).put("filterorderStatusActually",filterorderStatusActually);
+            saleSteelReport.get(0).put("filteraddressPlace",filteraddressPlace);
+            saleSteelReport.get(0).put("filtermaterialSpe",filtermaterialSpe);
+            saleSteelReport.get(0).put("filterCapacityList",filterCapacityList);
+            saleSteelReport.get(0).put("filterCarrierList",filterCarrierList);
+            saleSteelReport.get(0).put("filterSaleRemark",filterSaleRemark);
+            saleSteelReport.get(0).put("filterTruckRemark",filterTruckRemark);
+            saleSteelReport.get(0).put("filterAreaName",filterAreaName);
+        }
+        return saleSteelReport;
+    }
+
+
+    public Map<String,Object> getOyeSteelReportDetailsBySmId(BigDecimal saleOrderMaterialId) {
+        //获取主表数据
+        Map<String,Object> map = statisticalReportMapper.getOyeSteelReportDetailsBySmId(saleOrderMaterialId);
+        //获取子表数据
+        List<Map<String,Object>> mapList = statisticalReportMapper.getOyeSteelReportDetailsListBySmId(saleOrderMaterialId);
+        if (map != null){
+            if(DataChange.dataToBigDecimal(map.get("orderStatu")).intValue() == 5 && map.get("queueStartTime") != null && DataChange.dataToBigDecimal(map.get("lineSqe")).intValue() == 0){
+                map.put("orderStatus","排队中");
+                map.put("orderStatusTime",map.get("queueStartTime"));
+            }else if(DataChange.dataToBigDecimal(map.get("orderStatu")).intValue() == 5 && DataChange.dataToBigDecimal(map.get("lineSqe")).intValue() != 0 && map.get("outGateTime") == null){
+                map.put("orderStatus","已进厂");
+                map.put("orderStatusTime",map.get("entryGateTime"));
+            }else if(DataChange.dataToBigDecimal(map.get("orderStatu")).intValue() == 5 && map.get("outGateTime") != null){
+                map.put("orderStatus","已出厂");
+                map.put("orderStatusTime",map.get("outGateTime"));
+            }
+            map.put("mapList",mapList);
+        }
+        return map;
+    }
 }
 }

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

@@ -300,7 +300,8 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         Boolean isArrivalFlag = isArrivalType(""+orderType);
         Boolean isArrivalFlag = isArrivalType(""+orderType);
         //查询自提
         //查询自提
         String isSelfMention = tmstruckLeaveFactoryResultMapper.getIsSelfMention(orderId);
         String isSelfMention = tmstruckLeaveFactoryResultMapper.getIsSelfMention(orderId);
-        if(!isArrivalFlag || "是".equals(isSelfMention)){
+        String addressPlace = tmstruckLeaveFactoryResultMapper.getAddressPlace(orderId);
+        if(!isArrivalFlag || "是".equals(isSelfMention) && (addressPlace == null || !addressPlace.contains("欧冶"))){
             //不涉及抵达签收,或者自提,统一在此处直接关单
             //不涉及抵达签收,或者自提,统一在此处直接关单
             i += utilsService.closeOrderNormally(map);
             i += utilsService.closeOrderNormally(map);
         }
         }
@@ -308,27 +309,18 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
             //如果涉及抵达签收,则标记为允许
             //如果涉及抵达签收,则标记为允许
             utilsMapper.updateArrival(map);
             utilsMapper.updateArrival(map);
         }
         }
+
         switch (orderType){
         switch (orderType){
             case 1:
             case 1:
                 try {
                 try {
-                    if(isSelfMention != null && isSelfMention.equals("是")) {
+                    if(isSelfMention != null && isSelfMention.equals("是") && addressPlace != null && !addressPlace.contains("欧冶")) {
                         break;
                         break;
                     }
                     }
                 } catch (Exception e) {
                 } catch (Exception e) {
                     e.printStackTrace();
                     e.printStackTrace();
                 }
                 }
-                //查询该订单的出库单制作日期
-//                try {
-//                    List<String> easPrimaryIds = tmstruckLeaveFactoryResultMapper.getEasPrimaryIds(orderNumber);
-//                    Map<String, Object> easPrimaryMap = new HashMap<>();
-//                    easPrimaryMap.put("easPrimaryList",easPrimaryIds);
-//                    amsFeign.getMakeOrderDate(easPrimaryMap);
-//                } catch (Exception e) {
-//                    e.printStackTrace();
-//                }
                 //判断该订单是不是异地库
                 //判断该订单是不是异地库
                 try {
                 try {
-                        String addressPlace = tmstruckLeaveFactoryResultMapper.getAddressPlace(orderId);
                         if (addressPlace != null && addressPlace.contains("城嘉库")) {
                         if (addressPlace != null && addressPlace.contains("城嘉库")) {
                             List<Map<String,Object>> data =getOffSiteWarehouse(orderNumber);
                             List<Map<String,Object>> data =getOffSiteWarehouse(orderNumber);
                             //调用城嘉库登录接口获取token
                             //调用城嘉库登录接口获取token

+ 563 - 0
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -3683,11 +3683,13 @@
         SELECT distinct
         SELECT distinct
         ASO.SALE_NUMBER "saleOrderNo",
         ASO.SALE_NUMBER "saleOrderNo",
         ASM.SALE_MATERIAL_ID "saleMaterialId",
         ASM.SALE_MATERIAL_ID "saleMaterialId",
+        ASO.RECEIVE_ID    "consigneeId",
         ASOM.SALE_ORDER_MATERIAL_TRUCK_NO "truckNo",
         ASOM.SALE_ORDER_MATERIAL_TRUCK_NO "truckNo",
         ASO.SALE_ORDER_STATUS   "saleOrderStatus",
         ASO.SALE_ORDER_STATUS   "saleOrderStatus",
         ASM.MATERIAL_NUMBER "materialNumber",
         ASM.MATERIAL_NUMBER "materialNumber",
         ASM.TRANSFER_IN_OF_WAREHOUSE    "saleRemarkByasm",
         ASM.TRANSFER_IN_OF_WAREHOUSE    "saleRemarkByasm",
         ASM.MATERIAL_NUMBER "materialNum",
         ASM.MATERIAL_NUMBER "materialNum",
+        ASM.MATERIAL_WEIGHT "theoryWeight",
         ASM.IS_POUND_SALE   "isPoundSale",
         ASM.IS_POUND_SALE   "isPoundSale",
         ADSO.CARRIER_ID     "carrierId",
         ADSO.CARRIER_ID     "carrierId",
         ASM.EAS_PRIMARY_ID "closeEntryId",
         ASM.EAS_PRIMARY_ID "closeEntryId",
@@ -5889,4 +5891,565 @@
 
 
         )
         )
     </select>
     </select>
+    <select id="getOyeSteelReport" resultType="java.util.Map">
+        SELECT * FROM (
+        SELECT distinct OO.ORDER_ID "orderId",
+        ASO.SALE_ORDER_ID "saleOrderId",
+        to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd') "orderTime",
+        ASO.INSERT_UPDATE_REMARK "saleOrderInertUpdateRemark",
+        ASO.SALE_NUMBER "saleOrderNo",
+        ASO.UPDATE_TIME "updateTime",
+        ASM.SALE_MATERIAL_ID "saleMaterialId",
+        ASM.MATERIAL_NUMBER "materialNum",
+        ASM.DELETED "deletedStatus",
+        decode(asm.DELETED,null,'正常','关闭') "flStatus",
+        RC.CONSIGNEE_COMPANY_NAME "consigneeName",
+        ASOM.SALE_ORDER_MATERIAL_ID "saleOrderMaterialId",
+        RS.SHIPPER_NAME "shipperName",
+        (CASE WHEN
+        RCA.CAPACITY_NUMBER != '空白'
+        then RCA.CAPACITY_NUMBER
+        else ''
+        END) "capacityNo",
+        RCA.CAPACITY_NUMBER "newCapacityNo",
+        NVL(OO.CAPACITY_ID,0)  "capacityIds",
+        OO.CAPACITY_ID "capacityId",
+        ASOM.SALE_ORDER_MATERIAL_TRUCK_NO "truckNo",
+        ASOM.SALE_ORDER_CONSIGNEE_TEL "consigneeTel",
+        ASOM.TRUCK_REMARK "truckRemark",
+        OO.ORDER_LINE_SEQUENCE "lineSequence",
+        ASO.SALE_ORDER_ISSELF_MENTION "isSelfMention",
+        RSR.SALER_NAME "saler",
+        RM.MATERIAL_ID  "materialId",
+        RM.MATERIAL_NAME  "materialName",
+        RM.MATERIAL_SPECIFICATION || '(' || RM.MATERIAL_MODEL || ')' "materialSpe",
+        (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '否'
+        THEN R_CARRIER.CARRIER_ABBREVIATION
+        ELSE '自提'
+        END)
+        "carrierName",
+        OO.ORDER_NUMBER "orderNo",
+        (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
+        THEN '新地址:' || RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+        RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+        || ';旧地址:' || RRA_HISTORY.ADDRESS_PROVINCE || RRA_HISTORY.ADDRESS_DISTRICT ||
+        RRA_HISTORY.ADDRESS_TOWN || RRP_HISTORY.ADDRESS_DELIVERY_ADDRESS
+        ELSE
+        RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+        RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+        END)   "addressPlace",
+        RRP.PLACE_ID "placeId",
+        RRP.ADDRESS_DELIVERY_ADDRESS "place",
+        RRA.ADDRESS_ID "shipperAddressId",
+        RRA.ADDRESS_PROVINCE "addressProvince",
+        RRA.ADDRESS_DISTRICT "addressDistrict",
+        RRA.ADDRESS_TOWN "addressTown",
+        OO.ORDER_LINE_SEQUENCE "lineSqe",
+        OO.DRIVER_TEL "capacityTel",
+        (CASE WHEN
+        OO.ORDER_STATUS = 2
+        THEN '已完成'
+        WHEN TTR.ORDER_STATUS IS NULL
+        THEN '未派发'
+        ELSE TTR.ORDER_STATUS
+        END) "orderStatusActually",
+        QQR.RESULT_START_TIME   "queueStartTime",
+        QQR.UPDATE_TIME         "allowEnfactoryTime",
+        TWB .WEIGHT_BATCH_ID "weightBatchId",
+        (
+        CASE
+        WHEN TWB.WEIGHT_BATCH_ID IS NOT NULL
+        THEN TWB.BATCH_NET_WEIGHT
+        ELSE TWR.RESULT_NET_WEIGHT
+        END
+        ) "netWeight",
+        TWR.RESULT_NET_WEIGHT   "toExcelNetWeight",
+        TAR.RESULT_ARRIVAL_ADDRESS "arrivalAddress",
+        TRR.RESULT_ARRIVAL_ADDRESS "receiptAddress",
+        ASM.MATERIAL_PLAN_NUMBER    "materialPlanNumber",
+        (CASE WHEN
+        ASM.IS_POUND_SALE = 0
+        THEN TWR.RESULT_NET_WEIGHT
+        WHEN ASM.IS_POUND_SALE = 1
+        THEN ORI.SINGLE_WEIGHT * ASM.MATERIAL_NUMBER
+        END) "materialThoWeight",
+        R_CARRIER.CARRIER_ID        "carrierId",
+        (CASE WHEN
+        RCA.CAPACITY_NUMBER = '空白'
+        THEN null
+        else
+        OO.CAPACITYIDS
+        end
+        ) "capacityNumbers",
+        NVL(R_CARRIER.CARRIER_ID,0) "carrierIds",
+        OO.ORDER_STATUS              "carStatus",
+        OO.INSERT_UPDATE_REMARK "orderInsertUpdateRemark",
+        TAR.INSERT_TIME "arrivalTime",
+        TRR.INSERT_TIME "receiptTime",
+        ASO.SALE_REMARK "saleRemark",
+        (CASE
+        WHEN OO.PRINTNUMBER >= 1
+        then '已打印'
+        else  '未打印'
+        END)  "isPrintDelivery",
+        (CASE WHEN
+        TTR.SMS_STATUS is null
+        then '未发送'
+        else  '已发送'
+        END) "smsResultId",
+        (CASE WHEN
+        ASO.SALE_ORDER_STATUS = 4 then '已审核'
+        when ASO.SALE_ORDER_STATUS = 0 then '待审核'
+        END
+        ) "saleOrderStatus",
+        (CASE
+        when OO.ORDER_STATUS =2
+        then '已完成'
+        when OO.ORDER_STATUS=4
+        then '已派单'
+        when nvl(OO.ORDER_STATUS,0)=0
+        then '未派发'
+        when OO.ORDER_STATUS=7
+        then '已关闭'
+        when OO.ORDER_STATUS=8
+        then '已关闭'
+        WHEN TRR.INSERT_TIME IS NOT NULL
+        THEN '已完成'
+        WHEN QQR.RESULT_START_TIME IS NOT NULL
+        THEN '排队中'
+        when OO.ORDER_STATUS=5
+        then '已接单'
+        END)
+        "orderStatus",
+        (SELECT count(asm.SALE_MATERIAL_ID)  FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        WHERE ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND   ASM.DELETED IS NULL
+        AND   ASTM.SALE_ORDER_MATERIAL_ID = asom.SALE_ORDER_MATERIAL_ID) "spellNum",
+        ORI.INBOUND_WAREHOUSE   "inventoryWarehouse",
+        ORI.MATERIAL_NUMBER "inventoryMaterialNumber",
+        ORI.THEORY_WEIGHT   "inventoryTheoryWeight",
+        ORI.SINGLE_WEIGHT   "singleWeight",
+        ORI.METER           "steelMeters"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN RMS_CONSIGNEE RC
+        ON RC.CONSIGNEE_ID = ASO.RECEIVE_ID
+        LEFT JOIN RMS_SHIPPER RS
+        ON RS.SHIPPER_ID = ASO.SHIPPER_ID
+        LEFT JOIN RMS_SALE_AREA RSA
+        ON RSA.AREA_ID=RC.AREA_ID
+        LEFT JOIN RMS_SALER RSR
+        ON RSR.SALER_ID = ASO.SALER_ID
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN RMS_RECEIVE_PLACE RRP
+        ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
+        LEFT JOIN RMS_RECEIVE_ADDRESS RRA
+        ON RRA.ADDRESS_ID = RRP.ADDRESS_ID
+        LEFT JOIN RMS_RECEIVE_PLACE RRP_HISTORY
+        ON RRP_HISTORY.PLACE_ID = ASOM.HISTORY_SHIPPING_ADDRESS_ID
+        LEFT JOIN RMS_RECEIVE_ADDRESS RRA_HISTORY
+        ON RRA_HISTORY.ADDRESS_ID = RRP_HISTORY.ADDRESS_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER R_CARRIER
+        ON R_CARRIER.CARRIER_ID = ADSO.CARRIER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = ASM.MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        AND NVL(OO.ORDER_TYPE,0) in (0,1)
+        LEFT JOIN RMS_CAPACITY RCA
+        ON RCA.CAPACITY_ID = OO.CAPACITY_ID
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN QMS_QUEUE_RESULT QQR
+        ON QQR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON
+        TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
+        AND TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_ARRIVAL_RESULT TAR
+        ON TAR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN TMStRUCK_RECEIPT_RESULT TRR
+        ON TTR.RESULT_TOTAL_ID = TRR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_BATCH TWB
+        ON TWB .WEIGHT_BATCH_ID = ASM .WEIGHT_BATCH_ID
+        LEFT JOIN OYE_REALTIME_INVENTORY ORI
+        ON ORI.INVENTORY_ID = ASM.SALE_WAREHOUSE
+
+        WHERE
+        ASM.SALE_MATERIAL_ID IS NOT NULL
+        and asm.SALE_ORDER_ID != -1
+        <if test="carrierSsoId != null">
+            and R_CARRIER.CARRIER_SSO_ID = #{carrierSsoId}
+        </if>
+        <if test="remark != null" >
+            and  RSR.SALER_NAME || RCA.CAPACITY_NUMBER ||
+            RC.CONSIGNEE_COMPANY_NAME || (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
+            THEN '自提'
+            ELSE R_CARRIER.CARRIER_ABBREVIATION
+            END) ||
+            RM.MATERIAL_NAME || RM.MATERIAL_MODEL ||
+            RM.MATERIAL_SPECIFICATION || (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
+            THEN '新地址:' || RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+            || ';旧地址:' || RRA_HISTORY.ADDRESS_PROVINCE || RRA_HISTORY.ADDRESS_DISTRICT ||
+            RRA_HISTORY.ADDRESS_TOWN || RRP_HISTORY.ADDRESS_DELIVERY_ADDRESS
+            ELSE
+            RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+            END) LIKE #{remark}
+        </if>
+        <if test="receiveAddress != null" >
+            and (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
+            THEN '新地址:' || RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+            || ';旧地址:' || RRA_HISTORY.ADDRESS_PROVINCE || RRA_HISTORY.ADDRESS_DISTRICT ||
+            RRA_HISTORY.ADDRESS_TOWN || RRP_HISTORY.ADDRESS_DELIVERY_ADDRESS
+            ELSE
+            RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+            END) LIKE '%${receiveAddress}%'
+        </if>
+        <if test="capacityNum != null">
+            and  RCA.CAPACITY_NUMBER like #{capacityNum}
+        </if>
+        <if test="capacityList != null and capacityList.size > 0">
+            and <foreach collection="capacityList" item="item" open="(" separator="or" close=")">
+            <if test="item == null">
+                RCA.CAPACITY_NUMBER is null
+            </if>
+            <if test="item != null">
+                nvl(RCA.CAPACITY_NUMBER,'空白') like '%${item}%'
+            </if>
+        </foreach>
+        </if>
+        <if test="saleAreaRemark != null">
+            and <foreach collection="saleAreaRemark" item="item" open="(" separator="or" close=")">
+             ASO.SALE_REMARK  like '%${item}%'
+        </foreach>
+        </if>
+        <if test="consigneeNames != null">
+            and RC.CONSIGNEE_COMPANY_NAME like #{consigneeNames}
+        </if>
+        <if test="consigneeNameList != null and consigneeNameList.size > 0">
+            and <foreach collection="consigneeNameList" item="item" open="(" separator="or" close=")">
+            RC.CONSIGNEE_COMPANY_NAME like '%${item}%'
+        </foreach>
+        </if>
+        <if test="flStatusList != null and flStatusList.size > 0">
+            and <foreach collection="flStatusList" item="item" open="(" separator="or" close=")">
+            decode(asm.DELETED,null,'正常','关闭') like '%${item}%'
+        </foreach>
+        </if>
+        <if test="carrierNames != null">
+            and (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
+            THEN '自提'
+            ELSE R_CARRIER.CARRIER_ABBREVIATION
+            END) like #{carrierNames}
+        </if>
+        <if test="carrierList != null and  carrierList.size > 0">
+            and <foreach collection="carrierList" item="item" open="(" separator="or" close=")">
+            <if test="item == null">
+                R_CARRIER.CARRIER_ABBREVIATION is null
+            </if>
+            <if test="item != null">
+                (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
+                THEN '自提'
+                ELSE R_CARRIER.CARRIER_ABBREVIATION
+                END) like '%${item}%'
+            </if>
+        </foreach>
+        </if>
+        <if test="materialNameList != null and materialNameList.size > 0">
+            and <foreach collection="materialNameList" item="item" open="(" separator="or" close=")">
+            RM.MATERIAL_NAME like '%${item}%'
+        </foreach>
+        </if>
+        <if test="saleAreaList != null and saleAreaList.size > 0">
+            and <foreach collection="saleAreaList" item="item" open="(" separator="or" close=")">
+            RSA.AREA_NAME like '%${item}%'
+        </foreach>
+        </if>
+        <if test="spellNumList != null and spellNumList.size > 0">
+            and <foreach collection="spellNumList" item="item" open="(" separator="or" close=")">
+            (SELECT count(asm.SALE_MATERIAL_ID)  FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+            LEFT JOIN AMS_SALE_MATERIAL ASM
+            ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+            WHERE ASM.SALE_MATERIAL_ID IS NOT NULL
+            AND   ASM.DELETED IS NULL
+            AND   ASTM.SALE_ORDER_MATERIAL_ID = asom.SALE_ORDER_MATERIAL_ID) like '%${item}%'
+        </foreach>
+        </if>
+        <if test="orderStatusList != null and orderStatusList.size > 0">
+            and <foreach collection="orderStatusList" item="item" open="(" separator="or" close=")">
+            (CASE
+            when OO.ORDER_STATUS =2
+            then '作业已完成'
+            when OO.ORDER_STATUS=4
+            then '物流公司已派单'
+            when nvl(OO.ORDER_STATUS,0)=0
+            then '未派发'
+            when OO.ORDER_STATUS=7
+            then '已关闭'
+            when OO.ORDER_STATUS=8
+            then '已关闭'
+            WHEN TRR.INSERT_TIME IS NOT NULL
+            THEN '已完成'
+            WHEN QQR.RESULT_START_TIME IS NOT NULL
+            THEN '排队中'
+            when OO.ORDER_STATUS=5
+            then '司机已接单'
+            END) like '%${item}%'
+        </foreach>
+        </if>
+        <if test="orderStatusActuallyList != null and orderStatusActuallyList.size > 0">
+            and <foreach collection="orderStatusActuallyList" item="item" open="(" separator="or" close=")">
+            (CASE WHEN
+            OO.ORDER_STATUS = 2
+            THEN '已完成'
+            WHEN TTR.ORDER_STATUS IS NULL
+            THEN '未派发'
+            ELSE TTR.ORDER_STATUS
+            END) like '%${item}%'
+        </foreach>
+        </if>
+        <if test="addressPlaceList != null and addressPlaceList.size > 0">
+            and <foreach collection="addressPlaceList" item="item" open="(" separator="or" close=")">
+            RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS like '%${item}%'
+        </foreach>
+        </if>
+        <if test="materialSpeList != null and materialSpeList.size > 0 ">
+            and <foreach collection="materialSpeList" item="item" open="(" separator="or" close=")">
+            RM.MATERIAL_SPECIFICATION || '(' || RM.MATERIAL_MODEL || ')' like '%${item}%'
+        </foreach>
+        </if>
+        <if test="saleOrderStatusList != null and saleOrderStatusList.size > 0">
+            and <foreach collection="saleOrderStatusList" item="item" open="(" separator="or" close=")">
+            (CASE WHEN
+            ASO.SALE_ORDER_STATUS = 4 then '已审核'
+            when ASO.SALE_ORDER_STATUS = 0 then '待审核'
+            END
+            ) like '%${item}%'
+        </foreach>
+        </if>
+        <if test="saleRemarkList != null and saleRemarkList.size > 0">
+            and <foreach collection="saleRemarkList" item="item" open="(" separator="or" close=")">
+            ASO.SALE_REMARK  like '%${item}%'
+        </foreach>
+        </if>
+        <if test="truckRemarkList != null and truckRemarkList.size > 0">
+            and <foreach collection="truckRemarkList" item="item" open="(" separator="or" close=")">
+            ASOM.TRUCK_REMARK like '%${item}%'
+        </foreach>
+        </if>
+        <if test="consigneeLoginName != null">
+            and (RC.CONSIGNEE_COMPANY_NAME LIKE '%${consigneeLoginName}%'
+            or  ASO.SALE_ORDER_RECEIVE_CUSTOMER LIKE '%${consigneeLoginName}%')
+        </if>
+        and ASO.DELETED = 0
+        and ASO.SALE_TYPE = 50
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd') &lt; = to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+            and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT,'yyyy-mm-dd'),'yyyy-mm-dd')
+        </if>
+        <if test="saleNo != null">
+            and aso.sale_number like '%${saleNo}%'
+        </if>
+        order by ASO.SALE_ORDER_ID DESC, ASOM.SALE_ORDER_MATERIAL_ID DESC,OO.ORDER_ID  DESC,TWB .WEIGHT_BATCH_ID DESC
+        )
+    </select>
+    <select id="getOyeSteelReportDetailsBySmId" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+        SELECT distinct OO.ORDER_ID "orderId",
+                        ASO.SALE_ORDER_ID "saleOrderId",
+                        ASO.SALE_NUMBER "saleOrderNo",
+                        ASO.SALE_REMARK "saleRemark",
+                        ASO.SALER_ID    "salerId",
+                        ASO.SHIPPER_ID  "shipperId",
+                        ASO.SALE_ORDER_RECEIVE_CUSTOMER "saleOrderReceiveCustomer",
+                        RC.CONSIGNEE_COMPANY_NAME "consigneeName",
+                        RC.CONSIGNEE_ID "receiveId",
+                        ASOM.SALE_ORDER_MATERIAL_ID "saleOrderMaterialId",
+                        RS.SHIPPER_NAME "shipperName",
+                        (CASE WHEN
+                                  RCA.CAPACITY_NUMBER = '空白'
+                                  then null
+                              else RCA.CAPACITY_NUMBER
+                            END) "capacityNo",
+                        (CASE WHEN
+                                  RCA.CAPACITY_NUMBER = '空白'
+                                  then null
+                              else RCA.CAPACITY_NUMBER
+                            END) "capacityNoFlag",
+                        NVL(OO.CAPACITY_ID,0)  "capacityIds",
+                        OO.CAPACITY_ID "capacityId",
+                        ASOM.SALE_ORDER_MATERIAL_TRUCK_NO "truckNo",
+                        ASOM.SALE_ORDER_CONSIGNEE_TEL "consigneeTel",
+                        OO.ORDER_LINE_SEQUENCE "lineSequence",
+                        ASO.SALE_ORDER_ISSELF_MENTION "isSelfMention",
+                        RSR.SALER_NAME "saler",
+                        RSR.SALER_ID    "saler",
+                        R_CARRIER.CARRIER_ABBREVIATION "carrierName",
+                        OO.ORDER_NUMBER "orderNo",
+                        RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+                        RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS AS "addressPlace",
+                        RRP.PLACE_ID "placeId",
+                        RRP.ADDRESS_DELIVERY_ADDRESS "place",
+                        RRA.ADDRESS_ID "shipperAddressId",
+                        RRA.ADDRESS_PROVINCE "addressProvince",
+                        RRA.ADDRESS_DISTRICT "addressDistrict",
+                        RRA.ADDRESS_TOWN "addressTown",
+                        OO.ORDER_LINE_SEQUENCE "lineSqe",
+                        OO.DRIVER_TEL "capacityTel",
+                        OO.REMARK "remark",
+                        OO.URL "urls",
+                        QQR.RESULT_START_TIME       "queueStartTime",
+                        TAR.RESULT_ARRIVAL_ADDRESS  "arrivalAddress",
+                        TRR.RESULT_ARRIVAL_ADDRESS "receiptAddress",
+                        ASOM.SALE_DATE_OF_RECEIPT   "saleDateReceipt",
+                        R_CARRIER.CARRIER_ID        "carrierId",
+                        NVL(R_CARRIER.CARRIER_ID,0) "carrierIds",
+                        OO.ORDER_STATUS              "carStatus",
+                        ASOM.TRUCK_REMARK           "truckRemark",
+                        DECODE(ASO.SALE_ORDER_STATUS,1,'销售订单已上报',
+                               2,'销售已提交',
+                               4,'财务已审批',
+                               0,'销售订单未上报') "saleOrderStatus",
+                        DECODE(nvl(OO.ORDER_STATUS,0) ,2,'已完成',4,'已派发',5,'已接收',0,'未派发',7,'已关闭',8,'已关闭')
+                            "orderStatus",
+                        oo.ORDER_STATUS "orderStatu"
+        FROM AMS_SALE_ORDER ASO
+                 LEFT JOIN RMS_CONSIGNEE RC
+                           ON RC.CONSIGNEE_ID = ASO.RECEIVE_ID
+                 LEFT JOIN RMS_SHIPPER RS
+                           ON RS.SHIPPER_ID = ASO.SHIPPER_ID
+                 LEFT JOIN RMS_SALER RSR
+                           ON RSR.SALER_ID = ASO.SALER_ID
+                 LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+                           ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+                 LEFT JOIN RMS_RECEIVE_PLACE RRP
+                           ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
+                 LEFT JOIN RMS_RECEIVE_ADDRESS RRA
+                           ON RRA.ADDRESS_ID = RRP.ADDRESS_ID
+                 LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+                           ON ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+                 LEFT JOIN RMS_CARRIER R_CARRIER
+                           ON R_CARRIER.CARRIER_ID = ADSO.CARRIER_ID
+                 LEFT JOIN OMSTRUCK_ORDER OO
+                           ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+                               AND NVL(OO.ORDER_TYPE,0) in (0,1)
+                 LEFT JOIN RMS_CAPACITY RCA
+                           ON RCA.CAPACITY_ID = OO.CAPACITY_ID
+                 LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                           ON TTR.ORDER_ID = OO.ORDER_ID
+                 LEFT JOIN QMS_QUEUE_RESULT QQR
+                           ON QQR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER
+                           ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+                           ON TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN TMSTRUCK_ARRIVAL_RESULT TAR
+                           ON TAR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN TMStRUCK_RECEIPT_RESULT TRR
+                           ON TTR.RESULT_TOTAL_ID = TRR.RESULT_TOTAL_ID
+                 LEFT JOIN BMSTRUCK_DETAILS_ORDER BDO
+                           ON BDO.ORDER_ID = OO.ORDER_ID
+        WHERE ASO.SALE_TYPE in (1, 50)
+          AND ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+    </select>
+    <select id="getOyeSteelReportDetailsListBySmId" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+        SELECT distinct
+            ASO.SALE_NUMBER "saleOrderNo",
+            ASM.SALE_MATERIAL_ID "saleMaterialId",
+            ASO.RECEIVE_ID    "consigneeId",
+            ASOM.SALE_ORDER_MATERIAL_TRUCK_NO "truckNo",
+            ASO.SALE_ORDER_STATUS   "saleOrderStatus",
+            ASM.MATERIAL_NUMBER "materialNumber",
+            ASM.TRANSFER_IN_OF_WAREHOUSE    "saleRemarkByasm",
+            ASM.MATERIAL_NUMBER "materialNum",
+            ASM.MATERIAL_WEIGHT "theoryWeight",
+            ASM.IS_POUND_SALE   "isPoundSale",
+            ADSO.CARRIER_ID     "carrierId",
+            ASM.EAS_PRIMARY_ID "closeEntryId",
+            ASM.STEEL_METER "steelMeters",
+            RRP.PLACE_ID "placeId",
+            RRP.ADDRESS_DELIVERY_ADDRESS    "place",
+            RRP.ADDRESS_ID "shipperAddressId",
+            ASOM.TRUCK_REMARK   "truckRemark",
+            ASOM.SALE_ORDER_CONSIGNEE_TEL   "saleOrderConsigneeTel",
+            ASOM.SALE_DATE_OF_RECEIPT  "saleDateOfReceipt",
+            ASM.DELETED "deletedStatus",
+            RM.MATERIAL_ID  "materialId",
+            RM.MATERIAL_NAME  "materialName",
+            RM.MATERIAL_SPECIFICATION || RM.MATERIAL_MODEL "materialSpe",
+            RM.MATERIAL_SPECIFICATION   "materialSpecification",
+            RM.MATERIAL_MODEL   "materialModel",
+            TWB .WEIGHT_BATCH_ID "weightBatchId",
+
+            (
+                CASE
+                    WHEN TWB.WEIGHT_BATCH_ID IS NOT NULL
+                        THEN TWB.BATCH_NET_WEIGHT
+                    ELSE TWR.RESULT_NET_WEIGHT
+                    END
+                ) "netWeight",
+            TLR.RESULT_LOAD_END_TIME     "loadTime",
+            BDO.DETAILS_AMOUNT           "detailsAmount",
+            oo.ORDER_NUMBER             "orderNo",
+            ORI.INBOUND_WAREHOUSE   "inventoryWarehouse",
+            ORI.MATERIAL_NUMBER "inventoryMaterialNumber",
+            ORI.THEORY_WEIGHT   "inventoryTheoryWeight",
+            ORI.SINGLE_WEIGHT   "singleWeight",
+            ORI.METER           "meter",
+            (CASE WHEN
+                      ASM.IS_POUND_SALE = 0
+                      THEN TWR.RESULT_NET_WEIGHT
+                  WHEN ASM.IS_POUND_SALE = 1
+                      THEN ORI.SINGLE_WEIGHT * ASM.MATERIAL_NUMBER
+                END) "materialThoWeight"
+        FROM AMS_SALE_ORDER ASO
+                 LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+                           ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+                 LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+                           ON ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+                 LEFT JOIN RMS_RECEIVE_PLACE RRP
+                           ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
+                 LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+                           ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+                 LEFT JOIN AMS_SALE_MATERIAL ASM
+                           ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+                 LEFT JOIN RMS_MATERIAL RM
+                           ON RM.MATERIAL_ID = ASM.MATERIAL_ID
+                 LEFT JOIN OMSTRUCK_ORDER OO
+                           ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+                               AND NVL(OO.ORDER_TYPE,0) in (0,1)
+                 LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                           ON TTR.ORDER_ID = OO.ORDER_ID
+                 LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+                           ON   TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
+                               AND TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN BMSTRUCK_DETAILS_ORDER BDO
+                           ON BDO.WEIGHT_TASK_RESULT_ID = TWR.WEIGHT_TASK_RESULT_ID
+                 LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
+                           ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                               AND TLR.MATERIAL_ID = RM.MATERIAL_ID
+                 LEFT JOIN TMSTRUCK_WEIGHT_BATCH TWB
+                           ON TWB .WEIGHT_BATCH_ID = ASM .WEIGHT_BATCH_ID
+                 LEFT JOIN OYE_REALTIME_INVENTORY ORI
+                           ON ORI.INVENTORY_ID = ASM.SALE_WAREHOUSE
+        WHERE ASO.SALE_TYPE in (1, 50)
+          and ASM.SALE_MATERIAL_ID IS NOT NULL
+          AND ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+        ORDER BY TWB.WEIGHT_BATCH_ID DESC
+    </select>
 </mapper>
 </mapper>

+ 2 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -1435,6 +1435,7 @@
         LEFT JOIN AMS_SALE_ORDER ASO
         LEFT JOIN AMS_SALE_ORDER ASO
         ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
         ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
         WHERE OO.ORDER_ID = #{orderId}
         WHERE OO.ORDER_ID = #{orderId}
+        AND OO.ORDER_TYPE in (1,2)
     </select>
     </select>
     <select id="getUnloadResult" resultType="java.util.Map" parameterType="java.math.BigDecimal">
     <select id="getUnloadResult" resultType="java.util.Map" parameterType="java.math.BigDecimal">
         SELECT tur.RESULT_END_TIME "resultEndTime" FROM TMSTRUCK_TOTAL_RESULT TTR
         SELECT tur.RESULT_END_TIME "resultEndTime" FROM TMSTRUCK_TOTAL_RESULT TTR
@@ -1507,6 +1508,7 @@
         LEFT JOIN RMS_RECEIVE_PLACE RRP
         LEFT JOIN RMS_RECEIVE_PLACE RRP
         ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
         ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
         WHERE OO.ORDER_ID = #{orderId}
         WHERE OO.ORDER_ID = #{orderId}
+        AND OO.ORDER_TYPE = 1
     </select>
     </select>
     <select id="getEasPrimaryIds" resultType="java.lang.String" parameterType="string">
     <select id="getEasPrimaryIds" resultType="java.lang.String" parameterType="string">
         SELECT DISTINCT
         SELECT DISTINCT