luobang 8 månader sedan
förälder
incheckning
3a01e73209
1 ändrade filer med 118 tillägg och 79 borttagningar
  1. 118 79
      src/main/resources/com/steerinfo/dil/mapper/UniversalMapper.xml

+ 118 - 79
src/main/resources/com/steerinfo/dil/mapper/UniversalMapper.xml

@@ -505,66 +505,9 @@
     </select>
 
     <select id="getCapacityByLike" resultType="java.util.Map">
-        select * from (
-        select * from (
-        select * from (
-        SELECT DISTINCT
-        RCA .CAPACITY_ID "capacityId",
-        RCA .CAPACITY_ID "id",
-        RCA .CAPACITY_ID "value",
-        RCA .CAPACITY_LICENCE_NUMBER "capacityLicenceNumber",
-        RCA. CAPACITY_OPERATE_NUMBER "capacityOperateNumber",
-        RCA. CAPACITY_AXIS_NUMBER "capacityAxisNumber",
-        RCA.CAPACITY_WEIGHT_MAIN "capacityWeightMain",
-        RCA.CAPACITY_WEIGHT_TRAILER "capacityWeightTrailer",
-        RCA.CAPACITY_TYPE_ID "capacityTypeId",
-        RCA.EMISSION_STANDARD_ID "emissionStandardId",
-        RCA.CAPACITY_NUMBER "label",
-        RCA.CAPACITY_NUMBER "text",
-        RCA.REMARK1 "remark1",
-        RCA.CAPACITY_NUMBER "capacityNumber",
-        RCT.CAPACITY_TYPE_NAME "capacityTypeName",
-        'capacityNumber' "prop"
-        FROM
-        RMS_CAPACITY RCA
-        LEFT JOIN RMS_CAPACITY_TYPE RCT ON RCA.CAPACITY_TYPE_ID = RCT.CAPACITY_TYPE_ID
-        LEFT JOIN RMS_CAPACITY_TYPE RCT2 ON RCT2.CAPACITY_TYPE_ID = RCA.CAPACITY_TYPE_ID2
-        <if test="requirementSerialNumber != null and requirementSerialNumber.contains('DF')">
-            LEFT JOIN RMS_CAPACITY_DRIVER RCD ON RCD.CAPACITY_ID = RCA.CAPACITY_ID
-        </if>
-        WHERE RCA .DELETED in( 0,3)
-        <if test="capacityTypeId !=null">
-            AND RCT.CAPACITY_TYPE_ID in (
-            select rct.capacity_type_id from rms_capacity_type rct
-            START WITH rct.capacity_type_id = #{capacityTypeId}
-            connect BY PRIOR rct.capacity_type_id = rct.p_capacity_type_id
-            )
-        </if>
-        <if test="capacityType != null and capacityType != '' ">
-            AND RCT.CAPACITY_TYPE_NAME = #{capacityType}
-        </if>
-        <if test="capacityType2 != null and capacityType2 != '' ">
-            AND RCT2.CAPACITY_TYPE_NAME = #{capacityType2}
-        </if>
-        <if test="capacityType == null">
-            AND RCT.CAPACITY_TYPE_NAME != '火车'
-        </if>
-        <if test="capacityId!=null and capacityId!=''">
-            AND RCA .CAPACITY_ID = #{capacityId}
-        </if>
-        <if test="requirementSerialNumber != null and requirementSerialNumber.contains('DF')">
-            AND RCD.deleted = 5
-        </if>
-        )
-        <where>
-            <if test="index!=null and index!=''">
-                AND REGEXP_LIKE("capacityNumber", #{index})
-            </if>
-        </where>
-        order by LENGTH("capacityNumber")
-        FETCH NEXT 10 ROWS ONLY)
-        <if test="id!=null and id.size>0">
-            UNION
+            select * from (
+            select * from (
+            select * from (
             SELECT DISTINCT
             RCA .CAPACITY_ID "capacityId",
             RCA .CAPACITY_ID "id",
@@ -582,14 +525,88 @@
             RCA.CAPACITY_NUMBER "capacityNumber",
             RCT.CAPACITY_TYPE_NAME "capacityTypeName",
             'capacityNumber' "prop"
-            FROM RMS_CAPACITY RCA
+            FROM
+            RMS_CAPACITY RCA
             LEFT JOIN RMS_CAPACITY_TYPE RCT ON RCA.CAPACITY_TYPE_ID = RCT.CAPACITY_TYPE_ID
-            WHERE RCA .CAPACITY_ID in
-            <foreach collection="id" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
-        </if>
-        )
+            LEFT JOIN RMS_CAPACITY_TYPE RCT2 ON RCT2.CAPACITY_TYPE_ID = RCA.CAPACITY_TYPE_ID2
+            <if test="requirementSerialNumber != null and requirementSerialNumber.contains('DF')">
+                LEFT JOIN RMS_CAPACITY_DRIVER RCD ON RCD.CAPACITY_ID = RCA.CAPACITY_ID
+            </if>
+            <if test="driverId!=null and driverId!=''">
+                LEFT JOIN (
+                SELECT CAPACITY_ID "capacityId"
+                FROM OMS_TRANS_ORDER OTO
+                <where>
+                    OTO.DRIVER_ID != 0
+                    AND OTO.CAPACITY_ID != 0
+                    AND OTO.CAPACITY_ID IS NOT NULL
+                    AND OTO.DRIVER_ID IS NOT NULL
+                    AND OTO.BUSINESS_SCENE IN ( '采购', '销售' )
+                    AND OTO.DELETED = 2
+                    AND OTO.ISSUE_TIME + 5 > SYSDATE
+                    <if test="driverId!=null and driverId!=''">
+                        AND DRIVER_ID = #{driverId}
+                    </if>
+                </where>
+                ) T ON T."capacityId" = RCA .CAPACITY_ID
+            </if>
+            WHERE RCA .DELETED in( 0,3)
+            <if test="capacityTypeId !=null">
+                AND RCT.CAPACITY_TYPE_ID in (
+                select rct.capacity_type_id from rms_capacity_type rct
+                START WITH rct.capacity_type_id = #{capacityTypeId}
+                connect BY PRIOR rct.capacity_type_id = rct.p_capacity_type_id
+                )
+            </if>
+            <if test="capacityType != null and capacityType != '' ">
+                AND RCT.CAPACITY_TYPE_NAME = #{capacityType}
+            </if>
+            <if test="capacityType2 != null and capacityType2 != '' ">
+                AND RCT2.CAPACITY_TYPE_NAME = #{capacityType2}
+            </if>
+            <if test="capacityType == null">
+                AND RCT.CAPACITY_TYPE_NAME != '火车'
+            </if>
+            <if test="capacityId!=null and capacityId!=''">
+                AND RCA .CAPACITY_ID = #{capacityId}
+            </if>
+            <if test="requirementSerialNumber != null and requirementSerialNumber.contains('DF')">
+                AND RCD.deleted = 5
+            </if>
+            )
+            <where>
+                <if test="index!=null and index!=''">
+                    AND REGEXP_LIKE("capacityNumber", #{index})
+                </if>
+            </where>
+            order by LENGTH("capacityNumber")
+            FETCH NEXT 10 ROWS ONLY)
+            <if test="id!=null and id.size>0">
+                UNION
+                SELECT DISTINCT
+                RCA .CAPACITY_ID "capacityId",
+                RCA .CAPACITY_ID "id",
+                RCA .CAPACITY_ID "value",
+                RCA .CAPACITY_LICENCE_NUMBER "capacityLicenceNumber",
+                RCA. CAPACITY_OPERATE_NUMBER "capacityOperateNumber",
+                RCA. CAPACITY_AXIS_NUMBER "capacityAxisNumber",
+                RCA.CAPACITY_WEIGHT_MAIN "capacityWeightMain",
+                RCA.CAPACITY_WEIGHT_TRAILER "capacityWeightTrailer",
+                RCA.CAPACITY_TYPE_ID "capacityTypeId",
+                RCA.EMISSION_STANDARD_ID "emissionStandardId",
+                RCA.CAPACITY_NUMBER "label",
+                RCA.CAPACITY_NUMBER "text",
+                RCA.REMARK1 "remark1",
+                RCA.CAPACITY_NUMBER "capacityNumber",
+                null "capacityTypeName",
+                'capacityNumber' "prop"
+                FROM RMS_CAPACITY RCA
+                WHERE RCA .CAPACITY_ID in
+                <foreach collection="id" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            )
     </select>
 
     <select id="getCapacityByLikeSc" resultType="java.util.Map">
@@ -645,6 +662,24 @@
         LEFT JOIN RMS_CAPACITY_CARRIER RCC ON RCA .CAPACITY_ID = RCC .CAPACITY_ID
         LEFT JOIN RMS_COMPANY RC ON RC .COMPANY_ID = RCC .COMPANY_ID
         LEFT JOIN RMS_CAPACITY_TYPE RCT ON RCA.CAPACITY_TYPE_ID = RCT.CAPACITY_TYPE_ID
+        <if test="driverId!=null and driverId!=''">
+            LEFT JOIN (
+            SELECT distinct CAPACITY_ID "capacityId"
+            FROM OMS_TRANS_ORDER OTO
+            <where>
+                OTO.DRIVER_ID != 0
+                AND OTO.CAPACITY_ID != 0
+                AND OTO.CAPACITY_ID IS NOT NULL
+                AND OTO.DRIVER_ID IS NOT NULL
+                AND OTO.BUSINESS_SCENE IN ( '采购', '销售' )
+                AND OTO.DELETED = 2
+                AND OTO.ISSUE_TIME + 5 > SYSDATE
+                <if test="driverId!=null and driverId!=''">
+                    AND DRIVER_ID = #{driverId}
+                </if>
+            </where>
+            ) T ON T."capacityId" = RCA .CAPACITY_ID
+        </if>
         WHERE RCA .DELETED in (0,3)
         <if test="capacityType != null and capacityType != '' ">
             AND RCT.CAPACITY_TYPE_NAME = #{capacityType}
@@ -663,9 +698,7 @@
         <if test="capacityId!=null and capacityId!=''">
             AND RCA .CAPACITY_ID = #{capacityId}
         </if>
-        <if test="!((driverId!=null and driverId!='') or (driverId2!=null and driverId2!=''))">
-            order by length("capacityNumber"),"capacityNumber"
-        </if>
+        order by length("capacityNumber")
         )t)t1
         <where>
             <if test="lastIndex!=null">
@@ -1602,6 +1635,20 @@
         'personnelName' "prop"
         FROM
         RMS_PERSONNEL RP
+        <if test="capacityId!=null and capacityId!=''">
+            LEFT JOIN (
+            SELECT DISTINCT DRIVER_ID "driverId"
+            FROM OMS_TRANS_ORDER OTO
+            WHERE CAPACITY_ID = #{capacityId}
+            AND OTO.DRIVER_ID != 0
+            AND OTO.CAPACITY_ID != 0
+            AND OTO.CAPACITY_ID IS NOT NULL
+            AND OTO.DRIVER_ID IS NOT NULL
+            AND OTO.BUSINESS_SCENE IN ( '采购', '销售' )
+            AND OTO.DELETED = 2
+            AND OTO.ISSUE_TIME + 5 > SYSDATE
+            ) T ON T."driverId" = RP .PERSONNEL_ID
+        </if>
         <if test="driverCapacityId!=null and driverCapacityId!=''">
             LEFT JOIN RMS_CAPACITY_DRIVER RCD on rcd.personnel_id = RP.personnel_id
         </if>
@@ -1633,9 +1680,6 @@
                 and "personnelId" &lt; #{lastIndex}
             </if>
         </where>
-        <if test="!(capacityId!=null and capacityId!='')">
-            order by "personnelId" desc
-        </if>
         FETCH NEXT 10 ROWS ONLY
         )
         <if test="id!=null and id.size>0">
@@ -1652,14 +1696,9 @@
             RP.PERSONNEL_ID "value",
             RP.PERSONNEL_NAME "label",
             RP.PERSONNEL_NAME "text",
-            <if test="driverCapacityId!=null and driverCapacityId!=''">
-                RCD.group_number "groupNumber",
-            </if>
+            null "groupNumber",
             'personnelName' "prop"
             from RMS_PERSONNEL RP
-            <if test="driverCapacityId!=null and driverCapacityId!=''">
-                LEFT JOIN RMS_CAPACITY_DRIVER RCD on rcd.personnel_id = RP.personnel_id
-            </if>
             WHERE RP.PERSONNEL_ID in
             <foreach collection="id" item="item" open="(" close=")" separator=",">
                 #{item}