Преглед изворни кода

1.新增手动同步超期项目数据接口
2.资产数据分页查询SQL优化
3.资产事业部市场部数据权限特殊处理

GouGengquan пре 3 месеци
родитељ
комит
0f293187c0

+ 10 - 0
biz-base/src/main/java/com/dayou/controller/FinanceFineController.java

@@ -1,5 +1,6 @@
 package com.dayou.controller;
 
+import com.dayou.annotation.IgnoreAuth;
 import com.dayou.dto.FinanceFineSelectDTO;
 import com.dayou.vo.FinanceFineVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -114,6 +115,15 @@ public class FinanceFineController extends BaseController {
         return RestResponse.data(ret);
     }
 
+    /**
+     * 手动同步统计财务收款预警中超过90天的订单或产品新增到罚款表
+     */
+    @IgnoreAuth
+    @GetMapping("/compileFineOrder")
+    public void compileFineOrder() {
+        financeFineService.compileFineOrder();
+    }
+
 
 }
 

+ 9 - 6
dao/src/main/resources/mapper/AssetsMapper.xml

@@ -55,11 +55,11 @@
         order_id,
         assets_business_gener,
         allot_type,
-        (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id AND business_id = nodeInfo.businessId) AS statementNo,
-        (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id AND business_id = nodeInfo.businessId) AS statementName,
-        (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id AND business_id = nodeInfo.businessId) AS reportNo,
-        (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id AND business_id = nodeInfo.businessId) AS reportName,
-        (SELECT production_type FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id AND business_id = nodeInfo.businessId) AS productionType,
+        statement.production_no AS statementNo,
+        statement.assets_name AS statementName,
+        report.production_no AS reportNo,
+        report.assets_name AS reportName,
+        report.production_type AS productionType,
         clientele_id,
         customer.name AS customerName,
         bailor,
@@ -104,6 +104,8 @@
         AND record.instance_id = nodeInstance.id
         AND nodeInstance.business_type = 'ASSET_BUSINESS'
         ) AS nodeInfo ON nodeInfo.businessId = assets.id
+        LEFT JOIN assets_production AS statement ON statement.deleted = 0 AND statement.production_no = nodeInfo.business_sub_id AND statement.business_id = nodeInfo.businessId
+        LEFT JOIN assets_production AS report ON report.deleted = 0 AND report.production_no = nodeInfo.business_min_id AND report.business_id = nodeInfo.businessId
         <if test="assetsSelectDTO != null and assetsSelectDTO.selectByDepartment">
             INNER JOIN (
             SELECT DISTINCT
@@ -173,7 +175,8 @@
             nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
             nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
             customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
-            (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id AND business_id = nodeInfo.businessId) LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
+            statement.assets_name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            report.assets_name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
             )
         </if>
         <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">

+ 10 - 3
service/src/main/java/com/dayou/service/impl/AssetsServiceImpl.java

@@ -114,12 +114,19 @@ public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> impleme
             // 去重并赋值
             assetsSelectDTO.setDepartmentIdList(depIds.stream().distinct().collect(Collectors.toList()));
         }
-        // 判断是否要查询资产列表,资产列表只能查询包含本人及其所在部门的人员为项目负责人或项目经理的流程(资产列表查询)
+        // 判断是否要查询资产列表,资产列表只能查询包含本人及其所在部门的人员为项目负责人或客户经理的流程(资产列表查询)
         if (ObjectUtil.isNotNull(assetsSelectDTO.getSelectByAll()) && assetsSelectDTO.getSelectByAll()){
             List<Long> depIds = new ArrayList<>();
-            for (SimpleParentModel postModel : LoginContext.getLoginCacheUserBO().getDepartmentList()) {
+            for (SimpleParentModel depModel : LoginContext.getLoginCacheUserBO().getDepartmentList()) {
                 // 根据部门id获取部门及其下属部门的id
-                depIds.addAll(departmentMapper.getDepIdList(postModel.getId()));
+                depIds.addAll(departmentMapper.getDepIdList(depModel.getId()));
+                // 资产部门特殊处理 佐雨茜需求:部门除了我以外其他市场人员不需要看到整个市场资产业务 他们只需要看自己的就可以了
+                if (depModel.getName().equals("资产评估事业部") && LoginContext.getLoginCacheUserBO().getPostList().stream()
+                        .map(SimplePostModel::getName)
+                        .allMatch(name -> name.contains("客户经理") || name.contains("销售代表"))) {
+                    assetsSelectDTO.setSelectByAll(false);
+                    assetsSelectDTO.setClientManagerId(LoginContext.getCurrentUserId());
+                }
             }
             // 去重并赋值
             assetsSelectDTO.setDepartmentIdList(depIds.stream().distinct().collect(Collectors.toList()));

+ 7 - 1
sql/update_sql.sql

@@ -835,4 +835,10 @@ ALTER TABLE finance_fine_refund CHANGE statue `status` enum('RETURNED','NOT_RETU
 # 新增索引
 ALTER TABLE assets_evaluation_target ADD KEY `report_no` (`report_no`) USING BTREE;
 ALTER TABLE assets_evaluation_target ADD KEY `evaluation_purpose_id` (`evaluation_purpose_id`) USING BTREE;
-ALTER TABLE assets_evaluation_target ADD KEY `statement_no` (`statement_no`) USING BTREE;
+ALTER TABLE assets_evaluation_target ADD KEY `statement_no` (`statement_no`) USING BTREE;
+
+/**
+  以上SQL已同步到测试环境
+  同步日期:2025-04-25
+  操作人:苟耕铨
+ */