ソースを参照

八爪鱼和工时管家修改

seyason 2 年 前
コミット
724ecc1b86

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java

@@ -72,8 +72,8 @@ public class UserController {
     }
 
     @RequestMapping("/getSimpleActiveUserList")
-    public HttpRespMsg getSimpleActiveUserList() {
-        return userService.getSimpleActiveUserList(request);
+    public HttpRespMsg getSimpleActiveUserList(Integer departmentId) {
+        return userService.getSimpleActiveUserList(departmentId, request);
     }
 
     /**

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java

@@ -68,5 +68,5 @@ public interface UserService extends IService<User> {
 
     HttpRespMsg batchUpdateRole(String userIds, Integer roleId, HttpServletRequest request);
 
-    HttpRespMsg getSimpleActiveUserList(HttpServletRequest request);
+    HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request);
 }

+ 38 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -123,6 +123,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                 if (!departmentName.equals(department.getDepartmentName())) {
                     deptNameChanged = true;
                 }
+                String oldManagerId = department.getManagerId();
                 department.setDepartmentName(departmentName);
                 department.setManagerId(managerId);
                 department.setReportAuditUserid(reportAuditUserid);
@@ -143,17 +144,38 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                     //修改负责人的部门
                     if (managerId != null) {
                         User manager = userMapper.selectById(managerId);
-                        if (!departmentId.equals(manager.getManageDeptId())) {
+                        //新的部门负责人设置管理的部门
+                        manager.setManageDeptId(departmentId);
+                        userMapper.updateById(manager);
+
+                        if (!managerId.equals(oldManagerId)) {
                             //部门负责人发生变化了,找到之前的部门的负责人,取消管理的部门
-                            User manageDeptOldUser= userMapper.selectOne(new QueryWrapper<User>().eq("manage_dept_id", departmentId));
-                            if (manageDeptOldUser != null) {
-                                manageDeptOldUser.setManageDeptId(0);
-                                userMapper.updateById(manageDeptOldUser);
-                            }
+                            if (oldManagerId != null) {
+                                User manageDeptOldUser = userMapper.selectById(oldManagerId);
+                                if (manageDeptOldUser != null) {
+                                    //检查这个人是否有其他负责的部门
+                                    Department otherDeptOne = departmentMapper.selectOne(new QueryWrapper<Department>().eq("manager_id", oldManagerId).last("limit 1"));
+                                    if (otherDeptOne != null) {
+                                        manageDeptOldUser.setManageDeptId(otherDeptOne.getDepartmentId());
+                                    } else {
+                                        manageDeptOldUser.setManageDeptId(0);
+                                    }
 
-                            //新的部门负责人设置管理的部门
-                            manager.setManageDeptId(departmentId);
-                            userMapper.updateById(manager);
+                                    userMapper.updateById(manageDeptOldUser);
+                                }
+
+                                //TODO: 如果存在审核中的日报,需要切换部门的审核人为新的负责人, 需测试验证
+                                List<Report> oldReportList = reportMapper.selectList(new QueryWrapper<Report>().select("id")
+                                        .eq("audit_dept_managerid", manageDeptOldUser.getId())
+                                        .eq("audit_deptid", departmentId)
+                                        .eq("state", 0)
+                                        .eq("company_id", companyId));
+                                if (oldReportList.size() > 0) {
+                                    Report r = new Report();
+                                    r.setAuditDeptManagerid(managerId);
+                                    reportMapper.update(r, new QueryWrapper<Report>().in("id", oldReportList.stream().map(Report::getId).collect(Collectors.toList())));
+                                }
+                            }
                         }
                     } else {
                         //取消了部门管理员
@@ -161,7 +183,13 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
 
                         User manageDeptOldUser= userMapper.selectOne(new QueryWrapper<User>().eq("manage_dept_id", departmentId));
                         if (manageDeptOldUser != null) {
-                            manageDeptOldUser.setManageDeptId(0);
+                            //检查这个人是否有其他负责的部门
+                            Department otherDeptOne = departmentMapper.selectOne(new QueryWrapper<Department>().eq("manager_id", oldManagerId).last("limit 1"));
+                            if (otherDeptOne != null) {
+                                manageDeptOldUser.setManageDeptId(otherDeptOne.getDepartmentId());
+                            } else {
+                                manageDeptOldUser.setManageDeptId(0);
+                            }
                             userMapper.updateById(manageDeptOldUser);
                         }
                     }

+ 9 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2894,6 +2894,15 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
+        //对于存在预算成本的公司,暂不支持导入工时
+        Company company = companyMapper.selectById(companyId);
+        if (company.getPackageProject() == 1) {
+            Integer alarmSettingCnt = projectBasecostSettingMapper.selectCount(new QueryWrapper<ProjectBasecostSetting>().eq("company_id", companyId).eq("alarm_type", 1));
+            if (alarmSettingCnt > 0) {
+                msg.setError("已设置工时预警类型的成本预算,暂不支持导入工时");
+                return msg;
+            }
+        }
         //然后处理文件
         String fileName = multipartFile.getOriginalFilename();
         File file = new File(fileName == null ? "file" : fileName);

+ 13 - 23
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -80,6 +80,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Resource
     private SysModuleMapper sysModuleMapper;
     @Resource
+    private DepartmentService departmentService;
+    @Resource
     private SysFunctionMapper sysFunctionMapper;
     @Resource
     private SysRoleModuleService sysRoleModuleService;
@@ -378,26 +380,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         return httpRespMsg;
     }
 
-    //获取某个部门所有子部门id
-    private List<Integer> getBranchDepartment(Integer departmentId, Integer companyId) {
-        List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>()
-                .eq("company_id", companyId));
-        List<Integer> list = new ArrayList<>();
-        list.add(departmentId);
-        for (int i = 0; i < list.size(); i++) {
-            Integer targetId = list.get(i);
-            for (int j = 0; j < departmentList.size(); j++) {
-                Integer superiorId = departmentList.get(j).getSuperiorId();
-                if (superiorId == null) {
-                    departmentList.remove(j--);
-                } else if (superiorId.equals(targetId)) {
-                    list.add(departmentList.get(j).getDepartmentId());
-                    departmentList.remove(j--);
-                }
-            }
-        }
-        return list;
-    }
 
     //获取员工的列表
     @Override
@@ -425,7 +407,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                     ids.add(departmentId);
                 } else {
                     //查看当前部门包括子部门的人员
-                    ids = getBranchDepartment(departmentId, companyId);
+                    List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                    ids = departmentService.getDeptIncludeSubDeptIds(departmentId, allDeptList);
                 }
 
                 list = userMapper.getUserByDepartmentList(page, companyId, ids, keyword, status, roleId);
@@ -1777,11 +1760,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     }
 
     @Override
-    public HttpRespMsg getSimpleActiveUserList(HttpServletRequest request) {
+    public HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
-        List<User> userList = userMapper.selectList(new QueryWrapper<User>().select("id, name, phone, job_number").eq("company_id", user.getCompanyId()).eq("is_active", 1));
+        QueryWrapper<User> wrapper = new QueryWrapper<User>().select("id, name, phone, job_number, department_id").eq("company_id", user.getCompanyId()).eq("is_active", 1);
+        if (departmentId != null) {
+            //获取全部子部门
+            List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
+            List<Integer> deptIds = departmentService.getDeptIncludeSubDeptIds(departmentId, allDeptList);
+            wrapper.in("department_id", deptIds);
+        }
+        List<User> userList = userMapper.selectList(wrapper);
         msg.data = userList;
         return msg;
     }

+ 0 - 22
fhKeeper/formulahousekeeper/octopus/src/views/Login.vue

@@ -15,30 +15,8 @@
                 <el-form-item class="login-button" style="width:100%;">
                     <el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit" :loading="logining">登录</el-button>
                 </el-form-item>
-                <div class="toRegister">
-                    <!-- <el-link type="primary" class="btn" style="float:left;" :underline="false">联系客服
-                        <div class="service">
-                            <p style="color: #333">扫码加客服微信</p>
-                            <img src="../assets/image/code.jpg">
-                            <p><span style="color: #333">QQ:</span><span id="QQ">3052894409</span></p>
-                        </div>
-                    </el-link>
-                    <el-link type="primary" style="margin-right:5px;" @click="dialogVisible=true" :underline="false">
-                        使用说明
-                    </el-link> -->
-                    <!-- <el-link type="primary" v-if="!isCorpWX" @click="jumpTo" :underline="false">企业注册</el-link> -->
-                </div>
             </el-form>
         </div>
-        <el-dialog title="使用说明" :visible.sync="dialogVisible" width="500px">
-            <p><a style="color:#409EFF;text-decoration:none" href="upload/工时管家使用说明.docx" download="工时管家使用说明.docx" 
-                        target="_blank">工时管家使用说明.docx</a></p>
-            <!-- <p><a style="color:#409EFF;text-decoration:none" href="upload/工时管家使用说明_项目经理.docx" download="工时管家使用说明_项目经理.docx" 
-                        target="_blank">工时管家使用说明_项目经理.docx</a></p>
-            <p><a style="color:#409EFF;text-decoration:none" href="upload/工时管家使用说明_普通员工.docx" download="工时管家使用说明_普通员工.docx" 
-                        target="_blank">工时管家使用说明_普通员工.docx</a></p> -->
-            
-        </el-dialog>
     </div>
 </template>
 

+ 2 - 0
fhKeeper/formulahousekeeper/octopus/src/views/customer/list.vue

@@ -38,6 +38,8 @@
             </el-table-column>
             <el-table-column prop="staffCountMax" label="人数上限"  min-width="80" align="center">
             </el-table-column>
+            <el-table-column prop="activeUserCount" label="在职人数"  min-width="80" align="center">
+            </el-table-column>
             <el-table-column prop="packageWorktime" label="使用版本" align="left" min-width="500" header-align="center">
                 <template slot-scope="scope">
                     <!-- <span>{{scope.row.packageWorktime ? "工时 +" : ""}}</span>

+ 9 - 0
fhKeeper/formulahousekeeper/ops-platform/pom.xml

@@ -180,6 +180,15 @@
                 </configuration>
             </plugin>
         </plugins>
+<!--        <resources>-->
+<!--            &lt;!&ndash; 打包时只保留如下文件为配置文件 &ndash;&gt;-->
+<!--            <resource>-->
+<!--                <directory>src/main/resources</directory>-->
+<!--                <includes>-->
+<!--                    <include>application.yml</include>-->
+<!--                </includes>-->
+<!--            </resource>-->
+<!--        </resources>-->
     </build>
 
     <!--配置阿里云仓库-->

+ 9 - 4
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/CompanyController.java

@@ -4,12 +4,10 @@ package com.management.platform.controller;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.management.platform.entity.Company;
-import com.management.platform.entity.CompanyDingding;
-import com.management.platform.entity.TimeType;
-import com.management.platform.entity.WxCorpInfo;
+import com.management.platform.entity.*;
 import com.management.platform.mapper.CompanyDingdingMapper;
 import com.management.platform.mapper.CompanyMapper;
+import com.management.platform.mapper.UserMapper;
 import com.management.platform.mapper.WxCorpInfoMapper;
 import com.management.platform.service.CompanyService;
 import com.management.platform.util.HttpRespMsg;
@@ -55,6 +53,8 @@ public class CompanyController {
     WxCorpInfoMapper wxCorpInfoMapper;
     @Resource
     CompanyDingdingMapper companyDingdingMapper;
+    @Resource
+    UserMapper userMapper;
 
     public static LocalDateTime lastSyncDDTime;
 
@@ -90,6 +90,11 @@ public class CompanyController {
                     r.setDingdingCorpid(first1.get().getCorpid());
                 }
             });
+            //获取实际活跃人数
+            List<User> userCountList = userMapper.selectList(new QueryWrapper<User>().select("company_id, count(1) as department_id").in("company_id", collect).eq("is_active", 1).groupBy("company_id"));
+            records.forEach(r->{
+                r.setActiveUserCount(userCountList.stream().filter(u->u.getCompanyId().equals(r.getId())).findFirst().get().getDepartmentId());
+            });
         }
 
         msg.data = result;

+ 2 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/Company.java

@@ -134,6 +134,8 @@ public class Company extends Model<Company> {
     private Integer packageProvider;
 
 
+    @TableField(exist = false)
+    private Integer activeUserCount;
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 0 - 368
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/vo/TimeType.java

@@ -1,368 +0,0 @@
-package com.management.platform.entity.vo;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.management.platform.entity.User;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.List;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author Seyason
- * @since 2022-08-24
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class TimeType extends Model<TimeType> {
-
-    private static final long serialVersionUID=1L;
-
-    /**
-     * 公司id
-     */
-    @TableId("company_id")
-    private Integer companyId;
-
-    /**
-     * 全天时长
-     */
-    @TableField("allday")
-    private Float allday;
-
-    /**
-     * 上午时长
-     */
-    @TableField("am")
-    private Float am;
-
-    /**
-     * 下午时长
-     */
-    @TableField("pm")
-    private Float pm;
-
-    /**
-     * 每月工作天数
-     */
-    @TableField("month_days")
-    private BigDecimal monthDays;
-
-    /**
-     * 时薪录入方式:0-按月薪计算,1-直接输入时薪
-     */
-    @TableField("hour_cost_input_type")
-    private Integer hourCostInputType;
-
-    /**
-     * 时长上报方式
-     */
-    @TableField("type")
-    private Integer type;
-
-    /**
-     * 是否计算加班工时工资
-     */
-    @TableField("pay_overtime")
-    private Boolean payOvertime;
-
-    /**
-     * 提醒时间
-     */
-    @TableField("alert_time")
-    private String alertTime;
-
-    /**
-     * 支持同个项目多个时间事项录入
-     */
-    @TableField("multi_worktime")
-    private Integer multiWorktime;
-
-    /**
-     * 强制固定月薪
-     */
-    @TableField("fix_monthcost")
-    private Integer fixMonthcost;
-
-    /**
-     * 可补填几个月的, 0-不限制,1-本月,2-上个月,3-上上月,4- 7天内 ,5- 前一天
-     */
-    @TableField("fill_months")
-    private Integer fillMonths;
-
-    /**
-     * 工时填报自定义维度是否启用
-     */
-    @TableField("custom_degree_active")
-    private Integer customDegreeActive;
-
-    /**
-     * 工时填报自定义维度名称
-     */
-    @TableField("custom_degree_name")
-    private String customDegreeName;
-
-    /**
-     * 工时填报自定义维度是否必填 0-否 1-是
-     */
-    @TableField("custom_degree_status")
-    private Integer customDegreeStatus;
-
-    /**
-     * 提醒内容
-     */
-    @TableField("alert_msg")
-    private String alertMsg;
-
-    /**
-     * 同步企业微信的考勤记录
-     */
-    @TableField("sync_corpwx_time")
-    private Integer syncCorpwxTime;
-
-    /**
-     * 是否需要部门上级审核日报
-     */
-    @TableField("need_dept_audit")
-    private Integer needDeptAudit;
-
-    /**
-     * 是否开启自定义审批流
-     */
-    @TableField("report_workflow")
-    private Integer reportWorkflow;
-
-    /**
-     * 工时填报数值收集开关
-     */
-    @TableField("custom_data_active")
-    private Integer customDataActive;
-
-    /**
-     * 工时填报数值收集字段名称
-     */
-    @TableField("custom_data_name")
-    private String customDataName;
-
-    /**
-     * 工时填报数值收集字段是否必填 0-否 1-是
-     */
-    @TableField("custom_data_status")
-    private Integer customDataStatus;
-
-    /**
-     * 工时填报数值收集字段最大值是否限制 0-否 1-是
-     */
-    @TableField("custom_data_max_status")
-    private Integer customDataMaxStatus;
-
-    /**
-     * 工时填报数值收集字段最大值限制
-     */
-    @TableField("custom_data_max_value")
-    private Integer customDataMaxValue;
-
-    /**
-     * 财务成本导入是否需要审核
-     */
-    @TableField("finance_audit")
-    private Integer financeAudit;
-
-    /**
-     * 加班倍数
-     */
-    @TableField("overtime_ratio")
-    private Double overtimeRatio;
-
-    /**
-     * 是否同步钉钉考勤打卡和出差
-     */
-    @TableField("sync_dingding")
-    private Integer syncDingding;
-
-    /**
-     * 是否是药研行业
-     */
-    @TableField("is_cro")
-    private Integer isCro;
-
-    /**
-     * 只使用导入功能,不要项目审核
-     */
-    @TableField("only_importreport")
-    private Integer onlyImportreport;
-
-    /**
-     * 填写日报显示钉钉打卡时长
-     */
-    @TableField("show_dd_cardtime")
-    private Integer showDdCardtime;
-
-    /**
-     * 填写日报显示企业微信打卡时长
-     */
-    @TableField("show_corpwx_cardtime")
-    private Integer showCorpwxCardtime;
-
-    /**
-     * 自定义文本信息是否开启
-     */
-    @TableField("custom_text_active")
-    private Integer customTextActive;
-
-    /**
-     * 自定义文本信息字段名称
-     */
-    @TableField("custom_text_name")
-    private String customTextName;
-
-    /**
-     * 自定义文本信息是否必填 0-否 1-是
-     */
-    @TableField("custom_text_status")
-    private Integer customTextStatus;
-
-    /**
-     * 是否锁定每日填报时长
-     */
-    @TableField("lock_worktime")
-    private Integer lockWorktime;
-
-    /**
-     * 填报是否填报加班
-     */
-    @TableField("fill_overtime")
-    private Integer fillOvertime;
-
-    /**
-     * 是否显示填报和审核的时间
-     */
-    @TableField("show_fillaudit_time")
-    private Integer showFillauditTime;
-
-    /**
-     * 是否秘薪处理,即任何人的薪资都显示*
-     */
-    @TableField("is_secret_salary")
-    private Integer isSecretSalary;
-
-    /**
-     * 0-每日提醒当天漏填 1-每日提醒昨天漏填
-     */
-    @TableField("alert_type")
-    private Integer alertType;
-
-    /**
-     * 0-工作内容非必填 1-工作内容必填
-     */
-    @TableField("work_content_state")
-    private Integer workContentState;
-
-    /**
-     * 0-不可提前填报 1-可提前填报
-     */
-    @TableField("fill_ahead")
-    private Integer fillAhead;
-
-    /**
-     * 0-当天 1-第二天 2-第三天
-     */
-    @TableField("timeliness")
-    private Integer timeliness;
-
-    /**
-     * 0-未开启 1-开启
-     */
-    @TableField("main_project_state")
-    private Integer mainProjectState;
-
-    /**
-     * 日报的审核类型, 0-项目审核人审核,1-分组负责人审核,2-先分组负责人审核再项目负责人(PM)审核
-     */
-    @TableField("report_audit_type")
-    private Integer reportAuditType;
-
-    /**
-     * 0-未开启 1-开启
-     */
-    @TableField("project_level_state")
-    private Integer projectLevelState;
-
-    /**
-     * 0-未开启 1-开启
-     */
-    @TableField("need_evaluate")
-    private Integer needEvaluate;
-
-    /**
-     * 产值  0-未开启 1-开启
-     */
-    @TableField("output_value_status")
-    private Integer outputValueStatus;
-
-    /**
-     * 0-未开启 1-开启
-     */
-    @TableField("user_custom_static")
-    private Integer userCustomStatic;
-
-    /**
-     * 批量填报是否包含节假日;0-不包含,1-包含
-     */
-    @TableField("include_weekends")
-    private Integer includeWeekends;
-
-    /**
-     * 从相册选择图片 0-未开启 1-开启
-     */
-    @TableField("chose_from_album")
-    private Integer choseFromAlbum;
-
-    /**
-     * 项目相关部门 0-未开启 1-开启
-     */
-    @TableField("project_with_dept")
-    private Integer projectWithDept;
-
-    /**
-     * 财务核算成本导入是否含工号:0-不含,1-含
-     */
-    @TableField("finance_jobnum_enabled")
-    private Integer financeJobnumEnabled;
-
-    /**
-     * 日报审核通过消息推送 0-未开启 1-开启
-     */
-    @TableField("report_approve_msgpush")
-    private Integer reportApproveMsgpush;
-
-    /**
-     * 日报自动审核 0-未开启 1-开启
-     */
-    @TableField("report_auto_approve")
-    private Integer reportAutoApprove;
-
-    /**
-     * 日报自动审核天数
-     */
-    @TableField("report_auto_approve_days")
-    private Integer reportAutoApproveDays;
-
-    @TableField(exist = false)
-    private List<User> userList;
-
-    @Override
-    protected Serializable pkVal() {
-        return this.companyId;
-    }
-
-}

+ 1 - 3
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/application.yml

@@ -17,9 +17,6 @@ spring:
     url: jdbc:mysql://47.101.180.183:3306/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
     username: root
     password: HuoshiDB@2022
-#    url: jdbc:mysql://47.100.37.243:7644/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
-#    username: root
-#    password: Ziyu20141026!@@
     hikari:
       maximum-pool-size: 10
       minimum-idle: 3
@@ -106,6 +103,7 @@ referer:
     - ttkuaiban.com
     - ops.ttkuaiban.com
     - 47.101.180.183
+    - mldworktime.ttkuaiban.com
 excludeUrls: /wxcorp/*,/wxcorp/*/*,/dingding/*,/error,/testClient,/corpWXAuth,/wx-corp-info/*,/clean/*,/innerRoles/*
 syncDDMembUrl: http://worktime.ttkuaiban.com/api/dingding/syncCorpMembs