Explorar o código

车间工时对接企业微信通讯录

seyason hai 1 ano
pai
achega
6e05f85a10
Modificáronse 16 ficheiros con 266 adicións e 481 borrados
  1. 3 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/constant/Constant.java
  2. 2 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ExpenseSheetController.java
  3. 6 6
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FeishuInfoController.java
  4. 2 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/UserController.java
  5. 170 339
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  6. 10 7
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/WxCorpInfo.java
  7. 20 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/InformationServiceImpl.java
  8. 7 7
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  9. 1 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  10. 16 73
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/SysRoleServiceImpl.java
  11. 5 3
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java
  12. 15 15
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  13. 2 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/task/TimingTask.java
  14. 3 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/WxCorpInfoMapper.xml
  15. 2 0
      fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue
  16. 2 1
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

+ 3 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/constant/Constant.java

@@ -27,7 +27,7 @@ public class Constant {
 //    public static final String ACCESS_KEY = "280d6f0e4a774117905ba789a9f0b978";//百度图像识别accessKey
 //    public static final String SECRET_KEY = "43b460e124eb474c8cdb7441dc30d66d";//百度图像识别secretKey
     //角色定义
-    public static final String[] ROLE_NAMES = {"普通员工","超级管理员", "系统管理员", "无","财务管理员","项目管理员","公司领导","项目经理"};
+    public static final String[] ROLE_NAMES = {"超级管理员", "系统管理员", "生产部经理","组员","高管"};
 
     public static final String ROLE_SUPER_MANAGER = "超级管理员";
 
@@ -58,4 +58,6 @@ public class Constant {
     public static final String[] LEAVE_WAIT_CHECK= {"请假人","请假类型","请假时间","备注"};
     //请假审核通知
     public static final String[] LEAVE_CHECK= {"审核结果","审核人","请假时间","备注"};
+
+    public static final String[] DEFAULT_PROD_CATEGORY = {"铝铆焊件", "钢铆焊件", "非铆焊件"};
 }

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

@@ -62,7 +62,7 @@ public class ExpenseSheetController {
         User user = userMapper.selectById(token);
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部报销单");
         if (functionList.size() == 0) {
-            //普通员工只能看自己的
+            //组员只能看自己的
             sheet.setOwnerId(user.getId());
         }
         sheet.setCompanyId(user.getCompanyId());
@@ -99,7 +99,7 @@ public class ExpenseSheetController {
         User user = userMapper.selectById(token);
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部报销单");
         if (functionList.size() == 0) {
-            //普通员工只能看自己的
+            //组员只能看自己的
             sheet.setOwnerId(user.getId());
         }
         sheet.setCompanyId(user.getCompanyId());

+ 6 - 6
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FeishuInfoController.java

@@ -181,7 +181,7 @@ public class FeishuInfoController {
                     departmentFeishuMapper.insert(departmentFeishu);
                 }
             }
-            SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", company.getId()).eq("rolename","普通员工"));
+            SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", company.getId()).eq("rolename","组员"));
             List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", company.getId()));
             List<DepartmentFeishu> departmentFeishuList = departmentFeishuMapper.selectList(new QueryWrapper<DepartmentFeishu>().eq("corpid", corpId));
             List<User> userList=new ArrayList<>();
@@ -213,7 +213,7 @@ public class FeishuInfoController {
                     User user = new User();
                     //在当前部门下的员工
                     user.setId(SnowFlake.nextId()+"")
-                            .setRoleId(role.getId())//默认普通员工
+                            .setRoleId(role.getId())//默认组员
                             .setRoleName(role.getRolename())
                             .setCompanyId(company.getId())
                             .setName(userJson.getString("name"))
@@ -249,7 +249,7 @@ public class FeishuInfoController {
                 //在当前部门下的员工
                 String max = departments.get(0);
                 user.setId(SnowFlake.nextId()+"")
-                        .setRoleId(role.getId())//默认普通员工
+                        .setRoleId(role.getId())//默认组员
                         .setRoleName(role.getRolename())
                         .setCompanyId(company.getId())
                         .setName(userInfo.getString("name"))
@@ -619,7 +619,7 @@ public class FeishuInfoController {
         if(feishuInfoList.size()>0){
             FeishuInfo feishuInfo = feishuInfoList.get(0);
             List<User> allUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", feishuInfo.getCompanyId()));
-            SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id",feishuInfo.getCompanyId()).eq("rolename","普通员工"));
+            SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id",feishuInfo.getCompanyId()).eq("rolename","组员"));
             //通讯录权限范围变更
             //todo:新增的
             if(eventOb!=null&&eventOb.getJSONObject("added").size()>0){
@@ -723,7 +723,7 @@ public class FeishuInfoController {
                             User user = new User();
                             //在当前部门下的员工
                             user.setId(SnowFlake.nextId()+"")
-                                    .setRoleId(role.getId())//默认普通员工
+                                    .setRoleId(role.getId())//默认组员
                                     .setRoleName(role.getRolename())
                                     .setCompanyId(feishuInfo.getCompanyId())
                                     .setName(userJson.getString("name"))
@@ -759,7 +759,7 @@ public class FeishuInfoController {
                             //不存在的人员, 进行插入
                             User user = new User();
                             user.setId(SnowFlake.nextId()+"")
-                                    .setRoleId(role.getId())//默认普通员工
+                                    .setRoleId(role.getId())//默认组员
                                     .setRoleName(role.getRolename())
                                     .setCompanyId(feishuInfo.getCompanyId())
                                     .setName(userOb.getString("name"))

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

@@ -192,7 +192,7 @@ public class UserController {
      * id 要修改的用户id 修改时传
      * name 用户名
      * phone 电话号码
-     * role 角色 0-普通员工 2-管理员
+     * role 角色 0-组员 2-管理员
      * cost 成本
      * departmentId 部门id 不传或0-其他部门 其他部门id-相应部门
      * departmentCascade 部门层叠关系字符串 默认"0"
@@ -218,7 +218,7 @@ public class UserController {
     }
 
     /**
-     * 切换权限 负责人可以将本公司的管理员切换至普通员工或者反之
+     * 切换权限 负责人可以将本公司的管理员切换至组员或者反之
      * id 目标id
      */
     @RequestMapping("/switchPermission")

+ 170 - 339
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -123,6 +123,8 @@ public class WeiXinCorpController {
     @Resource
     private SysRoleMapper sysRoleMapper;
     @Resource
+    private ProdCategoryMapper prodCategoryMapper;
+    @Resource
     private ParticipationMapper participationMapper;
     @Resource
     private TaskGroupMapper taskGroupMapper;
@@ -518,7 +520,7 @@ public class WeiXinCorpController {
                     System.out.println("成员关注应用事件!");
                     String corpWxUserId = jsonObject.getString("FromUserName");
                     WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectById(corpId);
-                    if (wxCorpInfo != null && wxCorpInfo.getSaasSyncContact() == 1) {
+                    if (wxCorpInfo != null) {
                         //企业存在,生成对应的用户
                         Integer companyId = wxCorpInfo.getCompanyId();
                         User find = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", companyId).eq("corpwx_userid", corpWxUserId));
@@ -655,37 +657,35 @@ public class WeiXinCorpController {
                         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectById(corpId);
                         if (wxCorpInfo != null && wxCorpInfo.getAuthMode() == 1) {//成员授权模式下,自动激活需要创建用户
                             Integer companyId = wxCorpInfo.getCompanyId();
-                            if (wxCorpInfo.getSaasSyncContact() == 1) {
-                                //先插入表,不然前端用户立马点击进入应用会找不到人,
-                                User user = wxCorpInfoService.generateUserInfo(companyId, authUserId);
-                                //查询详情进行更新
-                                JSONObject userObj = getUserInfo(getCorpAccessToken(wxCorpInfo), authUserId);
-                                System.out.println("userObj=="+userObj);
-                                //成功获取到通讯录的个人详情
-                                String userId = userObj.getString("userid");
-                                String openUserId = userObj.getString("open_userid");
-                                User userUpdate = new User();
-                                userUpdate.setId(user.getId());
-                                userUpdate.setName(userObj.getString("name"))
-                                        .setPhone(userObj.getString("mobile"))
-                                        .setCorpwxUserid(openUserId)
-                                        .setCorpwxRealUserid(userId)
-                                        .setJobNumber(openUserId.equals(userId)?null:userId);
+                            //先插入表,不然前端用户立马点击进入应用会找不到人,
+                            User user = wxCorpInfoService.generateUserInfo(companyId, authUserId);
+                            //查询详情进行更新
+                            JSONObject userObj = getUserInfo(getCorpAccessToken(wxCorpInfo), authUserId);
+                            System.out.println("userObj=="+userObj);
+                            //成功获取到通讯录的个人详情
+                            String userId = userObj.getString("userid");
+                            String openUserId = userObj.getString("open_userid");
+                            User userUpdate = new User();
+                            userUpdate.setId(user.getId());
+                            userUpdate.setName(userObj.getString("name"))
+                                    .setPhone(userObj.getString("mobile"))
+                                    .setCorpwxUserid(openUserId)
+                                    .setCorpwxRealUserid(userId)
+                                    .setJobNumber(openUserId.equals(userId)?null:userId);
 
-                                //通过getUserInfo接口获取到的json key是小写的
-                                JSONArray department = userObj.getJSONArray("department");
-                                Integer curUserWXDeptid = getMaxDeptIdFromArray(department);
-                                Department sysDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
+                            //通过getUserInfo接口获取到的json key是小写的
+                            JSONArray department = userObj.getJSONArray("department");
+                            Integer curUserWXDeptid = getMaxDeptIdFromArray(department);
+                            Department sysDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
 
-                                if (sysDept != null) {
-                                    userUpdate.setDepartmentId(sysDept.getDepartmentId());
-                                    List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-                                    userUpdate.setDepartmentCascade(convertDepartmentIdToCascade(userUpdate.getDepartmentId(), allDeptList));
-                                }
-                                userMapper.updateById(userUpdate);
-                                System.out.println("======更新人员======");
-                                sendCardMsg(authUserId);
+                            if (sysDept != null) {
+                                userUpdate.setDepartmentId(sysDept.getDepartmentId());
+                                List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                                userUpdate.setDepartmentCascade(convertDepartmentIdToCascade(userUpdate.getDepartmentId(), allDeptList));
                             }
+                            userMapper.updateById(userUpdate);
+                            System.out.println("======更新人员======");
+                            sendCardMsg(authUserId);
                         }
                     } else {
                         System.err.println("该用户已存在,不需要创建:"+authUserId);
@@ -882,300 +882,118 @@ public class WeiXinCorpController {
                     SysRole defaultRole = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", companyId).eq("is_default", 1));
                     String corpWxUserId = jsonObject.getString("UserID");
                     String openUserId = jsonObject.getString("OpenUserID");
-                    if (wxCorpInfo.getSaasSyncContact() == 1) {
-                        //直接通过企业微信通讯录同步
-                        JSONObject userObj = getUserInfo(getCorpAccessToken(wxCorpInfo), corpWxUserId);
-                        //成功获取到通讯录的个人详情
-                        Long id = SnowFlake.nextId();
-                        //通过getUserInfo接口获取到的json key是小写的
-                        JSONArray department = userObj.getJSONArray("department");
-                        Integer curUserWXDeptid = getMaxDeptIdFromArray(department);
-                        Department sysDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
-                        String userId = userObj.getString("userid");
-                        User user = new User()
-                                .setId(id.toString())
-                                .setRoleId(defaultRole.getId())
-                                .setRoleName(defaultRole.getRolename())
-                                .setName(userObj.getString("name"))
-                                .setPhone(userObj.getString("mobile"))
-                                .setPassword(MD5Util.getPassword("000000"))
-                                .setCorpwxUserid(openUserId)
-                                .setCorpwxRealUserid(corpWxUserId)
-                                .setJobNumber(openUserId.equals(userId)?null:userId)
-                                .setColor(ColorUtil.randomColor())
-                                .setCompanyId(companyId);
-                        if (sysDept != null) {
-                            user.setDepartmentId(sysDept.getDepartmentId());
-                            List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-                            user.setDepartmentCascade(convertDepartmentIdToCascade(user.getDepartmentId(), allDeptList));
-                        }
-                        Integer employeeCnt = userMapper.selectCount(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active",1));
-                        Company company = companyMapper.selectOne(new QueryWrapper<Company>().eq("id", companyId));
-                        ContactSyncLog contactSyncLog = new ContactSyncLog();
-                        contactSyncLog.setCompanyId(companyId);
-                        System.err.println("企业微信自动同步新增人员日志记录===============================");
-                        if (employeeCnt + 1 > company.getStaffCountMax()){
-                            contactSyncLog.setResult(0);
-                            //contactSyncLog.setMsg("公司人员已达上限,请联系客服提高人数上限。");
-                            contactSyncLog.setMsg(MessageUtils.message("wx.employeeFull"));
-                            System.err.println("日志信息:"+ contactSyncLog.toString());
-                            contactSyncLogMapper.insert(contactSyncLog);
-                        }else {
-                            userMapper.insert(user);
-                            contactSyncLog.setResult(1);
-                            //contactSyncLog.setMsg("同步成功");
-                            contactSyncLog.setMsg(MessageUtils.message("wx.synSuccess"));
-                            System.err.println("日志信息:"+ contactSyncLog.toString());
-                            contactSyncLogMapper.insert(contactSyncLog);
-                        }
-                    } else if (!StringUtils.isEmpty(wxCorpInfo.getContactSecret()) && !StringUtils.isEmpty(wxCorpInfo.getContactServer())) {
-                        //通过通讯录secret获取到员工姓名;这是从内部通讯录的
-                        String remoteCorpConcactAccessToken = getRemoteCorpConcactAccessToken(wxCorpInfo);
-                        String curCorpAccessToken = getCorpAccessToken(wxCorpInfo);
-                        Integer curUserWXDeptid = 1;
-                        if (jsonObject.has("Department")) {
-                            if (jsonObject.get("Department") instanceof String) {
-                                String jsonObject1 = jsonObject.getString("Department");
-                                curUserWXDeptid = Integer.parseInt(jsonObject1);
-                            } else if (jsonObject.get("Department") instanceof org.json.JSONArray) {
-                                org.json.JSONArray departmentArray = jsonObject.getJSONArray("Department");
-                                curUserWXDeptid = getMaxDeptIdFromArray(departmentArray);
-                            }
-                        }
-
-                        JSONObject userObj = remoteGetUserDetail(wxCorpInfo, remoteCorpConcactAccessToken, corpWxUserId, curUserWXDeptid, curCorpAccessToken);
-                        if (userObj != null) {
-                            //成功获取到通讯录的个人详情
-                            Long id = SnowFlake.nextId();
-                            JSONArray department = userObj.getJSONArray("department");
-                            curUserWXDeptid = getMaxDeptIdFromArray(department);
-                            Department sysDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
-                            String userId = userObj.getString("userid");
-                            User user = new User()
-                                    .setId(id.toString())
-                                    .setRoleId(defaultRole.getId())
-                                    .setRoleName(defaultRole.getRolename())
-                                    .setName(userObj.getString("name"))
-                                    .setPhone(userObj.getString("mobile"))
-                                    .setPassword(MD5Util.getPassword("000000"))
-                                    .setCorpwxUserid(openUserId)
-                                    .setCorpwxRealUserid(corpWxUserId)
-                                    .setJobNumber(openUserId.equals(userId)?null:userId)
-                                    .setColor(ColorUtil.randomColor())
-                                    .setCorpwxDeptid(curUserWXDeptid)
-                                    .setCompanyId(companyId);
-                            if (sysDept != null) {
-                                user.setDepartmentId(sysDept.getDepartmentId());
-                                List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-                                user.setDepartmentCascade(convertDepartmentIdToCascade(user.getDepartmentId(), allDeptList));
-                            }
-                            Integer employeeCnt = userMapper.selectCount(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active",1));
-                            Company company = companyMapper.selectOne(new QueryWrapper<Company>().eq("id", companyId));
-                            ContactSyncLog contactSyncLog = new ContactSyncLog();
-                            contactSyncLog.setCompanyId(companyId);
-                            System.err.println("企业微信自动同步新增人员日志记录===============================");
-                            if (employeeCnt + 1 > company.getStaffCountMax()){
-                                contactSyncLog.setResult(0);
-                                //contactSyncLog.setMsg("公司人员已达上限,请联系客服提高人数上限。");
-                                contactSyncLog.setMsg(MessageUtils.message("wx.employeeFull"));
-                                System.err.println("日志信息:"+ contactSyncLog.toString());
-                                contactSyncLogMapper.insert(contactSyncLog);
-                            }else {
-                                userMapper.insert(user);
-                                contactSyncLog.setResult(1);
-                                //contactSyncLog.setMsg("同步成功");
-                                contactSyncLog.setMsg(MessageUtils.message("wx.synSuccess"));
-                                System.err.println("日志信息:"+ contactSyncLog.toString());
-                                contactSyncLogMapper.insert(contactSyncLog);
-                            }
-                        }
+                    //直接通过企业微信通讯录同步
+                    JSONObject userObj = getUserInfo(getCorpAccessToken(wxCorpInfo), corpWxUserId);
+                    //成功获取到通讯录的个人详情
+                    Long id = SnowFlake.nextId();
+                    //通过getUserInfo接口获取到的json key是小写的
+                    JSONArray department = userObj.getJSONArray("department");
+                    Integer curUserWXDeptid = getMaxDeptIdFromArray(department);
+                    Department sysDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
+                    String userId = userObj.getString("userid");
+                    User user = new User()
+                            .setId(id.toString())
+                            .setRoleId(defaultRole.getId())
+                            .setRoleName(defaultRole.getRolename())
+                            .setName(userObj.getString("name"))
+                            .setPhone(userObj.getString("mobile"))
+                            .setPassword(MD5Util.getPassword("000000"))
+                            .setCorpwxUserid(openUserId)
+                            .setCorpwxRealUserid(corpWxUserId)
+                            .setJobNumber(openUserId.equals(userId)?null:userId)
+                            .setColor(ColorUtil.randomColor())
+                            .setCompanyId(companyId);
+                    if (sysDept != null) {
+                        user.setDepartmentId(sysDept.getDepartmentId());
+                        List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                        user.setDepartmentCascade(convertDepartmentIdToCascade(user.getDepartmentId(), allDeptList));
+                    }
+                    Integer employeeCnt = userMapper.selectCount(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active",1));
+                    Company company = companyMapper.selectOne(new QueryWrapper<Company>().eq("id", companyId));
+                    ContactSyncLog contactSyncLog = new ContactSyncLog();
+                    contactSyncLog.setCompanyId(companyId);
+                    System.err.println("企业微信自动同步新增人员日志记录===============================");
+                    if (employeeCnt + 1 > company.getStaffCountMax()){
+                        contactSyncLog.setResult(0);
+                        //contactSyncLog.setMsg("公司人员已达上限,请联系客服提高人数上限。");
+                        contactSyncLog.setMsg(MessageUtils.message("wx.employeeFull"));
+                        System.err.println("日志信息:"+ contactSyncLog.toString());
+                        contactSyncLogMapper.insert(contactSyncLog);
+                    }else {
+                        userMapper.insert(user);
+                        contactSyncLog.setResult(1);
+                        //contactSyncLog.setMsg("同步成功");
+                        contactSyncLog.setMsg(MessageUtils.message("wx.synSuccess"));
+                        System.err.println("日志信息:"+ contactSyncLog.toString());
+                        contactSyncLogMapper.insert(contactSyncLog);
                     }
                 } else if ("update_user".equals(changeType)) {
                     String corpWxUserId = jsonObject.getString("UserID");
                     String openUserId = jsonObject.getString("OpenUserID");
-                    if (wxCorpInfo.getSaasSyncContact() == 1) {
-                        Integer curUserWXDeptid = 0;
-                        if (jsonObject.has("Department")) {
-                            String department = jsonObject.getString("Department");
-                            if (department.contains(",")) {
-                                String[] split = department.split(",");
-                                curUserWXDeptid = getMaxDeptIdFromArray(split);
-                            } else {
-                                curUserWXDeptid = Integer.valueOf(department);
-                            }
-                        } else if (jsonObject.has("MainDepartment")) {
-                            //取主部门
-                            curUserWXDeptid = jsonObject.getInt("MainDepartment");
+                    Integer curUserWXDeptid = 0;
+                    if (jsonObject.has("Department")) {
+                        String department = jsonObject.getString("Department");
+                        if (department.contains(",")) {
+                            String[] split = department.split(",");
+                            curUserWXDeptid = getMaxDeptIdFromArray(split);
                         } else {
-                            System.out.println("部门未变更,不处理");
-                        }
-                        if (curUserWXDeptid != 0) {
-                            User user = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", companyId).eq("corpwx_userid", openUserId));
-                            if (user != null) {
-                                User changeUser = new User();
-                                changeUser.setId(user.getId());
-                                if (!curUserWXDeptid.equals(user.getCorpwxDeptid())) {
-                                    changeUser.setCorpwxDeptid(curUserWXDeptid);
-                                    Department department = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
-                                    if (department != null) {
-                                        changeUser.setDepartmentId(department.getDepartmentId());
-                                        List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-                                        changeUser.setDepartmentCascade(convertDepartmentIdToCascade(changeUser.getDepartmentId(), allDeptList));
-                                        userMapper.updateById(changeUser);
-                                    }
-                                }
-                            }
+                            curUserWXDeptid = Integer.valueOf(department);
                         }
+                    } else if (jsonObject.has("MainDepartment")) {
+                        //取主部门
+                        curUserWXDeptid = jsonObject.getInt("MainDepartment");
+                    } else {
+                        System.out.println("部门未变更,不处理");
                     }
-                    //只有授权通讯录同步的,才有机会更新部门或者上级
-                    else if (!StringUtils.isEmpty(wxCorpInfo.getContactSecret()) && !StringUtils.isEmpty(wxCorpInfo.getContactServer())) {
-                        String remoteCorpConcactAccessToken = getRemoteCorpConcactAccessToken(wxCorpInfo);
-                        String curCorpAccessToken = getCorpAccessToken(wxCorpInfo);
-                        Integer curUserWXDeptid = 0;
-                        if (jsonObject.has("Department")) {
-                            String department = jsonObject.getString("Department");
-                            if (department.contains(",")) {
-                                String[] split = department.split(",");
-                                curUserWXDeptid = getMaxDeptIdFromArray(split);
-                            } else {
-                                curUserWXDeptid = Integer.valueOf(department);
-                            }
-                        } else if (jsonObject.has("MainDepartment")) {
-                            //取主部门
-                            curUserWXDeptid = jsonObject.getInt("MainDepartment");
-                        } else {
-                            System.out.println("部门未变更,不处理");
-                        }
-                        if (curUserWXDeptid != 0) {
-                            JSONObject userObj = remoteGetUserDetail(wxCorpInfo, remoteCorpConcactAccessToken, corpWxUserId, curUserWXDeptid, curCorpAccessToken);
-                            if (userObj != null) {
-                                //成功获取到通讯录的个人详情
-                                JSONArray department = userObj.getJSONArray("department");
-                                curUserWXDeptid = getMaxDeptIdFromArray(department);
-                                List<Department> departments = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
-                                Department sysDept = null;
-                                if (departments.size() > 0) {
-                                    sysDept = departments.get(0);
-                                }
-
-                                User user = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", companyId).eq("corpwx_userid", openUserId));
-                                if (user != null) {
-                                    User changeUser = new User();
-                                    changeUser.setId(user.getId());
-
-                                    boolean change = false;
-                                    //姓名变化
-                                    if (!user.getName().equals(userObj.getString("name"))) {
-                                        changeUser.setName(userObj.getString("name"));
-                                        change = true;
-                                    }
-                                    if (sysDept != null && !user.getDepartmentId().equals(sysDept.getDepartmentId())) {
-                                        changeUser.setDepartmentId(sysDept.getDepartmentId());
-                                        change = true;
-                                    }
-                                    //暂不处理直属领导
-//                                if (userObj.containsKey("direct_leader") && userObj.getJSONArray("direct_leader").size() > 0) {
-//                                    String directLeader = userObj.getJSONArray("direct_leader").getString(0);
-//                                    User leader = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", companyId).eq("corpwx_userid", directLeader));
-//                                    if (leader != null && !leader.equals(user.getSuperiorId())) {
-//                                        changeUser.setSuperiorId(leader.getId());
-//                                        change = true;
-//                                    }
-//                                }
-                                    if (change) {
-                                        userMapper.updateById(changeUser);
-                                    }
+                    if (curUserWXDeptid != 0) {
+                        User user = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", companyId).eq("corpwx_userid", openUserId));
+                        if (user != null) {
+                            User changeUser = new User();
+                            changeUser.setId(user.getId());
+                            if (!curUserWXDeptid.equals(user.getCorpwxDeptid())) {
+                                changeUser.setCorpwxDeptid(curUserWXDeptid);
+                                Department department = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
+                                if (department != null) {
+                                    changeUser.setDepartmentId(department.getDepartmentId());
+                                    List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                                    changeUser.setDepartmentCascade(convertDepartmentIdToCascade(changeUser.getDepartmentId(), allDeptList));
+                                    userMapper.updateById(changeUser);
                                 }
                             }
                         }
                     }
+
                 } else if ("create_party".equals(changeType)) {
                     Integer deptId = jsonObject.getInt("Id");
                     Integer parentDeptId = jsonObject.getInt("ParentId");
-                    if (wxCorpInfo.getSaasSyncContact() == 1) {
-                        Department department = new Department();
-                        department.setCompanyId(companyId);
-                        department.setCorpwxDeptid(deptId);
-                        department.setCorpwxDeptpid(parentDeptId);
-                        department.setDepartmentName(jsonObject.getString("Name"));
-                        if (parentDeptId != 1) {
-                            Department parentDept = department.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", parentDeptId));
-                            if (parentDept != null) {
-                                department.setSuperiorId(parentDept.getDepartmentId());
-                            }
-                        }
-                        departmentMapper.insert(department);
-                    } else if (wxCorpInfo != null && !StringUtils.isEmpty(wxCorpInfo.getContactSecret()) && !StringUtils.isEmpty(wxCorpInfo.getContactSecret())) {
-                        //创建部门,调用中转服务接口获取部门详情
-                        String remoteCorpConcactAccessToken = getRemoteCorpConcactAccessToken(wxCorpInfo);
-                        Department department = new Department();
-                        department.setCompanyId(companyId);
-                        department.setCorpwxDeptid(deptId);
-                        department.setCorpwxDeptpid(parentDeptId);
-                        JSONObject deptJson = remoteGetDeptDetail(wxCorpInfo, remoteCorpConcactAccessToken, deptId);
-                        if (deptJson != null) {
-                            //成功获取到了
-                            String name = deptJson.getString("name");
-                            department.setDepartmentName(name);
-                            Department parentDept = department.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", parentDeptId));
-                            if (parentDept != null) {
-                                department.setSuperiorId(parentDept.getDepartmentId());
-                            }
-                            departmentMapper.insert(department);
+                    Department department = new Department();
+                    department.setCompanyId(companyId);
+                    department.setCorpwxDeptid(deptId);
+                    department.setCorpwxDeptpid(parentDeptId);
+                    department.setDepartmentName(jsonObject.getString("Name"));
+                    if (parentDeptId != 1) {
+                        Department parentDept = department.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", parentDeptId));
+                        if (parentDept != null) {
+                            department.setSuperiorId(parentDept.getDepartmentId());
                         }
                     }
+                    departmentMapper.insert(department);
                 } else if ("update_party".equals(changeType)) {
                     //变更部门,可能是名称变化或者父部门变化
                     Integer deptId = jsonObject.getInt("Id");
-                    if (wxCorpInfo.getSaasSyncContact() == 1) {
-                        //同步的情况,只处理父部门变化
-                        if (jsonObject.has("ParentId")) {
-                            Integer parentDeptId = jsonObject.getInt("ParentId");
-                            //发生父部门的结构变化了
-                            Department department = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", wxCorpInfo.getCompanyId()).eq("corpwx_deptid", deptId));
-                            if (department != null) {
-                                Department parentDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", wxCorpInfo.getCompanyId()).eq("corpwx_deptid", parentDeptId));
-                                if (parentDept != null) {
-                                    department.setSuperiorId(parentDept.getDepartmentId());
-                                    departmentMapper.updateById(department);
-                                } else {
-                                    //父部门不存在,自己变成一级部门
-                                    departmentMapper.updateNullSuperior(department.getDepartmentId());
-                                }
-                            }
-                        }
-                    } else if (wxCorpInfo != null && !StringUtils.isEmpty(wxCorpInfo.getContactSecret()) && !StringUtils.isEmpty(wxCorpInfo.getContactServer())) {
-                        if (jsonObject.has("ParentId")) {
-                            Integer parentDeptId = jsonObject.getInt("ParentId");
-                            //发生父部门的结构变化了
-                            Department department = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", wxCorpInfo.getCompanyId()).eq("corpwx_deptid", deptId));
-                            if (department != null) {
-                                if (parentDeptId == 1) {//是一级部门
-                                    departmentMapper.updateNullSuperior(department.getDepartmentId());
-                                } else {
-                                    Department parentDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", wxCorpInfo.getCompanyId()).eq("corpwx_deptid", parentDeptId));
-                                    if (parentDept != null) {
-                                        department.setSuperiorId(parentDept.getDepartmentId());
-                                        departmentMapper.updateById(department);
-                                    }
-                                }
-                            }
-                        }
-                        if (jsonObject.has("Name")) {
-                            //发生了部门名称变化
-                            String remoteCorpConcactAccessToken = getRemoteCorpConcactAccessToken(wxCorpInfo);
-                            String url = TRANSMIT_SERVER_GET_DEPTDETAIL.replace(TRANSMIT_SERVER_STR, wxCorpInfo.getContactServer()).replace("ACCESS_TOKEN", remoteCorpConcactAccessToken).replace("DEPTID", ""+deptId);
-                            String result = restTemplate.getForObject(url, String.class);
-//                            System.out.println("部门返回数据:"+result);
-                            JSONObject resultObj = JSONObject.parseObject(JSONObject.parseObject(result).getString("data"));
-                            if (resultObj.getInteger("errcode") == 0) {
-                                JSONObject serverDept = resultObj.getJSONObject("department");
-                                String name = serverDept.getString("name");
-                                Department department = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", wxCorpInfo.getCompanyId()).eq("corpwx_deptid", deptId));
-                                department.setDepartmentName(name);
+                    //同步的情况,只处理父部门变化
+                    if (jsonObject.has("ParentId")) {
+                        Integer parentDeptId = jsonObject.getInt("ParentId");
+                        //发生父部门的结构变化了
+                        Department department = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", wxCorpInfo.getCompanyId()).eq("corpwx_deptid", deptId));
+                        if (department != null) {
+                            Department parentDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", wxCorpInfo.getCompanyId()).eq("corpwx_deptid", parentDeptId));
+                            if (parentDept != null) {
+                                department.setSuperiorId(parentDept.getDepartmentId());
                                 departmentMapper.updateById(department);
                             } else {
-                                System.err.println("同步获取部门详情报错:"+resultObj.toString());
+                                //父部门不存在,自己变成一级部门
+                                departmentMapper.updateNullSuperior(department.getDepartmentId());
                             }
                         }
                     }
@@ -1420,9 +1238,8 @@ public class WeiXinCorpController {
                         managerRole = sysRoleService.generateDefaultRoles(company.getId());
                     }
                     data.setCompanyId(company.getId());
-                    data.setSaasSyncContact(1);
                     wxCorpInfoMapper.insert(data);
-                    //默认普通员工的角色
+                    //默认组员的角色
                     //检查授权人是否存在
                     int cnt = userMapper.selectCount(new QueryWrapper<User>().eq("corpwx_userid", userId));
                     if (cnt == 0) {
@@ -1863,7 +1680,7 @@ public class WeiXinCorpController {
 //            }
             Company company = companyMapper.selectOne(new QueryWrapper<Company>().eq("id", curUser.getCompanyId()));
             WxCorpInfo info = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", curUser.getCompanyId()));
-            curUser.setUserNameNeedTranslate(info.getSaasSyncContact());
+//            curUser.setUserNameNeedTranslate(info.getSaasSyncContact());
             //检测密码正确时
             UserVO userVO = new UserVO().setCompanyName(company.getCompanyName());
             userVO.setCompany(company);
@@ -2133,7 +1950,7 @@ public class WeiXinCorpController {
                 System.out.println("userid="+curUserid+", name=" + userJson.getString("name")+", mobile="+userJson.getString("mobile"));
                 //不存在的人员, 进行插入
                 user.setId(SnowFlake.nextId()+"")
-                        .setRoleId(defaultRole.getId())//默认普通员工
+                        .setRoleId(defaultRole.getId())//默认组员
                         .setRoleName(defaultRole.getRolename())
                         .setCompanyId(companyId)
                         .setName(userJson.getString("name"))
@@ -2163,7 +1980,7 @@ public class WeiXinCorpController {
                     User user = new User();
 
                     user.setId(SnowFlake.nextId()+"")
-                            .setRoleId(defaultRole.getId())//默认普通员工
+                            .setRoleId(defaultRole.getId())//默认组员
                             .setRoleName(defaultRole.getRolename())
                             .setCompanyId(companyId)
                             .setDepartmentId(0)
@@ -2270,7 +2087,7 @@ public class WeiXinCorpController {
                     if (curId > maxDeptId) maxDeptId = curId;
                 }
                 user.setId(SnowFlake.nextId()+"")
-                        .setRoleId(defaultRole.getId())//默认普通员工
+                        .setRoleId(defaultRole.getId())//默认组员
                         .setRoleName(defaultRole.getRolename())
                         .setCompanyId(companyId)
                         .setName(userJson.getString("name"))
@@ -2335,7 +2152,7 @@ public class WeiXinCorpController {
                         } else {
                             //在当前部门下的员工
                             user.setId(SnowFlake.nextId()+"")
-                                    .setRoleId(defaultRole.getId())//默认普通员工
+                                    .setRoleId(defaultRole.getId())//默认组员
                                     .setRoleName(defaultRole.getRolename())
                                     .setCompanyId(companyId)
                                     .setName(userJson.getString("name"))
@@ -2594,7 +2411,7 @@ public class WeiXinCorpController {
                     if (curId > maxDeptId) maxDeptId = curId;
                 }
                 user.setId(SnowFlake.nextId()+"")
-                        .setRoleId(defaultRole.getId())//默认普通员工
+                        .setRoleId(defaultRole.getId())//默认组员
                         .setRoleName(defaultRole.getRolename())
                         .setCompanyId(companyId)
                         .setName(userJson.getString("name"))
@@ -2897,7 +2714,7 @@ public class WeiXinCorpController {
             User user = new User();
 
             user.setId(SnowFlake.nextId()+"")
-                    .setRoleId(defaultRole.getId())//默认普通员工
+                    .setRoleId(defaultRole.getId())//默认组员
                     .setRoleName(defaultRole.getRolename())
                     .setCompanyId(companyId)
                     .setName(userJson.getString("name"))
@@ -3170,6 +2987,30 @@ public class WeiXinCorpController {
         return msg;
     }
 
+    /**
+     * 获取应用的AccessToken
+     * @param corpInfo
+     * @return
+     * @throws Exception
+     */
+    private String getAppConcactAccessToken(WxCorpInfo corpInfo) throws Exception {
+        String url = GET_CORP_TOKEN.replace("ID", corpInfo.getCorpid()).replace("SECRET", corpInfo.getAgentSecret());
+        ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
+                HttpMethod.GET, null, String.class);
+        if (responseEntity.getStatusCode() == HttpStatus.OK) {
+            String resp = responseEntity.getBody();
+            JSONObject json = JSONObject.parseObject(resp);
+            if (json.getIntValue("errcode") == 0) {
+                String access_token = json.getString("access_token");
+                System.out.println("获取到access_token=="+access_token);
+                corpInfo.setAccessToken(access_token);
+            } else {
+                throw new Exception(json.toJSONString());
+            }
+        }
+        return corpInfo.getAccessToken();
+    }
+
     //获取企业通讯录的accessToken,在私有化部署的企业内部服务器上跑
     private String getCorpConcactAccessToken(WxCorpInfo corpInfo) throws Exception {
         String url = GET_CORP_TOKEN.replace("ID", corpInfo.getCorpid()).replace("SECRET", corpInfo.getContactSecret());
@@ -3180,6 +3021,7 @@ public class WeiXinCorpController {
             JSONObject json = JSONObject.parseObject(resp);
             if (json.getIntValue("errcode") == 0) {
                 String access_token = json.getString("access_token");
+                System.out.println("获取到access_token=="+access_token);
                 corpInfo.setAccessToken(access_token);
             } else {
                 throw new Exception(json.toJSONString());
@@ -3504,37 +3346,24 @@ public class WeiXinCorpController {
                 } else {
                     Company company = new Company().setCompanyName(wxCorpInfo.getCorpName())
                             .setExpirationDate(LocalDateTime.now().plusDays(15));
-                    company.setPackageWorktime(1);
                     //设置来源
                     company.setRegFrom("企业微信");
                     companyMapper.insert(company);
                     wxCorpInfo.setCompanyId(company.getId());
                     wxCorpInfoMapper.updateById(wxCorpInfo);
-                    //生成工作时长
-                    TimeType timeType = new TimeType();
-                    timeType.setCompanyId(company.getId());
-                    timeTypeMapper.insert(timeType);
-                    SysRole smanager = sysRoleService.generateDefaultRoles(company.getId());
-                    //生成项目的成本基线默认条目
-                    String[] array = Constant.DEFAULT_BASE_COST_ITEMS;
-                    for (String baseItem : array) {
-                        ProjectBasecostSetting setting = new ProjectBasecostSetting();
-                        setting.setName(baseItem);
-                        setting.setCompanyId(company.getId());
-                        projectBasecostSettingMapper.insert(setting);
+                    //生成默认的产品分类
+                    for (String prodCate : Constant.DEFAULT_PROD_CATEGORY) {
+                        ProdCategory category = new ProdCategory();
+                        category.setCompanyId(company.getId());
+                        category.setName(prodCate);
+                        prodCategoryMapper.insert(category);
                     }
-                    //todo: 生成项目报表服务默认条目
-                    Integer[] arrayInteger=new Integer[]{1,2,3,4,7};
-                    for (Integer integerItem : arrayInteger) {
-                        CompanyReport companyReport=new CompanyReport();
-                        companyReport.setCompanyId(company.getId());
-                        companyReport.setReportFormId(integerItem);
-                        companyReportMapper.insert(companyReport);
-                    }
-                    String accessToken = getCorpConcactAccessToken(wxCorpInfo);
+
+                    SysRole smanager = sysRoleService.generateDefaultRoles(company.getId());
+//                    String accessToken = getCorpConcactAccessToken(wxCorpInfo);
+                    String accessToken = getAppConcactAccessToken(wxCorpInfo);
                     //获取组织架构 同步部门
                     String departmentInfoResp=wxCorpInfoService.getDepartmentInfoWithApplication(accessToken);
-                    System.out.println(departmentInfoResp);
                     JSONObject departmentInfoOb = JSONObject.parseObject(departmentInfoResp);
                     JSONArray departmentInfoArrays = departmentInfoOb.getJSONArray("department");
                     for (int i = 0; i < departmentInfoArrays.size(); i++) {
@@ -3560,7 +3389,7 @@ public class WeiXinCorpController {
                             departmentWxMapper.insert(departmentWx);
                         }
                     }
-                    SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", company.getId()).eq("rolename","普通员工"));
+                    SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", company.getId()).eq("rolename","组员"));
                     List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", company.getId()));
                     List<DepartmentWx> departmentWxList = departmentWxMapper.selectList(new QueryWrapper<DepartmentWx>().eq("corpid", corpid));
                     List<User> userList=new ArrayList<>();
@@ -3596,7 +3425,7 @@ public class WeiXinCorpController {
                             User user = new User();
                             //在当前部门下的员工
                             user.setId(SnowFlake.nextId()+"")
-                                    .setRoleId(role.getId())//默认普通员工
+                                    .setRoleId(role.getId())//默认组员
                                     .setRoleName(role.getRolename())
                                     .setCompanyId(company.getId())
                                     .setName(userJson.getString("name"))
@@ -3610,9 +3439,11 @@ public class WeiXinCorpController {
                             Optional<DepartmentWx> dpWx = departmentWxList.stream().filter(dl -> dl.getWxDeptid().equals(max)).findFirst();
                             if(dpWx.isPresent()){
                                 Optional<Department> dp = departmentList.stream().filter(dl -> dl.getDepartmentId().equals(dpWx.get().getSysDeptid())).findFirst();
-                                user.setDepartmentName(dp.get().getDepartmentName());
-                                user.setDepartmentId(dp.get().getDepartmentId());
-                                user.setDepartmentCascade(convertDepartmentIdToCascade(dp.get().getDepartmentId(),departmentList));
+                                if (dp.isPresent()) {
+                                    user.setDepartmentName(dp.get().getDepartmentName());
+                                    user.setDepartmentId(dp.get().getDepartmentId());
+                                    user.setDepartmentCascade(convertDepartmentIdToCascade(dp.get().getDepartmentId(),departmentList));
+                                }
                             }
                             boolean b = userList.stream().anyMatch(ul ->ul.getCorpwxUserid()!=null&&ul.getCorpwxUserid().equals(user.getCorpwxUserid()));
                             if(!b){

+ 10 - 7
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/WxCorpInfo.java

@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2022-11-07
+ * @since 2023-07-27
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -81,6 +81,12 @@ public class WxCorpInfo extends Model<WxCorpInfo> {
     @TableField("agentid")
     private Integer agentid;
 
+    /**
+     * 授权企业内应用的secret
+     */
+    @TableField("agent_secret")
+    private String agentSecret;
+
     /**
      * 通讯录ApiSecret
      */
@@ -93,18 +99,15 @@ public class WxCorpInfo extends Model<WxCorpInfo> {
     @TableField("contact_server")
     private String contactServer;
 
-    /**
-     * 作为第三方平台,是否自动同步企业微信通讯录。对老数据关闭,新企业默认开启
-     */
-    @TableField("saas_sync_contact")
-    private Integer saasSyncContact;
-
     /**
      * 开通应用时的授权方式:0-管理员,1-成员授权
      */
     @TableField("auth_mode")
     private Integer authMode;
 
+    @TableField("saas_sync_contact")
+    private Integer saasSyncContact;
+
 
     @Override
     protected Serializable pkVal() {

+ 20 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/InformationServiceImpl.java

@@ -49,26 +49,26 @@ public class InformationServiceImpl extends ServiceImpl<InformationMapper, Infor
             List<Information> information = informationMapper.selectList(new QueryWrapper<Information>()
                     .eq("user_id", user.getId()).orderByDesc("time").last("LIMIT 20"));
             WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",user.getCompanyId()));
-            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                List<User> users = userMapper.selectList(new QueryWrapper<User>().eq("company_id",user.getCompanyId()));
-                for (Information info : information) {
-                    if (info.getMsg() == null){
-                        continue;
-                    } else if (info.getMsg().contains("更新任务进展为")){
-                        String name = info.getMsg().substring(0, info.getMsg().indexOf("更新任务进展为"));
-                        String userWxId = "";
-                        for (User item : users) {
-                            if (name.equals(item.getName())){
-                                userWxId = item.getCorpwxRealUserid();
-                                break;
-                            }
-                        }
-                        String msg = info.getMsg();
-                        String newMsg = msg.replace(name, "$userName=" + userWxId + "$");
-                        info.setMsg(newMsg);
-                    }
-                }
-            }
+//            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+//                List<User> users = userMapper.selectList(new QueryWrapper<User>().eq("company_id",user.getCompanyId()));
+//                for (Information info : information) {
+//                    if (info.getMsg() == null){
+//                        continue;
+//                    } else if (info.getMsg().contains("更新任务进展为")){
+//                        String name = info.getMsg().substring(0, info.getMsg().indexOf("更新任务进展为"));
+//                        String userWxId = "";
+//                        for (User item : users) {
+//                            if (name.equals(item.getName())){
+//                                userWxId = item.getCorpwxRealUserid();
+//                                break;
+//                            }
+//                        }
+//                        String msg = info.getMsg();
+//                        String newMsg = msg.replace(name, "$userName=" + userWxId + "$");
+//                        info.setMsg(newMsg);
+//                    }
+//                }
+//            }
             httpRespMsg.data = information;
         } catch (NullPointerException e) {
             //httpRespMsg.setError("验证失败");

+ 7 - 7
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -255,7 +255,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             User user = userMapper.selectById(request.getHeader("Token"));
             Integer companyId = user.getCompanyId();
             List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部项目");
-            //判断用户的角色,如果是管理员和负责人,查看全部的。如果是普通员工,只能是看到参与的项目
+            //判断用户的角色,如果是管理员和负责人,查看全部的。如果是组员,只能是看到参与的项目
             QueryWrapper<Project> queryWrapper = null;
             List<Department> allDepartmentList=departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",companyId));
             List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", user.getId()).eq("company_id", companyId));
@@ -271,7 +271,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //本人所在部门
             deptIds.add(user.getDepartmentId());
             if (functionList.size() == 0) {
-                //普通员工
+                //组员
                 List<Participation> pList = participationMapper.selectList(new QueryWrapper<Participation>().eq("user_id", user.getId()));
                 List<Integer> projectIds = new ArrayList<>();
                 if (pList.size() > 0) {
@@ -2133,7 +2133,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
-        //判断用户的角色,如果是管理员和负责人,查看全部的。如果是普通员工,只能是看到参与的项目
+        //判断用户的角色,如果是管理员和负责人,查看全部的。如果是组员,只能是看到参与的项目
         QueryWrapper<Project> queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         List<Project> projectList = projectMapper.selectList(queryWrapper);
@@ -2746,7 +2746,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 //            projectIds.add(targetProjectId);
 //        } else {
 //            if (functionList.size() == 0) {
-//                //普通员工只看自己相关的
+//                //组员只看自己相关的
 //                List<Participation> participationList
 //                        = participationMapper.selectList(new QueryWrapper<Participation>().in("user_id", userIds));
 //                projectIds = participationList.stream().map(Participation::getProjectId).collect(Collectors.toList());
@@ -6396,10 +6396,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部项目");
-        //判断用户的角色,如果是管理员和负责人,查看全部的。如果是普通员工,只能是看到参与的项目
+        //判断用户的角色,如果是管理员和负责人,查看全部的。如果是组员,只能是看到参与的项目
         QueryWrapper<Project> queryWrapper = null;
         if (functionList.size() == 0) {
-            //普通员工
+            //组员
             List<Participation> pList = participationMapper.selectList(new QueryWrapper<Participation>().eq("user_id", user.getId()));
             List<Integer> projectIds = new ArrayList<>();
             if (pList.size() > 0) {
@@ -8706,7 +8706,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 //            projectIds.add(targetProjectId);
 //        } else {
 //            if (functionList.size() == 0) {
-//                //普通员工只看自己相关的
+//                //组员只看自己相关的
 //                List<Participation> participationList
 //                        = participationMapper.selectList(new QueryWrapper<Participation>().in("user_id", userIds));
 //                projectIds = participationList.stream().map(Participation::getProjectId).collect(Collectors.toList());

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2663,7 +2663,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         reportsFromProjects = reportMapper.getProjectMembReportByDate(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment, auditorPids);
                     }
                 } else {
-                    //普通员工只能看自己的
+                    //组员只能看自己的
                     if (timeType.getShowFillauditTime() == 1) {
                         reportsFromProjects = reportMapper.getAllReportByDateWithReportLog(startDate, null, user.getId(), endDate, projectId,stateKey,branchDepartment);
                     } else {

+ 16 - 73
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/SysRoleServiceImpl.java

@@ -38,7 +38,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
 
     public static final HashMap<String, String[]> moduleMaps = new HashMap();
     static {
-        moduleMaps.put("普通员工", employeeModules);
+        moduleMaps.put("组员", employeeModules);
         moduleMaps.put("项目经理", pmModules);
         moduleMaps.put("财务管理员", financeModules);
         moduleMaps.put("项目管理员", pmoModules);
@@ -55,7 +55,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
             "项目阶段工时表", "加班情况统计表"};
     public static final HashMap<String, String[]> functionMaps = new HashMap();
     static {
-        functionMaps.put("普通员工", employeeFunctions);
+        functionMaps.put("组员", employeeFunctions);
         functionMaps.put("项目经理", pmFunctions);
         functionMaps.put("财务管理员", financeFunctions);
         functionMaps.put("项目管理员", pmoFunctions);
@@ -95,37 +95,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         SysRole sManager = null;
 
         //按照公司开通的模块进行匹配
-        QueryWrapper<SysModule> queryWrapper = new QueryWrapper<SysModule>().eq("package_time", 1);
-        if (company.getPackageProject() == 1) {
-            queryWrapper.or().eq("package_project", 1);
-        }
-        if (company.getPackageOa() == 1) {
-            queryWrapper.or().eq("package_oa", 1);
-        }
-        if (company.getPackageExpense() == 1) {
-            queryWrapper.or().eq("package_expense", 1);
-        }
-        if (company.getPackageCustomer() == 1) {
-            queryWrapper.or().eq("package_customer", 1);
-        }
-        if (company.getPackageEngineering() == 1) {
-            queryWrapper.or().eq("package_engineering", 1);
-        }
-        if (company.getPackageContract() == 1) {
-            queryWrapper.or().eq("package_contract", 1);
-        }
-        if (company.getPackageEtimecard()== 1) {
-            queryWrapper.or().eq("package_etimecard", 1);
-        }
-        if (company.getPackageFinance() == 1) {
-            queryWrapper.or().eq("package_finance", 1);
-        }
-        if (timeType.getReportWorkflow() == 1) {
-            queryWrapper.or().eq("report_workflow", 1);
-        }
-        if (timeType.getNeedDeptAudit() == 1) {
-            queryWrapper.or().eq("need_dept_audit", 1);
-        }
+        QueryWrapper<SysModule> queryWrapper = new QueryWrapper<SysModule>();
         queryWrapper.orderByAsc("orderitem");
 
         List<SysModule> modules = sysModuleMapper.selectList(queryWrapper);
@@ -133,39 +103,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
             System.err.println("请先初始化sys_module和sys_function表");
             return null;
         }
-        QueryWrapper<SysFunction> functionQueryWrapper = new QueryWrapper<SysFunction>().eq("package_time", 1);
-        if (company.getPackageProject() == 1) {
-            functionQueryWrapper.or().eq("package_project", 1);
-        }
-        if (company.getPackageOa() == 1) {
-            functionQueryWrapper.or().eq("package_oa", 1);
-        }
-        if (company.getPackageExpense() == 1) {
-            functionQueryWrapper.or().eq("package_expense", 1);
-        }
-        if (company.getPackageCustomer() == 1) {
-            functionQueryWrapper.or().eq("package_customer", 1);
-        }
-        if (company.getPackageEngineering() == 1) {
-            functionQueryWrapper.or().eq("package_engineering", 1);
-        }
-        if (company.getPackageContract() == 1) {
-            functionQueryWrapper.or().eq("package_contract", 1);
-        }
-        if (company.getPackageEtimecard()== 1) {
-            functionQueryWrapper.or().eq("package_etimecard", 1);
-        }
-        if (company.getPackageFinance() == 1) {
-            functionQueryWrapper.or().eq("package_finance", 1);
-        }
-        //企业微信考勤查看全部的权限
-        if (timeType.getSyncCorpwxTime() == 1) {
-            functionQueryWrapper.or().eq("sync_corpwx_time", 1);
-        }
-        //开通财务审核功能的
-        if (timeType.getFinanceAudit() == 1) {
-            functionQueryWrapper.or().eq("finance_audit", 1);
-        }
+        QueryWrapper<SysFunction> functionQueryWrapper = new QueryWrapper<SysFunction>();
+
         functionQueryWrapper.orderByAsc("seq");
 
         List<SysFunction> functions = sysFunctionMapper.selectList(functionQueryWrapper);
@@ -184,12 +123,16 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                 generateRole(str, company, modules, functions);
             } else {
                 //其他角色按照过滤的来生成
-                List<SysModule> filteredModules = modules.stream().filter(
-                        m->Arrays.stream(moduleMaps.get(str)).anyMatch(curModule->curModule.equals(m.getName()))
-                ).collect(Collectors.toList());
-                List<SysFunction> filteredFunctions = functions.stream().filter(
-                        m->Arrays.stream(functionMaps.get(str)).anyMatch(curModule->curModule.equals(m.getName()))
-                ).collect(Collectors.toList());
+                List<SysModule> filteredModules = new ArrayList<>();
+                List<SysFunction> filteredFunctions = new ArrayList<>();
+                if (moduleMaps.get(str) != null) {
+                    filteredModules = modules.stream().filter(
+                            m->Arrays.stream(moduleMaps.get(str)).anyMatch(curModule->curModule.equals(m.getName()))
+                    ).collect(Collectors.toList());
+                    filteredFunctions = functions.stream().filter(
+                            m->Arrays.stream(functionMaps.get(str)).anyMatch(curModule->curModule.equals(m.getName()))
+                    ).collect(Collectors.toList());
+                }
 
                 generateRole(str, company, filteredModules, filteredFunctions);
             }
@@ -255,7 +198,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         role.setCompanyId(company.getId());
         role.setRolename(roleName);
         role.setRoleDescribe(roleName);
-        if ("普通员工".equals(roleName)) {
+        if ("组员".equals(roleName)) {
             role.setIsDefault(1);
         }
         sysRoleMapper.insert(role);

+ 5 - 3
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -45,6 +45,8 @@ import java.util.stream.Collectors;
 @Service
 @Transactional
 public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements TaskService {
+    @Value("${configEnv.isPrivateDeploy}")
+    private boolean isPrivateDeploy;//企业内部应用,私有化部署的情况
 
     //用于控制线程锁
     public static HashMap<String, CorpwxJobResult> corpwxJobCenter = new HashMap();
@@ -298,7 +300,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                 HSSFRow row = sheet.createRow(rowNum);
                 row.createCell(0).setCellValue(task.getName());
                 row.createCell(1).setCellValue(project.getProjectName());
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                if(wxCorpInfo!=null&& !isPrivateDeploy){
                     Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(task.getExecutorId())).findFirst();
                     if(first.isPresent()){
                         row.createCell(2).setCellValue("$userName="+(first.get().getCorpwxUserid()==null?"":first.get().getCorpwxUserid())+"$");
@@ -328,7 +330,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
             workbook.write(fos);
             fos.flush();
             fos.close();
-            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+            if(wxCorpInfo!=null&&!isPrivateDeploy){
                 String mediaId = wxCorpInfoService.getTranslationMediaId(fileUrlSuffix);
                 String jobId = wxCorpInfoService.syncTranslation(wxCorpInfo.getCorpid(),mediaId,fileUrlSuffix, null);
             /*if(jobId!=null&&!jobId.equals("")){
@@ -461,7 +463,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
             }
             System.out.println("参与搜素的人员列表"+userNameList + userNameList.size());
             HttpRespMsg respMsg=new HttpRespMsg();
-            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1&&userNameList.size()>0){
+            if(wxCorpInfo!=null&&!isPrivateDeploy&&userNameList.size()>0){
                 respMsg = wxCorpInfoService.getBatchSearchUserInfo(wxCorpInfo, userNameList,null);
                 if(respMsg.code.equals("0")){
                     httpRespMsg.setError("姓名为["+String.valueOf(respMsg.data)+"]的人员存在重复,请使用工号!");

+ 15 - 15
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -259,7 +259,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 userVO.setCompany(company);
                 WxCorpInfo info = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", company.getId()));
                 if (info != null) {
-                    userList.get(0).setUserNameNeedTranslate(info.getSaasSyncContact());
+//                    userList.get(0).setUserNameNeedTranslate(info.getSaasSyncContact());
                 }
                 BeanUtils.copyProperties(userList.get(0), userVO);
                 if (userVO.getRoleId() == null || userVO.getRoleId() == 0) {
@@ -385,7 +385,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 if (first == null || !first.isPresent()) {
                     //按照姓名匹配
                     WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
-                    if (wxCorpInfo != null && wxCorpInfo.getSaasSyncContact() == 1) {
+                    if (wxCorpInfo != null && !isPrivateDeploy) {
                         //需要转译的情况;TODO: 验收通过后抽取出去,改成批量一次性搜索全部姓名
                         List<String> userNameList = new ArrayList<>();
                         userNameList.add(name);
@@ -750,7 +750,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         HashMap<String, Object> data = new HashMap<>();
         httpRespMsg.data=data;
         //当企业开启了微信通讯录的情况下
-        if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1 && departmentId == -1){
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && !isPrivateDeploy && departmentId == -1){
             System.out.println("====================开始查询通讯录名单======================");
             HashMap<String, List> result = wxCorpInfoService.getOpenId(wxCorpInfo.getCorpid(), keyword, cursor,1,200);
             List users = result.get("user");
@@ -848,7 +848,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                         user.put("createTime", dtf.format(time));
                     }
                 }
-                if (wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1 && flag){
+                if (wxCorpInfo!=null && !isPrivateDeploy && flag){
                     List<Map<String, Object>> active = new ArrayList<>();
                     List<Map<String, String>> activeInfoByUser = wxCorpInfoService.getActiveInfoByUser(request);
                     for (Map<String, Object> map : list) {
@@ -1948,14 +1948,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 }
                 HSSFRow row = sheet.createRow(rowNum);
                 row.createCell(0).setCellValue(rowNum);
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                if(wxCorpInfo!=null&&!isPrivateDeploy){
                     row.createCell(1).setCellValue("$userName="+(item.getCorpwxUserid()==null?" ":item.getCorpwxUserid())+"$");
                 }else {
                     row.createCell(1).setCellValue(item.getName());
                 }
                 row.createCell(2).setCellValue(item.getRoleName());
                 row.createCell(3).setCellValue(item.getPhone());
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                if(wxCorpInfo!=null&&!isPrivateDeploy){
                     row.createCell(4).setCellValue("$departmentName="+(item.getCorpwxDeptid()==null?" ":item.getCorpwxDeptid())+"$");
                 }else {
                     row.createCell(4).setCellValue(item.getDepartmentName());
@@ -2002,7 +2002,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             workbook.write(fos);
             fos.flush();
             fos.close();
-            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+            if(wxCorpInfo!=null&&!isPrivateDeploy){
                 String mediaId = wxCorpInfoService.getTranslationMediaId(fileUrlSuffix);
                 String jobId = wxCorpInfoService.syncTranslation(wxCorpInfo.getCorpid(),mediaId,fileUrlSuffix, null);
             /*if(jobId!=null&&!jobId.equals("")){
@@ -2203,7 +2203,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             for (User item : userList) {
                 HSSFRow row = sheet.createRow(rowNum);
                 row.createCell(0).setCellValue(rowNum);
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                if(wxCorpInfo!=null&&!isPrivateDeploy){
                     row.createCell(1).setCellValue("$userName="+(item.getCorpwxUserid()==null?"":item.getCorpwxUserid())+"$");
                     row.createCell(2).setCellValue("$departmentName="+(item.getCorpwxDeptid()==null?"":item.getCorpwxDeptid())+"$");
                 }else {
@@ -2219,7 +2219,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             workbook.write(fos);
             fos.flush();
             fos.close();
-            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+            if(wxCorpInfo!=null&&!isPrivateDeploy){
                 String mediaId = wxCorpInfoService.getTranslationMediaId(fileUrlSuffix);
                 String jobId = wxCorpInfoService.syncTranslation(wxCorpInfo.getCorpid(),mediaId,fileUrlSuffix, null);
             /*if(jobId!=null&&!jobId.equals("")){
@@ -2433,7 +2433,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 
         WxCorpInfo info = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", company.getId()));
         if (info != null) {
-            user.setUserNameNeedTranslate(info.getSaasSyncContact());
+//            user.setUserNameNeedTranslate(info.getSaasSyncContact());
         }
 
         UserVO userVO = new UserVO().setCompanyName(company.getCompanyName());
@@ -2523,7 +2523,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         Integer WXCompanyId = user.getCompanyId();
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
         //当企业开启了微信通讯录的情况下
-        if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && !isPrivateDeploy){
             HashMap<String, List> result = wxCorpInfoService.getOpenId(wxCorpInfo.getCorpid(), keyword, cursor,1,200);
             HashMap<String, Object> msgResult = new HashMap<>();
             nextCursor = result.get("nextCursor").get(0).toString();
@@ -3118,7 +3118,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         executor.setExecutorColor(manager.getColor());
         executor.setExecutorName(manager.getName());
         taskExecutorMapper.insert(executor);
-        SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", company.getId()).eq("rolename","普通员工"));
+        SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", company.getId()).eq("rolename","组员"));
         List<JSONObject> deptArrays = ldapGetOU();
         for (JSONObject dept : deptArrays) {
             Department department=new Department();
@@ -3154,7 +3154,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                     .setName(user.getString("name"))
                     .setPhone(user.getString("userPrincipalName"))
                     .setId(SnowFlake.nextId()+"")
-                    .setRoleId(role.getId())//默认普通员工
+                    .setRoleId(role.getId())//默认组员
                     .setRoleName(role.getRolename())
                     .setCompanyId(company.getId())
                     .setColor(ColorUtil.randomColor())
@@ -3178,7 +3178,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Override
     public HttpRespMsg syncDeptWithAD(HttpServletRequest request) throws Exception {
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
-        SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id",companyId).eq("rolename","普通员工"));
+        SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id",companyId).eq("rolename","组员"));
         List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",companyId));
         List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
         List<JSONObject> deptArrays = ldapGetOU();
@@ -3227,7 +3227,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                     .setName(user.getString("name"))
                     .setPhone(user.getString("userPrincipalName"))
                     .setId(SnowFlake.nextId()+"")
-                    .setRoleId(role.getId())//默认普通员工
+                    .setRoleId(role.getId())//默认组员
                     .setRoleName(role.getRolename())
                     .setCompanyId(companyId)
                     .setColor(ColorUtil.randomColor())

+ 2 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/task/TimingTask.java

@@ -648,7 +648,7 @@
 //            return;
 //        }
 //        for (Integer compId : compIds) {
-//            SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id",compId).eq("rolename","普通员工"));
+//            SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id",compId).eq("rolename","组员"));
 //            List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", compId));
 //            List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", compId));
 //            List<JSONObject> deptArrays = userService.ldapGetOU();
@@ -699,7 +699,7 @@
 //                        .setName(user.getString("name"))
 //                        .setPhone(user.getString("userPrincipalName"))
 //                        .setId(SnowFlake.nextId()+"")
-//                        .setRoleId(role.getId())//默认普通员工
+//                        .setRoleId(role.getId())//默认组员
 //                        .setRoleName(role.getRolename())
 //                        .setCompanyId(compId)
 //                        .setColor(ColorUtil.randomColor())

+ 3 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/WxCorpInfoMapper.xml

@@ -17,15 +17,16 @@
         <result column="auth_username" property="authUsername" />
         <result column="company_id" property="companyId" />
         <result column="agentid" property="agentid" />
+        <result column="agent_secret" property="agentSecret" />
         <result column="contact_secret" property="contactSecret" />
         <result column="contact_server" property="contactServer" />
-        <result column="saas_sync_contact" property="saasSyncContact" />
         <result column="auth_mode" property="authMode" />
+        <result column="saas_sync_contact" property="saasSyncContact" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        corpid, corp_name, corp_full_name, corp_scale, corp_industry, corp_sub_industry, location, access_token, expire_time, permanent_code, auth_username, company_id, agentid, contact_secret, contact_server, saas_sync_contact, auth_mode
+        corpid, corp_name, corp_full_name, corp_scale, corp_industry, corp_sub_industry, location, access_token, expire_time, permanent_code, auth_username, company_id, agentid, agent_secret, contact_secret, contact_server, auth_mode, saas_sync_contact
     </sql>
 
     <select id="getWxCompanyList" resultType="com.management.platform.entity.WxCorpInfo">

+ 2 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -2291,6 +2291,7 @@ a {
                     return
                 }
                 this.addGroupPersonBtnLoading = true
+                this.isAddGroupPerson = true
                 for(let i=0;i<this.checkedProjectArr.length;i++){
                     proArr.push(this.checkedProjectArr[i].id)
                 }
@@ -2481,6 +2482,7 @@ a {
                     })
                     return
                 }
+                
                 let proArr = []
                 for(let i=0;i<this.checkedProjectArr.length;i++){
                     proArr.push(this.checkedProjectArr[i].id)

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -359,7 +359,8 @@
                         <span v-if="workForm.time">{{$t('other.attendancePunch')}}: {{workForm.time.startTime}}-{{workForm.time.endTime}}, {{workForm.time.workHours}}{{$t('time.hour')}}</span>
                         <!--批量填报和批量代填不显示考勤记录-->
                         <span v-if="!isBatch && (user.timeType.syncDingding==1 || user.timeType.syncCorpwxTime==1)&&!workForm.time" >{{$t('other.noAttendanceRecord')}}</span>
-                        <span v-if="isBatch && user.company.companyName === mingyiName">{{',考勤时长'}}:{{this.workTimeForMinYi}}{{$t('time.hour')}}</span>
+                        <!--针对明夷,批量填报(不含代填)情况下显示考勤时长-->
+                        <span v-if="!isSubstitude && isBatch && user.company.companyName === mingyiName">{{',考勤时长'}}:{{this.workTimeForMinYi}}{{$t('time.hour')}}</span>
                         <el-button type="default" style="margin-left:5px;" size="small" :loading="syncTimeLoading" 
                         v-if="!isBatch && user.timeType.syncCorpwxTime==1" icon="el-icon-refresh" 
                                 @click="refreshWXCardTime(workForm.createDate)"></el-button>