Browse Source

合同样品单增加状态搜索定位搜索

caozj 1 year ago
parent
commit
2cff80056b

+ 18 - 15
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractDocumentaryServiceImpl.java

@@ -115,7 +115,7 @@ public class ContractDocumentaryServiceImpl extends ServiceImpl<ContractDocument
         if(dto.getDocumentarySearch()==2&&ObjectUtil.isNotEmpty(dto.getDocumentaryType())){//无记录
             wrapper.gt("t1.documentaryCount",0);
         }
-        wrapper.groupBy("t3.documentary_type");
+        wrapper.groupBy("t3.documentary_type","t1.id");
         List<ContractDocumentary> list = baseMapper.getSumCount(wrapper,dto.getDocumentaryType());
         Map<String,Integer> countMap = setCount(list);
         return countMap;
@@ -123,20 +123,23 @@ public class ContractDocumentaryServiceImpl extends ServiceImpl<ContractDocument
 
 
     private Map<String,Integer> setCount(List<ContractDocumentary> list){
-        Map<String,Integer> map = list.stream().collect(Collectors.toMap(ContractDocumentary::getDocumentaryType,ContractDocumentary::getCount));
-        map.put(DocumentaryTypeEnum.TYPE_1.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_1.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_2.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_2.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_3.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_3.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_4.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_4.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_5.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_5.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_6.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_6.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_7.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_7.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_8.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_8.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_9.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_9.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_10.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_10.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_11.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_11.getKey(),0));
-        map.put(DocumentaryTypeEnum.TYPE_12.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_12.getKey(),0));
-        return map;
+        if(CollectionUtils.isNotEmpty(list)){
+            Map<String,Integer> map = list.stream().collect(Collectors.toMap(ContractDocumentary::getDocumentaryType,ContractDocumentary::getCount));
+            map.put(DocumentaryTypeEnum.TYPE_1.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_1.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_2.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_2.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_3.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_3.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_4.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_4.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_5.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_5.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_6.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_6.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_7.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_7.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_8.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_8.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_9.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_9.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_10.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_10.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_11.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_11.getKey(),0));
+            map.put(DocumentaryTypeEnum.TYPE_12.getKey(),map.getOrDefault(DocumentaryTypeEnum.TYPE_12.getKey(),0));
+            return map;
+        }
+       return new HashMap<>();
     }
 
 }

+ 21 - 17
hx-sale/src/main/resources/mapper/contract/ContractDocumentaryMapper.xml

@@ -10,31 +10,35 @@
 
     <select id="getSumCount" resultType="com.fjhx.sale.entity.contract.po.ContractDocumentary">
         SELECT
-            t3.documentary_type,
-            count( 1 ) AS `count`
+            t1.documentaryType,
+            count( 1 )AS count
         FROM
         (
+        SELECT
+            t3.documentary_type AS documentaryType
+        FROM
+        (
+        SELECT
+        (
             SELECT
-            <if test="documentaryType neq null ">
-                (
-                SELECT
                 count( 1 )
-                FROM
+            FROM
                 ehsd_purchase p
-                LEFT JOIN ehsd_documentary pd ON p.id = pd.business_id
-                WHERE
+            LEFT JOIN ehsd_documentary pd ON p.id = pd.business_id
+            WHERE
                 p.data_resource_id = t1.id
-                AND pd.documentary_type = 10
-                ) AS documentaryCount,
-            </if>
+                AND pd.documentary_type = #{documentaryType}
+            ) AS documentaryCount,
             t1.*
-            FROM
-                contract t1
-            WHERE
-                `status` = 30
+        FROM
+            contract t1
+        WHERE
+            `status` = 30
         ) t1
-        RIGHT JOIN ehsd_purchase t2 ON t1.id = t2.data_resource_id
-        RIGHT JOIN ehsd_documentary t3 ON t2.id = t3.business_id
+            RIGHT JOIN ehsd_purchase t2 ON t1.id = t2.data_resource_id
+            RIGHT JOIN ehsd_documentary t3 ON t2.id = t3.business_id
             ${ew.customSqlSegment}
+        ) t1
+        GROUP BY t1.documentaryType
     </select>
 </mapper>