Ver Fonte

'递归绑定充值到账比例'

yq há 3 anos atrás
pai
commit
8df3025a23

+ 4 - 3
src/main/java/com/usky/dxtop/controller/web/business/StaffController.java

@@ -16,7 +16,7 @@ import java.util.List;
 import java.util.Optional;
 
 /**
- * 充值记录
+ * 东信人员信息
  * @author yq
  * @date 2021/9/23 13:34
  */
@@ -58,11 +58,12 @@ public class StaffController {
      * @param deptId 部门编号
      * @param isBinding 是否绑定
      * @param radioId 比例id
+     * @param isRe 是否绑定子部门
      * @return
      */
     @PutMapping("/addListByDept")
-    public ApiResult addListByDept(@RequestParam Long deptId,@RequestParam Boolean isBinding,@RequestParam Long radioId){
-        staffRadioService.addListByDept(deptId,isBinding,radioId);
+    public ApiResult addListByDept(@RequestParam Long deptId,@RequestParam Boolean isBinding,@RequestParam Long radioId,@RequestParam Boolean isRe){
+        staffRadioService.addListByDept(deptId,isBinding,radioId,isRe);
         return ApiResult.success();
     }
 

+ 3 - 0
src/main/java/com/usky/dxtop/service/DeptService.java

@@ -34,4 +34,7 @@ public interface DeptService extends IService<Dept> {
      */
     List<Dept> buildDeptTree(List<Dept> depts);
 
+
+    List<Long> getChildListByDept(List<Dept> depts,Dept dept,List<Long> deptIds);
+
 }

+ 1 - 1
src/main/java/com/usky/dxtop/service/StaffRadioService.java

@@ -25,7 +25,7 @@ public interface StaffRadioService extends IService<StaffRadio> {
     void addList(List<StaffRadio> list);
 
 
-    boolean addListByDept(Long deptId,Boolean isBinding,Long radioId);
+    boolean addListByDept(Long deptId,Boolean isBinding,Long radioId,Boolean isRe);
 
     /**
      * 人员比例

+ 15 - 0
src/main/java/com/usky/dxtop/service/impl/DeptServiceImpl.java

@@ -82,6 +82,18 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
         return returnList;
     }
 
+    @Override
+    public List<Long> getChildListByDept(List<Dept> list, Dept t,List<Long> deptIds) {
+        List<Dept> childList = getChildList(list, t);
+        for (Dept tChild : childList) {
+            deptIds.add(tChild.getDId());
+            if (hasChild(list, tChild)) {
+                getChildListByDept(list, tChild,deptIds);
+            }
+        }
+        return deptIds;
+    }
+
     /**
      * 递归列表
      */
@@ -98,6 +110,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
     }
 
 
+
+
+
     /**
      * 得到子节点列表
      */

+ 24 - 8
src/main/java/com/usky/dxtop/service/impl/StaffRadioServiceImpl.java

@@ -1,13 +1,12 @@
 package com.usky.dxtop.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.usky.dxtop.common.enums.BusinessStatus;
 import com.usky.dxtop.common.exception.CustomException;
 import com.usky.dxtop.mapper.StaffRadioMapper;
+import com.usky.dxtop.model.Dept;
 import com.usky.dxtop.model.Staff;
 import com.usky.dxtop.model.StaffRadio;
 import com.usky.dxtop.service.DeptService;
@@ -16,6 +15,7 @@ import com.usky.dxtop.service.StaffService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -34,6 +34,9 @@ public class StaffRadioServiceImpl extends ServiceImpl<StaffRadioMapper, StaffRa
     @Autowired
     private StaffService staffService;
 
+    @Autowired
+    private DeptService deptService;
+
     @Override
     public void addList(List<StaffRadio> list) {
         if (CollectionUtils.isEmpty(list)){
@@ -59,12 +62,25 @@ public class StaffRadioServiceImpl extends ServiceImpl<StaffRadioMapper, StaffRa
     }
 
     @Override
-    public boolean addListByDept(Long deptId, Boolean isBinding,Long radioId) {
-        LambdaQueryWrapper<Staff> staffLambdaQueryWrapper = Wrappers.lambdaQuery();
-        staffLambdaQueryWrapper
-                .select(Staff::getSId)
-                .eq(Staff::getDeptId,deptId);
-        List<Long> list = staffService.list(staffLambdaQueryWrapper).stream().map(Staff::getSId).collect(Collectors.toList());
+    public boolean addListByDept(Long deptId, Boolean isBinding,Long radioId,Boolean isRe) {
+        List<Long> list;
+        if (isRe){
+            List<Long> deptIdList = new ArrayList<>();
+            List<Dept> depts = deptService.list();
+            Dept dept = deptService.getById(deptId);
+            deptIdList.add(dept.getDId());
+            deptService.getChildListByDept(depts,dept,deptIdList);
+            LambdaQueryWrapper<Staff> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.select(Staff::getSId)
+                    .in(Staff::getDeptId,deptIdList);
+            list = staffService.list(queryWrapper).stream().map(Staff::getSId).collect(Collectors.toList());
+        }else {
+            LambdaQueryWrapper<Staff> staffLambdaQueryWrapper = Wrappers.lambdaQuery();
+            staffLambdaQueryWrapper
+                    .select(Staff::getSId)
+                    .eq(Staff::getDeptId,deptId);
+            list = staffService.list(staffLambdaQueryWrapper).stream().map(Staff::getSId).collect(Collectors.toList());
+        }
         if (CollectionUtils.isNotEmpty(list)){
             LambdaQueryWrapper<StaffRadio> queryWrapper = Wrappers.lambdaQuery();
             queryWrapper.in(StaffRadio::getStaffId,list);

+ 17 - 14
src/test/java/com/usky/dxtop/SmApiTest.java

@@ -1,22 +1,10 @@
 package com.usky.dxtop;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.usky.dxtop.common.exception.CustomException;
-import com.usky.dxtop.common.utils.Arith;
 import com.usky.dxtop.common.utils.http.HttpUtils;
-import com.usky.dxtop.model.Charge;
-import com.usky.dxtop.model.Dish;
-import com.usky.dxtop.model.Order;
-import com.usky.dxtop.service.ChargeService;
-import com.usky.dxtop.service.DishService;
-import com.usky.dxtop.service.MsgLogService;
-import com.usky.dxtop.service.api.TopApiConfiger;
+import com.usky.dxtop.model.Dept;
+import com.usky.dxtop.service.DeptService;
 import com.usky.dxtop.service.api.WxApi;
 import com.usky.dxtop.service.job.CenterUserJob;
-import com.usky.dxtop.service.job.SmJob;
-import com.usky.dxtop.service.listener.ChargeTransMqListener;
-import com.usky.dxtop.service.listener.DishTransMqListener;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -25,6 +13,8 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.TreeMap;
 
 /**
@@ -69,6 +59,19 @@ public class SmApiTest {
     }
 
 
+    @Autowired
+    private DeptService deptService;
+    @Test
+    public void test4(){
+        List<Long> deptIdList = new ArrayList<>();
+        List<Dept> depts = deptService.list();
+        Dept dept = deptService.getById(4500L);
+        deptIdList.add(dept.getDId());
+        deptService.getChildListByDept(depts,dept,deptIdList);
+        System.out.println(deptIdList);
+    }
+
+
 
 
 }