From fb28685a5209be09c042f1a65650cb2fecefbc90 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 24 十一月 2022 15:53:29 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/system/mapper/UserMapper.java            |    2 ++
 src/main/java/com/zy/crm/system/service/UserService.java          |    4 +++-
 src/main/java/com/zy/crm/manager/controller/PlanController.java   |    9 +++++++--
 src/main/java/com/zy/crm/common/model/SettleDto.java              |    3 ++-
 src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java |   27 +++++++++++++++++++++++++--
 src/main/resources/mapper/UserMapper.xml                          |   13 +++++++++++++
 6 files changed, 52 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/crm/common/model/SettleDto.java b/src/main/java/com/zy/crm/common/model/SettleDto.java
index d01cd90..07e82d5 100644
--- a/src/main/java/com/zy/crm/common/model/SettleDto.java
+++ b/src/main/java/com/zy/crm/common/model/SettleDto.java
@@ -2,6 +2,7 @@
 
 import com.core.common.DateUtils;
 import com.zy.crm.manager.entity.Plan;
+import com.zy.crm.system.entity.User;
 import lombok.Data;
 
 import java.util.ArrayList;
@@ -28,7 +29,7 @@
 
     private Boolean curr;
 
-    public static List<SettleDto> init(Plan plan) {
+    public static List<SettleDto> init(Plan plan, User manager) {
         List<SettleDto> list = new ArrayList<>();
         for (int i = 1; i < 6; i++) {
             SettleDto dto = new SettleDto();
diff --git a/src/main/java/com/zy/crm/manager/controller/PlanController.java b/src/main/java/com/zy/crm/manager/controller/PlanController.java
index 2a51444..8bd0658 100644
--- a/src/main/java/com/zy/crm/manager/controller/PlanController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -21,6 +21,7 @@
 import com.zy.crm.manager.service.PlanService;
 import com.zy.crm.manager.service.PlanTypeService;
 import com.zy.crm.system.entity.User;
+import com.zy.crm.system.service.DeptService;
 import com.zy.crm.system.service.UserService;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.DataFormatter;
@@ -44,6 +45,8 @@
     private PlanService planService;
     @Autowired
     private PlanTypeService planTypeService;
+    @Autowired
+    private DeptService deptService;
 
     @GetMapping(value = "/plan/{id}/auth")
     @ManagerAuth
@@ -119,7 +122,8 @@
 
         plan.setForm(JSON.toJSONString(param));     // 鑷畾涔夎〃鍗曞唴瀹�
         plan.setSettle(1);  // 1.寮�濮�
-        plan.setSettleMsg(JSON.toJSONString(SettleDto.init(plan)));
+        User manager = userService.getDeptManager(hostId, getUser().getDeptId());        // 鑾峰彇閮ㄩ棬棰嗗
+        plan.setSettleMsg(JSON.toJSONString(SettleDto.init(plan, manager)));
 
         if (!planService.insert(plan)) {
             throw new CoolException("淇濇寔澶辫触锛岃閲嶈瘯");
@@ -140,7 +144,8 @@
         plan.setUpdateTime(new Date());
 
         plan.setForm(JSON.toJSONString(param));     // 鑷畾涔夎〃鍗曞唴瀹�
-        plan.setSettleMsg(JSON.toJSONString(SettleDto.init(plan)));
+        User manager = userService.getDeptManager(getHostId(), getUser().getDeptId());
+        plan.setSettleMsg(JSON.toJSONString(SettleDto.init(plan, manager)));
 
         if (!planService.updateById(plan)) {
             throw new CoolException("淇濇寔澶辫触锛岃閲嶈瘯");
diff --git a/src/main/java/com/zy/crm/system/mapper/UserMapper.java b/src/main/java/com/zy/crm/system/mapper/UserMapper.java
index 74937e2..52c0a5e 100644
--- a/src/main/java/com/zy/crm/system/mapper/UserMapper.java
+++ b/src/main/java/com/zy/crm/system/mapper/UserMapper.java
@@ -17,4 +17,6 @@
 
     List<User> getUserByDept(@Param("hostId")Long hostId, @Param("deptId")Long deptId);
 
+    List<User> getDeptManager(@Param("hostId")Long hostId, @Param("deptId")Long deptId);
+
 }
diff --git a/src/main/java/com/zy/crm/system/service/UserService.java b/src/main/java/com/zy/crm/system/service/UserService.java
index c10e037..393e4d1 100644
--- a/src/main/java/com/zy/crm/system/service/UserService.java
+++ b/src/main/java/com/zy/crm/system/service/UserService.java
@@ -8,8 +8,10 @@
 
 public interface UserService extends IService<User> {
 
-    Page<User> getPage(Page page, Long hostId, String deptId, Object username, Object mobile);
+    Page<User> getPage(Page<User> page, Long hostId, String deptId, Object username, Object mobile);
 
     List<User> getUserByDept(Long hostId, Long deptParentId);
 
+    User getDeptManager(Long hostId, Long deptId);
+
 }
diff --git a/src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java b/src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java
index 62cff18..5e12955 100644
--- a/src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java
@@ -2,18 +2,26 @@
 
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.crm.system.entity.Dept;
 import com.zy.crm.system.entity.User;
 import com.zy.crm.system.mapper.UserMapper;
+import com.zy.crm.system.service.DeptService;
 import com.zy.crm.system.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 import java.util.List;
 
 @Service("userService")
 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
 
+    @Autowired
+    private DeptService deptService;
+
     @Override
-    public Page<User> getPage(Page page, Long hostId, String deptId, Object username, Object mobile) {
+    public Page<User> getPage(Page<User> page, Long hostId, String deptId, Object username, Object mobile) {
         return page.setRecords(baseMapper.listByPage(page, hostId, deptId, username, mobile));
     }
 
@@ -21,4 +29,19 @@
     public List<User> getUserByDept(Long hostId, Long dept) {
         return this.baseMapper.getUserByDept(hostId, dept);
     }
+
+    @Override
+    public User getDeptManager(Long hostId, Long deptId) {
+        List<User> manager = this.baseMapper.getDeptManager(hostId, deptId);
+        if (Cools.isEmpty(manager)) {
+            Dept dept = deptService.selectById(deptId);
+            Dept parent = deptService.selectById(dept.getParentId());
+            manager = this.baseMapper.getDeptManager(hostId, parent.getId());
+        }
+        if (Cools.isEmpty(manager)) {
+            throw new CoolException("淇濆瓨澶辫触锛屾湭鎵惧埌閮ㄩ棬缁勯暱");
+        }
+        return manager.get(0);
+    }
+
 }
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 27edca6..1b95192 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -51,4 +51,17 @@
         </if>
     </select>
 
+    <select id="getDeptManager" resultMap="BaseResultMap">
+        SELECT
+        su.*
+        FROM sys_user su
+        left join sys_role sr on su.role_id = sr.id
+        where 1=1
+        <if test="hostId != null and hostId != ''">
+            and su.host_id = #{hostId}
+        </if>
+        and su.dept_id = #{deptId}
+        and sr.code = 'manager'
+    </select>
+
 </mapper>

--
Gitblit v1.9.1