Pārlūkot izejas kodu

okr逻辑改版

syh 4 gadi atpakaļ
vecāks
revīzija
e4a713d564
46 mainītis faili ar 1180 papildinājumiem un 77 dzēšanām
  1. 19 3
      src/main/java/cn/com/ctop/okr/controller/OkrController.java
  2. 161 0
      src/main/java/cn/com/ctop/okr/controller/OkrFocusInfoController.java
  3. 1 0
      src/main/java/cn/com/ctop/okr/dto/UserInfoDto.java
  4. 43 0
      src/main/java/cn/com/ctop/okr/entity/OkrFocusInfo.java
  5. 6 0
      src/main/java/cn/com/ctop/okr/entity/OkrKrInfo.java
  6. 2 1
      src/main/java/cn/com/ctop/okr/entity/OkrObjectInfoDisclosure.java
  7. 2 1
      src/main/java/cn/com/ctop/okr/entity/OkrObjectInfoRemind.java
  8. 7 0
      src/main/java/cn/com/ctop/okr/entity/OkrTaskInfo.java
  9. 1 0
      src/main/java/cn/com/ctop/okr/entity/OkrTaskInfoDisclosure.java
  10. 1 0
      src/main/java/cn/com/ctop/okr/entity/OkrTaskInfoRemind.java
  11. 17 0
      src/main/java/cn/com/ctop/okr/mapper/OkrFocusInfoMapper.java
  12. 7 0
      src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoDisclosureMapper.java
  13. 12 0
      src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoMapper.java
  14. 5 0
      src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoRemindMapper.java
  15. 8 0
      src/main/java/cn/com/ctop/okr/mapper/OkrTaskInfoDisclosureMapper.java
  16. 5 0
      src/main/java/cn/com/ctop/okr/mapper/OkrTaskInfoRemindMapper.java
  17. 5 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrFocusInfoMapper.xml
  18. 30 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoDisclosureMapper.xml
  19. 37 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoMapper.xml
  20. 17 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoRemindMapper.xml
  21. 32 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrTaskInfoDisclosureMapper.xml
  22. 17 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrTaskInfoRemindMapper.xml
  23. 2 0
      src/main/java/cn/com/ctop/okr/service/IKrInfoservice.java
  24. 21 0
      src/main/java/cn/com/ctop/okr/service/IOkrFocusInfoService.java
  25. 10 0
      src/main/java/cn/com/ctop/okr/service/IOkrObjectInfoDisclosureService.java
  26. 5 0
      src/main/java/cn/com/ctop/okr/service/IOkrObjectInfoRemindService.java
  27. 10 0
      src/main/java/cn/com/ctop/okr/service/IOkrObjectInfoService.java
  28. 10 0
      src/main/java/cn/com/ctop/okr/service/IOkrTaskInfoDisclosureService.java
  29. 5 0
      src/main/java/cn/com/ctop/okr/service/IOkrTaskInfoRemindService.java
  30. 21 0
      src/main/java/cn/com/ctop/okr/service/IOkrTaskInfoService.java
  31. 8 0
      src/main/java/cn/com/ctop/okr/service/IQYWxUserInfoService.java
  32. 9 1
      src/main/java/cn/com/ctop/okr/service/OkrService.java
  33. 55 3
      src/main/java/cn/com/ctop/okr/service/impl/KrInfoserviceImpl.java
  34. 88 0
      src/main/java/cn/com/ctop/okr/service/impl/OkrFocusInfoServiceImpl.java
  35. 32 3
      src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoDisclosureServiceImpl.java
  36. 8 1
      src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoRemindServiceImpl.java
  37. 19 0
      src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoServiceImpl.java
  38. 259 61
      src/main/java/cn/com/ctop/okr/service/impl/OkrServiceImpl.java
  39. 28 0
      src/main/java/cn/com/ctop/okr/service/impl/OkrTaskInfoDisclosureServiceImpl.java
  40. 7 0
      src/main/java/cn/com/ctop/okr/service/impl/OkrTaskInfoRemindServiceImpl.java
  41. 91 0
      src/main/java/cn/com/ctop/okr/service/impl/OkrTaskInfoServiceImpl.java
  42. 1 1
      src/main/java/cn/com/ctop/okr/service/impl/QYWxDepartInfoServiceImpl.java
  43. 24 0
      src/main/java/cn/com/ctop/okr/service/impl/QYWxUserInfoServiceImpl.java
  44. 15 0
      src/main/java/cn/com/ctop/okr/vo/PublicVO.java
  45. 15 0
      src/main/java/cn/com/ctop/okr/vo/RemindVO.java
  46. 2 2
      src/main/resources/application.yml

+ 19 - 3
src/main/java/cn/com/ctop/okr/controller/OkrController.java

@@ -41,7 +41,7 @@ public class OkrController {
         result.setSuccess(true);
 
         OkrTaskInfo taskInfo = dto.getTaskInfo();
-        if(dto == null || dto.getTaskInfo() == null || StringUtils.isBlank(taskInfo.getTaskTitle()) ||
+        if(dto.getTaskInfo() == null || StringUtils.isBlank(taskInfo.getTaskTitle()) ||
           taskInfo.getType() == null || taskInfo.getPriority() == null){
             result.setSuccess(false);
             result.setMessage("任务标题、类型、优先级均不可为空");
@@ -99,10 +99,10 @@ public class OkrController {
         result.setSuccess(true);
 
         try {
-            Map<String, Object> map = okrService.getOkrInfo(dto.getUserId());
+            Map<String, Object> map = okrService.getOkrInfo(dto);
             result.setResult(map);
         }catch(Exception e){
-            logger.error(e.getMessage());
+            e.printStackTrace();
             result.setSuccess(false);
             result.setMessage("error");
         }finally {
@@ -112,6 +112,22 @@ public class OkrController {
         return result;
     }
 
+    @RequestMapping(value = "/detail")
+    public Result okrDetail(){
+        Result<Map<String,Object>> result = new Result();
+        result.setSuccess(true);
+        try {
+            Map<String, Object> map = okrService.getOkrDetail();
+            result.setResult(map);
+            return result;
+        }catch(Exception e){
+            e.printStackTrace();
+            result.setSuccess(false);
+            result.setMessage("error");
+            return result;
+        }
+    }
+
     @RequestMapping(value = "/saveOkrMember")
     public Result saveOkrMember(@RequestBody UserInfoDto dto,
                              HttpServletRequest request,

+ 161 - 0
src/main/java/cn/com/ctop/okr/controller/OkrFocusInfoController.java

@@ -0,0 +1,161 @@
+package cn.com.ctop.okr.controller;
+
+import cn.com.ctop.okr.entity.OkrFocusInfo;
+import cn.com.ctop.okr.service.IOkrFocusInfoService;
+import cn.com.ctop.okr.service.OkrService;
+import cn.com.ctop.okr.vo.Result;
+import com.alibaba.fastjson.JSONObject;
+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;
+import java.util.Map;
+
+/**
+ * 关注信息
+ * @author jeecg-boot
+ * @date   2020-09-05
+ * @version V1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/focusInfo")
+public class OkrFocusInfoController {
+	@Autowired
+	private IOkrFocusInfoService okrFocusInfoService;
+	@Autowired
+	private OkrService okrService;
+	@PostMapping("focus")
+	public Map<String,Object>focus(@RequestBody JSONObject data){
+		return okrFocusInfoService.focus(data);
+	}
+
+	@PostMapping("myFollow")
+	public Map<String,Object>myFollow(@RequestBody JSONObject data){
+		return okrService.getMyFollowList(data);
+	}
+
+	@PostMapping("myDepartment")
+	public Map<String,Object>myDepartment(@RequestBody JSONObject data){
+		return okrService.getMyDepartmentList(data);
+	}
+
+	/**
+	  * 分页列表查询
+	 * @param okrFocusInfo
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+
+	@GetMapping(value = "/list")
+	public Result<IPage<OkrFocusInfo>> queryPageList(OkrFocusInfo okrFocusInfo,
+													 @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+													 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+													 HttpServletRequest req) {
+		Result<IPage<OkrFocusInfo>> result = new Result<>();
+		QueryWrapper<OkrFocusInfo> queryWrapper = new QueryWrapper<>();
+		Page<OkrFocusInfo> page = new Page<OkrFocusInfo>(pageNo, pageSize);
+		IPage<OkrFocusInfo> pageList = okrFocusInfoService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	  *   添加
+	 * @param okrFocusInfo
+	 * @return
+	 */
+	@PostMapping(value = "/add")
+	public Result<OkrFocusInfo> add(@RequestBody OkrFocusInfo okrFocusInfo) {
+		Result<OkrFocusInfo> result = new Result<>();
+		try {
+			okrFocusInfoService.save(okrFocusInfo);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	  *  编辑
+	 * @param okrFocusInfo
+	 * @return
+	 */
+	@PutMapping(value = "/edit")
+	public Result<OkrFocusInfo> edit(@RequestBody OkrFocusInfo okrFocusInfo) {
+		Result<OkrFocusInfo> result = new Result<OkrFocusInfo>();
+		OkrFocusInfo okrFocusInfoEntity = okrFocusInfoService.getById(okrFocusInfo.getId());
+		if(okrFocusInfoEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = okrFocusInfoService.updateById(okrFocusInfo);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	  *   通过id删除
+	 * @param id
+	 * @return
+	 */
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		try {
+			okrFocusInfoService.removeById(id);
+		} catch (Exception e) {
+			log.error("删除失败",e.getMessage());
+			return Result.error("删除失败!");
+		}
+		return Result.ok("删除成功!");
+	}
+
+	/**
+	  *  批量删除
+	 * @param ids
+	 * @return
+	 */
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<OkrFocusInfo> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<OkrFocusInfo> result = new Result<>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.okrFocusInfoService.removeByIds(Arrays.asList(ids.split(",")));
+			result.success("删除成功!");
+		}
+		return result;
+	}
+
+	/**
+	  * 通过id查询
+	 * @param id
+	 * @return
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<OkrFocusInfo> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<OkrFocusInfo> result = new Result<>();
+		OkrFocusInfo okrFocusInfo = okrFocusInfoService.getById(id);
+		if(okrFocusInfo==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(okrFocusInfo);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+}

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

@@ -14,5 +14,6 @@ public class UserInfoDto {
     private Integer year;
     private Integer quarter;
     private String memberId;
+    private Long ObjectId;
 
 }

+ 43 - 0
src/main/java/cn/com/ctop/okr/entity/OkrFocusInfo.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;
+
+/**
+ * 关注信息
+ * @author jeecg-boot
+ * @date   2020-09-05
+ * @version V1.0
+ */
+@Data
+@TableName("okr_focus_info")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="okr_focus_info对象", description="关注信息")
+public class OkrFocusInfo {
+
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Long id;
+	private String followId;
+	private String userId;
+	private Integer status;
+	private Date createTime;
+	private Date updateTime;
+
+	public OkrFocusInfo() {
+		this.status = 1;
+	}
+}

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

@@ -1,5 +1,7 @@
 package cn.com.ctop.okr.entity;
 
+import cn.com.ctop.okr.vo.PublicVO;
+import cn.com.ctop.okr.vo.RemindVO;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -33,5 +35,9 @@ public class OkrKrInfo {
     private List<String> remindIds;
     @TableField(exist = false)
     private List<String>publicIds;
+    @TableField(exist = false)
+    private List<RemindVO>remindVOS;
+    @TableField(exist = false)
+    private List<PublicVO>publicVOS;
 
 }

+ 2 - 1
src/main/java/cn/com/ctop/okr/entity/OkrObjectInfoDisclosure.java

@@ -29,11 +29,12 @@ public class OkrObjectInfoDisclosure {
 
 	@TableId(type = IdType.AUTO)
     private Long id;
-	private Long okrObjectId;
+	private Long krId;
 	/**公开类型 1:部门 2:员工*/
 	private Integer publicType;
 	private String publicId;
 	private Integer status;
+	private String extraId;
 	private Date createTime;
 	private Date updateTime;
 

+ 2 - 1
src/main/java/cn/com/ctop/okr/entity/OkrObjectInfoRemind.java

@@ -29,11 +29,12 @@ public class OkrObjectInfoRemind {
 
 	@TableId(type = IdType.AUTO)
     private Long id;
-	private Long okrObjectId;
+	private Long krId;
 	/**公开类型 1:部门 2:员工*/
 	private Integer remindType;
 	private String remindId;
 	private Integer status;
+	private String extraId;
 	private Date createTime;
 	private Date updateTime;
 

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

@@ -1,5 +1,7 @@
 package cn.com.ctop.okr.entity;
 
+import cn.com.ctop.okr.vo.PublicVO;
+import cn.com.ctop.okr.vo.RemindVO;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -33,4 +35,9 @@ public class OkrTaskInfo {
     private List<String> remindIds;
     @TableField(exist = false)
     private List<String>publicIds;
+
+    @TableField(exist = false)
+    private List<RemindVO>remindVOS;
+    @TableField(exist = false)
+    private List<PublicVO>publicVOS;
 }

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

@@ -38,6 +38,7 @@ public class OkrTaskInfoDisclosure {
 	private Integer publicType;
 	private String publicId;
 	private Integer status;
+	private String extraId;
 	private Date createTime;
 	private Date updateTime;
 

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

@@ -32,6 +32,7 @@ public class OkrTaskInfoRemind {
 	private Long okrTaskId;
 	private Integer remindType;
 	private String remindId;
+	private String extraId;
 	private Integer status;
 	private Date createTime;
 	private Date updateTime;

+ 17 - 0
src/main/java/cn/com/ctop/okr/mapper/OkrFocusInfoMapper.java

@@ -0,0 +1,17 @@
+package cn.com.ctop.okr.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import cn.com.ctop.okr.entity.OkrFocusInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 关注信息
+ * @author: jeecg-boot
+ * @date:   2020-09-05
+ * @cersion: V1.0
+ */
+public interface OkrFocusInfoMapper extends BaseMapper<OkrFocusInfo> {
+
+}

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

@@ -1,7 +1,11 @@
 package cn.com.ctop.okr.mapper;
 
 import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
+import cn.com.ctop.okr.vo.PublicVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * okr o 信息公开
@@ -11,4 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface OkrObjectInfoDisclosureMapper extends BaseMapper<OkrObjectInfoDisclosure> {
 
+    OkrObjectInfoDisclosure checkDepartByParams(@Param(value = "krId") Long krId, @Param(value = "openId")String openId, @Param(value = "publicType")Integer publicType);
+
+    List<PublicVO> getPublicVOByKrId(@Param(value = "krId") Long krId);
 }

+ 12 - 0
src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoMapper.java

@@ -23,4 +23,16 @@ public interface OkrObjectInfoMapper extends BaseMapper<OkrObjectInfo> {
    void deleteObjectInfoById(@Param("object")OkrObjectInfo object);
 
    List<Integer> getObjectYear();
+
+   List<OkrObjectInfo> getFollowQuarterObject(@Param("name")String name,
+                                              @Param("year")Integer year,
+                                              @Param("quarter")Integer quarter,
+                                              @Param("startIndex")Integer startIndex,
+                                              @Param("pageSize")Integer pageSize);
+
+   List<OkrObjectInfo> getDepartmentQuarterObject(@Param("openId")String openId, @Param("name")String name,
+                                               @Param("year")Integer year,
+                                               @Param("quarter")Integer quarter,
+                                               @Param("startIndex")Integer startIndex,
+                                               @Param("pageSize")Integer pageSize);
 }

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

@@ -1,7 +1,11 @@
 package cn.com.ctop.okr.mapper;
 
 import cn.com.ctop.okr.entity.OkrObjectInfoRemind;
+import cn.com.ctop.okr.vo.RemindVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * okr 对象提醒信息
@@ -11,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface OkrObjectInfoRemindMapper extends BaseMapper<OkrObjectInfoRemind> {
 
+    List<RemindVO> getRemindVOByKrId(@Param(value = "krId") Long krId);
 }

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

@@ -1,7 +1,12 @@
 package cn.com.ctop.okr.mapper;
 
+import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
 import cn.com.ctop.okr.entity.OkrTaskInfoDisclosure;
+import cn.com.ctop.okr.vo.PublicVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * okr o 信息公开
@@ -11,4 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface OkrTaskInfoDisclosureMapper extends BaseMapper<OkrTaskInfoDisclosure> {
 
+    List<PublicVO> getPublicVOByTaskId(@Param(value = "taskId") Long taskInfoId);
+
+    OkrTaskInfoDisclosure checkDepartByParams(@Param(value = "taskId")Long taskInfoId, @Param(value = "openId")String openId, @Param(value = "type")int type);
 }

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

@@ -1,7 +1,11 @@
 package cn.com.ctop.okr.mapper;
 
 import cn.com.ctop.okr.entity.OkrTaskInfoRemind;
+import cn.com.ctop.okr.vo.RemindVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * okr 任务提醒信息
@@ -11,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface OkrTaskInfoRemindMapper extends BaseMapper<OkrTaskInfoRemind> {
 
+    List<RemindVO> getRemindVOByTaskId(@Param(value = "taskInfoId") Long taskInfoId);
 }

+ 5 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/OkrFocusInfoMapper.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.OkrFocusInfoMapper">
+
+</mapper>

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

@@ -2,4 +2,34 @@
 <!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">
 
+    <select id="checkDepartByParams" resultType="cn.com.ctop.okr.entity.OkrObjectInfoDisclosure">
+        select discl.*
+            from wx_user_depart_map map
+        left join okr_object_info_disclosure discl on map.depart_id = discl.public_id
+        left join okr_kr_info krInfo on krInfo.id = discl.kr_id
+        where
+            map.open_id = #{openId}
+        and
+            discl.public_type = #{publicType}
+        and
+            krInfo.id = #{krId}
+        limit 1
+    </select>
+    <select id="getPublicVOByKrId" resultType="cn.com.ctop.okr.vo.PublicVO">
+        select discl.id as 'id',
+       discl.kr_id,
+       (case when discl.public_type = 1
+                then discl.public_id
+            else discl.extra_id
+       end )as 'public_id',
+       discl.public_type,
+       (case when discl.public_type = 1
+                 then depart.depart_name
+             else user.name
+           end ) as 'name'
+from okr_object_info_disclosure discl
+         left join wx_user_info user on user.open_id = discl.public_id
+         left join wx_depart_info depart on discl.public_id = depart.id
+where 1=1 and kr_id = #{krId}
+    </select>
 </mapper>

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

@@ -84,5 +84,42 @@
         </if>
         limit #{startIndex},#{pageSize}
     </select>
+    <select id="getFollowQuarterObject" resultType="cn.com.ctop.okr.entity.OkrObjectInfo">
+        select
+        objectInfo.*
+        from
+        okr_focus_info focus
+        left join wx_user_info userInfo on focus.follow_id = userInfo.open_id
+        left join okr_object_info objectInfo on focus.follow_id = objectInfo.user_id
+        where
+        1=1
+        and
+        objectInfo.year = #{year}
+        and
+        objectInfo.quarter = #{quarter}
+        <if test="name != null and name != '' ">
+            and userInfo.name like concat('%',#{name},'%')
+        </if>
+        limit #{startIndex},#{pageSize}
+    </select>
+    <select id="getDepartmentQuarterObject" resultType="cn.com.ctop.okr.entity.OkrObjectInfo">
+        select
+            objectInfo.*
+        from
+            okr_object_info objectInfo
+        left join wx_user_depart_map map on map.open_id = objectInfo.user_id
+        left join wx_user_info user on user.open_id = objectInfo.user_id
+        where
+            map.depart_id in (select depart_id from wx_user_depart_map where open_id = #{openId} and depart_id not in (19,37))
+        and
+            objectInfo.year = #{year}
+        and
+            objectInfo.quarter = #{quarter}
+        <if test="name != null and name != '' ">
+            and userInfo.name like concat('%',#{name},'%')
+        </if>
+        limit #{startIndex},#{pageSize}
+    </select>
+
 
 </mapper>

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

@@ -2,4 +2,21 @@
 <!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">
 
+    <select id="getRemindVOByKrId" resultType="cn.com.ctop.okr.vo.RemindVO">
+        select remind.id as 'id',
+            remind.kr_id,
+            (case when remind.remind_type = 1
+                then remind.remind_id
+                else remind.extra_id
+            end ) as 'remind_id',
+            remind_type,
+            (case when remind_type = 1
+                then depart.depart_name
+                else user.name
+            end ) as 'name'
+        from okr_object_info_remind remind
+            left join wx_user_info user on user.open_id = remind.remind_id
+            left join wx_depart_info depart on remind.remind_id = depart.id
+            where 1=1 and kr_id = #{krId}
+    </select>
 </mapper>

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

@@ -2,4 +2,36 @@
 <!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">
 
+    <select id="getPublicVOByTaskId" resultType="cn.com.ctop.okr.vo.PublicVO">
+        select discl.id as 'id',
+       discl.okr_task_id as 'task_id',
+       (case when discl.public_type = 1
+                then discl.public_id
+            else discl.extra_id
+       end )as public_id,
+       discl.public_type,
+       (case when discl.public_type = 1
+                 then depart.depart_name
+             else user.name
+           end ) as 'name'
+from okr_task_info_disclosure discl
+         left join wx_user_info user on user.open_id = discl.public_id
+         left join wx_depart_info depart on discl.public_id = depart.id
+where 1=1 and discl.okr_task_id = #{taskId}
+    </select>
+    <select id="checkDepartByParams" resultType="cn.com.ctop.okr.entity.OkrTaskInfoDisclosure">
+        select
+            discl.*
+        from
+            wx_user_depart_map map
+        left join okr_task_info_disclosure discl on map.depart_id = discl.public_id
+        left join okr_task_info taskInfo on taskInfo.id = discl.okr_task_id
+        where
+            map.open_id = #{openId}
+        and
+            discl.public_type = #{type}
+        and
+            taskInfo.id = #{taskId}
+        limit 1
+    </select>
 </mapper>

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

@@ -2,4 +2,21 @@
 <!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">
 
+    <select id="getRemindVOByTaskId" resultType="cn.com.ctop.okr.vo.RemindVO">
+        select remind.id as 'id',
+       remind.okr_task_id as 'task_id',
+       (case when remind.remind_type = 1
+                then remind.remind_id
+            else remind.extra_id
+        end )as 'remind_id',
+       remind_type,
+       (case when remind_type = 1
+                 then depart.depart_name
+             else user.name
+           end ) as 'name'
+from okr_task_info_remind remind
+         left join wx_user_info user on user.open_id = remind.remind_id
+         left join wx_depart_info depart on remind.remind_id = depart.id
+where 1=1 and remind.okr_task_id = #{taskInfoId}
+    </select>
 </mapper>

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

@@ -5,4 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 
 public interface IKrInfoservice extends IService<OkrKrInfo> {
     void updateKrInfo(OkrKrInfo krInfo);
+
+    OkrKrInfo checkShow(OkrKrInfo krInfo, String openId);
 }

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

@@ -0,0 +1,21 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.entity.OkrFocusInfo;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * @Description: 关注信息
+ * @Author: jeecg-boot
+ * @Date:   2020-09-05
+ * @Version: V1.0
+ */
+public interface IOkrFocusInfoService extends IService<OkrFocusInfo> {
+    Map<String, Object> focus(JSONObject data);
+
+    void removeByParams(String followId, String userId);
+
+    OkrFocusInfo getByParams(String followId, String userId);
+}

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

@@ -1,7 +1,11 @@
 package cn.com.ctop.okr.service;
 
 import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
+import cn.com.ctop.okr.vo.PublicVO;
 import com.baomidou.mybatisplus.extension.service.IService;
+import io.swagger.models.auth.In;
+
+import java.util.List;
 
 /**
  * @Description: okr o 信息公开
@@ -12,4 +16,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IOkrObjectInfoDisclosureService extends IService<OkrObjectInfoDisclosure> {
 
     void deleteByKrId(Long krId);
+
+    OkrObjectInfoDisclosure checkStaffByParams(Long krId, String openId, Integer publicType);
+
+    OkrObjectInfoDisclosure checkDepartByParams(Long krId, String openId, Integer publicType);
+
+    List<PublicVO> getPublicVOByKrId(Long krId);
 }

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

@@ -1,8 +1,11 @@
 package cn.com.ctop.okr.service;
 
 import cn.com.ctop.okr.entity.OkrObjectInfoRemind;
+import cn.com.ctop.okr.vo.RemindVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: okr 对象提醒信息
  * @Author: jeecg-boot
@@ -12,4 +15,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IOkrObjectInfoRemindService extends IService<OkrObjectInfoRemind> {
 
     void deleteByKrId(Long krId);
+
+    List<RemindVO> getRemindVOByKrId(Long id);
 }

+ 10 - 0
src/main/java/cn/com/ctop/okr/service/IOkrObjectInfoService.java

@@ -0,0 +1,10 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.entity.OkrObjectInfo;
+import cn.com.ctop.okr.entity.OkrObjectInfoRemind;
+import cn.com.ctop.okr.entity.QYWxUserInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface IOkrObjectInfoService extends IService<OkrObjectInfo> {
+    OkrObjectInfo getByParams(String userId, Integer year, Integer quarter);
+}

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

@@ -1,8 +1,12 @@
 package cn.com.ctop.okr.service;
 
+import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
 import cn.com.ctop.okr.entity.OkrTaskInfoDisclosure;
+import cn.com.ctop.okr.vo.PublicVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: okr o 信息公开
  * @Author: jeecg-boot
@@ -11,4 +15,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IOkrTaskInfoDisclosureService extends IService<OkrTaskInfoDisclosure> {
     void deleteByTaskId(Long taskId);
+
+    List<PublicVO> getPublicVOByTaskId(Long taskInfoId);
+
+    OkrTaskInfoDisclosure checkStaffByParams(Long taskInfoId, String openId, int type);
+
+    OkrTaskInfoDisclosure checkDepartByParams(Long taskInfoId, String openId, int type);
 }

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

@@ -1,8 +1,11 @@
 package cn.com.ctop.okr.service;
 
 import cn.com.ctop.okr.entity.OkrTaskInfoRemind;
+import cn.com.ctop.okr.vo.RemindVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: okr 任务提醒信息
  * @Author: jeecg-boot
@@ -12,4 +15,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IOkrTaskInfoRemindService extends IService<OkrTaskInfoRemind> {
 
     void deleteByTaskId(Long taskId);
+
+    List<RemindVO> getRemindVOByTaskId(Long taskInfoId);
 }

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

@@ -0,0 +1,21 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.entity.OkrTaskInfo;
+import cn.com.ctop.okr.entity.OkrTaskInfoRemind;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+public interface IOkrTaskInfoService extends IService<OkrTaskInfo> {
+    List<OkrTaskInfo> getTaskInfo(String userId, Integer year, Integer quarter, int type);
+
+    void updateTaskInfo(OkrTaskInfo taskInfo);
+
+    OkrTaskInfo selectById(Long id);
+
+    void deleteTaskInfoById(OkrTaskInfo okrTaskInfo);
+
+    void insertTaskInfo(OkrTaskInfo taskInfo);
+
+    OkrTaskInfo checkShow(OkrTaskInfo taskInfo, String openId);
+}

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

@@ -0,0 +1,8 @@
+package cn.com.ctop.okr.service;
+
+import cn.com.ctop.okr.entity.QYWxUserInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface IQYWxUserInfoService extends IService<QYWxUserInfo> {
+    QYWxUserInfo getByOpenId(String userId);
+}

+ 9 - 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.OkrObjectInfo;
 import cn.com.ctop.okr.entity.OkrTaskInfo;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 
 import java.util.List;
@@ -13,7 +14,7 @@ import java.util.Map;
 
 public interface OkrService{
 
-    Map<String, Object> getOkrInfo(String userId);
+    Map<String, Object> getOkrInfo(UserInfoDto data);
 
     void insertOkrMember(List<String> memberList);
 
@@ -50,4 +51,11 @@ public interface OkrService{
     void insertOkrKrInfo(OkrKrInfo krInfo);
 
     List<Integer> getObjectYear();
+
+    Map<String, Object> getMyFollowList(JSONObject data);
+
+    Map<String, Object> getMyDepartmentList(JSONObject data);
+
+    Map<String, Object> getOkrDetail();
+
 }

+ 55 - 3
src/main/java/cn/com/ctop/okr/service/impl/KrInfoserviceImpl.java

@@ -1,18 +1,70 @@
 package cn.com.ctop.okr.service.impl;
 
 import cn.com.ctop.okr.entity.OkrKrInfo;
+import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
+import cn.com.ctop.okr.entity.OkrObjectInfoRemind;
 import cn.com.ctop.okr.mapper.OkrKrInfoMapper;
 import cn.com.ctop.okr.service.IKrInfoservice;
+import cn.com.ctop.okr.service.IOkrObjectInfoDisclosureService;
+import cn.com.ctop.okr.service.IOkrObjectInfoRemindService;
+import cn.com.ctop.okr.vo.PublicVO;
+import cn.com.ctop.okr.vo.RemindVO;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class KrInfoserviceImpl extends ServiceImpl<OkrKrInfoMapper, OkrKrInfo> implements IKrInfoservice {
-    @Autowired
-    private OkrKrInfoMapper krInfoMapper;
     @Override
     public void updateKrInfo(OkrKrInfo krInfo) {
-        krInfoMapper.updateKrInfo(krInfo);
+        this.updateById(krInfo);
     }
+
+    @Override
+    public OkrKrInfo checkShow(OkrKrInfo krInfo, String openId) {
+        String getOpenId = krInfo.getUserId();
+        if(openId.equals(getOpenId)){
+            //表示是本人的OKR信息  展示所有
+            //查询相关@信息
+            List<RemindVO> remindVOS = remindService.getRemindVOByKrId(krInfo.getId());
+            krInfo.setRemindVOS(remindVOS);
+            List<PublicVO> publicVOS = disclosureService.getPublicVOByKrId(krInfo.getId());
+            krInfo.setPublicVOS(publicVOS);
+            return krInfo;
+
+        }else{
+            Integer permission = krInfo.getPermission();
+            if(permission == 2){
+                //私密
+                return null;
+            }
+            if(permission == 3){
+                //对某人公开
+                OkrObjectInfoDisclosure disclosureStaff = disclosureService.checkStaffByParams(krInfo.getId(),openId,2);
+                OkrObjectInfoDisclosure disclosureDepart = disclosureService.checkDepartByParams(krInfo.getId(),openId,1);
+                if(null == disclosureDepart&&disclosureStaff == null){
+                    return null;
+                }
+                //查询相关@信息
+                List<RemindVO> vos = remindService.getRemindVOByKrId(krInfo.getId());
+                krInfo.setRemindVOS(vos);
+                return krInfo;
+            }
+            if(permission == 1){
+                //公开
+                //查询相关@信息
+                List<RemindVO> vos = remindService.getRemindVOByKrId(krInfo.getId());
+                krInfo.setRemindVOS(vos);
+                return krInfo;
+            }
+            return null;
+        }
+    }
+
+    @Autowired
+    private IOkrObjectInfoRemindService remindService;
+    @Autowired
+    private IOkrObjectInfoDisclosureService disclosureService;
 }

+ 88 - 0
src/main/java/cn/com/ctop/okr/service/impl/OkrFocusInfoServiceImpl.java

@@ -0,0 +1,88 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.entity.OkrFocusInfo;
+import cn.com.ctop.okr.entity.OkrObjectInfo;
+import cn.com.ctop.okr.entity.QYWxUserInfo;
+import cn.com.ctop.okr.mapper.OkrFocusInfoMapper;
+import cn.com.ctop.okr.service.IOkrFocusInfoService;
+import cn.com.ctop.okr.service.IOkrObjectInfoService;
+import cn.com.ctop.okr.service.IQYWxUserInfoService;
+import cn.com.ctop.okr.utils.ResultMapUtils;
+import cn.com.ctop.okr.utils.StatusCode;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.apache.shiro.SecurityUtils;
+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;
+
+/**
+ * 关注信息
+ * @author jeecg-boot
+ * @date   2020-09-05
+ * @version V1.0
+ */
+@Service
+public class OkrFocusInfoServiceImpl extends ServiceImpl<OkrFocusInfoMapper, OkrFocusInfo> implements IOkrFocusInfoService {
+    @Autowired
+    private IQYWxUserInfoService qyWxUserInfoService;
+    @Autowired
+    private OkrFocusInfoMapper okrFocusInfoMapper;
+
+    @Override
+    public void removeByParams(String followId, String userId) {
+        Map<String,Object>params = new HashMap<>();
+        if(null!=followId&&"".equals(followId.trim())){
+            params.put("follow_id",followId);
+        }
+        if(null!=userId&&!userId.trim().equals("")){
+            params.put("user_id",userId);
+        }
+        okrFocusInfoMapper.deleteByMap(params);
+    }
+
+    @Override
+    public OkrFocusInfo getByParams(String followId, String userId) {
+        QueryWrapper<OkrFocusInfo>queryWrapper = new QueryWrapper<>();
+        if(null!=followId&&!"".equals(followId.trim())){
+            queryWrapper.eq("follow_id",followId);
+        }
+        if(null!=userId&&!userId.trim().equals("")){
+            queryWrapper.eq("user_id",userId);
+        }
+        queryWrapper.last("limit 1");
+        return this.getOne(queryWrapper);
+    }
+
+    @Override
+    public Map<String, Object> focus(JSONObject data) {
+        Map<String,Object> result = new HashMap<>();
+        String followId = data.getString("userId");
+        Integer status = data.getInteger("status");
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        if(followId == null||"".equals(followId.trim())||status == null){
+            ResultMapUtils.setResultMap(result, StatusCode.COMMON_PARAM_ERROR);
+            return result;
+        }
+        QYWxUserInfo qyWxUserInfo = qyWxUserInfoService.getByOpenId(userId);
+        if(null == qyWxUserInfo){
+            ResultMapUtils.setResultMap(result, StatusCode.COMMON_PARAM_ERROR);
+            return result;
+        }
+        if(status == 0){
+            this.removeByParams(followId,userId);
+        }else {
+            OkrFocusInfo focusInfo = new OkrFocusInfo();
+            focusInfo.setFollowId(followId);
+            focusInfo.setUserId(userId);
+            this.save(focusInfo);
+        }
+        ResultMapUtils.setResultMap(result,StatusCode.COMMON_SUCCESS);
+        return result;
+    }
+}

+ 32 - 3
src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoDisclosureServiceImpl.java

@@ -3,12 +3,18 @@ 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 cn.com.ctop.okr.vo.PublicVO;
+import cn.com.ctop.okr.vo.RemindVO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import io.swagger.models.auth.In;
+import org.apache.ibatis.annotations.Param;
 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.List;
 import java.util.Map;
 
 /**
@@ -20,12 +26,35 @@ import java.util.Map;
 @Service
 public class OkrObjectInfoDisclosureServiceImpl extends ServiceImpl<OkrObjectInfoDisclosureMapper, OkrObjectInfoDisclosure> implements IOkrObjectInfoDisclosureService {
     @Autowired
-    private OkrObjectInfoDisclosureMapper okrObjectInfoDisclosureMapper;
+    private OkrObjectInfoDisclosureMapper disclosureMapper;
     @Override
     public void deleteByKrId(Long krId) {
         Map<String,Object> map=new HashMap<>();
-        map.put("okr_object_id",krId);
-        okrObjectInfoDisclosureMapper.deleteByMap(map);
+        map.put("kr_id",krId);
+        disclosureMapper.deleteByMap(map);
     }
 
+    @Override
+    public OkrObjectInfoDisclosure checkStaffByParams(Long krId, String openId, Integer publicType) {
+        QueryWrapper<OkrObjectInfoDisclosure> queryWrapper = new QueryWrapper<>();
+        if(null!=krId&&krId!=0){
+            queryWrapper.eq("kr_id",krId);
+        }
+        if(null!=openId&&!"".equals(openId.trim())){
+            queryWrapper.eq("public_id",krId);
+        }
+        queryWrapper.eq("public_type",publicType);
+        queryWrapper.last("limit 1");
+        return this.getOne(queryWrapper);
+    }
+
+    @Override
+    public OkrObjectInfoDisclosure checkDepartByParams(Long krId, String openId, Integer publicType) {
+        return disclosureMapper.checkDepartByParams(krId, openId, publicType);
+    }
+
+    @Override
+    public List<PublicVO> getPublicVOByKrId(Long krId) {
+        return disclosureMapper.getPublicVOByKrId(krId);
+    }
 }

+ 8 - 1
src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoRemindServiceImpl.java

@@ -3,11 +3,13 @@ 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 cn.com.ctop.okr.vo.RemindVO;
 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.List;
 import java.util.Map;
 
 /**
@@ -23,7 +25,12 @@ public class OkrObjectInfoRemindServiceImpl extends ServiceImpl<OkrObjectInfoRem
     @Override
     public void deleteByKrId(Long krId) {
         Map<String,Object> map=new HashMap<>();
-        map.put("okr_object_id",krId);
+        map.put("kr_id",krId);
         okrObjectInfoRemindMapper.deleteByMap(map);
     }
+
+    @Override
+    public List<RemindVO> getRemindVOByKrId(Long krId) {
+        return okrObjectInfoRemindMapper.getRemindVOByKrId(krId);
+    }
 }

+ 19 - 0
src/main/java/cn/com/ctop/okr/service/impl/OkrObjectInfoServiceImpl.java

@@ -0,0 +1,19 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.entity.OkrObjectInfo;
+import cn.com.ctop.okr.mapper.OkrObjectInfoMapper;
+import cn.com.ctop.okr.service.IOkrObjectInfoService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class OkrObjectInfoServiceImpl extends ServiceImpl<OkrObjectInfoMapper, OkrObjectInfo> implements IOkrObjectInfoService {
+    @Override
+    public OkrObjectInfo getByParams(String userId, Integer year, Integer quarter) {
+        QueryWrapper<OkrObjectInfo>queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("user_id",userId).eq("year",year).eq("quarter",quarter);
+        queryWrapper.orderByDesc("create_time").last("limit 1");
+        return this.getOne(queryWrapper);
+    }
+}

+ 259 - 61
src/main/java/cn/com/ctop/okr/service/impl/OkrServiceImpl.java

@@ -5,9 +5,11 @@ import cn.com.ctop.okr.entity.*;
 import cn.com.ctop.okr.mapper.*;
 import cn.com.ctop.okr.service.*;
 import cn.com.ctop.okr.utils.DateUtils;
+import cn.com.ctop.okr.utils.ResultMapUtils;
+import cn.com.ctop.okr.utils.StatusCode;
 import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.util.DateUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -28,53 +30,69 @@ public class OkrServiceImpl implements OkrService {
     @Autowired
     private OkrObjectInfoMapper okrObjectInfoMapper;
     @Autowired
-    private OkrTaskInfoMapper okrTaskInfoMapper;
+    private IOkrTaskInfoService okrTaskInfoService;
     @Autowired
     private QYWxUserInfoMapper wxUserInfoMapper;
-
+    @Autowired
+    private IOkrObjectInfoService objectInfoService;
     @Override
-    public Map<String, Object> getOkrInfo(String userId){
-        Map<String, Object> map = new HashMap<>();
-        if(StringUtils.isBlank(userId)){
-            QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
-            userId = sysUser.getOpenId();
-            //userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+    public Map<String, Object> getOkrInfo(UserInfoDto data){
+        Map<String, Object> result = new HashMap<>();
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String currentUserId = sysUser.getOpenId();
+        Long objectId = data.getObjectId();
+        OkrObjectInfo objectInfo =objectInfoService.getById(objectId);
+        if(null == objectInfo){
+            ResultMapUtils.setResultMap(result, StatusCode.COMMON_PARAM_ERROR);
+            return result;
         }
 
-        //季度
-        Map<String, Object> timeMap = new HashMap<>();
-        Integer quarter = DateUtils.getQuarter(new Date());
-        Integer year = DateUtils.getYear(new Date());
-        timeMap.put("year",year);
-        timeMap.put("quarter",quarter);
-
         //本周任务信息
-        List<OkrTaskInfo> taskInfoList = okrTaskInfoMapper.getTaskInfo(userId, year, quarter, 1);
+        List<OkrTaskInfo> taskInfoList = okrTaskInfoService.getTaskInfo(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter(), 1);
+        List<OkrTaskInfo>setTaskList =checkTaskInfo(taskInfoList,currentUserId);
 
         //未来四周任务信息
-        List<OkrTaskInfo> taskFourWeekList = okrTaskInfoMapper.getTaskInfo(userId, year, quarter, 2);
+        List<OkrTaskInfo> taskFourWeekList = okrTaskInfoService.getTaskInfo(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter(), 2);
+        List<OkrTaskInfo>settaskFourWeekList =checkTaskInfo(taskInfoList,currentUserId);
 
         //OKR信息
-        List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoMapper.getQuarterObject(userId, year, quarter);
+        List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoMapper.getQuarterObject(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter());
         List<Map<String, Object>> okrList = new ArrayList<>();
         for (OkrObjectInfo okrObjectInfo:OkrObjectInfoList){
             Map<String, Object> okrMap = new HashMap<>();
-            List<OkrKrInfo> OkrKrInfoList = okrKrInfoMapper.getKrByObjectId(okrObjectInfo.getId(),userId, year, quarter);
+            List<OkrKrInfo> krList = okrKrInfoMapper.getKrByObjectId(okrObjectInfo.getId(),objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter());
+            List<OkrKrInfo>setKrList =checkKrList(krList,currentUserId);
             okrMap.put("objectInfo",okrObjectInfo);
-            okrMap.put("krList",OkrKrInfoList);
+            okrMap.put("krList",setKrList);
             okrList.add(okrMap);
         }
 
         //状态信息
-        List<OkrContentStatus> contentStatusList = okrContentStatusMapper.getContentStatusList(userId, year, quarter);
-
-        map.put("time", timeMap);
-        map.put("taskInfoList",taskInfoList);
-        map.put("taskFourWeekList",taskFourWeekList);
-        map.put("okr",okrList);
-        map.put("status", contentStatusList);
+        List<OkrContentStatus> contentStatusList = okrContentStatusMapper.getContentStatusList(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter());
+        Map<String,Object> timeMap = new HashMap<>();
+        timeMap.put("year",objectInfo.getYear());
+        timeMap.put("quarter",objectInfo.getQuarter());
+        result.put("time", timeMap);
+        result.put("taskInfoList",setTaskList);
+        result.put("taskFourWeekList",settaskFourWeekList);
+        result.put("okr",okrList);
+        result.put("status", contentStatusList);
+        return result;
+    }
 
-        return map;
+    private List<OkrTaskInfo> checkTaskInfo(List<OkrTaskInfo> taskInfoList, String openId) {
+        List<OkrTaskInfo>setList = new ArrayList<>();
+        if(null!=taskInfoList&&!taskInfoList.isEmpty()){
+            setList = new ArrayList<>();
+            for(OkrTaskInfo taskInfo:taskInfoList){
+                //1:查询当前kr使用可以被展示
+                OkrTaskInfo getTaskInfo = okrTaskInfoService.checkShow(taskInfo,openId);
+                if(null!=getTaskInfo){
+                    setList.add(getTaskInfo);
+                }
+            }
+        }
+        return setList;
     }
 
 
@@ -142,12 +160,13 @@ public class OkrServiceImpl implements OkrService {
         taskInfo.setUserId(userId);
         taskInfo.setYear(year);
         taskInfo.setQuarter(quarter);
-        okrTaskInfoMapper.insertTaskInfo(taskInfo);
+        okrTaskInfoService.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.setExtraId(publicId);
+                String[] ids = publicId.split("##");
                 disclosure.setOkrTaskId(taskInfo.getId());
                 //部门
                 if(ids.length == 1){
@@ -164,8 +183,9 @@ public class OkrServiceImpl implements OkrService {
         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.setExtraId(remindId);
+                String[] ids = remindId.split("##");
                 remind.setOkrTaskId(taskInfo.getId());
                 //部门
                 if(ids.length == 1){
@@ -200,18 +220,20 @@ public class OkrServiceImpl implements OkrService {
     //更新任务
     @Override
     public void updateTaskInfo(OkrTaskInfo taskInfo){
-        okrTaskInfoMapper.updateTaskInfo(taskInfo);
+        List<String>publicIds = taskInfo.getRemindIds();
+        List<String>remindIds = taskInfo.getRemindIds();
+        okrTaskInfoService.updateTaskInfo(taskInfo);
         /**
          * 需要先删除历史数据
          */
-        taskInfo = okrTaskInfoMapper.selectById(taskInfo.getId());
+        taskInfo = okrTaskInfoService.selectById(taskInfo.getId());
         okrTaskInfoDisclosureService.deleteByTaskId(taskInfo.getId());
         okrTaskInfoRemindService.deleteByTaskId(taskInfo.getId());
-        if(null!=taskInfo.getPublicIds()&&!taskInfo.getPublicIds().isEmpty()){
-            List<String>publicIds = taskInfo.getPublicIds();
+        if(null!=publicIds&&!publicIds.isEmpty()){
             for(String publicId:publicIds){
-                String[] ids = publicId.split("##");
                 OkrTaskInfoDisclosure disclosure = new OkrTaskInfoDisclosure();
+                disclosure.setExtraId(publicId);
+                String[] ids = publicId.split("##");
                 disclosure.setOkrTaskId(taskInfo.getId());
                 //部门
                 if(ids.length == 1){
@@ -225,11 +247,11 @@ public class OkrServiceImpl implements OkrService {
                 okrTaskInfoDisclosureService.save(disclosure);
             }
         }
-        if(null!=taskInfo.getRemindIds()&&!taskInfo.getRemindIds().isEmpty()){
-            List<String>remindIds = taskInfo.getRemindIds();
+        if(null!=remindIds&&!remindIds.isEmpty()){
             for(String remindId:remindIds){
-                String[] ids = remindId.split("##");
                 OkrTaskInfoRemind remind = new OkrTaskInfoRemind();
+                remind.setExtraId(remindId);
+                String[] ids = remindId.split("##");
                 remind.setOkrTaskId(taskInfo.getId());
                 //部门
                 if(ids.length == 1){
@@ -380,15 +402,17 @@ public class OkrServiceImpl implements OkrService {
     private IKrInfoservice krInfoservice;
     @Override
     public void updateKr(OkrKrInfo krInfo){
+        List<String>publicIds = krInfo.getPublicIds();
+        List<String>remindIds = krInfo.getRemindIds();
         krInfoservice.updateKrInfo(krInfo);
         okrObjectInfoDisclosureService.deleteByKrId(krInfo.getId());
         okrObjectInfoRemindService.deleteByKrId(krInfo.getId());
-        if(null!=krInfo.getPublicIds()&&!krInfo.getPublicIds().isEmpty()){
-            List<String>publicIds = krInfo.getPublicIds();
+        if(null!=publicIds&&!publicIds.isEmpty()){
             for(String publicId:publicIds){
-                String[] ids = publicId.split("##");
                 OkrObjectInfoDisclosure disclosure = new OkrObjectInfoDisclosure();
-                disclosure.setOkrObjectId(krInfo.getId());
+                disclosure.setExtraId(publicId);
+                String[] ids = publicId.split("##");
+                disclosure.setKrId(krInfo.getId());
                 //部门
                 if(ids.length == 1){
                     disclosure.setPublicType(1);
@@ -401,12 +425,12 @@ public class OkrServiceImpl implements OkrService {
                 okrObjectInfoDisclosureService.save(disclosure);
             }
         }
-        if(null!=krInfo.getRemindIds()&&!krInfo.getRemindIds().isEmpty()){
-            List<String>remindIds = krInfo.getRemindIds();
+        if(null!=remindIds&&!remindIds.isEmpty()){
             for(String remindId:remindIds){
-                String[] ids = remindId.split("##");
                 OkrObjectInfoRemind remind = new OkrObjectInfoRemind();
-                remind.setOkrObjectId(krInfo.getId());
+                remind.setExtraId(remindId);
+                String[] ids = remindId.split("##");
+                remind.setKrId(krInfo.getId());
                 //部门
                 if(ids.length == 1){
                     remind.setRemindType(1);
@@ -439,7 +463,7 @@ public class OkrServiceImpl implements OkrService {
     @Override
     public Map<String, Object> getSyncUserListByMemberId(JSONObject data){
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
-        String memberId = sysUser.getOpenId();
+        String openId = sysUser.getOpenId();
         Integer pageSize = data.getInteger("pageSize");
         if(null == pageSize||pageSize == 0){
             pageSize = 12;
@@ -473,12 +497,7 @@ public class OkrServiceImpl implements OkrService {
         List<Map<String, Object>> mapList = new ArrayList<>();
         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());
+            Map<String, Object> okrmap = getOkrMap(object,openId,year,quarter);
             mapList.add(okrmap);
         }
 
@@ -489,6 +508,183 @@ public class OkrServiceImpl implements OkrService {
         return map;
     }
 
+    List<OkrKrInfo>checkKrList(List<OkrKrInfo> krList,String openId){
+        List<OkrKrInfo>setList = new ArrayList<>();
+        if(null!=krList&&!krList.isEmpty()){
+            setList = new ArrayList<>();
+            for(OkrKrInfo krInfo:krList){
+                //1:查询当前kr使用可以被展示
+                OkrKrInfo getKrInfo = krInfoservice.checkShow(krInfo,openId);
+                if(null!=getKrInfo){
+                    setList.add(getKrInfo);
+                }
+            }
+        }
+        return setList;
+    }
+
+    @Override
+    public Map<String, Object> getMyFollowList(JSONObject data){
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String openId = sysUser.getOpenId();
+        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<>();
+
+        Integer todayQuarter = DateUtils.getQuarter(new Date());
+        Integer todayYear = DateUtils.getYear(new Date());
+        Integer isCurrentQuarter = 0;
+        if(year ==null){
+            year = todayYear;
+        }
+        if(null == quarter||quarter == 0){
+            quarter = todayQuarter;
+        }
+
+        //如果不是当年当季度,返回O和KR的信息;是当季度,直接返回OKR四象限信息
+        if(todayYear.equals(year) && todayQuarter.equals(quarter)){
+            isCurrentQuarter = 1;
+        }else{
+            isCurrentQuarter = 0;
+        }
+
+        List<Map<String, Object>> mapList = new ArrayList<>();
+        List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoMapper.getFollowQuarterObject(name,year, quarter,(pageNumber-1)*pageSize,pageSize);
+        for(OkrObjectInfo object:OkrObjectInfoList){
+            Map<String, Object> okrmap = getOkrMap(object,openId,year,quarter);
+            mapList.add(okrmap);
+        }
+
+        map.put("isCurrentQuarter",isCurrentQuarter);
+        map.put("list",mapList);
+        map.put("year",todayYear);
+        map.put("quarter",todayQuarter);
+        return map;
+    }
+
+    private Map<String, Object> getOkrMap(OkrObjectInfo object, String openId, Integer year, Integer quarter) {
+        Map<String,Object>okrmap = new HashMap<>();
+        List<OkrKrInfo> krList = okrKrInfoMapper.getKrByObjectId(object.getId(), object.getUserId(), year, quarter);
+        List<OkrKrInfo>setList =checkKrList(krList,openId);
+        QYWxUserInfo userInfo = wxUserInfoMapper.getUserInfoByOpenId(object.getUserId());
+        OkrFocusInfo focusInfo = focusInfoService.getByParams(object.getUserId(),openId);
+        if(null == focusInfo){
+            okrmap.put("follow",false);
+        }else{
+            okrmap.put("follow",true);
+        }
+        okrmap.put("krList", setList);
+        okrmap.put("object", object);
+        okrmap.put("name",userInfo.getName());
+        return okrmap;
+    }
+
+    @Autowired
+    private IOkrFocusInfoService focusInfoService;
+
+    @Override
+    public Map<String, Object> getMyDepartmentList(JSONObject data) {
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String openId = sysUser.getOpenId();
+        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<>();
+
+        Integer todayQuarter = DateUtils.getQuarter(new Date());
+        Integer todayYear = DateUtils.getYear(new Date());
+        Integer isCurrentQuarter = 0;
+        if(year ==null){
+            year = todayYear;
+        }
+        if(null == quarter||quarter == 0){
+            quarter = todayQuarter;
+        }
+
+        //如果不是当年当季度,返回O和KR的信息;是当季度,直接返回OKR四象限信息
+        if(todayYear.equals(year) && todayQuarter.equals(quarter)){
+            isCurrentQuarter = 1;
+        }else{
+            isCurrentQuarter = 0;
+        }
+
+        List<Map<String, Object>> mapList = new ArrayList<>();
+        //1:查询自己所属部门下的用户信息
+        List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoMapper.getDepartmentQuarterObject(openId,name,year, quarter,(pageNumber-1)*pageSize,pageSize);
+        for(OkrObjectInfo object:OkrObjectInfoList){
+            Map<String, Object> okrmap = getOkrMap(object,openId,year,quarter);
+            mapList.add(okrmap);
+        }
+
+        map.put("isCurrentQuarter",isCurrentQuarter);
+        map.put("list",mapList);
+        map.put("year",todayYear);
+        map.put("quarter",todayQuarter);
+        return map;
+    }
+
+    @Override
+    public Map<String, Object> getOkrDetail() {
+        Map<String, Object> result = new HashMap<>();
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String currentUserId = sysUser.getOpenId();
+        Integer year = DateUtils.getYear(new Date());
+        Integer quarter = DateUtils.getQuarter(new Date());
+        OkrObjectInfo objectInfo =objectInfoService.getByParams(currentUserId,year,quarter);
+        if(null == objectInfo){
+            return result;
+        }
+
+        //本周任务信息
+        List<OkrTaskInfo> taskInfoList = okrTaskInfoService.getTaskInfo(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter(), 1);
+        List<OkrTaskInfo>setTaskList =checkTaskInfo(taskInfoList,currentUserId);
+
+        //未来四周任务信息
+        List<OkrTaskInfo> taskFourWeekList = okrTaskInfoService.getTaskInfo(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter(), 2);
+        List<OkrTaskInfo>settaskFourWeekList =checkTaskInfo(taskFourWeekList,currentUserId);
+
+        //OKR信息
+        List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoMapper.getQuarterObject(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter());
+        List<Map<String, Object>> okrList = new ArrayList<>();
+        for (OkrObjectInfo okrObjectInfo:OkrObjectInfoList){
+            Map<String, Object> okrMap = new HashMap<>();
+            List<OkrKrInfo> krList = okrKrInfoMapper.getKrByObjectId(okrObjectInfo.getId(),objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter());
+            List<OkrKrInfo>setKrList =checkKrList(krList,currentUserId);
+            okrMap.put("objectInfo",okrObjectInfo);
+            okrMap.put("krList",setKrList);
+            okrList.add(okrMap);
+        }
+
+        //状态信息
+        List<OkrContentStatus> contentStatusList = okrContentStatusMapper.getContentStatusList(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter());
+        Map<String,Object> timeMap = new HashMap<>();
+        timeMap.put("year",objectInfo.getYear());
+        timeMap.put("quarter",objectInfo.getQuarter());
+        result.put("time", timeMap);
+        result.put("taskInfoList",setTaskList);
+        result.put("taskFourWeekList",settaskFourWeekList);
+        result.put("okr",okrList);
+        result.put("status", contentStatusList);
+        return result;
+    }
+
 
     @Override
     public void deleteObjectInfoById(OkrObjectInfo objectInfo){
@@ -549,7 +745,7 @@ public class OkrServiceImpl implements OkrService {
 
     @Override
     public void deleteTaskInfoById(OkrTaskInfo okrTaskInfo){
-        okrTaskInfoMapper.deleteTaskInfoById(okrTaskInfo);
+        okrTaskInfoService.deleteTaskInfoById(okrTaskInfo);
 
         QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
         String userId = sysUser.getOpenId();
@@ -557,7 +753,7 @@ public class OkrServiceImpl implements OkrService {
         //日志留存
         OkrLog okrLog = new OkrLog();
         okrLog.setType(3); //操作:1.创建2.修改3.删除
-        if(okrTaskInfoMapper.selectById(okrTaskInfo.getId()).getType()==1){
+        if(okrTaskInfoService.selectById(okrTaskInfo.getId()).getType()==1){
             okrLog.setOperation(3);  //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
         }else{
             okrLog.setOperation(4);
@@ -589,9 +785,10 @@ public class OkrServiceImpl implements OkrService {
         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());
+                disclosure.setExtraId(publicId);
+                String[] ids = publicId.split("##");
+                disclosure.setKrId(krInfo.getId());
                 //部门
                 if(ids.length == 1){
                     disclosure.setPublicType(1);
@@ -607,9 +804,10 @@ public class OkrServiceImpl implements OkrService {
         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());
+                remind.setExtraId(remindId);
+                String[] ids = remindId.split("##");
+                remind.setKrId(krInfo.getId());
                 //部门
                 if(ids.length == 1){
                     remind.setRemindType(1);

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

@@ -1,13 +1,17 @@
 package cn.com.ctop.okr.service.impl;
 
+import cn.com.ctop.okr.entity.OkrObjectInfoDisclosure;
 import cn.com.ctop.okr.entity.OkrTaskInfoDisclosure;
 import cn.com.ctop.okr.mapper.OkrTaskInfoDisclosureMapper;
 import cn.com.ctop.okr.service.IOkrTaskInfoDisclosureService;
+import cn.com.ctop.okr.vo.PublicVO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.List;
 import java.util.Map;
 
 /**
@@ -26,4 +30,28 @@ public class OkrTaskInfoDisclosureServiceImpl extends ServiceImpl<OkrTaskInfoDis
         map.put("okr_task_id",taskId);
         okrTaskInfoDisclosureMapper.deleteByMap(map);
     }
+
+    @Override
+    public List<PublicVO> getPublicVOByTaskId(Long taskInfoId) {
+        return okrTaskInfoDisclosureMapper.getPublicVOByTaskId(taskInfoId);
+    }
+
+    @Override
+    public OkrTaskInfoDisclosure checkStaffByParams(Long taskInfoId, String openId, int type) {
+        QueryWrapper<OkrTaskInfoDisclosure> queryWrapper = new QueryWrapper<>();
+        if(null!=taskInfoId&&taskInfoId!=0){
+            queryWrapper.eq("okr_task_id",taskInfoId);
+        }
+        if(null!=openId&&!"".equals(openId.trim())){
+            queryWrapper.eq("public_id",openId);
+        }
+        queryWrapper.eq("public_type",type);
+        queryWrapper.last("limit 1");
+        return this.getOne(queryWrapper);
+    }
+
+    @Override
+    public OkrTaskInfoDisclosure checkDepartByParams(Long taskInfoId, String openId, int type) {
+        return okrTaskInfoDisclosureMapper.checkDepartByParams(taskInfoId,openId,type);
+    }
 }

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

@@ -3,11 +3,13 @@ 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 cn.com.ctop.okr.vo.RemindVO;
 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.List;
 import java.util.Map;
 
 /**
@@ -26,4 +28,9 @@ public class OkrTaskInfoRemindServiceImpl extends ServiceImpl<OkrTaskInfoRemindM
         map.put("okr_task_id",taskId);
         okrTaskInfoRemindMapper.deleteByMap(map);
     }
+
+    @Override
+    public List<RemindVO> getRemindVOByTaskId(Long taskInfoId) {
+        return okrTaskInfoRemindMapper.getRemindVOByTaskId(taskInfoId);
+    }
 }

+ 91 - 0
src/main/java/cn/com/ctop/okr/service/impl/OkrTaskInfoServiceImpl.java

@@ -0,0 +1,91 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.entity.OkrTaskInfo;
+import cn.com.ctop.okr.entity.OkrTaskInfoDisclosure;
+import cn.com.ctop.okr.mapper.OkrTaskInfoMapper;
+import cn.com.ctop.okr.service.IOkrTaskInfoDisclosureService;
+import cn.com.ctop.okr.service.IOkrTaskInfoRemindService;
+import cn.com.ctop.okr.service.IOkrTaskInfoService;
+import cn.com.ctop.okr.vo.PublicVO;
+import cn.com.ctop.okr.vo.RemindVO;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class OkrTaskInfoServiceImpl extends ServiceImpl<OkrTaskInfoMapper, OkrTaskInfo> implements IOkrTaskInfoService {
+    @Autowired
+    private OkrTaskInfoMapper okrTaskInfoMapper;
+    @Override
+    public List<OkrTaskInfo> getTaskInfo(String userId, Integer year, Integer quarter, int type) {
+        return okrTaskInfoMapper.getTaskInfo(userId,year,quarter,type);
+    }
+
+    @Override
+    public void updateTaskInfo(OkrTaskInfo taskInfo) {
+        this.updateById(taskInfo);
+    }
+
+    @Override
+    public OkrTaskInfo selectById(Long id) {
+        return okrTaskInfoMapper.selectById(id);
+    }
+
+    @Override
+    public void deleteTaskInfoById(OkrTaskInfo okrTaskInfo) {
+        okrTaskInfoMapper.deleteTaskInfoById(okrTaskInfo);
+    }
+
+    @Override
+    public void insertTaskInfo(OkrTaskInfo taskInfo) {
+        okrTaskInfoMapper.insertTaskInfo(taskInfo);
+    }
+
+    @Autowired
+    private IOkrTaskInfoRemindService remindService;
+    @Autowired
+    private IOkrTaskInfoDisclosureService disclosureService;
+
+    @Override
+    public OkrTaskInfo checkShow(OkrTaskInfo taskInfo, String openId) {
+        String getOpenId = taskInfo.getUserId();
+        if(openId.equals(getOpenId)){
+            //表示是本人的OKR信息  展示所有
+            //查询相关@信息
+            List<RemindVO> remindVOS = remindService.getRemindVOByTaskId(taskInfo.getId());
+            taskInfo.setRemindVOS(remindVOS);
+            List<PublicVO> publicVOS = disclosureService.getPublicVOByTaskId(taskInfo.getId());
+            taskInfo.setPublicVOS(publicVOS);
+            return taskInfo;
+
+        }else{
+            Integer permission = taskInfo.getPermission();
+            if(permission == 2){
+                //私密
+                return null;
+            }
+            if(permission == 3){
+                //对某人公开
+                OkrTaskInfoDisclosure disclosureStaff = disclosureService.checkStaffByParams(taskInfo.getId(),openId,2);
+                OkrTaskInfoDisclosure disclosureDepart = disclosureService.checkDepartByParams(taskInfo.getId(),openId,1);
+                if(null == disclosureDepart&&disclosureStaff == null){
+                    return null;
+                }
+                //查询相关@信息
+                List<RemindVO> vos = remindService.getRemindVOByTaskId(taskInfo.getId());
+                taskInfo.setRemindVOS(vos);
+                return taskInfo;
+            }
+            if(permission == 1){
+                //公开
+                //查询相关@信息
+                List<RemindVO> vos = remindService.getRemindVOByTaskId(taskInfo.getId());
+                taskInfo.setRemindVOS(vos);
+                return taskInfo;
+            }
+            return null;
+        }
+    }
+}

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

@@ -75,7 +75,7 @@ public class QYWxDepartInfoServiceImpl extends ServiceImpl<QYWxDepartInfoMapper,
         List<TagInfoTreeModel> treeList = new ArrayList<>();
         for (int i = 0; i < recordList.size(); i++) {
             TagInfoTreeModel branch = recordList.get(i);
-            if (oConvertUtils.isEmpty(branch.getParentId())) {
+            if (oConvertUtils.isEmpty(branch.getParentId())||branch.getParentId().equals("0")) {
                 treeList.add(branch);
                 TagIdModel departIdModel = new TagIdModel().convert(branch);
                 departIdList.add(departIdModel);

+ 24 - 0
src/main/java/cn/com/ctop/okr/service/impl/QYWxUserInfoServiceImpl.java

@@ -0,0 +1,24 @@
+package cn.com.ctop.okr.service.impl;
+
+import cn.com.ctop.okr.entity.QYWxDepartInfo;
+import cn.com.ctop.okr.entity.QYWxUserInfo;
+import cn.com.ctop.okr.mapper.QYWxDepartInfoMapper;
+import cn.com.ctop.okr.mapper.QYWxUserInfoMapper;
+import cn.com.ctop.okr.service.IQYWxUserInfoService;
+import cn.com.ctop.okr.service.QYWxDepartInfoService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class QYWxUserInfoServiceImpl extends ServiceImpl<QYWxUserInfoMapper, QYWxUserInfo> implements IQYWxUserInfoService {
+    @Override
+    public QYWxUserInfo getByOpenId(String openId) {
+        QueryWrapper<QYWxUserInfo> queryWrapper = new QueryWrapper<>();
+        if(null!=openId||!"".equals(openId.trim())){
+            queryWrapper.eq("open_id",openId);
+        }
+        queryWrapper.last("limit 1");
+        return this.getOne(queryWrapper);
+    }
+}

+ 15 - 0
src/main/java/cn/com/ctop/okr/vo/PublicVO.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.okr.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class PublicVO implements Serializable {
+    private Long id;
+    private String publicId;
+    private String publicType;
+    private String name;
+    private Long krId;
+    private Long taskId;
+}

+ 15 - 0
src/main/java/cn/com/ctop/okr/vo/RemindVO.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.okr.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class RemindVO implements Serializable {
+    private Long id;
+    private String remindId;
+    private String remindType;
+    private String name;
+    private Long krId;
+    private Long taskId;
+}

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

@@ -128,12 +128,12 @@ xxl:
     accessToken:
     executor:
       appname: module-job-okr
-      port: 8911
+      port: 8912
       ip:
       logpath: /data/applogs/xxl-job/jobhandler
       logretentiondays: 30
     admin:
-      addresses: http://39.106.184.70:8090/xxl-job-admin
+      addresses: http://139.186.29.76:8090/xxl-job-admin
 
 #jeecg专用配置
 jeecg: