Przeglądaj źródła

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

QuYueTing 2 miesięcy temu
rodzic
commit
38da34b33b

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

@@ -1106,6 +1106,7 @@ public class WeiXinCorpController {
                             contactSyncLogMapper.insert(contactSyncLog);
                         }else {
                             userMapper.insert(user);
+                            wxCorpInfoService.getUserByCompanyIdAndTransferLicense(companyId,user.getCorpwxUserid());
                             contactSyncLog.setResult(1);
                             //contactSyncLog.setMsg("同步成功");
                             contactSyncLog.setMsg(MessageUtils.message("wx.synSuccess"));
@@ -2385,7 +2386,7 @@ public class WeiXinCorpController {
 
     //改造老版的接口,从平台获取客户通讯录
     @RequestMapping("/getCorpMembsFromPlatform")
-    public HttpRespMsg getCorpMembsFromPlatform(Integer companyId) {
+    public HttpRespMsg getCorpMembsFromPlatform(Integer companyId) throws Exception {
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         Company company = companyMapper.selectOne(new QueryWrapper<Company>().eq("id", companyId));
         Integer employeeCnt = userMapper.selectCount(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active",1));
@@ -2581,6 +2582,9 @@ public class WeiXinCorpController {
                     return msg;
                 }else {
                     userService.saveBatch(newUserList);
+                    for (User user : newUserList) {
+                        wxCorpInfoService.getUserByCompanyIdAndTransferLicense(companyId,user.getCorpwxUserid());
+                    }
                 }
             }
             //姓名,部门,账号的同步更新

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/WxCorpInfoService.java

@@ -89,4 +89,7 @@ public interface WxCorpInfoService extends IService<WxCorpInfo> {
     public String applyEvent(HttpServletRequest request, JSONObject data) throws Exception;
 
     String getAsyncJobResult(String tmpFileJobId,WxCorpInfo wxCorpInfo)  throws Exception;
+
+
+    void getUserByCompanyIdAndTransferLicense(Integer companyId,String takeoverId) throws Exception;
 }

+ 69 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -2485,6 +2485,73 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
         return resultList;
     }
 
+
+    @Override
+    @Async("taskExecutor")
+    public void getUserByCompanyIdAndTransferLicense(Integer companyId,String takeoverId) throws Exception {
+        if (StringUtils.isEmpty(takeoverId)){
+            return;
+        }
+        String providerAccessToken = getProviderAccessToken();
+        String url ="https://qyapi.weixin.qq.com/cgi-bin/license/get_active_info_by_user?provider_access_token=" + providerAccessToken;
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+        List<User> users = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active", 0));
+        if (users.size() != 0 && wxCorpInfo != null && wxCorpInfo.getSaasSyncContact().equals(1)){
+            //发送请求
+            HttpHeaders headers = new HttpHeaders();
+            RestTemplate restTemplate = new RestTemplate();
+            MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+            headers.setContentType(type);
+            headers.add("Accept", MediaType.APPLICATION_JSON.toString());
+            for (User item : users) {
+                JSONObject requestMap = new JSONObject();
+                requestMap.put("corpid", wxCorpInfo.getCorpid());
+                requestMap.put("userid", item.getCorpwxUserid());
+                HttpEntity<JSONObject> entity = new HttpEntity<>(requestMap, headers);
+                ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
+                if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
+                    String resp = ResponseEntity.getBody();
+                    JSONObject respJson = JSONObject.parseObject(resp);
+                    if (respJson.getInteger("errcode")==0){
+                        Integer status = respJson.getInteger("active_status");
+                        if (status.equals(1)){
+                            HashMap<String, String> map = new HashMap<>();
+                            String handoverId = item.getCorpwxUserid();//要转移的成员
+
+                            String url1 ="https://qyapi.weixin.qq.com/cgi-bin/license/batch_transfer_license?provider_access_token=" + providerAccessToken;
+                            HttpHeaders headers1 = new HttpHeaders();
+                            RestTemplate restTemplate1 = new RestTemplate();
+                            MediaType type1 = MediaType.parseMediaType("application/json; charset=UTF-8");
+                            headers1.setContentType(type1);
+                            headers1.add("Accept", MediaType.APPLICATION_JSON.toString());
+                            JSONObject requestMap1 = new JSONObject();
+                            requestMap1.put("corpid", wxCorpInfo.getCorpid());
+                            ArrayList<HashMap<String, String>> list1 = new ArrayList<>();
+                            HashMap<String, String> map1 = new HashMap<>();
+                            map1.put("handover_userid",handoverId);
+                            map1.put("takeover_userid",takeoverId);
+                            list1.add(map1);
+                            requestMap1.put("transfer_list", list1);
+                            HttpEntity<JSONObject> entity1 = new HttpEntity<>(requestMap1, headers1);
+                            ResponseEntity<String> ResponseEntity1=restTemplate1.postForEntity(url1, entity1, String.class);
+                            if (ResponseEntity1.getStatusCode()==HttpStatus.OK){
+                                String body = ResponseEntity1.getBody();
+                                JSONObject respJson1 = JSONObject.parseObject(body);
+
+                                if (respJson1.getInteger("errcode")==0){
+                                    log.info("转移失败");
+                                } else {
+                                    log.info("转移失败:"+respJson1.toJSONString());
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+    }
+
     /**
      * 企业微信账号继承
      * @param handoverId
@@ -2708,4 +2775,6 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
         System.out.println("end getAsyncJobResult method");
         return mediaId;
     }
+
+
 }

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml

@@ -1,5 +1,5 @@
 server:
-  port: 10010
+  port: 10030
   tomcat:
     uri-encoding: utf-8
     max-http-form-post-size: -1
@@ -129,7 +129,7 @@ management:
   security:
     enabled:false:
   server:
-    port: 10012
+    port: 10019
 #  endpoints:
 #    web:
 #      exposure:

Plik diff jest za duży
+ 254 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/AlertTimeController.java


+ 10 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/vo/DeptVo.java

@@ -0,0 +1,10 @@
+package com.management.platform.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class DeptVo
+{
+    private String deptName;
+    private String deptOpenapId;
+}

+ 9 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/vo/MemberVo.java

@@ -0,0 +1,9 @@
+package com.management.platform.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class MemberVo {
+    private String memberName;
+    private String memberUserId;
+}

+ 41 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/vo/OverTimeVo.java

@@ -0,0 +1,41 @@
+package com.management.platform.entity.vo;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class OverTimeVo {
+
+    private String spName;
+    private Long applyTime;
+
+    private Long submitTime;
+
+    private String applyId;
+
+    private List<DeptVo> deptList;
+
+    private List<WorkVo> workVoList;//加班
+
+    private String spNo;
+
+    private Integer spStatus;
+
+    private String leaveName;//请假名称
+
+    private String leaveContent;
+
+    private Long leaveStart;
+    private Long leaveEnd;
+    private Long leaveDuration;
+    private ArrayList<String> fileList;
+
+
+
+
+
+}
+
+

+ 14 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/vo/WorkVo.java

@@ -0,0 +1,14 @@
+package com.management.platform.entity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WorkVo {
+    private String workCotent;
+    private Long duration;
+    private Long beginTime;
+    private Long endTime;
+    private List<MemberVo> memberList;
+}