ソースを参照

1.大中型绩效分配新增查询条件

GouGengquan 10 ヶ月 前
コミット
b139c77648

+ 21 - 3
dao/src/main/resources/mapper/MajorProductionMapper.xml

@@ -628,16 +628,34 @@
             mp.report_no,
             (case mp.production when 'REPORT' then '报告' when 'STATEMENT' THEN '价值意见书' else '复评函' end ) as production,
             ( SELECT count(id) FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND business_id = m.id AND production_no = mp.report_no AND deleted = 0 ) AS claimTimes,
-            ( SELECT major_production_id FROM major_production_allot WHERE deleted = 0 and user_type = 'EVALUATE' GROUP BY major_production_id HAVING major_production_id = mp.id ) AS isAllot
+            allot.major_production_id AS isAllot
+#             ( SELECT major_production_id FROM major_production_allot WHERE deleted = 0 and user_type = 'EVALUATE' GROUP BY major_production_id HAVING major_production_id = mp.id ) AS isAllot
         FROM
             major_production mp
-                LEFT JOIN major m ON m.id = mp.major_id
+        LEFT JOIN major m ON m.id = mp.major_id
+        left join (select * from production_fund where business_type = 'MAJOR_BUSINESS' and deleted = 0) pf on (pf.business_id = m.id and pf.production_no = mp.report_no and mp.production = pf.production_type)
+        LEFT JOIN (SELECT major_production_id FROM major_production_allot WHERE deleted = 0 and user_type = 'EVALUATE' GROUP BY major_production_id) AS allot ON major_production_id = mp.id
         WHERE
             m.deleted = 0
           AND mp.deleted = 0
           AND mp.NAME IS NOT NULL
           and m.department_id in (select distinct department_id from post where name='评估部经理' and  id in (select post_id from user_post where user_id = #{currentUserId}))
-        order by claimTimes DESC, isAllot ASC;
+        <if test="vo!=null and vo.production != null">
+            AND mp.production = #{vo.production}
+        </if>
+        <if test="vo!=null and vo.hasRealAmount == true">
+            AND (pf.real_amount IS NOT NULL OR pf.real_amount > 0)
+        </if>
+        <if test="vo!=null and vo.hasRealAmount == false">
+            AND (pf.real_amount IS NULL OR pf.real_amount = 0)
+        </if>
+        <if test="vo!=null and vo.hasAllot == true">
+            AND allot.major_production_id IS NOT NULL
+        </if>
+        <if test="vo!=null and vo.hasAllot == false">
+            AND allot.major_production_id IS NULL
+        </if>
+        order by claimTimes DESC, isAllot ASC
     </select>
 
     <select id="validateProd" parameterType="java.lang.Long" resultType="com.dayou.vo.ProdValidateVO">

+ 4 - 0
domain/src/main/java/com/dayou/vo/MajorProductionPerformanceVO.java

@@ -28,5 +28,9 @@ public class MajorProductionPerformanceVO {
 
     private Long isAllot;
 
+    private Boolean hasRealAmount;
+
+    private Boolean hasAllot;
+
 
 }