Browse Source

okr逻辑改版

syh 4 years ago
parent
commit
0303466fbc
65 changed files with 2370 additions and 1091 deletions
  1. 1 108
      src/main/java/cn/com/ctop/okr/config/ShiroConfig.java
  2. 0 77
      src/main/java/cn/com/ctop/okr/controller/FeishuController.java
  3. 2 72
      src/main/java/cn/com/ctop/okr/controller/LoginController.java
  4. 37 125
      src/main/java/cn/com/ctop/okr/controller/OkrController.java
  5. 141 0
      src/main/java/cn/com/ctop/okr/controller/OkrObjectInfoDisclosureController.java
  6. 142 0
      src/main/java/cn/com/ctop/okr/controller/OkrObjectInfoRemindController.java
  7. 142 0
      src/main/java/cn/com/ctop/okr/controller/OkrTaskInfoDisclosureController.java
  8. 140 0
      src/main/java/cn/com/ctop/okr/controller/OkrTaskInfoRemindController.java
  9. 34 0
      src/main/java/cn/com/ctop/okr/controller/WechatDepartmentController.java
  10. 0 2
      src/main/java/cn/com/ctop/okr/dto/OkrDto.java
  11. 57 0
      src/main/java/cn/com/ctop/okr/dto/TagIdModel.java
  12. 103 0
      src/main/java/cn/com/ctop/okr/dto/TagInfoTreeModel.java
  13. 1 1
      src/main/java/cn/com/ctop/okr/dto/UserInfoDto.java
  14. 13 0
      src/main/java/cn/com/ctop/okr/entity/OkrKrInfo.java
  15. 44 0
      src/main/java/cn/com/ctop/okr/entity/OkrObjectInfoDisclosure.java
  16. 44 0
      src/main/java/cn/com/ctop/okr/entity/OkrObjectInfoRemind.java
  17. 12 0
      src/main/java/cn/com/ctop/okr/entity/OkrTaskInfo.java
  18. 48 0
      src/main/java/cn/com/ctop/okr/entity/OkrTaskInfoDisclosure.java
  19. 43 0
      src/main/java/cn/com/ctop/okr/entity/OkrTaskInfoRemind.java
  20. 0 26
      src/main/java/cn/com/ctop/okr/feishu/constant/FeishuConstant.java
  21. 0 89
      src/main/java/cn/com/ctop/okr/feishu/provider/AuthProvider.java
  22. 0 98
      src/main/java/cn/com/ctop/okr/feishu/provider/DepartmentProvider.java
  23. 0 44
      src/main/java/cn/com/ctop/okr/feishu/provider/MessageProvider.java
  24. 0 90
      src/main/java/cn/com/ctop/okr/feishu/provider/SendImage.java
  25. 1 1
      src/main/java/cn/com/ctop/okr/mapper/OkrKrInfoMapper.java
  26. 2 0
      src/main/java/cn/com/ctop/okr/mapper/OkrMemberMapper.java
  27. 14 0
      src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoDisclosureMapper.java
  28. 6 1
      src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoMapper.java
  29. 14 0
      src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoRemindMapper.java
  30. 14 0
      src/main/java/cn/com/ctop/okr/mapper/OkrTaskInfoDisclosureMapper.java
  31. 14 0
      src/main/java/cn/com/ctop/okr/mapper/OkrTaskInfoRemindMapper.java
  32. 3 0
      src/main/java/cn/com/ctop/okr/mapper/QYWxDepartInfoMapper.java
  33. 2 0
      src/main/java/cn/com/ctop/okr/mapper/QYWxUserInfoMapper.java
  34. 18 8
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrMemberMapper.xml
  35. 5 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoDisclosureMapper.xml
  36. 7 7
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoMapper.xml
  37. 5 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoRemindMapper.xml
  38. 5 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrTaskInfoDisclosureMapper.xml
  39. 5 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrTaskInfoRemindMapper.xml
  40. 3 3
      src/main/java/cn/com/ctop/okr/mapper/xml/QYWxDepartInfoMapper.xml
  41. 10 0
      src/main/java/cn/com/ctop/okr/mapper/xml/QYWxUserInfoMapper.xml
  42. 0 21
      src/main/java/cn/com/ctop/okr/service/CorpUserInfoService.java
  43. 8 0
      src/main/java/cn/com/ctop/okr/service/IKrInfoservice.java
  44. 15 0
      src/main/java/cn/com/ctop/okr/service/IOkrObjectInfoDisclosureService.java
  45. 15 0
      src/main/java/cn/com/ctop/okr/service/IOkrObjectInfoRemindService.java
  46. 14 0
      src/main/java/cn/com/ctop/okr/service/IOkrTaskInfoDisclosureService.java
  47. 15 0
      src/main/java/cn/com/ctop/okr/service/IOkrTaskInfoRemindService.java
  48. 2 1
      src/main/java/cn/com/ctop/okr/service/OkrService.java
  49. 9 0
      src/main/java/cn/com/ctop/okr/service/QYWxDepartInfoService.java
  50. 0 186
      src/main/java/cn/com/ctop/okr/service/impl/CorpUserInfoServiceImpl.java
  51. 18 0
      src/main/java/cn/com/ctop/okr/service/impl/KrInfoserviceImpl.java
  52. 31 0
      src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoDisclosureServiceImpl.java
  53. 29 0
      src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoRemindServiceImpl.java
  54. 204 41
      src/main/java/cn/com/ctop/okr/service/impl/OkrServiceImpl.java
  55. 29 0
      src/main/java/cn/com/ctop/okr/service/impl/OkrTaskInfoDisclosureServiceImpl.java
  56. 29 0
      src/main/java/cn/com/ctop/okr/service/impl/OkrTaskInfoRemindServiceImpl.java
  57. 131 0
      src/main/java/cn/com/ctop/okr/service/impl/QYWxDepartInfoServiceImpl.java
  58. 272 0
      src/main/java/cn/com/ctop/okr/utils/CommonConstant.java
  59. 0 88
      src/main/java/cn/com/ctop/okr/utils/JeecgDataAutorUtils.java
  60. 41 0
      src/main/java/cn/com/ctop/okr/utils/MatchTypeEnum.java
  61. 55 0
      src/main/java/cn/com/ctop/okr/utils/QueryCondition.java
  62. 69 0
      src/main/java/cn/com/ctop/okr/utils/QueryRuleEnum.java
  63. 108 0
      src/main/java/cn/com/ctop/okr/vo/QYWxDepartInfoVO.java
  64. 144 0
      src/main/java/cn/com/ctop/okr/vo/SysPermissionDataRuleModel.java
  65. 0 2
      src/main/resources/application.yml

+ 1 - 108
src/main/java/cn/com/ctop/okr/config/ShiroConfig.java

@@ -43,117 +43,10 @@ public class ShiroConfig {
         Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>();
         Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>();
         // 配置不会被拦截的链接 顺序判断
         // 配置不会被拦截的链接 顺序判断
         //登录接口排除
         //登录接口排除
-        //filterChainDefinitionMap.put("/sys/login", "anon");
         filterChainDefinitionMap.put("/sys/wxlogin", "anon");
         filterChainDefinitionMap.put("/sys/wxlogin", "anon");
-        //
-        ////获取加密串
-        //filterChainDefinitionMap.put("/sys/getEncryptedString", "anon");
-        ////短信验证码
-        //filterChainDefinitionMap.put("/sys/sms", "anon");
-        ////手机登录
-        //filterChainDefinitionMap.put("/sys/phoneLogin", "anon");
-        ////校验用户是否存在
-        //filterChainDefinitionMap.put("/sys/user/checkOnlyUser", "anon");
-        ////用户注册
-        //filterChainDefinitionMap.put("/sys/user/register", "anon");
-        ////根据手机号获取用户信息
-        //filterChainDefinitionMap.put("/sys/user/querySysUser", "anon");
-        ////用户忘记密码验证手机号
-        //filterChainDefinitionMap.put("/sys/user/phoneVerification", "anon");
-        ////用户更改密码
-        //filterChainDefinitionMap.put("/sys/user/passwordChange", "anon");
-        ////登录验证码
-        //filterChainDefinitionMap.put("/auth/2step-code", "anon");
-        ////图片预览不限制token
-        //filterChainDefinitionMap.put("/sys/common/view/**", "anon");
-        ////文件下载不限制token
-        //filterChainDefinitionMap.put("/sys/common/download/**", "anon");
-        ////pdf预览
-        //filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");
-        //filterChainDefinitionMap.put("/ctop/bytedanceAreaInfo/**", "anon");
-        //filterChainDefinitionMap.put("/ctop/bytedanceInterestCategory/**", "anon");
-        //filterChainDefinitionMap.put("/template/creative/words/get", "anon");
-        //filterChainDefinitionMap.put("/appium/crawler/*", "anon");
-        //
-        //filterChainDefinitionMap.put("/ctop/kuaishouChannelRegInfo/*", "anon");
-        //
-        //
-        //filterChainDefinitionMap.put("/ctop/byteDance/homePage/report/*", "anon");
-        //filterChainDefinitionMap.put("/ctop/material/top/cost", "anon");
-        //
-        //filterChainDefinitionMap.put("/v1/**", "anon");
-        //
-        //filterChainDefinitionMap.put("/generic/**", "anon");
-        //filterChainDefinitionMap.put("/", "anon");
-        //filterChainDefinitionMap.put("/doc.html", "anon");
-        //filterChainDefinitionMap.put("/**/*.js", "anon");
-        //filterChainDefinitionMap.put("/**/*.css", "anon");
-        //filterChainDefinitionMap.put("/**/*.html", "anon");
-        //filterChainDefinitionMap.put("/**/*.svg", "anon");
-        //filterChainDefinitionMap.put("/**/*.jpg", "anon");
-        //filterChainDefinitionMap.put("/**/*.png", "anon");
-        //filterChainDefinitionMap.put("/**/*.ico", "anon");
-        //filterChainDefinitionMap.put("/druid/**", "anon");
-        //filterChainDefinitionMap.put("/swagger-ui.html", "anon");
-        //filterChainDefinitionMap.put("/swagger**/**", "anon");
-        //filterChainDefinitionMap.put("/webjars/**", "anon");
-        //filterChainDefinitionMap.put("/v2/**", "anon");
-        //filterChainDefinitionMap.put("/kuaishou", "anon");
-        //filterChainDefinitionMap.put("/kuaishou/report", "anon");
-        //filterChainDefinitionMap.put("/ctop/bindAccount/**", "anon");
-        //filterChainDefinitionMap.put("/**/*.mp4", "anon");
-        //
-        ////性能监控
-        //filterChainDefinitionMap.put("/actuator/metrics/**", "anon");
-        //filterChainDefinitionMap.put("/actuator/httptrace/**", "anon");
-        //filterChainDefinitionMap.put("/actuator/redis/**", "anon");
-        ////消息队列
-        //filterChainDefinitionMap.put("/mq/**", "anon");
-        ////模板测试
-        //filterChainDefinitionMap.put("/test/**", "anon");
-        ////oauth接口
-        //filterChainDefinitionMap.put("/auth/**", "anon");
-        //filterChainDefinitionMap.put("/ctop/syncdata/**", "anon");
-        //头条接口
-        //filterChainDefinitionMap.put("/bytedance", "anon");
-        //filterChainDefinitionMap.put("/toutiao/dictitem/list", "anon");
-        //filterChainDefinitionMap.put("/toutiao/loadAllData", "anon");
-        //filterChainDefinitionMap.put("/toutiao/loadSingleData", "anon");
-        //filterChainDefinitionMap.put("/kuaishou/getReport/historyData", "anon");
-        //filterChainDefinitionMap.put("/toutiao/advertiser/**", "anon");
-        //filterChainDefinitionMap.put("/toutiao/industry/list", "anon");
-        //filterChainDefinitionMap.put("/template/bytedance/industry/list", "anon");
-        //filterChainDefinitionMap.put("/template/convert/list", "anon");
-        //filterChainDefinitionMap.put("/template/convert/list/url", "anon");
-        //文件上传接口
-        //filterChainDefinitionMap.put("/upload/**", "anon");
-        //filterChainDefinitionMap.put("/appium/appiumTask/run", "anon");
-        //
-        //filterChainDefinitionMap.put("/system/userCompany/**", "anon");
-        //filterChainDefinitionMap.put("/qywexin", "anon");
-        //filterChainDefinitionMap.put("/sys/feishu/**", "anon");
-        //filterChainDefinitionMap.put("/test/getGroupData/**", "anon");
-        //filterChainDefinitionMap.put("/test/getVideoAndImage/**", "anon");
-        //filterChainDefinitionMap.put("/test/gerCreative/**", "anon");
-        //
-        //filterChainDefinitionMap.put("/report/kuaishouReportDailyAgent/get", "anon");
-        //
-        //filterChainDefinitionMap.put("/appium/appiumTask/run/login", "anon");
-        //filterChainDefinitionMap.put("/zip/download", "anon");
-        //爬虫接口
-        //filterChainDefinitionMap.put("/graphql/video", "anon");
-        //filterChainDefinitionMap.put("/ks/web/test", "anon");
-        //filterChainDefinitionMap.put("/ureport/**", "anon");
-        //filterChainDefinitionMap.put("/ctop/performance/show/**", "anon");
-        //filterChainDefinitionMap.put("/job/test/*", "anon");
-
         filterChainDefinitionMap.put("/callback/qywexin", "anon");
         filterChainDefinitionMap.put("/callback/qywexin", "anon");
         filterChainDefinitionMap.put("/qywx/departAndUser", "anon");
         filterChainDefinitionMap.put("/qywx/departAndUser", "anon");
-        //filterChainDefinitionMap.put("/corp/*", "anon");
-        //filterChainDefinitionMap.put("/okr/*", "anon");
-        //filterChainDefinitionMap.put("/feishu/*", "anon");
-        //filterChainDefinitionMap.put("/qywx/*", "anon");
-        //filterChainDefinitionMap.put("/wxlogin", "anon");
+        filterChainDefinitionMap.put("/department/queryTreeList", "anon");
 
 
 
 
         // 添加自己的过滤器并且取名为jwt
         // 添加自己的过滤器并且取名为jwt

+ 0 - 77
src/main/java/cn/com/ctop/okr/controller/FeishuController.java

@@ -1,77 +0,0 @@
-package cn.com.ctop.okr.controller;
-
-import cn.com.ctop.okr.dto.UserInfoDto;
-import cn.com.ctop.okr.service.CorpUserInfoService;
-import cn.com.ctop.okr.vo.Result;
-import org.apache.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-@Controller
-@RequestMapping("/feishu")
-public class FeishuController {
-    private static Logger logger = Logger.getLogger(FeishuController.class);
-
-    @Autowired
-    private CorpUserInfoService corpUserInfoService;
-
-    @ResponseBody
-    @RequestMapping(value = "/departAndUser")
-    public Result departAndUser(HttpServletRequest request,
-                          HttpServletResponse response){
-        logger.info("获取飞书公司部门和员工信息接口开始");
-        Result result = new Result();
-        result.setSuccess(true);
-
-        try {
-            corpUserInfoService.loadFeishuDepartAndUserInfo();
-        }catch (Exception e){
-            result.setSuccess(false);
-            result.setMessage("获取飞书公司部门和员工信息接口出错啦");
-            logger.error(e.getMessage());
-        }
-
-        return result;
-    }
-
-    /**
-     * 根据名字模糊查询飞书用户
-     * @param dto
-     * @param request
-     * @param response
-     * @return
-     */
-    @ResponseBody
-    @RequestMapping(value = "/getUserListByName")
-    public Result<List<UserInfoDto>> getUserListByName(@RequestBody UserInfoDto dto, HttpServletRequest request,
-                                                             HttpServletResponse response){
-        logger.info("/feishu/getUserListByName 方法开始");
-        Result<List<UserInfoDto>> result = new Result();
-        result.setSuccess(true);
-
-        //if(StringUtils.isBlank(dto.getName())){
-        //    result.setSuccess(false);
-        //    result.setMessage("名字不能为空");
-        //}
-        try {
-            List<UserInfoDto> userInfoList = corpUserInfoService.getUserListByName(dto.getName());
-            result.setResult(userInfoList);
-        }catch (Exception e){
-            logger.error(e.getMessage());
-            result.setSuccess(false);
-            result.setMessage("error");
-        }finally {
-            logger.info("/feishu/getUserListByName 方法结束");
-        }
-
-        return result;
-    }
-
-}

+ 2 - 72
src/main/java/cn/com/ctop/okr/controller/LoginController.java

@@ -2,11 +2,9 @@ package cn.com.ctop.okr.controller;
 
 
 import cn.com.ctop.okr.entity.QYWxUserInfo;
 import cn.com.ctop.okr.entity.QYWxUserInfo;
 import cn.com.ctop.okr.qywx.constant.QYWxConstant;
 import cn.com.ctop.okr.qywx.constant.QYWxConstant;
-import cn.com.ctop.okr.service.CorpUserInfoService;
 import cn.com.ctop.okr.service.QYWxService;
 import cn.com.ctop.okr.service.QYWxService;
 import cn.com.ctop.okr.utils.JwtUtil;
 import cn.com.ctop.okr.utils.JwtUtil;
 import cn.com.ctop.okr.utils.RedisUtil;
 import cn.com.ctop.okr.utils.RedisUtil;
-import cn.com.ctop.okr.vo.LoginUser;
 import cn.com.ctop.okr.vo.Result;
 import cn.com.ctop.okr.vo.Result;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import lombok.val;
 import lombok.val;
@@ -20,85 +18,18 @@ import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.subject.Subject;
 import org.apache.shiro.subject.Subject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
 
-@Controller
+@RestController
 @RequestMapping("/sys")
 @RequestMapping("/sys")
 public class LoginController {
 public class LoginController {
     private static Logger logger = Logger.getLogger(LoginController.class);
     private static Logger logger = Logger.getLogger(LoginController.class);
     @Autowired
     @Autowired
-    private RedisUtil redisUtil;
-    @Autowired
-    private CorpUserInfoService corpUserInfoService;
-    @Autowired
     private QYWxService qyWxService;
     private QYWxService qyWxService;
 
 
-   /* @GetMapping("feishu/url")
-    public Map<String,Object> getUrl(){
-        Map<String,Object>result = new HashMap<>();
-        try {
-            String url = AuthProvider.getAuthUrl("");
-            result.put("url",url);
-            ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
-            return result;
-        } catch (Exception e) {
-            e.printStackTrace();
-            ResultMapUtils.setResultMap(result, StatusCode.COMMON_SERVER_ERROR);
-            return result;
-        }
-    }
-    @GetMapping("/feishu/auth")
-    public Result<JSONObject> feishuAuth(HttpServletRequest request,
-                                         HttpServletResponse response,
-                                         @RequestParam(name = "code",defaultValue = "code") String code,
-                                         @RequestParam(name = "state",defaultValue = "_t") String state) throws IOException {
-        Result<JSONObject> result = new Result<>();
-        //1:根据code值获取用户飞书信息
-        try {
-            if(code.trim().equals("code")){
-                JSONObject setData = new JSONObject();
-                String url = AuthProvider.getAuthUrl("");
-                setData.put("url",url);
-                setData.put("type",1);
-                result.setResult(setData);
-                result.success("重定向");
-                return result;
-            }
-            JSONObject data = AuthProvider.getFeishuUserInfo(code);
-            String accessToken = data.getJSONObject("data").getString("access_token");
-            String openId = data.getJSONObject("data").getString("open_id");
-            //根据accessToken
-            JSONObject userData = AuthProvider.getUserInfo(accessToken);
-            JSONObject dataObject = userData.getJSONObject("data");
-            String email = dataObject.getString("email");
-            if(null == email||email.trim().equals("")){
-                return result.error500(StatusCode.CTOP_FEISHU_EMAIL_NOT_EXIST.getDesc());
-            }
-
-            Integer status = dataObject.getInteger("status");
-            if (status == 1) {
-                result.error500("该用户处于非正常状态!");
-                return result;
-            }
-
-            CorpUserInfo userInfo = corpUserInfoService.getUserInfoByOpenId(openId);
-
-            //用户登录信息
-            Result<JSONObject> getResult = userInfo(userInfo, null);
-            return getResult;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return result.error500(StatusCode.COMMON_SERVER_ERROR.getDesc());
-        }
-    }*/
-
-    @ResponseBody
     @RequestMapping(value = "/wxlogin", method = RequestMethod.POST)
     @RequestMapping(value = "/wxlogin", method = RequestMethod.POST)
     public Result<JSONObject> wxlogin(@RequestParam(name = "code") String code) throws Exception {
     public Result<JSONObject> wxlogin(@RequestParam(name = "code") String code) throws Exception {
         Result<JSONObject> result = new Result<>();
         Result<JSONObject> result = new Result<>();
@@ -183,7 +114,6 @@ public class LoginController {
      * @param response
      * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/logout")
     @RequestMapping(value = "/logout")
     public Result<Object> logout(HttpServletRequest request, HttpServletResponse response) {
     public Result<Object> logout(HttpServletRequest request, HttpServletResponse response) {
         //用户退出逻辑
         //用户退出逻辑

+ 37 - 125
src/main/java/cn/com/ctop/okr/controller/OkrController.java

@@ -8,6 +8,7 @@ import cn.com.ctop.okr.entity.OkrObjectInfo;
 import cn.com.ctop.okr.entity.OkrTaskInfo;
 import cn.com.ctop.okr.entity.OkrTaskInfo;
 import cn.com.ctop.okr.service.OkrService;
 import cn.com.ctop.okr.service.OkrService;
 import cn.com.ctop.okr.vo.Result;
 import cn.com.ctop.okr.vo.Result;
+import com.alibaba.fastjson.JSONObject;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,33 +16,34 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
-@Controller
+@RestController
 @RequestMapping("/okr")
 @RequestMapping("/okr")
 public class OkrController {
 public class OkrController {
     private static Logger logger = Logger.getLogger(OkrController.class);
     private static Logger logger = Logger.getLogger(OkrController.class);
     @Autowired
     @Autowired
     private OkrService okrService;
     private OkrService okrService;
 
 
-    @ResponseBody
+    /**
+     * type = 1 最近一周工作
+     * type = 4 最近四周工作
+     * @param dto
+     * @return
+     */
     @RequestMapping(value = "/insertTaskInfo")
     @RequestMapping(value = "/insertTaskInfo")
-    public Result insertTaskInfo(@RequestBody OkrDto dto ,
-                                 HttpServletRequest request,
-                                 HttpServletResponse response){
-
-        logger.info("okr/insertTaskInfo 方法开始");
+    public Result insertTaskInfo(@RequestBody OkrDto dto){
         Result result = new Result();
         Result result = new Result();
         result.setSuccess(true);
         result.setSuccess(true);
 
 
         OkrTaskInfo taskInfo = dto.getTaskInfo();
         OkrTaskInfo taskInfo = dto.getTaskInfo();
         if(dto == null || dto.getTaskInfo() == null || StringUtils.isBlank(taskInfo.getTaskTitle()) ||
         if(dto == null || dto.getTaskInfo() == null || StringUtils.isBlank(taskInfo.getTaskTitle()) ||
-          taskInfo.getType() == null || taskInfo.getPriority() == null
-        ){
+          taskInfo.getType() == null || taskInfo.getPriority() == null){
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("任务标题、类型、优先级均不可为空");
             result.setMessage("任务标题、类型、优先级均不可为空");
             return result;
             return result;
@@ -49,25 +51,17 @@ public class OkrController {
 
 
         try {
         try {
             okrService.insertTaskInfo(taskInfo);
             okrService.insertTaskInfo(taskInfo);
+            return result;
         }catch(Exception e){
         }catch(Exception e){
             logger.error(e.getMessage());
             logger.error(e.getMessage());
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("error");
             result.setMessage("error");
-        }finally {
-            logger.info("okr/insertTaskInfo 方法结束");
+            return result;
         }
         }
-
-        return result;
-
     }
     }
 
 
-    @ResponseBody
     @RequestMapping(value = "/updateTaskInfo")
     @RequestMapping(value = "/updateTaskInfo")
-    public Result updateTaskInfo(@RequestBody OkrDto dto,
-                                 HttpServletRequest request,
-                                 HttpServletResponse response){
-
-        logger.info("okr/updateTaskInfo 方法开始");
+    public Result updateTaskInfo(@RequestBody OkrDto dto){
         Result result = new Result();
         Result result = new Result();
         result.setSuccess(true);
         result.setSuccess(true);
 
 
@@ -97,7 +91,6 @@ public class OkrController {
         return result;
         return result;
     }
     }
 
 
-    @ResponseBody
     @RequestMapping(value = "/getOkrInfo")
     @RequestMapping(value = "/getOkrInfo")
     public Result getOkrInfo(@RequestBody UserInfoDto dto,
     public Result getOkrInfo(@RequestBody UserInfoDto dto,
                              HttpServletRequest request,
                              HttpServletRequest request,
@@ -120,7 +113,6 @@ public class OkrController {
         return result;
         return result;
     }
     }
 
 
-    @ResponseBody
     @RequestMapping(value = "/saveOkrMember")
     @RequestMapping(value = "/saveOkrMember")
     public Result saveOkrMember(@RequestBody UserInfoDto dto,
     public Result saveOkrMember(@RequestBody UserInfoDto dto,
                              HttpServletRequest request,
                              HttpServletRequest request,
@@ -153,7 +145,6 @@ public class OkrController {
      * @param response
      * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/getMemberListByUserId")
     @RequestMapping(value = "/getMemberListByUserId")
     public Result<List<UserInfoDto>> getMemberListByUserId(@RequestBody UserInfoDto dto,
     public Result<List<UserInfoDto>> getMemberListByUserId(@RequestBody UserInfoDto dto,
                                 HttpServletRequest request,
                                 HttpServletRequest request,
@@ -178,36 +169,22 @@ public class OkrController {
 
 
     /**
     /**
      * 获取本季度同步给我OKR的同事的列表
      * 获取本季度同步给我OKR的同事的列表
-     * @param request
-     * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/getSyncUserListByMemberId")
     @RequestMapping(value = "/getSyncUserListByMemberId")
-    public Result<Map<String, Object>> getSyncUserListByMemberId(@RequestBody UserInfoDto dto,
-                                                           HttpServletRequest request,
-                                                           HttpServletResponse response){
-        logger.info("/okr/getSyncUserListByMemberId 方法开始");
+    public Result<Map<String, Object>> getSyncUserListByMemberId(@RequestBody JSONObject data){
         Result<Map<String, Object>> result = new Result();
         Result<Map<String, Object>> result = new Result();
-
-        if(dto == null){
-            result.setSuccess(false);
-            result.setMessage("参数错误");
-            return result;
-        }
-
         try {
         try {
-            Map<String, Object> resultMap = okrService.getSyncUserListByMemberId(dto.getYear(), dto.getQuarter(), dto.getName());
+            Map<String, Object> resultMap = okrService.getSyncUserListByMemberId(data);
             result.setResult(resultMap);
             result.setResult(resultMap);
+            return result;
         }catch (Exception e){
         }catch (Exception e){
             logger.error(e.getMessage());
             logger.error(e.getMessage());
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("error");
             result.setMessage("error");
-        }finally{
-            logger.info("/okr/getSyncUserListByMemberId 方法结束");
+            return result;
         }
         }
 
 
-        return result;
     }
     }
 
 
 
 
@@ -217,7 +194,6 @@ public class OkrController {
      * @param response
      * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/insertContentStatus")
     @RequestMapping(value = "/insertContentStatus")
     public Result<List<UserInfoDto>> insertContentStatus(@RequestBody OkrDto dto,
     public Result<List<UserInfoDto>> insertContentStatus(@RequestBody OkrDto dto,
                                                          HttpServletRequest request,
                                                          HttpServletRequest request,
@@ -244,7 +220,6 @@ public class OkrController {
      * @param response
      * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/updateContentStatus")
     @RequestMapping(value = "/updateContentStatus")
     public Result<List<UserInfoDto>> updateContentStatus(@RequestBody OkrDto dto,
     public Result<List<UserInfoDto>> updateContentStatus(@RequestBody OkrDto dto,
                                                          HttpServletRequest request,
                                                          HttpServletRequest request,
@@ -267,18 +242,12 @@ public class OkrController {
 
 
     /**
     /**
      * 同时保存O和krList
      * 同时保存O和krList
-     * @param request
-     * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/insertObjectAndKrList")
     @RequestMapping(value = "/insertObjectAndKrList")
-    public Result<List<UserInfoDto>> insertObjectAndKrList(@RequestBody OkrDto dto,
-                                                         HttpServletRequest request,
-                                                         HttpServletResponse response){
+    public Result<List<UserInfoDto>> insertObjectAndKrList(@RequestBody OkrDto dto){
         logger.info("/okr/insertObjectAndKrList 方法开始");
         logger.info("/okr/insertObjectAndKrList 方法开始");
         Result<List<UserInfoDto>> result = new Result();
         Result<List<UserInfoDto>> result = new Result();
-
         try {
         try {
             okrService.insertObjectAndKrList(dto.getObjectInfo(), dto.getKrList());
             okrService.insertObjectAndKrList(dto.getObjectInfo(), dto.getKrList());
         }catch (Exception e){
         }catch (Exception e){
@@ -293,19 +262,12 @@ public class OkrController {
     }
     }
 
 
     /**
     /**
-     * 更新状态指标
-     * @param request
-     * @param response
+     * 更新O状态指标
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/updateObject")
     @RequestMapping(value = "/updateObject")
-    public Result<List<UserInfoDto>> updateObject(@RequestBody OkrDto dto,
-                                                           HttpServletRequest request,
-                                                           HttpServletResponse response){
-        logger.info("/okr/updateObject 方法开始");
+    public Result<List<UserInfoDto>> updateObject(@RequestBody OkrDto dto){
         Result<List<UserInfoDto>> result = new Result();
         Result<List<UserInfoDto>> result = new Result();
-
         if(dto == null || dto.getObjectInfo()==null ){
         if(dto == null || dto.getObjectInfo()==null ){
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("参数不能为空");
             result.setMessage("参数不能为空");
@@ -320,15 +282,13 @@ public class OkrController {
 
 
         try {
         try {
             okrService.updateObject(objectInfo);
             okrService.updateObject(objectInfo);
+            return result;
         }catch (Exception e){
         }catch (Exception e){
             logger.error(e.getMessage());
             logger.error(e.getMessage());
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("error");
             result.setMessage("error");
-        }finally{
-            logger.info("/okr/updateObject 方法结束");
+            return result;
         }
         }
-
-        return result;
     }
     }
 
 
 
 
@@ -338,14 +298,11 @@ public class OkrController {
      * @param response
      * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/updateKr")
     @RequestMapping(value = "/updateKr")
     public Result<List<UserInfoDto>> updateKr(@RequestBody OkrDto dto,
     public Result<List<UserInfoDto>> updateKr(@RequestBody OkrDto dto,
                                                   HttpServletRequest request,
                                                   HttpServletRequest request,
                                                   HttpServletResponse response){
                                                   HttpServletResponse response){
-        logger.info("/okr/updateKr 方法开始");
         Result<List<UserInfoDto>> result = new Result();
         Result<List<UserInfoDto>> result = new Result();
-
         if(dto == null || dto.getKrInfo()==null ){
         if(dto == null || dto.getKrInfo()==null ){
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("参数不能为空");
             result.setMessage("参数不能为空");
@@ -360,31 +317,22 @@ public class OkrController {
 
 
         try {
         try {
             okrService.updateKr(krInfo);
             okrService.updateKr(krInfo);
+            return result;
         }catch (Exception e){
         }catch (Exception e){
             logger.error(e.getMessage());
             logger.error(e.getMessage());
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("error");
             result.setMessage("error");
-        }finally{
-            logger.info("/okr/updateKr 方法结束");
+            return result;
         }
         }
-
-        return result;
     }
     }
 
 
 
 
     /**逻辑删除Object
     /**逻辑删除Object
-     * @param request
-     * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/deleteObjectInfoById")
     @RequestMapping(value = "/deleteObjectInfoById")
-    public Result<List<UserInfoDto>> deleteObjectInfoById(@RequestBody OkrDto dto,
-                                                  HttpServletRequest request,
-                                                  HttpServletResponse response){
-        logger.info("/okr/deleteObjectInfoById 方法开始");
+    public Result<List<UserInfoDto>> deleteObjectInfoById(@RequestBody OkrDto dto){
         Result<List<UserInfoDto>> result = new Result();
         Result<List<UserInfoDto>> result = new Result();
-
         if(dto == null || dto.getObjectInfo()==null ){
         if(dto == null || dto.getObjectInfo()==null ){
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("参数不能为空");
             result.setMessage("参数不能为空");
@@ -396,7 +344,6 @@ public class OkrController {
             result.setMessage("主键不能为空");
             result.setMessage("主键不能为空");
             return result;
             return result;
         }
         }
-
         try {
         try {
             okrService.deleteObjectInfoById(objectInfo);
             okrService.deleteObjectInfoById(objectInfo);
         }catch (Exception e){
         }catch (Exception e){
@@ -411,18 +358,12 @@ public class OkrController {
     }
     }
 
 
     /**逻辑删除Kr
     /**逻辑删除Kr
-     * @param request
-     * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/deleteKrById")
     @RequestMapping(value = "/deleteKrById")
-    public Result<List<UserInfoDto>> deleteKrById(@RequestBody OkrDto dto,
-                                                          HttpServletRequest request,
-                                                          HttpServletResponse response){
+    public Result<List<UserInfoDto>> deleteKrById(@RequestBody OkrDto dto){
         logger.info("/okr/deleteKrById 方法开始");
         logger.info("/okr/deleteKrById 方法开始");
         Result<List<UserInfoDto>> result = new Result();
         Result<List<UserInfoDto>> result = new Result();
-
         if(dto == null || dto.getKrInfo()==null ){
         if(dto == null || dto.getKrInfo()==null ){
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("参数不能为空");
             result.setMessage("参数不能为空");
@@ -448,14 +389,9 @@ public class OkrController {
         return result;
         return result;
     }
     }
 
 
-    @ResponseBody
     @RequestMapping(value = "/deleteContentStatusById")
     @RequestMapping(value = "/deleteContentStatusById")
-    public Result deleteContentStatuaById(@RequestBody OkrDto dto,
-                                          HttpServletRequest request,
-                                          HttpServletResponse response){
-        logger.info("/okr/deleteContentStatusById 方法开始");
+    public Result deleteContentStatuaById(@RequestBody OkrDto dto){
         Result result = new Result();
         Result result = new Result();
-
         if(dto == null || dto.getContent()==null ){
         if(dto == null || dto.getContent()==null ){
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("参数不能为空");
             result.setMessage("参数不能为空");
@@ -470,24 +406,17 @@ public class OkrController {
 
 
         try {
         try {
             okrService.deleteContentStatusById(content);
             okrService.deleteContentStatusById(content);
+            return result;
         }catch (Exception e){
         }catch (Exception e){
             logger.error(e.getMessage());
             logger.error(e.getMessage());
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("error");
             result.setMessage("error");
-        }finally{
-            logger.info("/okr/deleteContentStatusById 方法结束");
+            return result;
         }
         }
-
-        return result;
-
     }
     }
 
 
-    @ResponseBody
     @RequestMapping(value = "/deleteTaskInfoById")
     @RequestMapping(value = "/deleteTaskInfoById")
-    public Result deleteTaskInfoById(@RequestBody OkrDto dto,
-                                          HttpServletRequest request,
-                                          HttpServletResponse response){
-        logger.info("/okr/deleteTaskInfoById 方法开始");
+    public Result deleteTaskInfoById(@RequestBody OkrDto dto){
         Result result = new Result();
         Result result = new Result();
 
 
         if(dto == null || dto.getTaskInfo()==null ){
         if(dto == null || dto.getTaskInfo()==null ){
@@ -521,14 +450,9 @@ public class OkrController {
      * @param response
      * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/insertOkrKrInfo")
     @RequestMapping(value = "/insertOkrKrInfo")
-    public Result insertOkrKrInfo(@RequestBody OkrDto dto,
-                                                         HttpServletRequest request,
-                                                         HttpServletResponse response){
-        logger.info("/okr/insertOkrKrInfo 方法开始");
+    public Result insertOkrKrInfo(@RequestBody OkrDto dto, HttpServletRequest request, HttpServletResponse response){
         Result result = new Result();
         Result result = new Result();
-
         if(dto == null || dto.getKrInfo() ==null){
         if(dto == null || dto.getKrInfo() ==null){
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("参数不可为空");
             result.setMessage("参数不可为空");
@@ -536,7 +460,6 @@ public class OkrController {
         }
         }
 
 
         OkrKrInfo krInfo = dto.getKrInfo();
         OkrKrInfo krInfo = dto.getKrInfo();
-
         if(krInfo.getObjectId() == null || krInfo.getCompletion() == null || StringUtils.isBlank(krInfo.getKrInfo())){
         if(krInfo.getObjectId() == null || krInfo.getCompletion() == null || StringUtils.isBlank(krInfo.getKrInfo())){
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("参数不可为空");
             result.setMessage("参数不可为空");
@@ -545,44 +468,33 @@ public class OkrController {
 
 
         try {
         try {
             okrService.insertOkrKrInfo(dto.getKrInfo());
             okrService.insertOkrKrInfo(dto.getKrInfo());
+            return result;
         }catch (Exception e){
         }catch (Exception e){
             logger.error(e.getMessage());
             logger.error(e.getMessage());
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("error");
             result.setMessage("error");
-        }finally{
-            logger.info("/okr/insertOkrKrInfo 方法结束");
+            return result;
         }
         }
-
-        return result;
     }
     }
 
 
 
 
     /**
     /**
      * 获取OKR所有年
      * 获取OKR所有年
-     * @param request
-     * @param response
      * @return
      * @return
      */
      */
-    @ResponseBody
     @RequestMapping(value = "/getObjectYear")
     @RequestMapping(value = "/getObjectYear")
-    public Result getObjectYear(@RequestBody OkrDto dto,
-                                  HttpServletRequest request,
-                                  HttpServletResponse response){
-        logger.info("/okr/getObjectYear 方法开始");
+    public Result getObjectYear(@RequestBody OkrDto dto){
         Result<List<Integer>> result = new Result();
         Result<List<Integer>> result = new Result();
-
         try {
         try {
             List<Integer> yearList = okrService.getObjectYear();
             List<Integer> yearList = okrService.getObjectYear();
             result.setResult(yearList);
             result.setResult(yearList);
+            return result;
         }catch (Exception e){
         }catch (Exception e){
             logger.error(e.getMessage());
             logger.error(e.getMessage());
             result.setSuccess(false);
             result.setSuccess(false);
             result.setMessage("error");
             result.setMessage("error");
-        }finally{
-            logger.info("/okr/getObjectYear 方法结束");
+            return result;
         }
         }
-
-        return result;
     }
     }
 
 
 }
 }

+ 141 - 0
src/main/java/cn/com/ctop/okr/controller/OkrObjectInfoDisclosureController.java

@@ -0,0 +1,141 @@
+package cn.com.ctop.okr.controller;
+
+import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
+import cn.com.ctop.okr.service.IOkrObjectInfoDisclosureService;
+import cn.com.ctop.okr.vo.Result;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+
+ /**
+ * okr o 信息公开
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/ctop/okrObjectInfoDisclosure")
+public class OkrObjectInfoDisclosureController {
+	@Autowired
+	private IOkrObjectInfoDisclosureService okrObjectInfoDisclosureService;
+
+	/**
+	  * 分页列表查询
+	 * @param okrObjectInfoDisclosure
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+
+	@GetMapping(value = "/list")
+	public Result<IPage<OkrObjectInfoDisclosure>> queryPageList(OkrObjectInfoDisclosure okrObjectInfoDisclosure,
+																@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+																@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+																HttpServletRequest req) {
+		Result<IPage<OkrObjectInfoDisclosure>> result = new Result<>();
+		QueryWrapper<OkrObjectInfoDisclosure> queryWrapper = new QueryWrapper<>();
+		Page<OkrObjectInfoDisclosure> page = new Page<OkrObjectInfoDisclosure>(pageNo, pageSize);
+		IPage<OkrObjectInfoDisclosure> pageList = okrObjectInfoDisclosureService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	  *   添加
+	 * @param okrObjectInfoDisclosure
+	 * @return
+	 */
+	@PostMapping(value = "/add")
+	public Result<OkrObjectInfoDisclosure> add(@RequestBody OkrObjectInfoDisclosure okrObjectInfoDisclosure) {
+		Result<OkrObjectInfoDisclosure> result = new Result<>();
+		try {
+			okrObjectInfoDisclosureService.save(okrObjectInfoDisclosure);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	  *  编辑
+	 * @param okrObjectInfoDisclosure
+	 * @return
+	 */
+	@PutMapping(value = "/edit")
+	public Result<OkrObjectInfoDisclosure> edit(@RequestBody OkrObjectInfoDisclosure okrObjectInfoDisclosure) {
+		Result<OkrObjectInfoDisclosure> result = new Result<OkrObjectInfoDisclosure>();
+		OkrObjectInfoDisclosure okrObjectInfoDisclosureEntity = okrObjectInfoDisclosureService.getById(okrObjectInfoDisclosure.getId());
+		if(okrObjectInfoDisclosureEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = okrObjectInfoDisclosureService.updateById(okrObjectInfoDisclosure);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	  *   通过id删除
+	 * @param id
+	 * @return
+	 */
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		try {
+			okrObjectInfoDisclosureService.removeById(id);
+		} catch (Exception e) {
+			log.error("删除失败",e.getMessage());
+			return Result.error("删除失败!");
+		}
+		return Result.ok("删除成功!");
+	}
+
+	/**
+	  *  批量删除
+	 * @param ids
+	 * @return
+	 */
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<OkrObjectInfoDisclosure> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<OkrObjectInfoDisclosure> result = new Result<>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.okrObjectInfoDisclosureService.removeByIds(Arrays.asList(ids.split(",")));
+			result.success("删除成功!");
+		}
+		return result;
+	}
+
+	/**
+	  * 通过id查询
+	 * @param id
+	 * @return
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<OkrObjectInfoDisclosure> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<OkrObjectInfoDisclosure> result = new Result<>();
+		OkrObjectInfoDisclosure okrObjectInfoDisclosure = okrObjectInfoDisclosureService.getById(id);
+		if(okrObjectInfoDisclosure==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(okrObjectInfoDisclosure);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+}

+ 142 - 0
src/main/java/cn/com/ctop/okr/controller/OkrObjectInfoRemindController.java

@@ -0,0 +1,142 @@
+package cn.com.ctop.okr.controller;
+
+import cn.com.ctop.okr.entity.OkrObjectInfoRemind;
+import cn.com.ctop.okr.service.IOkrObjectInfoRemindService;
+import cn.com.ctop.okr.vo.Result;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+
+ /**
+ * okr 对象提醒信息
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Slf4j
+@Api(tags="okr 对象提醒信息")
+@RestController
+@RequestMapping("/ctop/okrObjectInfoRemind")
+public class OkrObjectInfoRemindController {
+	@Autowired
+	private IOkrObjectInfoRemindService okrObjectInfoRemindService;
+
+	/**
+	  * 分页列表查询
+	 * @param okrObjectInfoRemind
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<OkrObjectInfoRemind>> queryPageList(OkrObjectInfoRemind okrObjectInfoRemind,
+															@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+															@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+															HttpServletRequest req) {
+		Result<IPage<OkrObjectInfoRemind>> result = new Result<>();
+		QueryWrapper<OkrObjectInfoRemind> queryWrapper = new QueryWrapper<>();
+		Page<OkrObjectInfoRemind> page = new Page<OkrObjectInfoRemind>(pageNo, pageSize);
+		IPage<OkrObjectInfoRemind> pageList = okrObjectInfoRemindService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	  *   添加
+	 * @param okrObjectInfoRemind
+	 * @return
+	 */
+	@PostMapping(value = "/add")
+	public Result<OkrObjectInfoRemind> add(@RequestBody OkrObjectInfoRemind okrObjectInfoRemind) {
+		Result<OkrObjectInfoRemind> result = new Result<>();
+		try {
+			okrObjectInfoRemindService.save(okrObjectInfoRemind);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	  *  编辑
+	 * @param okrObjectInfoRemind
+	 * @return
+	 */
+	@PutMapping(value = "/edit")
+	public Result<OkrObjectInfoRemind> edit(@RequestBody OkrObjectInfoRemind okrObjectInfoRemind) {
+		Result<OkrObjectInfoRemind> result = new Result<OkrObjectInfoRemind>();
+		OkrObjectInfoRemind okrObjectInfoRemindEntity = okrObjectInfoRemindService.getById(okrObjectInfoRemind.getId());
+		if(okrObjectInfoRemindEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = okrObjectInfoRemindService.updateById(okrObjectInfoRemind);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	  *   通过id删除
+	 * @param id
+	 * @return
+	 */
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		try {
+			okrObjectInfoRemindService.removeById(id);
+		} catch (Exception e) {
+			log.error("删除失败",e.getMessage());
+			return Result.error("删除失败!");
+		}
+		return Result.ok("删除成功!");
+	}
+
+	/**
+	  *  批量删除
+	 * @param ids
+	 * @return
+	 */
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<OkrObjectInfoRemind> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<OkrObjectInfoRemind> result = new Result<>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.okrObjectInfoRemindService.removeByIds(Arrays.asList(ids.split(",")));
+			result.success("删除成功!");
+		}
+		return result;
+	}
+
+	/**
+	  * 通过id查询
+	 * @param id
+	 * @return
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<OkrObjectInfoRemind> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<OkrObjectInfoRemind> result = new Result<>();
+		OkrObjectInfoRemind okrObjectInfoRemind = okrObjectInfoRemindService.getById(id);
+		if(okrObjectInfoRemind==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(okrObjectInfoRemind);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+}

+ 142 - 0
src/main/java/cn/com/ctop/okr/controller/OkrTaskInfoDisclosureController.java

@@ -0,0 +1,142 @@
+package cn.com.ctop.okr.controller;
+
+import cn.com.ctop.okr.entity.OkrTaskInfoDisclosure;
+import cn.com.ctop.okr.service.IOkrTaskInfoDisclosureService;
+import cn.com.ctop.okr.vo.Result;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+
+ /**
+ * okr o 信息公开
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Slf4j
+@Api(tags="okr o 信息公开")
+@RestController
+@RequestMapping("/ctop/okrTaskInfoDisclosure")
+public class OkrTaskInfoDisclosureController {
+	@Autowired
+	private IOkrTaskInfoDisclosureService OkrTaskInfoDisclosureService;
+
+	/**
+	  * 分页列表查询
+	 * @param OkrTaskInfoDisclosure
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<OkrTaskInfoDisclosure>> queryPageList(OkrTaskInfoDisclosure OkrTaskInfoDisclosure,
+															  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+															  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+															  HttpServletRequest req) {
+		Result<IPage<OkrTaskInfoDisclosure>> result = new Result<>();
+		QueryWrapper<OkrTaskInfoDisclosure> queryWrapper = new QueryWrapper<>();
+		Page<OkrTaskInfoDisclosure> page = new Page<>(pageNo, pageSize);
+		IPage<OkrTaskInfoDisclosure> pageList = OkrTaskInfoDisclosureService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	  *   添加
+	 * @param OkrTaskInfoDisclosure
+	 * @return
+	 */
+	@PostMapping(value = "/add")
+	public Result<OkrTaskInfoDisclosure> add(@RequestBody OkrTaskInfoDisclosure OkrTaskInfoDisclosure) {
+		Result<OkrTaskInfoDisclosure> result = new Result<>();
+		try {
+			OkrTaskInfoDisclosureService.save(OkrTaskInfoDisclosure);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	  *  编辑
+	 * @param OkrTaskInfoDisclosure
+	 * @return
+	 */
+	@PutMapping(value = "/edit")
+	public Result<OkrTaskInfoDisclosure> edit(@RequestBody OkrTaskInfoDisclosure OkrTaskInfoDisclosure) {
+		Result<OkrTaskInfoDisclosure> result = new Result<OkrTaskInfoDisclosure>();
+		OkrTaskInfoDisclosure OkrTaskInfoDisclosureEntity = OkrTaskInfoDisclosureService.getById(OkrTaskInfoDisclosure.getId());
+		if(OkrTaskInfoDisclosureEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = OkrTaskInfoDisclosureService.updateById(OkrTaskInfoDisclosure);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	  *   通过id删除
+	 * @param id
+	 * @return
+	 */
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		try {
+			OkrTaskInfoDisclosureService.removeById(id);
+		} catch (Exception e) {
+			log.error("删除失败",e.getMessage());
+			return Result.error("删除失败!");
+		}
+		return Result.ok("删除成功!");
+	}
+
+	/**
+	  *  批量删除
+	 * @param ids
+	 * @return
+	 */
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<OkrTaskInfoDisclosure> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<OkrTaskInfoDisclosure> result = new Result<>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.OkrTaskInfoDisclosureService.removeByIds(Arrays.asList(ids.split(",")));
+			result.success("删除成功!");
+		}
+		return result;
+	}
+
+	/**
+	  * 通过id查询
+	 * @param id
+	 * @return
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<OkrTaskInfoDisclosure> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<OkrTaskInfoDisclosure> result = new Result<>();
+		OkrTaskInfoDisclosure OkrTaskInfoDisclosure = OkrTaskInfoDisclosureService.getById(id);
+		if(OkrTaskInfoDisclosure==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(OkrTaskInfoDisclosure);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+}

+ 140 - 0
src/main/java/cn/com/ctop/okr/controller/OkrTaskInfoRemindController.java

@@ -0,0 +1,140 @@
+package cn.com.ctop.okr.controller;
+
+import cn.com.ctop.okr.entity.OkrTaskInfoRemind;
+import cn.com.ctop.okr.service.IOkrTaskInfoRemindService;
+import cn.com.ctop.okr.vo.Result;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+
+ /**
+ * okr 任务提醒信息
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/ctop/okrTaskInfoRemind")
+public class OkrTaskInfoRemindController {
+	@Autowired
+	private IOkrTaskInfoRemindService okrTaskInfoRemindService;
+
+	/**
+	  * 分页列表查询
+	 * @param okrTaskInfoRemind
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@GetMapping(value = "/list")
+	public Result<IPage<OkrTaskInfoRemind>> queryPageList(OkrTaskInfoRemind okrTaskInfoRemind,
+														  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+														  HttpServletRequest req) {
+		Result<IPage<OkrTaskInfoRemind>> result = new Result<>();
+		QueryWrapper<OkrTaskInfoRemind> queryWrapper = new QueryWrapper<>();
+		Page<OkrTaskInfoRemind> page = new Page<OkrTaskInfoRemind>(pageNo, pageSize);
+		IPage<OkrTaskInfoRemind> pageList = okrTaskInfoRemindService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	  *   添加
+	 * @param okrTaskInfoRemind
+	 * @return
+	 */
+	@PostMapping(value = "/add")
+	public Result<OkrTaskInfoRemind> add(@RequestBody OkrTaskInfoRemind okrTaskInfoRemind) {
+		Result<OkrTaskInfoRemind> result = new Result<>();
+		try {
+			okrTaskInfoRemindService.save(okrTaskInfoRemind);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	  *  编辑
+	 * @param okrTaskInfoRemind
+	 * @return
+	 */
+	@PutMapping(value = "/edit")
+	public Result<OkrTaskInfoRemind> edit(@RequestBody OkrTaskInfoRemind okrTaskInfoRemind) {
+		Result<OkrTaskInfoRemind> result = new Result<OkrTaskInfoRemind>();
+		OkrTaskInfoRemind okrTaskInfoRemindEntity = okrTaskInfoRemindService.getById(okrTaskInfoRemind.getId());
+		if(okrTaskInfoRemindEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = okrTaskInfoRemindService.updateById(okrTaskInfoRemind);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	  *   通过id删除
+	 * @param id
+	 * @return
+	 */
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		try {
+			okrTaskInfoRemindService.removeById(id);
+		} catch (Exception e) {
+			log.error("删除失败",e.getMessage());
+			return Result.error("删除失败!");
+		}
+		return Result.ok("删除成功!");
+	}
+
+	/**
+	  *  批量删除
+	 * @param ids
+	 * @return
+	 */
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<OkrTaskInfoRemind> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<OkrTaskInfoRemind> result = new Result<>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.okrTaskInfoRemindService.removeByIds(Arrays.asList(ids.split(",")));
+			result.success("删除成功!");
+		}
+		return result;
+	}
+
+	/**
+	  * 通过id查询
+	 * @param id
+	 * @return
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<OkrTaskInfoRemind> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<OkrTaskInfoRemind> result = new Result<>();
+		OkrTaskInfoRemind okrTaskInfoRemind = okrTaskInfoRemindService.getById(id);
+		if(okrTaskInfoRemind==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(okrTaskInfoRemind);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+}

+ 34 - 0
src/main/java/cn/com/ctop/okr/controller/WechatDepartmentController.java

@@ -0,0 +1,34 @@
+package cn.com.ctop.okr.controller;
+
+import cn.com.ctop.okr.dto.TagInfoTreeModel;
+import cn.com.ctop.okr.service.QYWxDepartInfoService;
+import cn.com.ctop.okr.vo.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("department")
+@Slf4j
+public class WechatDepartmentController {
+    @Autowired
+    private QYWxDepartInfoService qyWxDepartInfoService;
+    @RequestMapping(value = "/queryTreeList", method = RequestMethod.GET)
+    public Result<List<TagInfoTreeModel>> queryTreeList() {
+        Result<List<TagInfoTreeModel>> result = new Result<>();
+        try {
+            List<TagInfoTreeModel> list = qyWxDepartInfoService.queryTreeList();
+            result.setResult(list);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(),e);
+        }
+        return result;
+    }
+}

+ 0 - 2
src/main/java/cn/com/ctop/okr/dto/OkrDto.java

@@ -10,11 +10,9 @@ import java.util.List;
 
 
 @Data
 @Data
 public class OkrDto {
 public class OkrDto {
-
     private OkrContentStatus content;
     private OkrContentStatus content;
     private OkrTaskInfo taskInfo;
     private OkrTaskInfo taskInfo;
     private OkrObjectInfo objectInfo;
     private OkrObjectInfo objectInfo;
     private List<OkrKrInfo> krList;
     private List<OkrKrInfo> krList;
     private OkrKrInfo krInfo;
     private OkrKrInfo krInfo;
-
 }
 }

+ 57 - 0
src/main/java/cn/com/ctop/okr/dto/TagIdModel.java

@@ -0,0 +1,57 @@
+package cn.com.ctop.okr.dto;
+
+import cn.com.ctop.okr.entity.QYWxDepartInfo;
+import cn.com.ctop.okr.entity.QYWxUserInfo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class TagIdModel implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    private String id;
+
+    /**
+     * 主键ID
+     */
+    private String value;
+
+    /**
+     * 部门名称
+     */
+    private String label;
+
+    List<TagIdModel> children = new ArrayList<>();
+
+    /**
+     * 将SysDepartTreeModel的部分数据放在该对象当中
+     * @param treeModel 树状结构
+     * @return 部门信息
+     */
+    public TagIdModel convert(TagInfoTreeModel treeModel) {
+        this.id = treeModel.getId()+"";
+        this.value = treeModel.getId()+"";
+        this.label = treeModel.getLabel();
+        return this;
+    }
+
+    public TagIdModel convertByUserDepart(QYWxUserInfo userInfo) {
+        this.id = userInfo.getUserid();
+        this.value = userInfo.getUserid();
+        this.label = userInfo.getName();
+        return this;
+    }
+
+    public TagIdModel convertByUserDepart(QYWxDepartInfo departInfo) {
+        this.id = departInfo.getId()+"";
+        this.value = departInfo.getId()+"";
+        this.label = departInfo.getDepartName();
+        return this;
+    }
+}

+ 103 - 0
src/main/java/cn/com/ctop/okr/dto/TagInfoTreeModel.java

@@ -0,0 +1,103 @@
+package cn.com.ctop.okr.dto;
+
+import cn.com.ctop.okr.vo.QYWxDepartInfoVO;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class TagInfoTreeModel implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *对应TagInfo中的id字段,前端数据树中的key
+     */
+    private String id;
+
+    /**
+     *对应TagInfo中的id字段,前端数据树中的value
+     */
+    private String value;
+
+    /**
+     *对应name字段,前端数据树中的title
+     */
+    private String label;
+
+    /**
+     * 以下所有字段均与TagInfo相同
+     */
+    private boolean isLeaf;
+    private String parentId;
+
+    private List<TagInfoTreeModel> children = new ArrayList<>();
+
+    /**
+     * 将SysDepart对象转换成SysDepartTreeModel对象
+     * @param departInfo
+     */
+    public TagInfoTreeModel(QYWxDepartInfoVO departInfo) {
+        this.id = departInfo.getId()+"";
+        this.value = departInfo.getId()+"";
+        this.label = departInfo.getLabel();
+        this.parentId = departInfo.getParentId()+"";
+    }
+
+
+
+
+    public List<TagInfoTreeModel> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<TagInfoTreeModel> children) {
+        if (children==null){
+            this.isLeaf=true;
+        }
+        this.children = children;
+    }
+
+    public TagInfoTreeModel() {
+
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    public boolean isLeaf() {
+        return isLeaf;
+    }
+
+    public void setLeaf(boolean leaf) {
+        isLeaf = leaf;
+    }
+
+    public String getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(String parentId) {
+        this.parentId = parentId;
+    }
+}

+ 1 - 1
src/main/java/cn/com/ctop/okr/dto/UserInfoDto.java

@@ -6,10 +6,10 @@ import java.util.List;
 
 
 @Data
 @Data
 public class UserInfoDto {
 public class UserInfoDto {
-
     private String userId;
     private String userId;
     private String name;
     private String name;
     private String departName;
     private String departName;
+    private Long departId;
     private List<String> userIdList;
     private List<String> userIdList;
     private Integer year;
     private Integer year;
     private Integer quarter;
     private Integer quarter;

+ 13 - 0
src/main/java/cn/com/ctop/okr/entity/OkrKrInfo.java

@@ -1,11 +1,13 @@
 package cn.com.ctop.okr.entity;
 package cn.com.ctop.okr.entity;
 
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 @Data
 @Data
 @TableName("okr_kr_info")
 @TableName("okr_kr_info")
@@ -21,4 +23,15 @@ public class OkrKrInfo {
     private Integer completion;
     private Integer completion;
     private Date createTime;
     private Date createTime;
     private Date updateTime;
     private Date updateTime;
+    /**
+     * 1:公开
+     * 2:私密
+     * 3:对某人公开
+     */
+    private Integer permission;
+    @TableField(exist = false)
+    private List<String> remindIds;
+    @TableField(exist = false)
+    private List<String>publicIds;
+
 }
 }

+ 44 - 0
src/main/java/cn/com/ctop/okr/entity/OkrObjectInfoDisclosure.java

@@ -0,0 +1,44 @@
+package cn.com.ctop.okr.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * okr o 信息公开
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Data
+@TableName("okr_object_info_disclosure")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class OkrObjectInfoDisclosure {
+
+	@TableId(type = IdType.AUTO)
+    private Long id;
+	private Long okrObjectId;
+	/**公开类型 1:部门 2:员工*/
+	private Integer publicType;
+	private String publicId;
+	private Integer status;
+	private Date createTime;
+	private Date updateTime;
+
+	public OkrObjectInfoDisclosure() {
+		this.createTime = new Date();
+		this.updateTime = new Date();
+	}
+}

+ 44 - 0
src/main/java/cn/com/ctop/okr/entity/OkrObjectInfoRemind.java

@@ -0,0 +1,44 @@
+package cn.com.ctop.okr.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * okr 对象提醒信息
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Data
+@TableName("okr_object_info_remind")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class OkrObjectInfoRemind {
+
+	@TableId(type = IdType.AUTO)
+    private Long id;
+	private Long okrObjectId;
+	/**公开类型 1:部门 2:员工*/
+	private Integer remindType;
+	private String remindId;
+	private Integer status;
+	private Date createTime;
+	private Date updateTime;
+
+	public OkrObjectInfoRemind() {
+		this.createTime = new Date();
+		this.updateTime = new Date();
+	}
+}

+ 12 - 0
src/main/java/cn/com/ctop/okr/entity/OkrTaskInfo.java

@@ -1,11 +1,13 @@
 package cn.com.ctop.okr.entity;
 package cn.com.ctop.okr.entity;
 
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 @Data
 @Data
 @TableName("okr_task_info")
 @TableName("okr_task_info")
@@ -21,4 +23,14 @@ public class OkrTaskInfo {
     private String priority;
     private String priority;
     private Date createTime;
     private Date createTime;
     private Date updateTime;
     private Date updateTime;
+    /**
+     * 1:公开
+     * 2:私密
+     * 3:部分公开
+     */
+    private Integer permission;
+    @TableField(exist = false)
+    private List<String> remindIds;
+    @TableField(exist = false)
+    private List<String>publicIds;
 }
 }

+ 48 - 0
src/main/java/cn/com/ctop/okr/entity/OkrTaskInfoDisclosure.java

@@ -0,0 +1,48 @@
+package cn.com.ctop.okr.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * okr o 信息公开
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Data
+@TableName("okr_task_info_disclosure")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="okr_task_info_disclosure对象", description="okr o 信息公开")
+public class OkrTaskInfoDisclosure {
+
+	/**id*/
+	@TableId(type = IdType.AUTO)
+    private Long id;
+	private Long okrTaskId;
+	/**
+	 * 1 :部门 2:员工
+	 */
+	private Integer publicType;
+	private String publicId;
+	private Integer status;
+	private Date createTime;
+	private Date updateTime;
+
+	public OkrTaskInfoDisclosure() {
+		this.createTime = new Date();
+		this.updateTime = new Date();
+	}
+}

+ 43 - 0
src/main/java/cn/com/ctop/okr/entity/OkrTaskInfoRemind.java

@@ -0,0 +1,43 @@
+package cn.com.ctop.okr.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * okr 任务提醒信息
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Data
+@TableName("okr_task_info_remind")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class OkrTaskInfoRemind {
+
+	@TableId(type = IdType.AUTO)
+    private Long id;
+	private Long okrTaskId;
+	private Integer remindType;
+	private String remindId;
+	private Integer status;
+	private Date createTime;
+	private Date updateTime;
+
+	public OkrTaskInfoRemind() {
+		this.createTime = new Date();
+		this.updateTime = new Date();
+	}
+}

+ 0 - 26
src/main/java/cn/com/ctop/okr/feishu/constant/FeishuConstant.java

@@ -1,26 +0,0 @@
-package cn.com.ctop.okr.feishu.constant;
-
-
-public class FeishuConstant {
-    public static final String FEISHU_API_URL = "https://open.feishu.cn/open-apis";
-    public static final String FEISHU_APP_ID = "cli_9e68af69ca34d00e";
-    public static final String FEISHU_APP_SECRET = "0RsCBRCLx1rG8HKfeZNeAbddxZ3Rsnwv";
-    public static final String APP_ACCESS_TOKEN = "/auth/v3/app_access_token/internal/";
-    public static final String TENANT_ACCESS_TOKEN = "/auth/v3/tenant_access_token/internal/";
-    public static final String AUTH_INDEX = "/authen/v1/index";
-    public static final String AUTH_ACCESS_TOKEN = "/authen/v1/access_token";
-    public static final String REFRESH_AUTH_ACCESS_TOKEN = "/authen/v1/refresh_access_token";
-    public static final String USER_INFO = "/authen/v1/user_info";
-    public static final String MESSAGE_BATCH_SEND = "/message/v4/batch_send/";
-    public static final String MESSAGE_SEND = "/message/v4/send/";
-    public static final String NOTIFY_SEND = "/notify/v4/appnotify";
-    public static final String DEPARTMENT_INFO= "/contact/v1/department/info/get";  //获取部门详情
-    public static final String DEPARTMENT_SIMPLE_LIST= "/contact/v1/department/simple/list";  //获取子部门列
-    public static final String DEPARTMENT_USER_DETAIL_LIST= "/contact/v1/department/user/detail/list";  //获取部门用户详情信息
-
-
-
-    public static final String REDIRECT_URL = "http://adsp.tjyourong.com.cn/user/FStransfer";
-
-//    public static final String REDIRECT_URL = "http://192.168.0.111:8088/jeecg-boot/sys/feishu/auth";
-}

+ 0 - 89
src/main/java/cn/com/ctop/okr/feishu/provider/AuthProvider.java

@@ -1,89 +0,0 @@
-package cn.com.ctop.okr.feishu.provider;
-
-import cn.com.ctop.okr.feishu.constant.FeishuConstant;
-import cn.com.ctop.okr.utils.HttpUtils;
-import com.alibaba.fastjson.JSONObject;
-
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URLEncoder;
-
-public class AuthProvider {
-    /**
-     *  获取授权url
-     * @param state
-     * @return
-     * @throws UnsupportedEncodingException
-     * @throws MalformedURLException
-     */
-    public static String getAuthUrl(String state) throws UnsupportedEncodingException {
-        String redirectUrl = FeishuConstant.REDIRECT_URL;
-        return FeishuConstant.FEISHU_API_URL+FeishuConstant.AUTH_INDEX+"?redirect_uri="+ URLEncoder.encode(redirectUrl,"UTF-8")+"&app_id="+FeishuConstant.FEISHU_APP_ID+"&state="+state;
-    }
-
-    /**
-     * 根据code获取用户登录信息
-     * @param code
-     * @return
-     * @throws Exception
-     */
-    public static JSONObject getFeishuUserInfo(String code) throws Exception {
-        JSONObject params = new JSONObject();
-        params.put("app_access_token",getAppAccessToken());
-        params.put("grant_type","authorization_code");
-        params.put("code",code);
-        return HttpUtils.feishuPostRequest(FeishuConstant.FEISHU_API_URL+FeishuConstant.AUTH_ACCESS_TOKEN,params);
-    }
-
-    public static JSONObject refreshAccessToken(String refreshToken) throws Exception{
-        JSONObject params = new JSONObject();
-        params.put("app_access_token",getAppAccessToken());
-        params.put("grant_type","refresh_token");
-        params.put("refresh_token",refreshToken);
-        return HttpUtils.feishuPostRequest(FeishuConstant.FEISHU_API_URL+FeishuConstant.REFRESH_AUTH_ACCESS_TOKEN,params);
-    }
-
-    public static JSONObject getUserInfo(String accessToken){
-        JSONObject params = new JSONObject();
-        params.put("user_access_token",accessToken);
-        return HttpUtils.feishuGetRequest("Bearer "+accessToken,FeishuConstant.FEISHU_API_URL+FeishuConstant.USER_INFO,params);
-    }
-
-    /**
-     * 获取企业自建应用token信息
-     * 调用接口获取应用资源时使用
-     * @return
-     * @throws Exception
-     */
-    public static String getAppAccessToken() throws Exception {
-        JSONObject params = new JSONObject();
-        params.put("app_id",FeishuConstant.FEISHU_APP_ID);
-        params.put("app_secret",FeishuConstant.FEISHU_APP_SECRET);
-        JSONObject resultNode = HttpUtils.feishuPostRequest(FeishuConstant.FEISHU_API_URL+FeishuConstant.APP_ACCESS_TOKEN,params);
-        if (resultNode.getIntValue("code")==0){
-            return resultNode.getString("app_access_token");
-        }else {
-            throw new Exception();
-        }
-    }
-
-    /**
-     * 获取企业自建应用租户token
-     * 调用接口获取企业资源时使用
-     * @return
-     * @throws Exception
-     */
-    public static String getTenantAccessToken() throws Exception {
-        JSONObject params = new JSONObject();
-        params.put("app_id",FeishuConstant.FEISHU_APP_ID);
-        params.put("app_secret",FeishuConstant.FEISHU_APP_SECRET);
-        JSONObject resultNode = HttpUtils.feishuPostRequest(FeishuConstant.FEISHU_API_URL+FeishuConstant.TENANT_ACCESS_TOKEN,params);
-        if (resultNode.getIntValue("code")==0){
-            return resultNode.getString("tenant_access_token");
-        }else {
-            throw new Exception();
-        }
-    }
-
-
-}

+ 0 - 98
src/main/java/cn/com/ctop/okr/feishu/provider/DepartmentProvider.java

@@ -1,98 +0,0 @@
-package cn.com.ctop.okr.feishu.provider;
-
-import cn.com.ctop.okr.feishu.constant.FeishuConstant;
-import cn.com.ctop.okr.utils.HttpUtils;
-import com.alibaba.fastjson.JSONObject;
-import org.apache.commons.lang.StringUtils;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TreeMap;
-
-public class DepartmentProvider {
-
-    /**
-     * 获取子部门列表(遍历获取所有部门)
-     * @param page_token
-     * @return
-     * @throws Exception
-     */
-    public static JSONObject getDepartSimpleList(String department_id, String page_token) throws Exception {
-        Map<String,String> headers = new HashMap<>();
-        TreeMap<String,Object> params = new TreeMap<>();
-        headers.put("Authorization","Bearer "+ AuthProvider.getAppAccessToken());
-        params.put("department_id", department_id);
-        if(StringUtils.isNotBlank(page_token)){
-            params.put("page_token",page_token);
-        }
-        params.put("page_size",100);
-        params.put("fetch_child",true);
-
-        String resultStr = HttpUtils.httpGetRequest(FeishuConstant.FEISHU_API_URL+FeishuConstant.DEPARTMENT_SIMPLE_LIST,headers,params);
-        JSONObject resultJson = JSONObject.parseObject(resultStr);
-        System.out.println(resultJson);
-
-        //Boolean hasMore = resultJson.getJSONObject("data").getBoolean("has_more");
-        //if(hasMore == true){
-        //    String pageToken = resultJson.getString("page_token");
-        //    getDepartSimpleList(department_id, pageToken);
-        //}
-        return resultJson;
-    }
-
-    /**
-     * 根据部门获取部门下所有员工详细信息
-     * @param department_id
-     * @param page_token
-     * @throws Exception
-     */
-    public static JSONObject getDepartmentUserDetailList(String department_id, String page_token) throws Exception {
-        Map<String,String> headers = new HashMap<>();
-        TreeMap<String,Object> params = new TreeMap<>();
-        headers.put("Authorization","Bearer "+ AuthProvider.getAppAccessToken());
-        params.put("department_id", department_id);
-        if(StringUtils.isNotBlank(page_token)){
-            params.put("page_token",page_token);
-        }
-        params.put("page_size",100);
-        params.put("fetch_child",true);
-
-        String resultStr = HttpUtils.httpGetRequest(FeishuConstant.FEISHU_API_URL+FeishuConstant.DEPARTMENT_USER_DETAIL_LIST,headers,params);
-        JSONObject resultJson = JSONObject.parseObject(resultStr);
-        System.out.println(resultJson);
-
-        //Boolean hasMore = resultJson.getJSONObject("data").getBoolean("has_more");
-        //if(hasMore == true){
-        //    String pageToken = resultJson.getString("page_token");
-        //    getDepartmentUserDetailList(department_id, pageToken);
-        //}
-        return resultJson;
-    }
-
-
-
-    public static void main(String[] args) throws Exception {
-        //getDepartSimpleList("0",null);
-        getDepartmentUserDetailList("od-ed707e2994b4251d5edc20bb35f0ced9", null);
-    }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}

+ 0 - 44
src/main/java/cn/com/ctop/okr/feishu/provider/MessageProvider.java

@@ -1,44 +0,0 @@
-package cn.com.ctop.okr.feishu.provider;
-
-import cn.com.ctop.okr.feishu.constant.FeishuConstant;
-import cn.com.ctop.okr.utils.HttpUtils;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-
-public class MessageProvider {
-    public static JSONObject batchSend(JSONArray departmentIds, JSONArray openIds, JSONArray userIds, String content) throws Exception {
-        String tenantAccessToken = AuthProvider.getTenantAccessToken();
-        JSONObject contentJson = new JSONObject();
-        contentJson.put("text",content);
-        JSONObject params = new JSONObject();
-        if(null!=departmentIds&&!departmentIds.isEmpty()){
-            params.put("department_ids",departmentIds);
-        }
-        if(null!=openIds&&!openIds.isEmpty()){
-            params.put("open_ids",openIds);
-        }
-        if(null!=userIds&&!userIds.isEmpty()){
-            params.put("user_ids",userIds);
-        }
-        params.put("msg_type","text");
-        params.put("content",contentJson);
-        return HttpUtils.feishuPostRequest("Bearer "+tenantAccessToken, FeishuConstant.FEISHU_API_URL+FeishuConstant.MESSAGE_BATCH_SEND,params);
-    }
-
-    public static void main(String[] args) {
-        JSONArray openIds = new JSONArray();
-        openIds.add("ou_e18db8d339cc33fe1446ff7bd774c074");
-        openIds.add("ou_08ec7422306fa2bfd1baae9b2f724cb4");
-        try {
-            StringBuffer text = new StringBuffer();
-            text.append("项目出价预警").append("\n\r").append("您的项目:").append( "测试项目,").append("")
-                    .append("授权名称为:伊对 下的,").append("").append("")
-                    .append("大于项目设置的最高出价:").append(10000 / 1000).append(" 元! 请您及时调整。");
-            batchSend(null,openIds,null,text.toString());
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-
-}

+ 0 - 90
src/main/java/cn/com/ctop/okr/feishu/provider/SendImage.java

@@ -1,90 +0,0 @@
-package cn.com.ctop.okr.feishu.provider;
-
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.config.Registry;
-import org.apache.http.config.RegistryBuilder;
-import org.apache.http.conn.socket.ConnectionSocketFactory;
-import org.apache.http.conn.socket.PlainConnectionSocketFactory;
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
-import org.apache.http.entity.mime.MultipartEntityBuilder;
-import org.apache.http.entity.mime.content.FileBody;
-import org.apache.http.impl.client.BasicCookieStore;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
-import org.apache.http.ssl.SSLContextBuilder;
-import org.apache.http.util.EntityUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-
-
-public class SendImage {
-    public static CloseableHttpClient getHttpClient() {
-        try {
-            SSLContextBuilder builder = new SSLContextBuilder();
-            builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
-            SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(builder.build(),
-                    NoopHostnameVerifier.INSTANCE);
-            Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
-                    .register("http", new PlainConnectionSocketFactory())
-                    .register("https", sslConnectionSocketFactory)
-                    .build();
-            PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(registry);
-            cm.setMaxTotal(100);
-            CloseableHttpClient httpclient = HttpClients.custom()
-                    .setSSLSocketFactory(sslConnectionSocketFactory)
-                    .setDefaultCookieStore(new BasicCookieStore())
-                    .setConnectionManager(cm).build();
-            return httpclient;
-        } catch (KeyManagementException e) {
-            e.printStackTrace();
-        } catch (NoSuchAlgorithmException e) {
-            e.printStackTrace();
-        } catch (KeyStoreException e) {
-            e.printStackTrace();
-        }
-        return HttpClients.createDefault();
-    }
-    public static String SendImageByApacheHttpClient(File file,String tenantAccessToken) throws IOException {
-        CloseableHttpClient client = getHttpClient();
-        HttpPost post = new HttpPost("https://open.feishu.cn/open-apis/image/v4/put/");
-        final MultipartEntityBuilder builder = MultipartEntityBuilder.create();
-        FileBody bin = new FileBody(file);
-        builder.addPart("image", bin);
-        builder.addTextBody("image_type", "message");
-        HttpEntity multiPartEntity = builder.build();
-        post.setEntity(multiPartEntity);
-        post.setHeader("Authorization", "Bearer "+tenantAccessToken);
-        CloseableHttpResponse response = client.execute(post);
-        System.out.println("http response code:" + response.getStatusLine().getStatusCode());
-        for (Header header: response.getAllHeaders()) {
-            System.out.println(header.toString());
-        }
-        HttpEntity resEntity = response.getEntity();
-        if (resEntity == null) {
-            System.out.println("never here?");
-            return "";
-        }
-        System.out.println("Response content length: " + resEntity.getContentLength());
-        return EntityUtils.toString(resEntity);
-    }
-    public static void main(String[] args) throws Exception {
-        File file = new File("D:\\android\\15812888.jpeg");
-        String token = AuthProvider.getTenantAccessToken();
-        String result = SendImageByApacheHttpClient(file,token);
-        System.out.println(result);
-        /**
-         * {"code":0,"msg":"ok","data":{"image_key":"img_f8bb4cdf-fd0b-4c29-98c5-5147efd4b13g"}}
-         */
-    }
-
-}

+ 1 - 1
src/main/java/cn/com/ctop/okr/mapper/OkrKrInfoMapper.java

@@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
 
 
-public interface OkrKrInfoMapper extends BaseMapper<OkrContentStatus> {
+public interface OkrKrInfoMapper extends BaseMapper<OkrKrInfo> {
 
 
     List<OkrKrInfo> getKrByObjectId(@Param("objectId")Long objectId, @Param("userId")String userId, @Param("year")Integer year, @Param("quarter")Integer quarter);
     List<OkrKrInfo> getKrByObjectId(@Param("objectId")Long objectId, @Param("userId")String userId, @Param("year")Integer year, @Param("quarter")Integer quarter);
 
 

+ 2 - 0
src/main/java/cn/com/ctop/okr/mapper/OkrMemberMapper.java

@@ -15,4 +15,6 @@ public interface OkrMemberMapper extends BaseMapper<OkrContentStatus> {
     List<UserInfoDto> getMemberListByUserId(@Param("userId")String userId, @Param("name")String name, @Param("year")Integer year, @Param("quarter")Integer quarter);
     List<UserInfoDto> getMemberListByUserId(@Param("userId")String userId, @Param("name")String name, @Param("year")Integer year, @Param("quarter")Integer quarter);
 
 
     List<String> getSyncUserListByMemberId(@Param("memberId")String memberId, @Param("year")Integer year, @Param("quarter")Integer quarter, @Param("name")String name);
     List<String> getSyncUserListByMemberId(@Param("memberId")String memberId, @Param("year")Integer year, @Param("quarter")Integer quarter, @Param("name")String name);
+
+    List<String> getSyncUserListByName(@Param("name")String name,@Param("startIndex")Integer startIndex,@Param("pageSize")Integer pageSize);
 }
 }

+ 14 - 0
src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoDisclosureMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.okr.mapper;
+
+import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * okr o 信息公开
+ * @author: jeecg-boot
+ * @date:   2020-09-04
+ * @cersion: V1.0
+ */
+public interface OkrObjectInfoDisclosureMapper extends BaseMapper<OkrObjectInfoDisclosure> {
+
+}

+ 6 - 1
src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoMapper.java

@@ -9,7 +9,12 @@ import java.util.List;
 public interface OkrObjectInfoMapper extends BaseMapper<OkrObjectInfo> {
 public interface OkrObjectInfoMapper extends BaseMapper<OkrObjectInfo> {
    List<OkrObjectInfo> getQuarterObject(@Param("userId")String userId, @Param("year")Integer year, @Param("quarter")Integer quarter);
    List<OkrObjectInfo> getQuarterObject(@Param("userId")String userId, @Param("year")Integer year, @Param("quarter")Integer quarter);
 
 
-   List<OkrObjectInfo> getAllQuarterObject(@Param("userIdList")List<String> userIdList, @Param("year")Integer year, @Param("quarter")Integer quarter);
+   List<OkrObjectInfo> getAllQuarterObject(
+           @Param("name")String name,
+           @Param("year")Integer year,
+           @Param("quarter")Integer quarter,
+           @Param("startIndex")Integer startIndex,
+           @Param("pageSize")Integer pageSize);
 
 
    Long insertObjectInfo(@Param("object")OkrObjectInfo object);
    Long insertObjectInfo(@Param("object")OkrObjectInfo object);
 
 

+ 14 - 0
src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoRemindMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.okr.mapper;
+
+import cn.com.ctop.okr.entity.OkrObjectInfoRemind;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * okr 对象提醒信息
+ * @author: jeecg-boot
+ * @date:   2020-09-04
+ * @cersion: V1.0
+ */
+public interface OkrObjectInfoRemindMapper extends BaseMapper<OkrObjectInfoRemind> {
+
+}

+ 14 - 0
src/main/java/cn/com/ctop/okr/mapper/OkrTaskInfoDisclosureMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.okr.mapper;
+
+import cn.com.ctop.okr.entity.OkrTaskInfoDisclosure;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * okr o 信息公开
+ * @author: jeecg-boot
+ * @date:   2020-09-04
+ * @cersion: V1.0
+ */
+public interface OkrTaskInfoDisclosureMapper extends BaseMapper<OkrTaskInfoDisclosure> {
+
+}

+ 14 - 0
src/main/java/cn/com/ctop/okr/mapper/OkrTaskInfoRemindMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.okr.mapper;
+
+import cn.com.ctop.okr.entity.OkrTaskInfoRemind;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * okr 任务提醒信息
+ * @author: jeecg-boot
+ * @date:   2020-09-04
+ * @cersion: V1.0
+ */
+public interface OkrTaskInfoRemindMapper extends BaseMapper<OkrTaskInfoRemind> {
+
+}

+ 3 - 0
src/main/java/cn/com/ctop/okr/mapper/QYWxDepartInfoMapper.java

@@ -3,6 +3,7 @@ package cn.com.ctop.okr.mapper;
 import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.entity.CorpUserInfo;
 import cn.com.ctop.okr.entity.CorpUserInfo;
 import cn.com.ctop.okr.entity.QYWxDepartInfo;
 import cn.com.ctop.okr.entity.QYWxDepartInfo;
+import cn.com.ctop.okr.vo.QYWxDepartInfoVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -12,4 +13,6 @@ public interface QYWxDepartInfoMapper extends BaseMapper<QYWxDepartInfo> {
 
 
     void insertWxDepartInfo(@Param("departInfo")QYWxDepartInfo departInfo);
     void insertWxDepartInfo(@Param("departInfo")QYWxDepartInfo departInfo);
 
 
+    List<QYWxDepartInfoVO> getDepartInfoVo();
+
 }
 }

+ 2 - 0
src/main/java/cn/com/ctop/okr/mapper/QYWxUserInfoMapper.java

@@ -4,6 +4,7 @@ import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.entity.CorpUserInfo;
 import cn.com.ctop.okr.entity.CorpUserInfo;
 import cn.com.ctop.okr.entity.QYWxUserDepartMap;
 import cn.com.ctop.okr.entity.QYWxUserDepartMap;
 import cn.com.ctop.okr.entity.QYWxUserInfo;
 import cn.com.ctop.okr.entity.QYWxUserInfo;
+import cn.com.ctop.okr.vo.QYWxDepartInfoVO;
 import cn.hutool.system.UserInfo;
 import cn.hutool.system.UserInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -32,4 +33,5 @@ public interface QYWxUserInfoMapper extends BaseMapper<QYWxUserInfo> {
 
 
     QYWxUserInfo getUserInfoByOpenId(@Param("openId")String openId);
     QYWxUserInfo getUserInfoByOpenId(@Param("openId")String openId);
 
 
+    List<QYWxDepartInfoVO> getDepartInfoVo();
 }
 }

+ 18 - 8
src/main/java/cn/com/ctop/okr/mapper/xml/OkrMemberMapper.xml

@@ -50,21 +50,31 @@
     <!-- 获取本季度同步给我OKR的同事的列表 -->
     <!-- 获取本季度同步给我OKR的同事的列表 -->
     <select id="getSyncUserListByMemberId" resultType="string">
     <select id="getSyncUserListByMemberId" resultType="string">
         select
         select
-        a.user_id as userId
-        -- b.name as name,
-        -- d.depart_name as departName
+            a.user_id as userId
         from
         from
-        okr_member a
+            okr_member a
         left join wx_user_info b on a.user_id = b.open_id
         left join wx_user_info b on a.user_id = b.open_id
-        -- left join feishu_corp_user_depart_map c on b.open_id = c.open_id
         left join wx_depart_info d on b.main_department = d.id
         left join wx_depart_info d on b.main_department = d.id
         where
         where
-        a.year = #{year} and
-        a.quarter = #{quarter} and
-        a.member_id = #{memberId}
+            a.year = #{year} and
+            a.quarter = #{quarter} and
+            a.member_id = #{memberId}
         <if test="name != null and name != '' ">
         <if test="name != null and name != '' ">
             and b.name like concat('%',#{name},'%')
             and b.name like concat('%',#{name},'%')
         </if>
         </if>
     </select>
     </select>
 
 
+    <select id="getSyncUserListByName" resultType="string">
+        select
+            open_id as userId
+        from
+            wx_user_info
+        where
+            1=1
+        <if test="name != null and name != '' ">
+            and name like concat('%',#{name},'%')
+        </if>
+        limit #{startIndex},#{pageSize}
+    </select>
+
 </mapper>
 </mapper>

+ 5 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoDisclosureMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.okr.mapper.OkrObjectInfoDisclosureMapper">
+
+</mapper>

+ 7 - 7
src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoMapper.xml

@@ -74,15 +74,15 @@
         okr_object_info a
         okr_object_info a
         left join wx_user_info b on a.user_id = b.open_id
         left join wx_user_info b on a.user_id = b.open_id
         where
         where
-        a.user_id in
-        <foreach collection="userIdList" item="item" separator=","
-                 open="(" close=")">
-            #{item}
-        </foreach>
+            1=1
         and
         and
-        a.year = #{year}
+            a.year = #{year}
         and
         and
-        a.quarter = #{quarter}
+            a.quarter = #{quarter}
+        <if test="name != null and name != '' ">
+            and b.name like concat('%',#{name},'%')
+        </if>
+        limit #{startIndex},#{pageSize}
     </select>
     </select>
 
 
 </mapper>
 </mapper>

+ 5 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoRemindMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.okr.mapper.OkrObjectInfoRemindMapper">
+
+</mapper>

+ 5 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/OkrTaskInfoDisclosureMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.okr.mapper.OkrTaskInfoDisclosureMapper">
+
+</mapper>

+ 5 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/OkrTaskInfoRemindMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.okr.mapper.OkrTaskInfoRemindMapper">
+
+</mapper>

+ 3 - 3
src/main/java/cn/com/ctop/okr/mapper/xml/QYWxDepartInfoMapper.xml

@@ -20,9 +20,9 @@
         )
         )
 
 
     </insert>
     </insert>
-
-
-
+    <select id="getDepartInfoVo" resultType="cn.com.ctop.okr.vo.QYWxDepartInfoVO">
+        select id,id as 'value',depart_name as 'label',parentid as 'parent_id' from wx_depart_info
+    </select>
 
 
 
 
 </mapper>
 </mapper>

+ 10 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/QYWxUserInfoMapper.xml

@@ -109,5 +109,15 @@
         wx_user_info
         wx_user_info
         where userid = #{userid}
         where userid = #{userid}
     </select>
     </select>
+    <select id="getDepartInfoVo" resultType="cn.com.ctop.okr.vo.QYWxDepartInfoVO">
+        SELECT
+	        concat(user.open_id,'##',depart.depart_id) as 'id',
+            concat(user.open_id,'##',depart.depart_id) as 'value',
+	        user.name as 'label',
+	        depart.depart_id as 'parent_id'
+        FROM
+	        wx_user_info user
+        LEFT JOIN wx_user_depart_map depart ON user.userid = depart.userid
+    </select>
 
 
 </mapper>
 </mapper>

+ 0 - 21
src/main/java/cn/com/ctop/okr/service/CorpUserInfoService.java

@@ -1,21 +0,0 @@
-package cn.com.ctop.okr.service;
-
-import cn.com.ctop.okr.dto.FeishuUserInfoDto;
-import cn.com.ctop.okr.dto.UserInfoDto;
-import cn.com.ctop.okr.entity.CorpDepartInfo;
-import cn.com.ctop.okr.entity.CorpUserInfo;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-import java.util.List;
-
-public interface CorpUserInfoService extends IService<CorpUserInfo> {
-
-    List<CorpDepartInfo> queryUserDeparts(String openId);
-
-    CorpUserInfo getUserInfoByOpenId(String openId);
-
-    void loadFeishuDepartAndUserInfo() throws Exception;
-
-    List<UserInfoDto> getUserListByName(String name);
-
-}

+ 8 - 0
src/main/java/cn/com/ctop/okr/service/IKrInfoservice.java

@@ -0,0 +1,8 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.entity.OkrKrInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface IKrInfoservice extends IService<OkrKrInfo> {
+    void updateKrInfo(OkrKrInfo krInfo);
+}

+ 15 - 0
src/main/java/cn/com/ctop/okr/service/IOkrObjectInfoDisclosureService.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: okr o 信息公开
+ * @Author: jeecg-boot
+ * @Date:   2020-09-04
+ * @Version: V1.0
+ */
+public interface IOkrObjectInfoDisclosureService extends IService<OkrObjectInfoDisclosure> {
+
+    void deleteByKrId(Long krId);
+}

+ 15 - 0
src/main/java/cn/com/ctop/okr/service/IOkrObjectInfoRemindService.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.entity.OkrObjectInfoRemind;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: okr 对象提醒信息
+ * @Author: jeecg-boot
+ * @Date:   2020-09-04
+ * @Version: V1.0
+ */
+public interface IOkrObjectInfoRemindService extends IService<OkrObjectInfoRemind> {
+
+    void deleteByKrId(Long krId);
+}

+ 14 - 0
src/main/java/cn/com/ctop/okr/service/IOkrTaskInfoDisclosureService.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.entity.OkrTaskInfoDisclosure;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: okr o 信息公开
+ * @Author: jeecg-boot
+ * @Date:   2020-09-04
+ * @Version: V1.0
+ */
+public interface IOkrTaskInfoDisclosureService extends IService<OkrTaskInfoDisclosure> {
+    void deleteByTaskId(Long taskId);
+}

+ 15 - 0
src/main/java/cn/com/ctop/okr/service/IOkrTaskInfoRemindService.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.entity.OkrTaskInfoRemind;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: okr 任务提醒信息
+ * @Author: jeecg-boot
+ * @Date:   2020-09-04
+ * @Version: V1.0
+ */
+public interface IOkrTaskInfoRemindService extends IService<OkrTaskInfoRemind> {
+
+    void deleteByTaskId(Long taskId);
+}

+ 2 - 1
src/main/java/cn/com/ctop/okr/service/OkrService.java

@@ -6,6 +6,7 @@ import cn.com.ctop.okr.entity.OkrContentStatus;
 import cn.com.ctop.okr.entity.OkrKrInfo;
 import cn.com.ctop.okr.entity.OkrKrInfo;
 import cn.com.ctop.okr.entity.OkrObjectInfo;
 import cn.com.ctop.okr.entity.OkrObjectInfo;
 import cn.com.ctop.okr.entity.OkrTaskInfo;
 import cn.com.ctop.okr.entity.OkrTaskInfo;
+import com.alibaba.fastjson.JSONObject;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -18,7 +19,7 @@ public interface OkrService{
 
 
     List<UserInfoDto> getMemberListByUserId(String name);
     List<UserInfoDto> getMemberListByUserId(String name);
 
 
-    Map<String, Object> getSyncUserListByMemberId(Integer year, Integer quarter, String name);
+    Map<String, Object> getSyncUserListByMemberId(JSONObject data);
 
 
     void insertTaskInfo(OkrTaskInfo taskInfo);
     void insertTaskInfo(OkrTaskInfo taskInfo);
 
 

+ 9 - 0
src/main/java/cn/com/ctop/okr/service/QYWxDepartInfoService.java

@@ -0,0 +1,9 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.dto.TagInfoTreeModel;
+
+import java.util.List;
+
+public interface QYWxDepartInfoService {
+    List<TagInfoTreeModel> queryTreeList();
+}

+ 0 - 186
src/main/java/cn/com/ctop/okr/service/impl/CorpUserInfoServiceImpl.java

@@ -1,186 +0,0 @@
-package cn.com.ctop.okr.service.impl;
-
-import cn.com.ctop.okr.dto.FeishuUserInfoDto;
-import cn.com.ctop.okr.dto.UserInfoDto;
-import cn.com.ctop.okr.entity.CorpDepartInfo;
-import cn.com.ctop.okr.entity.CorpUserDepartMap;
-import cn.com.ctop.okr.entity.CorpUserInfo;
-import cn.com.ctop.okr.feishu.provider.DepartmentProvider;
-import cn.com.ctop.okr.mapper.CorpDepartInfoMapper;
-import cn.com.ctop.okr.mapper.CorpUserInfoMapper;
-import cn.com.ctop.okr.service.CorpUserInfoService;
-import cn.com.ctop.okr.utils.Check;
-import cn.com.ctop.okr.utils.DateUtils;
-import cn.com.ctop.okr.vo.UserDepartMap;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Service
-@Slf4j
-public class CorpUserInfoServiceImpl extends ServiceImpl<CorpUserInfoMapper, CorpUserInfo> implements CorpUserInfoService {
-
-    @Autowired
-    private CorpDepartInfoMapper corpDepartInfoMapper;
-    @Autowired
-    private CorpUserInfoMapper corpUserInfoMapper;
-
-    @Override
-    public List<CorpDepartInfo> queryUserDeparts(String openId){
-        return corpDepartInfoMapper.queryUserDeparts(openId);
-    }
-
-    /**
-     * 获取飞书公司部门和员工信息
-     * @throws Exception
-     */
-    @Override
-    public void loadFeishuDepartAndUserInfo() throws Exception {
-        log.info("获取飞书公司部门列表开始");
-        //同步飞书部门列表
-        loadFeishuDepartInfo("0", null);
-        log.info("获取飞书公司部门列表结束");
-        log.info("获取飞书公司员工信息开始");
-        loadFeishuUserInfoByDepartId();
-        log.info("获取飞书公司员工信息结束");
-    }
-
-    private void loadFeishuDepartInfo(String department_id, String page_token) throws Exception {
-        JSONObject resultJson = DepartmentProvider.getDepartSimpleList(department_id,null);
-        Integer code = resultJson.getInteger("code");
-        if(code != 0){
-            //log.error("部门列表返回不成功,返回为:{}",resultJson.getString("msg"));
-            throw new Exception("部门列表返回不成功,返回为:" + resultJson);
-        }
-
-        JSONObject dataJson = resultJson.getJSONObject("data");
-        if(Check.isNull(dataJson)){
-            throw new Exception("部门列表返回不成功,返回为:" + resultJson);
-        }
-        JSONArray departmentInfos = dataJson.getJSONArray("department_infos");
-        int size = departmentInfos.size();
-
-        for(int i=0; i<size; i++){
-            JSONObject departmentInfo = departmentInfos.getJSONObject(i);
-            CorpDepartInfo departInfo = new CorpDepartInfo();
-            departInfo.setDepartmentId(departmentInfo.getString("id"));
-            departInfo.setDepartmentName(departmentInfo.getString("name"));
-            departInfo.setOpenDepartmentId(departmentInfo.getString("parent_open_department_id"));
-            departInfo.setParentId(departmentInfo.getString("parent_id"));
-            departInfo.setParentOpenDepartmentId(departmentInfo.getString("parent_open_department_id"));
-
-            corpDepartInfoMapper.replaceInfoDepartInfo(departInfo);
-        }
-
-        Boolean hasMore = dataJson.getBoolean("has_more");
-        if(hasMore){
-            String pageToken = dataJson.getString("page_token");
-            loadFeishuDepartInfo(department_id, pageToken);
-        }
-    }
-
-    private void loadFeishuUserInfoByDepartId(){
-        List<String> departIdList = corpDepartInfoMapper.getCorpDepartIdList();
-        for (String departId:departIdList){
-            try {
-                loadFeishuUserInfo(departId,null);
-            }catch (Exception e){
-                log.error(e.getMessage());
-            }
-        }
-    }
-
-    private void loadFeishuUserInfo(String department_id, String page_token) throws Exception {
-        JSONObject resultJson = DepartmentProvider.getDepartmentUserDetailList(department_id, page_token);
-
-        Integer code = resultJson.getInteger("code");
-        if(code != 0){
-            throw new Exception("飞书部门员工明细返回不成功,返回为:" + resultJson);
-        }
-
-        JSONObject dataJson = resultJson.getJSONObject("data");
-        if (Check.isNull(dataJson)){
-            throw new Exception("飞书部门员工明细返回不成功,返回为:" + resultJson);
-        }
-
-        JSONArray userInfoArray = dataJson.getJSONArray("user_infos");
-        int size = userInfoArray.size();
-        for(int i=0; i<size; i++){
-            JSONObject userJson = userInfoArray.getJSONObject(i);
-            //数据入库
-            CorpUserInfo user = new CorpUserInfo();
-            String openId = userJson.getString("open_id");
-
-            user.setAvatar72(userJson.getString("avatar_72"));
-            user.setAvatar240(userJson.getString("avatar_240"));
-            user.setAvatar640(userJson.getString("avatar_640"));
-            user.setAvatarUrl(userJson.getString("avatar_url"));
-            user.setCity(userJson.getString("city"));
-            user.setCountry(userJson.getString("country"));
-            user.setEmail(userJson.getString("email"));
-            user.setEmployeeId(userJson.getString("employee_id"));
-            user.setEmployeeNo(userJson.getString("employee_no"));
-            user.setEmployeeType(userJson.getInteger("employee_type"));
-            user.setEnName(userJson.getString("en_name"));
-            user.setGender(userJson.getInteger("gender"));
-            user.setIsTenantManager(userJson.getBoolean("is_tenant_manager")==true?1:0);
-            user.setLeaderEmployeeId(userJson.getString("leader_employee_id"));
-            user.setLeaderOpenId(userJson.getString("leader_open_id"));
-            user.setLeaderUnionId(userJson.getString("leader_union_id"));
-            user.setMobile(userJson.getString("mobile"));
-            user.setName(userJson.getString("name"));
-            user.setNamePy(userJson.getString("name_py"));
-            user.setOpenId(openId);
-            user.setUnionId(userJson.getString("union_id"));
-            user.setStatus(userJson.getInteger("status"));
-            user.setUserUpdateTime(DateUtils.timeStampToDate(userJson.getLong("update_time") * 1000));
-            user.setWorkStation(userJson.getString("work_station"));
-
-            corpUserInfoMapper.replaceInfoUserInfo(user);
-
-
-            //员工部门关联表入库
-            JSONArray departListArray = userJson.getJSONArray("departments");
-            corpDepartInfoMapper.deleteUserDepartMapByOpenId(openId);
-            List<CorpUserDepartMap> userDepartMapList = new ArrayList<>();
-            int departListArraySize = departListArray.size();
-            for(int j=0; j<departListArraySize; j++){
-                CorpUserDepartMap map = new CorpUserDepartMap();
-                String departmentId = departListArray.getString(j);
-                map.setDepartmentId(departmentId);
-                map.setOpenId(openId);
-                userDepartMapList.add(map);
-            }
-            corpDepartInfoMapper.insertUserDepartMapList(userDepartMapList);
-        }
-
-        Boolean hasMore = resultJson.getJSONObject("data").getBoolean("has_more");
-        if(hasMore){
-            String pageToken = resultJson.getJSONObject("data").getString("page_token");
-            loadFeishuUserInfo(department_id,pageToken);
-        }
-
-    }
-
-
-    @Override
-    public CorpUserInfo getUserInfoByOpenId(String openId){
-        return corpUserInfoMapper.getUserInfoByOpenId(openId);
-    }
-
-    //根据名字模糊查询飞书用户
-    @Override
-    public List<UserInfoDto> getUserListByName(String name){
-        return corpUserInfoMapper.getUserListByName(name);
-    }
-
-
-
-}

+ 18 - 0
src/main/java/cn/com/ctop/okr/service/impl/KrInfoserviceImpl.java

@@ -0,0 +1,18 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.entity.OkrKrInfo;
+import cn.com.ctop.okr.mapper.OkrKrInfoMapper;
+import cn.com.ctop.okr.service.IKrInfoservice;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class KrInfoserviceImpl extends ServiceImpl<OkrKrInfoMapper, OkrKrInfo> implements IKrInfoservice {
+    @Autowired
+    private OkrKrInfoMapper krInfoMapper;
+    @Override
+    public void updateKrInfo(OkrKrInfo krInfo) {
+        krInfoMapper.updateKrInfo(krInfo);
+    }
+}

+ 31 - 0
src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoDisclosureServiceImpl.java

@@ -0,0 +1,31 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
+import cn.com.ctop.okr.mapper.OkrObjectInfoDisclosureMapper;
+import cn.com.ctop.okr.service.IOkrObjectInfoDisclosureService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * okr o 信息公开
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Service
+public class OkrObjectInfoDisclosureServiceImpl extends ServiceImpl<OkrObjectInfoDisclosureMapper, OkrObjectInfoDisclosure> implements IOkrObjectInfoDisclosureService {
+    @Autowired
+    private OkrObjectInfoDisclosureMapper okrObjectInfoDisclosureMapper;
+    @Override
+    public void deleteByKrId(Long krId) {
+        Map<String,Object> map=new HashMap<>();
+        map.put("okr_object_id",krId);
+        okrObjectInfoDisclosureMapper.deleteByMap(map);
+    }
+
+}

+ 29 - 0
src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoRemindServiceImpl.java

@@ -0,0 +1,29 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.entity.OkrObjectInfoRemind;
+import cn.com.ctop.okr.mapper.OkrObjectInfoRemindMapper;
+import cn.com.ctop.okr.service.IOkrObjectInfoRemindService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * okr 对象提醒信息
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Service
+public class OkrObjectInfoRemindServiceImpl extends ServiceImpl<OkrObjectInfoRemindMapper, OkrObjectInfoRemind> implements IOkrObjectInfoRemindService {
+    @Autowired
+    private OkrObjectInfoRemindMapper okrObjectInfoRemindMapper;
+    @Override
+    public void deleteByKrId(Long krId) {
+        Map<String,Object> map=new HashMap<>();
+        map.put("okr_object_id",krId);
+        okrObjectInfoRemindMapper.deleteByMap(map);
+    }
+}

+ 204 - 41
src/main/java/cn/com/ctop/okr/service/impl/OkrServiceImpl.java

@@ -3,9 +3,8 @@ package cn.com.ctop.okr.service.impl;
 import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.entity.*;
 import cn.com.ctop.okr.entity.*;
 import cn.com.ctop.okr.mapper.*;
 import cn.com.ctop.okr.mapper.*;
-import cn.com.ctop.okr.service.OkrService;
+import cn.com.ctop.okr.service.*;
 import cn.com.ctop.okr.utils.DateUtils;
 import cn.com.ctop.okr.utils.DateUtils;
-import cn.com.ctop.okr.vo.LoginUser;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
@@ -13,7 +12,6 @@ import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.time.Year;
 import java.util.*;
 import java.util.*;
 
 
 @Service
 @Service
@@ -105,13 +103,14 @@ public class OkrServiceImpl implements OkrService {
         return okrMemberMapper.getMemberListByUserId(userId, name, year, quarter);
         return okrMemberMapper.getMemberListByUserId(userId, name, year, quarter);
     }
     }
 
 
+    @Autowired
+    private IOkrTaskInfoDisclosureService okrTaskInfoDisclosureService;
+    @Autowired
+    private IOkrTaskInfoRemindService okrTaskInfoRemindService;
     //保存任务
     //保存任务
     @Override
     @Override
     public void insertTaskInfo(OkrTaskInfo taskInfo){
     public void insertTaskInfo(OkrTaskInfo taskInfo){
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
-        System.out.println("sysUser:"+ sysUser.getOpenId() + " name:" + sysUser.getName() );
-
-        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         String userId = sysUser.getOpenId();
         String userId = sysUser.getOpenId();
         Integer year = DateUtils.getYear(new Date());
         Integer year = DateUtils.getYear(new Date());
         Integer quarter = DateUtils.getQuarter(new Date());
         Integer quarter = DateUtils.getQuarter(new Date());
@@ -119,12 +118,49 @@ public class OkrServiceImpl implements OkrService {
         taskInfo.setYear(year);
         taskInfo.setYear(year);
         taskInfo.setQuarter(quarter);
         taskInfo.setQuarter(quarter);
         okrTaskInfoMapper.insertTaskInfo(taskInfo);
         okrTaskInfoMapper.insertTaskInfo(taskInfo);
-
+        if(null!=taskInfo.getPublicIds()&&!taskInfo.getPublicIds().isEmpty()){
+            List<String>publicIds = taskInfo.getPublicIds();
+            for(String publicId:publicIds){
+                String[] ids = publicId.split("##");
+                OkrTaskInfoDisclosure disclosure = new OkrTaskInfoDisclosure();
+                disclosure.setOkrTaskId(taskInfo.getId());
+                //部门
+                if(ids.length == 1){
+                    disclosure.setPublicType(1);
+                }
+                if(ids.length == 2){
+                    disclosure.setPublicType(2);
+                }
+                disclosure.setPublicId(ids[0]);
+                disclosure.setStatus(1);
+                okrTaskInfoDisclosureService.save(disclosure);
+            }
+        }
+        if(null!=taskInfo.getRemindIds()&&!taskInfo.getRemindIds().isEmpty()){
+            List<String>remindIds = taskInfo.getRemindIds();
+            for(String remindId:remindIds){
+                String[] ids = remindId.split("##");
+                OkrTaskInfoRemind remind = new OkrTaskInfoRemind();
+                remind.setOkrTaskId(taskInfo.getId());
+                //部门
+                if(ids.length == 1){
+                    remind.setRemindType(1);
+                }
+                if(ids.length == 2){
+                    remind.setRemindType(2);
+                }
+                remind.setRemindId(ids[0]);
+                remind.setStatus(1);
+                okrTaskInfoRemindService.save(remind);
+            }
+        }
         //日志留存
         //日志留存
         OkrLog okrLog = new OkrLog();
         OkrLog okrLog = new OkrLog();
-        okrLog.setType(1); //操作:1.创建2.修改3.删除
+        //操作:1.创建2.修改3.删除
+        okrLog.setType(1);
         if(taskInfo.getType() == 1){
         if(taskInfo.getType() == 1){
-            okrLog.setOperation(3);  //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
+            //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
+            okrLog.setOperation(3);
         }else{
         }else{
             okrLog.setOperation(4);
             okrLog.setOperation(4);
         }
         }
@@ -140,16 +176,59 @@ public class OkrServiceImpl implements OkrService {
     @Override
     @Override
     public void updateTaskInfo(OkrTaskInfo taskInfo){
     public void updateTaskInfo(OkrTaskInfo taskInfo){
         okrTaskInfoMapper.updateTaskInfo(taskInfo);
         okrTaskInfoMapper.updateTaskInfo(taskInfo);
+        /**
+         * 需要先删除历史数据
+         */
         taskInfo = okrTaskInfoMapper.selectById(taskInfo.getId());
         taskInfo = okrTaskInfoMapper.selectById(taskInfo.getId());
+        okrTaskInfoDisclosureService.deleteByTaskId(taskInfo.getId());
+        okrTaskInfoRemindService.deleteByTaskId(taskInfo.getId());
+        if(null!=taskInfo.getPublicIds()&&!taskInfo.getPublicIds().isEmpty()){
+            List<String>publicIds = taskInfo.getPublicIds();
+            for(String publicId:publicIds){
+                String[] ids = publicId.split("##");
+                OkrTaskInfoDisclosure disclosure = new OkrTaskInfoDisclosure();
+                disclosure.setOkrTaskId(taskInfo.getId());
+                //部门
+                if(ids.length == 1){
+                    disclosure.setPublicType(1);
+                }
+                if(ids.length == 2){
+                    disclosure.setPublicType(2);
+                }
+                disclosure.setPublicId(ids[0]);
+                disclosure.setStatus(1);
+                okrTaskInfoDisclosureService.save(disclosure);
+            }
+        }
+        if(null!=taskInfo.getRemindIds()&&!taskInfo.getRemindIds().isEmpty()){
+            List<String>remindIds = taskInfo.getRemindIds();
+            for(String remindId:remindIds){
+                String[] ids = remindId.split("##");
+                OkrTaskInfoRemind remind = new OkrTaskInfoRemind();
+                remind.setOkrTaskId(taskInfo.getId());
+                //部门
+                if(ids.length == 1){
+                    remind.setRemindType(1);
+                }
+                if(ids.length == 2){
+                    remind.setRemindType(2);
+                }
+                remind.setRemindId(ids[0]);
+                remind.setStatus(1);
+                okrTaskInfoRemindService.save(remind);
+            }
+        }
 
 
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         String userId = sysUser.getOpenId();
         String userId = sysUser.getOpenId();
         //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //日志留存
         //日志留存
         OkrLog okrLog = new OkrLog();
         OkrLog okrLog = new OkrLog();
-        okrLog.setType(2); //操作:1.创建2.修改3.删除
+        //操作:1.创建2.修改3.删除
+        okrLog.setType(2);
         if(taskInfo.getType() == 1){
         if(taskInfo.getType() == 1){
-            okrLog.setOperation(3);  //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
+            //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
+            okrLog.setOperation(3);
         }else{
         }else{
             okrLog.setOperation(4);
             okrLog.setOperation(4);
         }
         }
@@ -174,8 +253,10 @@ public class OkrServiceImpl implements OkrService {
 
 
         //日志留存
         //日志留存
         OkrLog okrLog = new OkrLog();
         OkrLog okrLog = new OkrLog();
-        okrLog.setType(1); //操作:1.创建2.修改3.删除
-        okrLog.setOperation(5);  //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
+        //操作:1.创建2.修改3.删除
+        okrLog.setType(1);
+        //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
+        okrLog.setOperation(5);
         okrLog.setOperationId(content.getId());
         okrLog.setOperationId(content.getId());
         okrLog.setYear(DateUtils.getYear(new Date()));
         okrLog.setYear(DateUtils.getYear(new Date()));
         okrLog.setQuarter(DateUtils.getQuarter(new Date()));
         okrLog.setQuarter(DateUtils.getQuarter(new Date()));
@@ -270,10 +351,49 @@ public class OkrServiceImpl implements OkrService {
         okrLog.setUserId(userId);
         okrLog.setUserId(userId);
         okrLogMapper.insertOkrLog(okrLog);
         okrLogMapper.insertOkrLog(okrLog);
     }
     }
-
+    @Autowired
+    private IKrInfoservice krInfoservice;
     @Override
     @Override
-    public void updateKr(OkrKrInfo okrKrInfo){
-        okrKrInfoMapper.updateKrInfo(okrKrInfo);
+    public void updateKr(OkrKrInfo krInfo){
+        krInfoservice.updateKrInfo(krInfo);
+        okrObjectInfoDisclosureService.deleteByKrId(krInfo.getId());
+        okrObjectInfoRemindService.deleteByKrId(krInfo.getId());
+        if(null!=krInfo.getPublicIds()&&!krInfo.getPublicIds().isEmpty()){
+            List<String>publicIds = krInfo.getPublicIds();
+            for(String publicId:publicIds){
+                String[] ids = publicId.split("##");
+                OkrObjectInfoDisclosure disclosure = new OkrObjectInfoDisclosure();
+                disclosure.setOkrObjectId(krInfo.getId());
+                //部门
+                if(ids.length == 1){
+                    disclosure.setPublicType(1);
+                }
+                if(ids.length == 2){
+                    disclosure.setPublicType(2);
+                }
+                disclosure.setPublicId(ids[0]);
+                disclosure.setStatus(1);
+                okrObjectInfoDisclosureService.save(disclosure);
+            }
+        }
+        if(null!=krInfo.getRemindIds()&&!krInfo.getRemindIds().isEmpty()){
+            List<String>remindIds = krInfo.getRemindIds();
+            for(String remindId:remindIds){
+                String[] ids = remindId.split("##");
+                OkrObjectInfoRemind remind = new OkrObjectInfoRemind();
+                remind.setOkrObjectId(krInfo.getId());
+                //部门
+                if(ids.length == 1){
+                    remind.setRemindType(1);
+                }
+                if(ids.length == 2){
+                    remind.setRemindType(2);
+                }
+                remind.setRemindId(ids[0]);
+                remind.setStatus(1);
+                okrObjectInfoRemindService.save(remind);
+            }
+        }
 
 
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         String userId = sysUser.getOpenId();
         String userId = sysUser.getOpenId();
@@ -282,28 +402,39 @@ public class OkrServiceImpl implements OkrService {
         OkrLog okrLog = new OkrLog();
         OkrLog okrLog = new OkrLog();
         okrLog.setType(2); //操作:1.创建2.修改3.删除
         okrLog.setType(2); //操作:1.创建2.修改3.删除
         okrLog.setOperation(2);  //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
         okrLog.setOperation(2);  //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
-        okrLog.setOperationId(okrKrInfo.getId());
+        okrLog.setOperationId(krInfo.getId());
         okrLog.setYear(DateUtils.getYear(new Date()));
         okrLog.setYear(DateUtils.getYear(new Date()));
         okrLog.setQuarter(DateUtils.getQuarter(new Date()));
         okrLog.setQuarter(DateUtils.getQuarter(new Date()));
-        okrLog.setContent(JSONObject.toJSONString(okrKrInfo));
+        okrLog.setContent(JSONObject.toJSONString(krInfo));
         okrLog.setUserId(userId);
         okrLog.setUserId(userId);
         okrLogMapper.insertOkrLog(okrLog);
         okrLogMapper.insertOkrLog(okrLog);
     }
     }
 
 
     //获取本季度同步给我OKR的同事的列表
     //获取本季度同步给我OKR的同事的列表
     @Override
     @Override
-    public Map<String, Object> getSyncUserListByMemberId(Integer year, Integer quarter, String name){
+    public Map<String, Object> getSyncUserListByMemberId(JSONObject data){
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         String memberId = sysUser.getOpenId();
         String memberId = sysUser.getOpenId();
-        //String memberId = "obQGf1fqw5_RJGrLzhWBioxUH0T0";
-        Integer isCurrentQuarter = null;
+        Integer pageSize = data.getInteger("pageSize");
+        if(null == pageSize||pageSize == 0){
+            pageSize = 12;
+        }
+        Integer pageNumber = data.getInteger("pageNumber");
+        if(null == pageNumber||pageNumber == 0){
+            pageNumber = 1;
+        }
+        Integer year = data.getInteger("year");
+        Integer quarter = data.getInteger("quarter");
+        String name = data.getString("name");
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
-        //List<List<Map<String, Object>>> list = new ArrayList<>();
 
 
         Integer todayQuarter = DateUtils.getQuarter(new Date());
         Integer todayQuarter = DateUtils.getQuarter(new Date());
         Integer todayYear = DateUtils.getYear(new Date());
         Integer todayYear = DateUtils.getYear(new Date());
-        if(year ==null || quarter ==null){
+        Integer isCurrentQuarter = 0;
+        if(year ==null){
             year = todayYear;
             year = todayYear;
+        }
+        if(null == quarter||quarter == 0){
             quarter = todayQuarter;
             quarter = todayQuarter;
         }
         }
 
 
@@ -314,28 +445,22 @@ public class OkrServiceImpl implements OkrService {
             isCurrentQuarter = 0;
             isCurrentQuarter = 0;
         }
         }
 
 
-        List<String> userList = okrMemberMapper.getSyncUserListByMemberId(memberId, year, quarter, name);
         List<Map<String, Object>> mapList = new ArrayList<>();
         List<Map<String, Object>> mapList = new ArrayList<>();
-        if(userList!=null && userList.size()!=0){
-            List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoMapper.getAllQuarterObject(userList, year, quarter);
-
-            for(OkrObjectInfo object:OkrObjectInfoList){
-                Map<String, Object> okrmap = new HashMap<>();
-                List<OkrKrInfo> krList = okrKrInfoMapper.getKrByObjectId(object.getId(), object.getUserId(), year, quarter);
-                QYWxUserInfo userInfo = wxUserInfoMapper.getUserInfoByOpenId(object.getUserId());
-                okrmap.put("krList", krList);
-                okrmap.put("object", object);
-                okrmap.put("name",userInfo.getName());
-                mapList.add(okrmap);
-            }
-
+        List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoMapper.getAllQuarterObject(name,year, quarter,(pageNumber-1)*pageSize,pageSize);
+        for(OkrObjectInfo object:OkrObjectInfoList){
+            Map<String, Object> okrmap = new HashMap<>();
+            List<OkrKrInfo> krList = okrKrInfoMapper.getKrByObjectId(object.getId(), object.getUserId(), year, quarter);
+            QYWxUserInfo userInfo = wxUserInfoMapper.getUserInfoByOpenId(object.getUserId());
+            okrmap.put("krList", krList);
+            okrmap.put("object", object);
+            okrmap.put("name",userInfo.getName());
+            mapList.add(okrmap);
         }
         }
 
 
         map.put("isCurrentQuarter",isCurrentQuarter);
         map.put("isCurrentQuarter",isCurrentQuarter);
         map.put("list",mapList);
         map.put("list",mapList);
         map.put("year",todayYear);
         map.put("year",todayYear);
         map.put("quarter",todayQuarter);
         map.put("quarter",todayQuarter);
-
         return map;
         return map;
     }
     }
 
 
@@ -420,13 +545,14 @@ public class OkrServiceImpl implements OkrService {
         okrLog.setUserId(userId);
         okrLog.setUserId(userId);
         okrLogMapper.insertOkrLog(okrLog);
         okrLogMapper.insertOkrLog(okrLog);
     }
     }
-
+    @Autowired
+    private IOkrObjectInfoDisclosureService okrObjectInfoDisclosureService;
+    @Autowired
+    private IOkrObjectInfoRemindService okrObjectInfoRemindService;
     @Override
     @Override
     public void insertOkrKrInfo(OkrKrInfo krInfo){
     public void insertOkrKrInfo(OkrKrInfo krInfo){
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         String userId = sysUser.getOpenId();
         String userId = sysUser.getOpenId();
-        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
-
         Integer quarter = DateUtils.getQuarter(new Date());
         Integer quarter = DateUtils.getQuarter(new Date());
         Integer year = DateUtils.getYear(new Date());
         Integer year = DateUtils.getYear(new Date());
 
 
@@ -435,6 +561,43 @@ public class OkrServiceImpl implements OkrService {
         krInfo.setUserId(userId);
         krInfo.setUserId(userId);
         okrKrInfoMapper.insertOkrKrInfo(krInfo);
         okrKrInfoMapper.insertOkrKrInfo(krInfo);
 
 
+        if(null!=krInfo.getPublicIds()&&!krInfo.getPublicIds().isEmpty()){
+            List<String>publicIds = krInfo.getPublicIds();
+            for(String publicId:publicIds){
+                String[] ids = publicId.split("##");
+                OkrObjectInfoDisclosure disclosure = new OkrObjectInfoDisclosure();
+                disclosure.setOkrObjectId(krInfo.getId());
+                //部门
+                if(ids.length == 1){
+                    disclosure.setPublicType(1);
+                }
+                if(ids.length == 2){
+                    disclosure.setPublicType(2);
+                }
+                disclosure.setPublicId(ids[0]);
+                disclosure.setStatus(1);
+                okrObjectInfoDisclosureService.save(disclosure);
+            }
+        }
+        if(null!=krInfo.getRemindIds()&&!krInfo.getRemindIds().isEmpty()){
+            List<String>remindIds = krInfo.getRemindIds();
+            for(String remindId:remindIds){
+                String[] ids = remindId.split("##");
+                OkrObjectInfoRemind remind = new OkrObjectInfoRemind();
+                remind.setOkrObjectId(krInfo.getId());
+                //部门
+                if(ids.length == 1){
+                    remind.setRemindType(1);
+                }
+                if(ids.length == 2){
+                    remind.setRemindType(2);
+                }
+                remind.setRemindId(ids[0]);
+                remind.setStatus(1);
+                okrObjectInfoRemindService.save(remind);
+            }
+        }
+
         //日志留存
         //日志留存
         OkrLog okrKrLog = new OkrLog();
         OkrLog okrKrLog = new OkrLog();
         okrKrLog.setType(1); //操作:1.创建2.修改3.删除
         okrKrLog.setType(1); //操作:1.创建2.修改3.删除

+ 29 - 0
src/main/java/cn/com/ctop/okr/service/impl/OkrTaskInfoDisclosureServiceImpl.java

@@ -0,0 +1,29 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.entity.OkrTaskInfoDisclosure;
+import cn.com.ctop.okr.mapper.OkrTaskInfoDisclosureMapper;
+import cn.com.ctop.okr.service.IOkrTaskInfoDisclosureService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * okr o 信息公开
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Service
+public class OkrTaskInfoDisclosureServiceImpl extends ServiceImpl<OkrTaskInfoDisclosureMapper, OkrTaskInfoDisclosure> implements IOkrTaskInfoDisclosureService {
+    @Autowired
+    private OkrTaskInfoDisclosureMapper okrTaskInfoDisclosureMapper;
+    @Override
+    public void deleteByTaskId(Long taskId) {
+        Map<String,Object> map=new HashMap<>();
+        map.put("okr_task_id",taskId);
+        okrTaskInfoDisclosureMapper.deleteByMap(map);
+    }
+}

+ 29 - 0
src/main/java/cn/com/ctop/okr/service/impl/OkrTaskInfoRemindServiceImpl.java

@@ -0,0 +1,29 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.entity.OkrTaskInfoRemind;
+import cn.com.ctop.okr.mapper.OkrTaskInfoRemindMapper;
+import cn.com.ctop.okr.service.IOkrTaskInfoRemindService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * okr 任务提醒信息
+ * @author jeecg-boot
+ * @date   2020-09-04
+ * @version V1.0
+ */
+@Service
+public class OkrTaskInfoRemindServiceImpl extends ServiceImpl<OkrTaskInfoRemindMapper, OkrTaskInfoRemind> implements IOkrTaskInfoRemindService {
+    @Autowired
+    private OkrTaskInfoRemindMapper okrTaskInfoRemindMapper;
+    @Override
+    public void deleteByTaskId(Long taskId) {
+        Map<String,Object> map=new HashMap<>();
+        map.put("okr_task_id",taskId);
+        okrTaskInfoRemindMapper.deleteByMap(map);
+    }
+}

+ 131 - 0
src/main/java/cn/com/ctop/okr/service/impl/QYWxDepartInfoServiceImpl.java

@@ -0,0 +1,131 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.dto.TagIdModel;
+import cn.com.ctop.okr.dto.TagInfoTreeModel;
+import cn.com.ctop.okr.entity.QYWxDepartInfo;
+import cn.com.ctop.okr.mapper.QYWxDepartInfoMapper;
+import cn.com.ctop.okr.mapper.QYWxUserInfoMapper;
+import cn.com.ctop.okr.service.QYWxDepartInfoService;
+import cn.com.ctop.okr.utils.oConvertUtils;
+import cn.com.ctop.okr.vo.QYWxDepartInfoVO;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class QYWxDepartInfoServiceImpl extends ServiceImpl<QYWxDepartInfoMapper, QYWxDepartInfo> implements QYWxDepartInfoService {
+    @Autowired
+    private QYWxDepartInfoMapper qyWxDepartInfoMapper;
+    @Autowired
+    private QYWxUserInfoMapper qyWxUserInfoMapper;
+    @Override
+    public List<TagInfoTreeModel> queryTreeList() {
+        List<QYWxDepartInfoVO> list = qyWxDepartInfoMapper.getDepartInfoVo();
+        List<QYWxDepartInfoVO> userList = qyWxUserInfoMapper.getDepartInfoVo();
+        list.addAll(userList);
+        // 调用wrapTreeDataToTreeList方法生成树状数据
+        return this.wrapTreeDataToTreeList(list);
+    }
+
+    /**
+     * queryTreeList的子方法 ====1=====
+     * 该方法是s将SysDepart类型的list集合转换成SysDepartTreeModel类型的集合
+     */
+    public List<TagInfoTreeModel> wrapTreeDataToTreeList(List<QYWxDepartInfoVO> recordList) {
+        // 在该方法每请求一次,都要对全局list集合进行一次清理
+        //idList.clear();
+        List<TagIdModel> idList = new ArrayList<>();
+        List<TagInfoTreeModel> records = new ArrayList<>();
+        for (int i = 0; i < recordList.size(); i++) {
+            QYWxDepartInfoVO depart = recordList.get(i);
+            records.add(new TagInfoTreeModel(depart));
+        }
+        List<TagInfoTreeModel> tree = findChildren(records, idList);
+        setEmptyChildrenAsNull(tree);
+        return tree;
+    }
+
+    /**
+     * 获取 DepartIdModel
+     * @param recordList
+     * @return
+     */
+    public List<TagIdModel> wrapTreeDataToDepartIdTreeList(List<QYWxDepartInfoVO> recordList) {
+        // 在该方法每请求一次,都要对全局list集合进行一次清理
+        //idList.clear();
+        List<TagIdModel> idList = new ArrayList<TagIdModel>();
+        List<TagInfoTreeModel> records = new ArrayList<>();
+        for (int i = 0; i < recordList.size(); i++) {
+            QYWxDepartInfoVO depart = recordList.get(i);
+            records.add(new TagInfoTreeModel(depart));
+        }
+        findChildren(records, idList);
+        return idList;
+    }
+
+    /**
+     * queryTreeList的子方法 ====2=====
+     * 该方法是找到并封装顶级父类的节点到TreeList集合
+     */
+    private List<TagInfoTreeModel> findChildren(List<TagInfoTreeModel> recordList, List<TagIdModel> departIdList) {
+
+        List<TagInfoTreeModel> treeList = new ArrayList<>();
+        for (int i = 0; i < recordList.size(); i++) {
+            TagInfoTreeModel branch = recordList.get(i);
+            if (oConvertUtils.isEmpty(branch.getParentId())) {
+                treeList.add(branch);
+                TagIdModel departIdModel = new TagIdModel().convert(branch);
+                departIdList.add(departIdModel);
+            }
+        }
+        getGrandChildren(treeList,recordList,departIdList);
+
+        //idList = departIdList;
+        return treeList;
+    }
+
+    /**
+     * queryTreeList的子方法====3====
+     *该方法是找到顶级父类下的所有子节点集合并封装到TreeList集合
+     */
+    private void getGrandChildren(List<TagInfoTreeModel> treeList,List<TagInfoTreeModel> recordList,List<TagIdModel> idList) {
+
+        for (int i = 0; i < treeList.size(); i++) {
+            TagInfoTreeModel model = treeList.get(i);
+            TagIdModel idModel = idList.get(i);
+            for (int i1 = 0; i1 < recordList.size(); i1++) {
+                TagInfoTreeModel m = recordList.get(i1);
+                if (m.getParentId()!=null && m.getParentId().equals(model.getId())) {
+                    model.getChildren().add(m);
+                    TagIdModel dim = new TagIdModel().convert(m);
+                    idModel.getChildren().add(dim);
+                }
+            }
+            getGrandChildren(treeList.get(i).getChildren(), recordList, idList.get(i).getChildren());
+        }
+
+    }
+
+
+    /**
+     * queryTreeList的子方法 ====4====
+     * 该方法是将子节点为空的List集合设置为Null值
+     */
+    private void setEmptyChildrenAsNull(List<TagInfoTreeModel> treeList) {
+
+        for (int i = 0; i < treeList.size(); i++) {
+            TagInfoTreeModel model = treeList.get(i);
+            if (model.getChildren().size() == 0) {
+                model.setChildren(null);
+                model.setLeaf(true);
+            }else{
+                setEmptyChildrenAsNull(model.getChildren());
+                model.setLeaf(false);
+            }
+        }
+        // sysDepartTreeList = treeList;
+    }
+}

+ 272 - 0
src/main/java/cn/com/ctop/okr/utils/CommonConstant.java

@@ -0,0 +1,272 @@
+package cn.com.ctop.okr.utils;
+
+public interface CommonConstant {
+
+	/**
+	 * 正常状态
+	 */
+	public static final Integer STATUS_NORMAL = 0;
+
+	/**
+	 * 禁用状态
+	 */
+	public static final Integer STATUS_DISABLE = -1;
+
+	/**
+	 * 删除标志
+	 */
+	public static final Integer DEL_FLAG_1 = 1;
+
+	/**
+	 * 未删除
+	 */
+	public static final Integer DEL_FLAG_0 = 0;
+
+	/**
+	 * 系统日志类型: 登录
+	 */
+	public static final int LOG_TYPE_1 = 1;
+
+
+	/**
+	 * 系统日志类型: 操作
+	 */
+	public static final int LOG_TYPE_2 = 2;
+
+	/**
+	 * 操作日志类型: 查询
+	 */
+	public static final int OPERATE_TYPE_1 = 1;
+
+	/**
+	 * 操作日志类型: 添加
+	 */
+	public static final int OPERATE_TYPE_2 = 2;
+
+	/**
+	 * 操作日志类型: 更新
+	 */
+	public static final int OPERATE_TYPE_3 = 3;
+
+	/**
+	 * 操作日志类型: 删除
+	 */
+	public static final int OPERATE_TYPE_4 = 4;
+
+	/**
+	 * 操作日志类型: 倒入
+	 */
+	public static final int OPERATE_TYPE_5 = 5;
+
+	/**
+	 * 操作日志类型: 导出
+	 */
+	public static final int OPERATE_TYPE_6 = 6;
+
+
+	/** {@code 500 Server Error} (HTTP/1.0 - RFC 1945) */
+    public static final Integer SC_INTERNAL_SERVER_ERROR_500 = 500;
+    /** {@code 200 OK} (HTTP/1.0 - RFC 1945) */
+    public static final Integer SC_OK_200 = 200;
+
+    /**访问权限认证未通过 510*/
+    public static final Integer SC_JEECG_NO_AUTHZ=510;
+
+    /** 登录用户Shiro权限缓存KEY前缀 */
+    public static String PREFIX_USER_SHIRO_CACHE  = "shiro:cache:org.jeecg.modules.shiro.authc.ShiroRealm.authorizationCache:";
+    /** 登录用户Token令牌缓存KEY前缀 */
+    public static final String PREFIX_USER_TOKEN  = "prefix_user_token_";
+    /** Token缓存时间:3600秒即一小时 */
+    public static final int  TOKEN_EXPIRE_TIME  = 3600;
+
+
+    /** 登录用户拥有角色缓存KEY前缀 */
+    public static String LOGIN_USER_CACHERULES_ROLE = "loginUser_cacheRules::Roles_";
+    /** 登录用户拥有权限缓存KEY前缀 */
+    public static String LOGIN_USER_CACHERULES_PERMISSION  = "loginUser_cacheRules::Permissions_";
+    /** 登录用户令牌缓存KEY前缀 */
+
+    /**
+     *  0:一级菜单
+     */
+    public static final Integer MENU_TYPE_0  = 0;
+   /**
+    *  1:子菜单
+    */
+    public static final Integer MENU_TYPE_1  = 1;
+    /**
+     *  2:按钮权限
+     */
+    public static final Integer MENU_TYPE_2  = 2;
+
+    /**通告对象类型(USER:指定用户,ALL:全体用户)*/
+    public static final String MSG_TYPE_UESR  = "USER";
+    public static final String MSG_TYPE_ALL  = "ALL";
+
+    /**发布状态(0未发布,1已发布,2已撤销)*/
+    public static final String NO_SEND  = "0";
+    public static final String HAS_SEND  = "1";
+    public static final String HAS_CANCLE  = "2";
+
+    /**阅读状态(0未读,1已读)*/
+    public static final String HAS_READ_FLAG  = "1";
+    public static final String NO_READ_FLAG  = "0";
+
+    /**优先级(L低,M中,H高)*/
+    public static final String PRIORITY_L  = "L";
+    public static final String PRIORITY_M  = "M";
+    public static final String PRIORITY_H  = "H";
+
+    /**
+     * 短信模板方式  0 .登录模板、1.注册模板、2.忘记密码模板
+     */
+    public static final String SMS_TPL_TYPE_0  = "0";
+    public static final String SMS_TPL_TYPE_1  = "1";
+    public static final String SMS_TPL_TYPE_2  = "2";
+
+    /**
+     * 状态(0无效1有效)
+     */
+    public static final String STATUS_0 = "0";
+    public static final String STATUS_1 = "1";
+
+    /**
+     * 同步工作流引擎1同步0不同步
+     */
+    public static final Integer ACT_SYNC_1 = 1;
+    public static final Integer ACT_SYNC_0 = 0;
+
+    /**
+     * 消息类型1:通知公告2:系统消息
+     */
+    public static final String MSG_CATEGORY_1 = "1";
+    public static final String MSG_CATEGORY_2 = "2";
+
+    /**
+     * 是否配置菜单的数据权限 1是0否
+     */
+    public static final Integer RULE_FLAG_0 = 0;
+    public static final Integer RULE_FLAG_1 = 1;
+
+    /**
+     * 是否用户已被冻结 1正常(解冻) 2冻结
+     */
+    public static final Integer USER_UNFREEZE = 1;
+    public static final Integer USER_FREEZE = 2;
+
+    /**字典翻译文本后缀*/
+    public static final String DICT_TEXT_SUFFIX = "_dictText";
+
+    /**
+     * 表单设计器主表类型
+     */
+    public static final Integer DESIGN_FORM_TYPE_MAIN = 1;
+
+    /**
+     * 表单设计器子表表类型
+     */
+    public static final Integer DESIGN_FORM_TYPE_SUB = 2;
+
+    /**
+     * 表单设计器URL授权通过
+     */
+    public static final Integer DESIGN_FORM_URL_STATUS_PASSED = 1;
+
+    /**
+     * 表单设计器URL授权未通过
+     */
+    public static final Integer DESIGN_FORM_URL_STATUS_NOT_PASSED = 2;
+
+    /**
+     * 表单设计器新增 Flag
+     */
+    public static final String DESIGN_FORM_URL_TYPE_ADD = "add";
+    /**
+     * 表单设计器修改 Flag
+     */
+    public static final String DESIGN_FORM_URL_TYPE_EDIT = "edit";
+    /**
+     * 表单设计器详情 Flag
+     */
+    public static final String DESIGN_FORM_URL_TYPE_DETAIL = "detail";
+    /**
+     * 表单设计器复用数据 Flag
+     */
+    public static final String DESIGN_FORM_URL_TYPE_REUSE = "reuse";
+    /**
+     * 表单设计器编辑 Flag (已弃用)
+     */
+    public static final String DESIGN_FORM_URL_TYPE_VIEW = "view";
+
+    /**
+     * online参数值设置(是:Y, 否:N)
+     */
+    public static final String ONLINE_PARAM_VAL_IS_TURE = "Y";
+    public static final String ONLINE_PARAM_VAL_IS_FALSE = "N";
+
+    /**
+     * 文件上传类型(本地:local,Minio:minio,阿里云:alioss)
+     */
+    public static final String UPLOAD_TYPE_LOCAL = "local";
+    public static final String UPLOAD_TYPE_MINIO = "minio";
+    public static final String UPLOAD_TYPE_OSS = "alioss";
+
+    /**
+     * 文档上传自定义桶名称
+     */
+    public static final String UPLOAD_CUSTOM_BUCKET = "eoafile";
+    /**
+     * 文档上传自定义路径
+     */
+    public static final String UPLOAD_CUSTOM_PATH = "eoafile";
+    /**
+     * 文件外链接有效天数
+     */
+    public static final Integer UPLOAD_EFFECTIVE_DAYS = 1;
+
+    /**
+     * 员工身份 (1:普通员工  2:上级)
+     */
+    public static final Integer USER_IDENTITY_1 = 1;
+    public static final Integer USER_IDENTITY_2 = 2;
+
+    /** sys_user 表 username 唯一键索引 */
+    public static final String SQL_INDEX_UNIQ_SYS_USER_USERNAME = "uniq_sys_user_username";
+    /** sys_user 表 work_no 唯一键索引 */
+    public static final String SQL_INDEX_UNIQ_SYS_USER_WORK_NO = "uniq_sys_user_work_no";
+    /** sys_user 表 phone 唯一键索引 */
+    public static final String SQL_INDEX_UNIQ_SYS_USER_PHONE = "uniq_sys_user_phone";
+    /** sys_user 表 email 唯一键索引 */
+    public static final String SQL_INDEX_UNIQ_SYS_USER_EMAIL = "uniq_sys_user_email";
+    /** sys_quartz_job 表 job_class_name 唯一键索引 */
+    public static final String SQL_INDEX_UNIQ_JOB_CLASS_NAME = "uniq_job_class_name";
+    /** sys_position 表 code 唯一键索引 */
+    public static final String SQL_INDEX_UNIQ_CODE = "uniq_code";
+    /** sys_role 表 code 唯一键索引 */
+    public static final String SQL_INDEX_UNIQ_SYS_ROLE_CODE = "uniq_sys_role_role_code";
+    /** sys_depart 表 code 唯一键索引 */
+    public static final String SQL_INDEX_UNIQ_DEPART_ORG_CODE = "uniq_depart_org_code";
+    /**
+     * 在线聊天 是否为默认分组
+     */
+    public static final String IM_DEFAULT_GROUP = "1";
+    /**
+     * 在线聊天 图片文件保存路径
+     */
+    public static final String IM_UPLOAD_CUSTOM_PATH = "imfile";
+    /**
+     * 在线聊天 用户状态
+     */
+    public static final String IM_STATUS_ONLINE = "online";
+
+    /**
+     * 在线聊天 SOCKET消息类型
+     */
+    public static final String IM_SOCKET_TYPE = "chatMessage";
+
+    /**
+     * 考勤补卡业务状态 (1:同意  2:不同意)
+     */
+    public static final String SIGN_PATCH_BIZ_STATUS_1 = "1";
+    public static final String SIGN_PATCH_BIZ_STATUS_2 = "2";
+}

+ 0 - 88
src/main/java/cn/com/ctop/okr/utils/JeecgDataAutorUtils.java

@@ -1,88 +0,0 @@
-//package cn.com.ctop.okr.utils;
-//
-//import org.jeecg.common.system.vo.SysUserCacheInfo;
-//import org.jeecg.common.util.SpringContextUtils;
-//import org.jeecg.modules.system.entity.SysPermissionDataRule;
-//import org.springframework.util.StringUtils;
-//
-//import javax.servlet.http.HttpServletRequest;
-//import java.util.ArrayList;
-//import java.util.List;
-//
-///**
-// * @ClassName: JeecgDataAutorUtils
-// * @Description: 数据权限查询规则容器工具类
-// * @Author: 张代浩
-// * @Date: 2012-12-15 下午11:27:39
-// *
-// */
-//public class JeecgDataAutorUtils {
-//
-//	public static final String MENU_DATA_AUTHOR_RULES = "MENU_DATA_AUTHOR_RULES";
-//
-//	public static final String MENU_DATA_AUTHOR_RULE_SQL = "MENU_DATA_AUTHOR_RULE_SQL";
-//
-//	public static final String SYS_USER_INFO = "SYS_USER_INFO";
-//
-//	/**
-//	 * 往链接请求里面,传入数据查询条件
-//	 *
-//	 * @param request
-//     * @param dataRules
-//	 */
-//	public static synchronized void installDataSearchConditon(HttpServletRequest request, List<SysPermissionDataRule> dataRules) {
-//		@SuppressWarnings("unchecked")
-//        // 1.先从request获取MENU_DATA_AUTHOR_RULES,如果存则获取到LIST
-//                List<SysPermissionDataRule> list = (List<SysPermissionDataRule>) loadDataSearchConditon();
-//		if (list==null) {
-//			// 2.如果不存在,则new一个list
-//			list = new ArrayList<SysPermissionDataRule>();
-//		}
-//		for (SysPermissionDataRule tsDataRule : dataRules) {
-//			list.add(tsDataRule);
-//		}
-//        // 3.往list里面增量存指
-//        request.setAttribute(MENU_DATA_AUTHOR_RULES, list);
-//	}
-//
-//	/**
-//	 * 获取请求对应的数据权限规则
-//     *
-//	 * @return
-//	 */
-//	@SuppressWarnings("unchecked")
-//	public static synchronized List<SysPermissionDataRule> loadDataSearchConditon() {
-//		return (List<SysPermissionDataRule>) SpringContextUtils.getHttpServletRequest().getAttribute(MENU_DATA_AUTHOR_RULES);
-//
-//	}
-//
-//	/**
-//	 * 获取请求对应的数据权限SQL
-//     *
-//	 * @return
-//	 */
-//    public static synchronized String loadDataSearchConditonSqlString() {
-//		return (String) SpringContextUtils.getHttpServletRequest().getAttribute(MENU_DATA_AUTHOR_RULE_SQL);
-//	}
-//
-//	/**
-//	 * 往链接请求里面,传入数据查询条件
-//	 *
-//	 * @param request
-//	 */
-//	public static synchronized void installDataSearchConditon(HttpServletRequest request, String sql) {
-//        String ruleSql = (String) loadDataSearchConditonSqlString();
-//		if (!StringUtils.hasText(ruleSql)) {
-//			request.setAttribute(MENU_DATA_AUTHOR_RULE_SQL,sql);
-//		}
-//	}
-//
-//	public static synchronized void installUserInfo(HttpServletRequest request, SysUserCacheInfo userinfo) {
-//		request.setAttribute(SYS_USER_INFO, userinfo);
-//	}
-//
-//	public static synchronized SysUserCacheInfo loadUserInfo() {
-//		return (SysUserCacheInfo) SpringContextUtils.getHttpServletRequest().getAttribute(SYS_USER_INFO);
-//
-//	}
-//}

+ 41 - 0
src/main/java/cn/com/ctop/okr/utils/MatchTypeEnum.java

@@ -0,0 +1,41 @@
+package cn.com.ctop.okr.utils;
+
+/**
+ * 查询链接规则
+ *
+ * @Author Sunjianlei
+ */
+public enum MatchTypeEnum {
+
+    AND("AND"),
+    OR("OR");
+
+    private String value;
+
+    MatchTypeEnum(String value) {
+        this.value = value;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public static MatchTypeEnum getByValue(Object value) {
+        if (oConvertUtils.isEmpty(value)) {
+            return null;
+        }
+        return getByValue(value.toString());
+    }
+
+    public static MatchTypeEnum getByValue(String value) {
+        if (oConvertUtils.isEmpty(value)) {
+            return null;
+        }
+        for (MatchTypeEnum val : values()) {
+            if (val.getValue().toLowerCase().equals(value.toLowerCase())) {
+                return val;
+            }
+        }
+        return null;
+    }
+}

+ 55 - 0
src/main/java/cn/com/ctop/okr/utils/QueryCondition.java

@@ -0,0 +1,55 @@
+package cn.com.ctop.okr.utils;
+
+import java.io.Serializable;
+
+public class QueryCondition implements Serializable {
+
+	private static final long serialVersionUID = 4740166316629191651L;
+
+	private String field;
+	private String type;
+	private String rule;
+	private String val;
+
+	public String getField() {
+		return field;
+	}
+
+	public void setField(String field) {
+		this.field = field;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public String getRule() {
+		return rule;
+	}
+
+	public void setRule(String rule) {
+		this.rule = rule;
+	}
+
+	public String getVal() {
+		return val;
+	}
+
+	public void setVal(String val) {
+		this.val = val;
+	}
+
+	@Override
+	public String toString(){
+		StringBuffer sb =new StringBuffer();
+		if(field == null || "".equals(field)){
+			return "";
+		}
+		sb.append(this.field).append(" ").append(this.rule).append(" ").append(this.type).append(" ").append(this.val);
+		return sb.toString();
+	}
+}

+ 69 - 0
src/main/java/cn/com/ctop/okr/utils/QueryRuleEnum.java

@@ -0,0 +1,69 @@
+package cn.com.ctop.okr.utils;
+
+/**
+ * Query 规则 常量
+ * @Author Scott
+ * @Date 2019年02月14日
+ */
+public enum QueryRuleEnum {
+
+    GT(">","gt","大于"),
+    GE(">=","ge","大于等于"),
+    LT("<","lt","小于"),
+    LE("<=","le","小于等于"),
+    EQ("=","eq","等于"),
+    NE("!=","ne","不等于"),
+    IN("IN","in","包含"),
+    LIKE("LIKE","like","全模糊"),
+    LEFT_LIKE("LEFT_LIKE","left_like","左模糊"),
+    RIGHT_LIKE("RIGHT_LIKE","right_like","右模糊"),
+    SQL_RULES("USE_SQL_RULES","ext","自定义SQL片段");
+
+    private String value;
+
+    private String condition;
+
+    private String msg;
+
+    QueryRuleEnum(String value, String condition, String msg){
+        this.value = value;
+        this.condition = condition;
+        this.msg = msg;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public String getCondition() {
+		return condition;
+	}
+
+	public void setCondition(String condition) {
+		this.condition = condition;
+	}
+
+	public static QueryRuleEnum getByValue(String value){
+    	if(oConvertUtils.isEmpty(value)) {
+    		return null;
+    	}
+        for(QueryRuleEnum val :values()){
+            if (val.getValue().equals(value) || val.getCondition().equals(value)){
+                return val;
+            }
+        }
+        return  null;
+    }
+}

+ 108 - 0
src/main/java/cn/com/ctop/okr/vo/QYWxDepartInfoVO.java

@@ -0,0 +1,108 @@
+package cn.com.ctop.okr.vo;
+
+import cn.com.ctop.okr.dto.TagInfoTreeModel;
+import cn.com.ctop.okr.entity.QYWxDepartInfo;
+import cn.com.ctop.okr.entity.QYWxUserInfo;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class QYWxDepartInfoVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *对应TagInfo中的id字段,前端数据树中的key
+     */
+    private String id;
+
+    /**
+     *对应TagInfo中的id字段,前端数据树中的value
+     */
+    private String value;
+
+    /**
+     *对应name字段,前端数据树中的title
+     */
+    private String label;
+
+    /**
+     * 以下所有字段均与TagInfo相同
+     */
+    private boolean isLeaf;
+    private Long parentId;
+
+    private List<TagInfoTreeModel> children = new ArrayList<>();
+
+    /**
+     * 将SysDepart对象转换成SysDepartTreeModel对象
+     * @param departInfo
+     */
+    public QYWxDepartInfoVO(QYWxDepartInfo departInfo) {
+        this.id = departInfo.getId()+"";
+        this.value = departInfo.getId()+"";
+        this.label = departInfo.getDepartName();
+    }
+    public QYWxDepartInfoVO(QYWxUserInfo departInfo) {
+        this.id = departInfo.getUserid();
+        this.value = departInfo.getUserid();
+        this.label = departInfo.getName();
+    }
+
+
+
+    public List<TagInfoTreeModel> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<TagInfoTreeModel> children) {
+        if (children==null){
+            this.isLeaf=true;
+        }
+        this.children = children;
+    }
+
+    public QYWxDepartInfoVO() {
+
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    public boolean isLeaf() {
+        return isLeaf;
+    }
+
+    public void setLeaf(boolean leaf) {
+        isLeaf = leaf;
+    }
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+}

+ 144 - 0
src/main/java/cn/com/ctop/okr/vo/SysPermissionDataRuleModel.java

@@ -0,0 +1,144 @@
+package cn.com.ctop.okr.vo;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 菜单权限规则表
+ * </p>
+ *
+ * @Author huangzhilin
+ * @since 2019-03-29
+ */
+public class SysPermissionDataRuleModel {
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 对应的菜单id
+     */
+    private String permissionId;
+
+    /**
+     * 规则名称
+     */
+    private String ruleName;
+
+    /**
+     * 字段
+     */
+    private String ruleColumn;
+
+    /**
+     * 条件
+     */
+    private String ruleConditions;
+
+    /**
+     * 规则值
+     */
+    private String ruleValue;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getPermissionId() {
+        return permissionId;
+    }
+
+    public void setPermissionId(String permissionId) {
+        this.permissionId = permissionId;
+    }
+
+    public String getRuleName() {
+        return ruleName;
+    }
+
+    public void setRuleName(String ruleName) {
+        this.ruleName = ruleName;
+    }
+
+    public String getRuleColumn() {
+        return ruleColumn;
+    }
+
+    public void setRuleColumn(String ruleColumn) {
+        this.ruleColumn = ruleColumn;
+    }
+
+    public String getRuleConditions() {
+        return ruleConditions;
+    }
+
+    public void setRuleConditions(String ruleConditions) {
+        this.ruleConditions = ruleConditions;
+    }
+
+    public String getRuleValue() {
+        return ruleValue;
+    }
+
+    public void setRuleValue(String ruleValue) {
+        this.ruleValue = ruleValue;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getCreateBy() {
+        return createBy;
+    }
+
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getUpdateBy() {
+        return updateBy;
+    }
+
+    public void setUpdateBy(String updateBy) {
+        this.updateBy = updateBy;
+    }
+}

+ 0 - 2
src/main/resources/application.yml

@@ -83,8 +83,6 @@ spring:
           url: jdbc:mysql://139.186.27.96:3306/okr?characterEncoding=UTF-8&useUnicode=true&useSSL=false
           url: jdbc:mysql://139.186.27.96:3306/okr?characterEncoding=UTF-8&useUnicode=true&useSSL=false
           username: hcst
           username: hcst
           password: test@20190531
           password: test@20190531
-
-
           driver-class-name: com.mysql.jdbc.Driver
           driver-class-name: com.mysql.jdbc.Driver
 
 
   #redis 配置
   #redis 配置