Browse Source

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper

ggooalice 2 years ago
parent
commit
c3fb56b346

+ 77 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -484,6 +484,75 @@ public class WeiXinCorpController {
                     ReportServiceImpl.corpwxJobCenter.put(jobId, result);
                     UserServiceImpl.corpwxJobCenter.put(jobId, result);
                     TaskServiceImpl.corpwxJobCenter.put(jobId, result);
+                } else if ("auto_activate".equals(infoType)) {
+                    //被邀请的同事自动激活使用
+                    //{"xml":{"Scene":1,"InfoType":"auto_activate",
+                    // "AccountList":{"Type":1,"PreviousStatus":1,"UserId":"woy9TkCAAACuqbgmQBZxra6gy6Bv7mMg",
+                    // "ExpireTime":1671465600,"ActiveCode":"LA10000001400000163774145"},
+                    // "ServiceCorpId":"wwf11426cf618e1703",
+                    // "AuthCorpId":"wpy9TkCAAA6ii2OYKAEj5rCEqjwEQSuA","TimeStamp":1668761791}}
+                    String corpId = jsonObject.getString("AuthCorpId");
+                    org.json.JSONObject authUserJson = jsonObject.getJSONObject("AccountList");
+                    String authUserId = authUserJson.getString("UserId");
+                    User oneUser = userMapper.selectOne(new QueryWrapper<User>().eq("corpwx_userid", authUserId));
+                    if (oneUser == null) {
+                        //生成该用户
+                        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectById(corpId);
+                        if (wxCorpInfo != null) {
+                            Integer companyId = wxCorpInfo.getCompanyId();
+                            SysRole defaultRole = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", companyId).eq("is_default", 1));
+
+                            if (wxCorpInfo.getSaasSyncContact() == 1) {
+                                //直接通过企业微信通讯录同步
+                                JSONObject userObj = getUserInfo(getCorpAccessToken(wxCorpInfo), authUserId);
+                                System.out.println("userObj=="+userObj);
+                                //成功获取到通讯录的个人详情
+                                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");
+                                String openUserId = userObj.getString("open_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(userId)
+                                        .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);
+                                }
+                            }
+                        }
+                    }
                 }
             }
         } catch (Exception e) {
@@ -571,6 +640,7 @@ public class WeiXinCorpController {
                                 newCompany.setId(wxCorpInfo.getCompanyId());
                                 newCompany.setExpirationDate(endTime);
                                 newCompany.setSetMeal(1);
+                                newCompany.setStaffCountMax(wxOrder.getUserCount());
                                 companyMapper.updateById(newCompany);
                                 System.out.println("有效期变更为:" + endTime);
                             }
@@ -1206,8 +1276,8 @@ public class WeiXinCorpController {
                         project.setCreatorId(user.getId());
                         project.setCreatorName(user.getName());
                         project.setCreateDate(LocalDate.now());
-                        project.setProjectCode("example1");
-                        project.setProjectName(MessageUtils.message("project.example"));
+                        project.setProjectCode("example");
+                        project.setProjectName("示例项目");
                         projectMapper.insert(project);
                         //todo:  设置初始项目参与人
                         Participation participation=new Participation();
@@ -1223,13 +1293,13 @@ public class WeiXinCorpController {
                         TaskGroup taskGroup = new TaskGroup();
                         taskGroup.setProjectId(project.getId())
                                 .setInchargerId(user.getId())
-                                .setName(MessageUtils.message("entry.projectStage"));
+                                .setName("项目阶段");
                         taskGroupMapper.insert(taskGroup);
                         Stages stage = new Stages();
                         stage.setGroupId(taskGroup.getId());
                         stage.setSequence(1);
                         stage.setProjectId(project.getId());
-                        stage.setStagesName(MessageUtils.message("excel.WorkUnfolds"));
+                        stage.setStagesName("工作开展");
                         stagesMapper.insert(stage);
                         Task task=new Task();
                         task.setCreateDate(LocalDate.now());
@@ -1244,7 +1314,7 @@ public class WeiXinCorpController {
                         task.setStagesId(stage.getId());
                         task.setGroupId(taskGroup.getId());
                         task.setSeq(0);
-                        task.setName(MessageUtils.message("Stages.example"));
+                        task.setName("示例任务");
                         taskMapper.insert(task);
                     }
 
@@ -1300,6 +1370,8 @@ public class WeiXinCorpController {
                         }
                         LocalDateTime endTime = wxOrder.getEndTime();
                         newCompany.setExpirationDate(endTime);
+                        newCompany.setSetMeal(1);
+                        newCompany.setStaffCountMax(wxOrder.getUserCount());
                         companyMapper.updateById(newCompany);
                         System.out.println("版本变更成功,到期时间更新成功。");
                     }else {

+ 3 - 1
fhKeeper/formulahousekeeper/timesheet_h5/public/index.html

@@ -21,10 +21,12 @@
 
     <meta name="wpk-bid" content="dta_2_71020">
         <script>
-        var isDingtalk = navigator && /DingTalk/.test(navigator.userAgent);var isProductEnv = window &&window.location &&window.location.host 
+        var isDingtalk = navigator && /DingTalk/.test(navigator.userAgent);
+        var isProductEnv = window &&window.location &&window.location.host 
         && window.location.host.indexOf('//127.0.0.1')===-1
         && window.location.host.indexOf('//localhost')===-1
         && window.location.host.indexOf('//192.168.')===-1
+        && window.location.host.indexOf('//mldworktime')===-1
         // 如果有其它测试域名,请一起排掉,减少测试环境对生产环境监控的干扰
         if (isProductEnv) {    !(function(c,i,e,b){var h=i.createElement("script");var f=i.getElementsByTagName("script")[0];h.type="text/javascript";h.crossorigin=true;h.onload=function(){c[b]||(c[b]=new c.wpkReporter({bid:"dta_2_71020"}));c[b].installAll()};f.parentNode.insertBefore(h,f);h.src=e})(window,document,"https://g.alicdn.com/woodpeckerx/jssdk??wpkReporter.js","__wpk"); }
     </script>