浏览代码

Merge remote-tracking branch 'origin/master'

ljy121 1 年之前
父节点
当前提交
6fc31c716e

+ 1 - 6
client/src/views/OaSystem/home/components/CardItemSeven.vue

@@ -17,18 +17,13 @@
 <script setup lang="ts">
 import request from '@/config/axios'
 import { convertTimeToDate } from '@/utils/formatTime'
-import { useUserStore } from '@/store/modules/user'
 
 const loading = ref<boolean>(false)
 const listData = ref([])
-const userStore = useUserStore()
-const year = 2023
 const queryContractMessageByPage = async (): Promise<void> => {
   loading.value = true
-  const urlApi = `/contract-message/page`
+  const urlApi = `/contract-message/home/page`
   const sendData = {
-    deptId: userStore.getUser.deptId,
-    year: year,
     messageType: 2
     // managerId: userStore.getUser.id
   }

+ 1 - 3
client/src/views/OaSystem/home/components/PersonInfo.vue

@@ -1,11 +1,9 @@
 <script setup lang="ts">
 import request from '@/config/axios'
 import BarList from './BarList.vue'
-import { getUserInfo } from '@/utils/tool'
 /**
  * 板块领导-人员情况
  */
-const userInfo = getUserInfo()
 interface ChartValueType {
   name: string
   value: number
@@ -79,7 +77,7 @@ const staffStatistic = reactive<{
   ]
 })
 const queryStaffStatistic = async (): Promise<void> => {
-  const urlApi = `/adm/staff-records/statistic/get?deptId=${userInfo.deptId ?? ''}`
+  const urlApi = `/adm/staff-records/statistic/get`
   const result = await request.get({ url: urlApi })
   staffNum.value = result.staffNum ?? 0
   if (result.sexStatistic) {

+ 15 - 3
client/src/views/OaSystem/home/homeLeader.vue

@@ -167,9 +167,21 @@ const options = reactive<EChartsOption>({
   ]
 })
 const initData = (result) => {
-  chartData.value[0]['value'] = result.travelCost
-  chartData.value[1]['value'] = result.reimbursementCost
-  chartData.value[2]['value'] = result.paymentCost
+  let isBool = false
+  if (result.travelCost >= 10000) {
+    isBool = true
+  } else if (result.reimbursementCost >= 10000) {
+    isBool = true
+  } else if (result.paymentCost >= 10000) {
+    isBool = true
+  }
+  chartData.value[0]['value'] = isBool ? (result.travelCost / 10000).toFixed(2) : result.travelCost
+  chartData.value[1]['value'] = isBool
+    ? (result.reimbursementCost / 10000).toFixed(2)
+    : result.reimbursementCost
+  chartData.value[2]['value'] = isBool
+    ? (result.paymentCost / 10000).toFixed(2)
+    : result.paymentCost
   // options['series'][0]['data'] = chartData
 }
 </script>

+ 1 - 1
client/src/views/OaSystem/home/index.vue

@@ -39,7 +39,7 @@ const homeStaff = defineAsyncComponent({
 
 const roles = userStore.getRoles
 if (roles) {
-  if (roles.indexOf('test_leader') != -1 || roles.indexOf('test_dept_manager') != -1) {
+  if (roles.indexOf('home_company') != -1) {
     //板块领导||部门经理
     currentIndex.value = '1'
   } else {

+ 2 - 5
client/src/views/OaSystem/marketCenter/contractSubOut/applyIndex.vue

@@ -121,9 +121,7 @@
           </el-table-column>
           <el-table-column label="状态" width="120">
             <template #default="scope">{{
-              scope.row.contractSubFlowStatus === null
-                ? '未签'
-                : getDictLabel(DICT_TYPE.CONTRACT_SIGN_STATUS, scope.row.contractSubFlowStatus)
+              scope.row.contractSubFlowStatus === 90 ? '已签' : '未签'
             }}</template>
           </el-table-column>
           <el-table-column label="操作" fixed="right" align="center" width="200">
@@ -133,7 +131,7 @@
                 <span
                   @click="operateClick(scope.row)"
                   style="margin-left: 10px"
-                  v-if="scope.row.isSign == 1 && scope.row.contractSubFlowStatus == 1"
+                  v-if="scope.row.isSign == 1 && scope.row.contractSubFlowStatus == 90"
                 >
                   查看合同
                 </span>
@@ -162,7 +160,6 @@ import { PageParam } from '@/interface/common'
 import { getAssetURL } from '@/utils/auth'
 import { openFlow, openProcessFlow } from '@/utils/flow'
 import request from '@/config/axios'
-import { DICT_TYPE, getDictLabel } from '@/utils/dict'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 
 defineOptions({ name: 'ContractSubOut' })

+ 1 - 1
client/src/views/OaSystem/projectCenter/projectBook/deptProject.vue

@@ -216,7 +216,7 @@ const queryProjectCalculate = async (): Promise<void> => {
   if (result) {
     infoList[0]['num'] = result.output ?? 0
     infoList[1]['num'] = result.cost ?? 0
-    infoList[2]['num'] = infoList[1]['num'] - infoList[0]['num']
+    infoList[2]['num'] = infoList[0]['num'] - infoList[1]['num']
   }
 }
 queryProjectCalculate()

+ 1 - 1
client/src/views/OaSystem/projectCenter/projectBook/myProject.vue

@@ -221,7 +221,7 @@ const queryProjectCalculate = async (): Promise<void> => {
   if (result) {
     infoList[0]['num'] = result.output ?? 0
     infoList[1]['num'] = result.cost ?? 0
-    infoList[2]['num'] = infoList[1]['num'] - infoList[0]['num']
+    infoList[2]['num'] = infoList[0]['num'] - infoList[1]['num']
   }
 }
 queryProjectCalculate()

+ 4 - 1
client_h5/.env.pro

@@ -1 +1,4 @@
-VITE_BASE_URL='http://oa.zjugis.com:28080/'
+VITE_BASE_URL='http://oa.zjugis.com:28080/'
+
+# File上传路径
+VITE_FILE_BASE_URI='/admin-api/infra/file'

+ 1 - 1
client_h5/index.html

@@ -6,7 +6,7 @@
     <meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1">
     <script src='https://cdn.bootcss.com/vConsole/3.3.2/vconsole.min.js'></script>
     <script type="text/javascript">
-      window.vConsole = new window.VConsole()
+      // window.vConsole = new window.VConsole()
       window.locationBaseUrl = "/html_h5"
     </script>
     <title></title>

+ 1 - 1
client_h5/package.json

@@ -11,7 +11,7 @@
     "build": "vite build --mode dev",
     "build:local": "vue-tsc && vite build --mode base",
     "build:dev": "vue-tsc && vite build --mode dev",
-    "build:prod": "vue-tsc && vite build --mode pro",
+    "build:prod": "vite build --mode pro",
     "preview": "vite preview"
   },
   "dependencies": {

+ 1 - 0
client_h5/src/pages/home/index.vue

@@ -80,6 +80,7 @@ const personMenus: MenuItem[] = [
     title: "通知公告",
     path: 'notice',
     icon: "../assets/images/tzgg_icon.png",
+    corner: 0
   },
 ];
 const router = useRouter();

+ 10 - 56
client_h5/src/pages/outsourcing-apply/index.vue

@@ -9,7 +9,13 @@
               label="合同名称"
               placeholder="合同名称"
               readonly
-              :rules="[{ required: true, message: '未获取合同名称' }]"
+          />
+          <van-field
+              v-model="formData.planSignDate"
+              name="签订时间"
+              label="签订时间"
+              placeholder="签订时间"
+              readonly
           />
           <van-field
               v-model="formData.contractNumber"
@@ -17,7 +23,6 @@
               label="合同编号"
               placeholder="合同编号"
               readonly
-              :rules="[{ required: true, message: '未获取合同编号' }]"
           />
           <van-field
               v-model="formData.contractAmount"
@@ -25,7 +30,6 @@
               label="外包金额(元)"
               placeholder="外包金额(元)"
               readonly
-              :rules="[{ required: true, message: '未获取外包金额(元)' }]"
           />
           <van-field
               v-model="formData.contractOn"
@@ -33,7 +37,6 @@
               label="合同拿出日期"
               placeholder="合同拿出日期"
               readonly
-              :rules="[{ required: true, message: '未获取合同拿出日期' }]"
           />
           <van-field
               v-model="formData.contractOff"
@@ -41,15 +44,13 @@
               label="合同拿回日期"
               placeholder="合同拿回日期"
               readonly
-              :rules="[{ required: true, message: '未获取合同拿回日期' }]"
           />
           <van-field
-              v-model="formData.subReason"
+              v-model="formData.reason"
               name="外包原因细化"
               label="外包原因细化"
               placeholder="外包原因细化"
               readonly
-              :rules="[{ required: true, message: '未获取外包原因细化' }]"
           />
           <van-field
               v-model="formData.bz"
@@ -57,7 +58,6 @@
               label="备注"
               placeholder="备注"
               readonly
-              :rules="[{ required: true, message: '未获取备注' }]"
           />
         </van-cell-group>
       </van-form>
@@ -71,7 +71,6 @@
               label="项目名称"
               placeholder="项目名称"
               readonly
-              :rules="[{ required: true, message: '未获取项目名称' }]"
           />
           <van-field
               v-model="formData.project.xmbh"
@@ -79,7 +78,6 @@
               label="项目编号"
               placeholder="项目编号"
               readonly
-              :rules="[{ required: true, message: '未获取项目编号' }]"
           />
           <van-field
               v-model="formData.contract.name"
@@ -87,7 +85,6 @@
               label="主合同名称"
               placeholder="主合同名称"
               readonly
-              :rules="[{ required: true, message: '未获取主合同名称' }]"
           />
           <van-field
               v-model="formData.contract.contractNumber"
@@ -95,7 +92,6 @@
               label="主合同编号"
               placeholder="主合同编号"
               readonly
-              :rules="[{ required: true, message: '未获取主合同编号' }]"
           />
           <van-field
               v-model="formData.contract.contractAmount"
@@ -103,7 +99,6 @@
               label="主合同金额"
               placeholder="主合同金额"
               readonly
-              :rules="[{ required: true, message: '未获取主合同金额' }]"
           />
           <van-field
               v-model="formData.project.zrbm"
@@ -111,7 +106,6 @@
               label="责任部门"
               placeholder="责任部门"
               readonly
-              :rules="[{ required: true, message: '未获取责任部门' }]"
           />
 
         </van-cell-group>
@@ -121,58 +115,18 @@
       <van-form required="true" ref="form">
         <van-cell-group inset>
           <van-field
-              v-model="formData.clientName"
+              v-model="formData.assigneeName"
               name="委托方"
               label="委托方"
               placeholder="委托方"
               readonly
-              :rules="[{ required: true, message: '未获取委托方' }]"
-          />
-          <van-field
-              v-model="formData.clientNumber"
-              name="委托方编号"
-              label="委托方编号"
-              placeholder="委托方编号"
-              readonly
-              :rules="[{ required: true, message: '未获取委托方编号' }]"
           />
           <van-field
-              v-model="formData.assigneeName"
+              v-model="formData.customerName"
               name="受托方"
               label="受托方"
               placeholder="受托方"
               readonly
-              :rules="[{ required: true, message: '未获取受托方' }]"
-          />
-          <van-field
-              v-model="formData.contract.areaManager"
-              name="区域经理"
-              label="区域经理"
-              placeholder="区域经理"
-              readonly
-              :rules="[{ required: true, message: '未获取区域经理' }]"
-          />
-        </van-cell-group>
-      </van-form>
-    </card>
-    <card title="到期提醒" style="height: auto">
-      <van-form required="true" ref="form">
-        <van-cell-group inset>
-          <van-field
-              v-model="formData.isRemindExpiryc"
-              name="是否到期提醒"
-              label="是否到期提醒"
-              placeholder="是否到期提醒"
-              readonly
-              :rules="[{ required: true, message: '未获取是否到期提醒' }]"
-          />
-          <van-field
-              v-model="formData.planSignDate"
-              name="合同预计签订时间"
-              label="合同预计签订时间"
-              placeholder="合同预计签订时间"
-              readonly
-              :rules="[{ required: true, message: '未获取合同预计签订时间' }]"
           />
         </van-cell-group>
       </van-form>

+ 33 - 0
client_h5/src/pages/subcontract-apply/index.scss

@@ -0,0 +1,33 @@
+.van-cell-group {
+  margin: 0px;
+}
+.van-overlay {
+  background: rgba(0,0,0,0.3);
+}
+.add_btn {
+  background-color: #1989fa;
+  padding: 5px 10px;
+  border: 0px;
+  outline: none;
+  font-size: 13px;
+  color: #fff;
+  border-radius: 2px;
+}
+.detail-popup {
+  >.title {
+    font-size: 15px;
+    padding-left: 10px;
+  }
+  >.fixed-btn {
+    padding: 15px;
+  }
+}
+  :deep(.van-swipe-cell__right) {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    >button {
+      height: 50%;
+    }
+  }

+ 258 - 0
client_h5/src/pages/subcontract-apply/index.vue

@@ -0,0 +1,258 @@
+<template>
+  <flow-form :data="formData" @submit="submitNextActivity">
+    <card title="基本信息" style="height: auto">
+      <van-form required="true" ref="form">
+        <van-cell-group inset>
+          <van-field
+              v-model="formData.name"
+              name="合同名称"
+              label="合同名称"
+              placeholder="合同名称"
+              readonly
+          />
+          <van-field
+              v-model="formData.planSignDate"
+              name="签订时间"
+              label="签订时间"
+              placeholder="签订时间"
+              readonly
+          />
+          <van-field
+              v-model="formData.contractNumber"
+              name="合同编号"
+              label="合同编号"
+              placeholder="合同编号"
+              readonly
+          />
+          <van-field
+              v-model="formData.contractAmount"
+              name="分包金额(元)"
+              label="分包金额(元)"
+              placeholder="分包金额(元)"
+              readonly
+          />
+          <van-field
+              v-model="formData.contractOn"
+              name="合同拿出日期"
+              label="合同拿出日期"
+              placeholder="合同拿出日期"
+              readonly
+          />
+          <van-field
+              v-model="formData.contractOff"
+              name="合同拿回日期"
+              label="合同拿回日期"
+              placeholder="合同拿回日期"
+              readonly
+          />
+          <van-field
+              v-model="formData.reason"
+              name="分包理由"
+              label="分包理由"
+              placeholder="分包理由"
+              readonly
+          />
+          <van-field
+              v-model="formData.purchaseRequirements"
+              name="分包采购内容需求"
+              label="分包采购内容需求"
+              placeholder="分包采购内容需求"
+              readonly
+          />
+          <van-field
+              v-model="formData.bz"
+              name="备注"
+              label="备注"
+              placeholder="备注"
+              readonly
+          />
+        </van-cell-group>
+      </van-form>
+    </card>
+    <card title="项目信息" style="height: auto">
+      <van-form required="true" ref="form">
+        <van-cell-group inset>
+          <van-field
+              v-model="formData.project.xmmc"
+              name="项目名称"
+              label="项目名称"
+              placeholder="项目名称"
+              readonly
+          />
+          <van-field
+              v-model="formData.project.xmbh"
+              name="项目编号"
+              label="项目编号"
+              placeholder="项目编号"
+              readonly
+          />
+          <van-field
+              v-model="formData.contract.name"
+              name="主合同名称"
+              label="主合同名称"
+              placeholder="主合同名称"
+              readonly
+          />
+          <van-field
+              v-model="formData.contract.contractNumber"
+              name="主合同编号"
+              label="主合同编号"
+              placeholder="主合同编号"
+              readonly
+          />
+          <van-field
+              v-model="formData.contract.contractAmount"
+              name="主合同金额"
+              label="主合同金额"
+              placeholder="主合同金额"
+              readonly
+          />
+          <van-field
+              v-model="formData.project.zrbm"
+              name="责任部门"
+              label="责任部门"
+              placeholder="责任部门"
+              readonly
+          />
+
+        </van-cell-group>
+      </van-form>
+    </card>
+    <card title="甲乙方信息" style="height: auto">
+      <van-form required="true" ref="form">
+        <van-cell-group inset>
+          <van-field
+              v-model="formData.assigneeName"
+              name="委托方"
+              label="委托方"
+              placeholder="委托方"
+              readonly
+          />
+
+          <van-field
+              v-model="formData.customerName"
+              name="受托方"
+              label="受托方"
+              placeholder="受托方"
+              readonly
+          />
+
+        </van-cell-group>
+      </van-form>
+    </card>
+  </flow-form>
+</template>
+
+<script setup lang="ts">
+import {useRoute} from 'vue-router';
+import {FlowDTO, getNextActivity} from '@/service/flow';
+import reqest from "@/utils/request";
+import FlowForm from '@/components/flowForm.vue';
+import Card from '@/components/card.vue';
+import CardCell from '@/components/cardCell.vue';
+import {DICT_TYPE, getDictLabel} from "@/utils/dict";
+
+const route = useRoute();
+const form = ref(null);
+
+interface FormDataType {
+}
+
+const formData = ref<FormDataType>({
+  contract: {},
+  project: {}
+})
+const detailData = ref({})
+
+
+const {activityInstanceId, participant, flowInstanceId, read} = route.query as {
+  activityInstanceId: string;
+  participant: string;
+  flowInstanceId: string;
+  read: string;
+};
+const activityData: FlowDTO = {
+  activityInstanceId,
+  participantId: participant,
+  flowOpinion: ''
+}
+const submitNextActivity = async (NextActivity: () => Promise<any>) => {
+  NextActivity();
+};
+const jsonToFormData = (json: any): FormData | null => {
+  const keys: string[] = Object.keys(json)
+  if (keys.length > 0) {
+    const formData = new FormData();
+    keys.forEach((key) => {
+      formData.append(key, (json[key] instanceof Object) ? JSON.stringify(json[key]) : json[key]);
+    });
+    return formData;
+  }
+  return null;
+}
+
+
+/** 初始化表单数据 */
+const initFormData = async () => {
+  const result = await reqest.get(`/business/flow/contract-sub/mobileAdd?flowInstanceId=${flowInstanceId}`)
+
+
+  formData.value = result.data;
+  formData.project = result.data.project;
+  formData.contract = result.data.contract;
+
+
+  formData.value.subShareWayText = getDictLabel(DICT_TYPE.SUBCONTRACT_SHARE_WAY, formData.value.subShareWay);
+
+  const isRemindExpiry = formData.value.isRemindExpiry;
+  if (isRemindExpiry != null) {
+    let isRemindExpiryc;
+    switch (isRemindExpiry) {
+      case 0:
+        isRemindExpiryc = "否";
+        break;
+      case 1:
+        isRemindExpiryc = "是";
+        break
+      default:
+        isRemindExpiryc = "";
+    }
+    formData.value.isRemindExpiryc = isRemindExpiryc;
+  }
+
+  let signc;
+  const sign = formData.value.isSign;
+  if (sign != null) {
+    switch (sign) {
+      case 0:
+        signc = "否"
+        break;
+      case 1:
+        signc = "是";
+        break;
+      default:
+        signc = "";
+        break;
+    }
+    formData.value.isSignc = signc;
+  }
+}
+
+
+/** 初始化 */
+onMounted(() => {
+  initFormData()
+})
+</script>
+
+<style lang="scss" scoped>
+@import "./index.scss";
+
+::v-deep .van-field__label {
+  width: auto;
+}
+
+::v-deep .van-field__control {
+  text-align: right;
+}
+</style>

+ 8 - 0
client_h5/src/router/routes.ts

@@ -221,6 +221,14 @@ const routes: RouteRecordRaw[] = [
         },
         component: () => import("@/pages/contract-sub/index.vue"),
       },
+      {
+        path: "subcontract-apply",
+        name: "subcontract-apply",
+        meta: {
+          title: "分包合同签订",
+        },
+        component: () => import("@/pages/subcontract-apply/index.vue"),
+      },
       {
         path: "contract-out",
         name: "contract-out",

+ 2 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/contractSub/controller/vo/ContractSubVO.java

@@ -169,5 +169,7 @@ public class ContractSubVO {
     private String projectTypeCode;
     private String xzqh;
     private Contract contract;
+    private String customerName;
+
 
 }

+ 7 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/contractSub/service/FlowContractSubService.java

@@ -179,6 +179,13 @@ public class FlowContractSubService {
             Contract main = contractService.selectByPrimaryKey(entity.getParentId());
             vo.setContract(main);
         }
+
+        if (StringUtils.isNotBlank(entity.getCustomerId())) {
+            Supplier supplier=supplierService.queryById(entity.getCustomerId());
+            if(supplier!=null){
+                vo.setCustomerName(supplier.getCustomerName());
+            }
+        }
         return vo;
     }
 

+ 3 - 2
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/controller/admin/staff/StaffStatisticController.java

@@ -26,11 +26,12 @@ public class StaffStatisticController {
 
     /**
      * 获取员工统计信息
+     *
      * @return
      */
     @GetMapping("/get")
-    public CommonResult<StatisticInfoVO> getStatisticResult(@RequestParam(value = "deptId",required = false) String deptId) {
-        StatisticInfoVO statisticResult = staffStatisticService.getStatisticResult(deptId);
+    public CommonResult<StatisticInfoVO> getStatisticResult() {
+        StatisticInfoVO statisticResult = staffStatisticService.getStatisticResult(null);
         return success(statisticResult);
     }
 }

+ 1 - 1
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/staff/StaffStatisticService.java

@@ -15,5 +15,5 @@ public interface StaffStatisticService {
      * 获取用户统计信息
      *
      */
-    StatisticInfoVO getStatisticResult(String deptId);
+    StatisticInfoVO getStatisticResult(String userId);
 }

+ 15 - 6
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/staff/StaffStatisticServiceImpl.java

@@ -4,7 +4,9 @@ package com.zjugis.module.adm.service.staff;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.zjugis.framework.common.pojo.CommonResult;
+import com.zjugis.framework.datapermission.core.annotation.DataPermission;
 import com.zjugis.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zjugis.framework.security.core.util.SecurityFrameworkUtils;
 import com.zjugis.module.adm.controller.admin.staff.vo.records.*;
 import com.zjugis.module.adm.dal.dataobject.staff.CollegeDO;
 import com.zjugis.module.adm.dal.dataobject.staff.StaffRecordSDO;
@@ -13,8 +15,11 @@ import com.zjugis.module.system.api.dept.DeptApi;
 import com.zjugis.module.system.api.dept.DeptLeaderApi;
 import com.zjugis.module.system.api.dept.dto.DeptLeaderRespDTO;
 import com.zjugis.module.system.api.dept.dto.DeptRespDTO;
+import com.zjugis.module.system.api.permission.PermissionApi;
+import com.zjugis.module.system.api.permission.dto.DeptDataPermissionRespDTO;
 import com.zjugis.module.system.api.user.AdminUserApi;
 import com.zjugis.module.system.api.user.dto.AdminUserRespDTO;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -40,6 +45,9 @@ public class StaffStatisticServiceImpl implements StaffStatisticService {
     @Resource
     private AdminUserApi userApi;
 
+    @Resource
+    private PermissionApi permissionApi;
+
     @Resource
     private RecordsMapper recordsMapper;
 
@@ -51,15 +59,16 @@ public class StaffStatisticServiceImpl implements StaffStatisticService {
      * 获取用户统计信息
      */
     @Override
-    public StatisticInfoVO getStatisticResult(String deptId) {
+    public StatisticInfoVO getStatisticResult(String userId) {
+        if (StringUtils.isNotBlank(SecurityFrameworkUtils.getLoginUserId())) {
+            userId = SecurityFrameworkUtils.getLoginUserId();
+        }
 
+        DeptDataPermissionRespDTO dto = permissionApi.getDeptDataPermission(userId).getCheckedData();
         StatisticInfoVO statisticInfoVO = new StatisticInfoVO();
         List<String> userIds = new ArrayList<>();
-        if (StrUtil.isNotEmpty(deptId)) {
-
-            Set<String> deptIds = convertSet(deptApi.getChildDeptList(deptId).getCheckedData(), DeptRespDTO::getId);
-            // 包括自身
-            deptIds.add(deptId);
+        Set<String> deptIds = dto.getDeptIds();
+        if (CollectionUtil.isNotEmpty(deptIds)) {
 
             CommonResult<List<AdminUserRespDTO>> commonResult = userApi.getUserListByDeptIds(deptIds);
             userIds = commonResult.getCheckedData().stream().map(AdminUserRespDTO::getId).filter(Objects::nonNull).collect(Collectors.toList());