|
@@ -5,9 +5,11 @@ import cn.com.ctop.okr.entity.*;
|
|
import cn.com.ctop.okr.mapper.*;
|
|
import cn.com.ctop.okr.mapper.*;
|
|
import cn.com.ctop.okr.service.*;
|
|
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.utils.ResultMapUtils;
|
|
|
|
+import cn.com.ctop.okr.utils.StatusCode;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.xxl.job.core.util.DateUtil;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
-import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
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;
|
|
@@ -28,53 +30,69 @@ public class OkrServiceImpl implements OkrService {
|
|
@Autowired
|
|
@Autowired
|
|
private OkrObjectInfoMapper okrObjectInfoMapper;
|
|
private OkrObjectInfoMapper okrObjectInfoMapper;
|
|
@Autowired
|
|
@Autowired
|
|
- private OkrTaskInfoMapper okrTaskInfoMapper;
|
|
|
|
|
|
+ private IOkrTaskInfoService okrTaskInfoService;
|
|
@Autowired
|
|
@Autowired
|
|
private QYWxUserInfoMapper wxUserInfoMapper;
|
|
private QYWxUserInfoMapper wxUserInfoMapper;
|
|
-
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private IOkrObjectInfoService objectInfoService;
|
|
@Override
|
|
@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信息
|
|
//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<>();
|
|
List<Map<String, Object>> okrList = new ArrayList<>();
|
|
for (OkrObjectInfo okrObjectInfo:OkrObjectInfoList){
|
|
for (OkrObjectInfo okrObjectInfo:OkrObjectInfoList){
|
|
Map<String, Object> okrMap = new HashMap<>();
|
|
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("objectInfo",okrObjectInfo);
|
|
- okrMap.put("krList",OkrKrInfoList);
|
|
|
|
|
|
+ okrMap.put("krList",setKrList);
|
|
okrList.add(okrMap);
|
|
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.setUserId(userId);
|
|
taskInfo.setYear(year);
|
|
taskInfo.setYear(year);
|
|
taskInfo.setQuarter(quarter);
|
|
taskInfo.setQuarter(quarter);
|
|
- okrTaskInfoMapper.insertTaskInfo(taskInfo);
|
|
|
|
|
|
+ okrTaskInfoService.insertTaskInfo(taskInfo);
|
|
if(null!=taskInfo.getPublicIds()&&!taskInfo.getPublicIds().isEmpty()){
|
|
if(null!=taskInfo.getPublicIds()&&!taskInfo.getPublicIds().isEmpty()){
|
|
List<String>publicIds = taskInfo.getPublicIds();
|
|
List<String>publicIds = taskInfo.getPublicIds();
|
|
for(String publicId:publicIds){
|
|
for(String publicId:publicIds){
|
|
- String[] ids = publicId.split("##");
|
|
|
|
OkrTaskInfoDisclosure disclosure = new OkrTaskInfoDisclosure();
|
|
OkrTaskInfoDisclosure disclosure = new OkrTaskInfoDisclosure();
|
|
|
|
+ disclosure.setExtraId(publicId);
|
|
|
|
+ String[] ids = publicId.split("##");
|
|
disclosure.setOkrTaskId(taskInfo.getId());
|
|
disclosure.setOkrTaskId(taskInfo.getId());
|
|
//部门
|
|
//部门
|
|
if(ids.length == 1){
|
|
if(ids.length == 1){
|
|
@@ -164,8 +183,9 @@ public class OkrServiceImpl implements OkrService {
|
|
if(null!=taskInfo.getRemindIds()&&!taskInfo.getRemindIds().isEmpty()){
|
|
if(null!=taskInfo.getRemindIds()&&!taskInfo.getRemindIds().isEmpty()){
|
|
List<String>remindIds = taskInfo.getRemindIds();
|
|
List<String>remindIds = taskInfo.getRemindIds();
|
|
for(String remindId:remindIds){
|
|
for(String remindId:remindIds){
|
|
- String[] ids = remindId.split("##");
|
|
|
|
OkrTaskInfoRemind remind = new OkrTaskInfoRemind();
|
|
OkrTaskInfoRemind remind = new OkrTaskInfoRemind();
|
|
|
|
+ remind.setExtraId(remindId);
|
|
|
|
+ String[] ids = remindId.split("##");
|
|
remind.setOkrTaskId(taskInfo.getId());
|
|
remind.setOkrTaskId(taskInfo.getId());
|
|
//部门
|
|
//部门
|
|
if(ids.length == 1){
|
|
if(ids.length == 1){
|
|
@@ -200,18 +220,20 @@ public class OkrServiceImpl implements OkrService {
|
|
//更新任务
|
|
//更新任务
|
|
@Override
|
|
@Override
|
|
public void updateTaskInfo(OkrTaskInfo taskInfo){
|
|
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());
|
|
okrTaskInfoDisclosureService.deleteByTaskId(taskInfo.getId());
|
|
okrTaskInfoRemindService.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){
|
|
for(String publicId:publicIds){
|
|
- String[] ids = publicId.split("##");
|
|
|
|
OkrTaskInfoDisclosure disclosure = new OkrTaskInfoDisclosure();
|
|
OkrTaskInfoDisclosure disclosure = new OkrTaskInfoDisclosure();
|
|
|
|
+ disclosure.setExtraId(publicId);
|
|
|
|
+ String[] ids = publicId.split("##");
|
|
disclosure.setOkrTaskId(taskInfo.getId());
|
|
disclosure.setOkrTaskId(taskInfo.getId());
|
|
//部门
|
|
//部门
|
|
if(ids.length == 1){
|
|
if(ids.length == 1){
|
|
@@ -225,11 +247,11 @@ public class OkrServiceImpl implements OkrService {
|
|
okrTaskInfoDisclosureService.save(disclosure);
|
|
okrTaskInfoDisclosureService.save(disclosure);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(null!=taskInfo.getRemindIds()&&!taskInfo.getRemindIds().isEmpty()){
|
|
|
|
- List<String>remindIds = taskInfo.getRemindIds();
|
|
|
|
|
|
+ if(null!=remindIds&&!remindIds.isEmpty()){
|
|
for(String remindId:remindIds){
|
|
for(String remindId:remindIds){
|
|
- String[] ids = remindId.split("##");
|
|
|
|
OkrTaskInfoRemind remind = new OkrTaskInfoRemind();
|
|
OkrTaskInfoRemind remind = new OkrTaskInfoRemind();
|
|
|
|
+ remind.setExtraId(remindId);
|
|
|
|
+ String[] ids = remindId.split("##");
|
|
remind.setOkrTaskId(taskInfo.getId());
|
|
remind.setOkrTaskId(taskInfo.getId());
|
|
//部门
|
|
//部门
|
|
if(ids.length == 1){
|
|
if(ids.length == 1){
|
|
@@ -380,15 +402,17 @@ public class OkrServiceImpl implements OkrService {
|
|
private IKrInfoservice krInfoservice;
|
|
private IKrInfoservice krInfoservice;
|
|
@Override
|
|
@Override
|
|
public void updateKr(OkrKrInfo krInfo){
|
|
public void updateKr(OkrKrInfo krInfo){
|
|
|
|
+ List<String>publicIds = krInfo.getPublicIds();
|
|
|
|
+ List<String>remindIds = krInfo.getRemindIds();
|
|
krInfoservice.updateKrInfo(krInfo);
|
|
krInfoservice.updateKrInfo(krInfo);
|
|
okrObjectInfoDisclosureService.deleteByKrId(krInfo.getId());
|
|
okrObjectInfoDisclosureService.deleteByKrId(krInfo.getId());
|
|
okrObjectInfoRemindService.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){
|
|
for(String publicId:publicIds){
|
|
- String[] ids = publicId.split("##");
|
|
|
|
OkrObjectInfoDisclosure disclosure = new OkrObjectInfoDisclosure();
|
|
OkrObjectInfoDisclosure disclosure = new OkrObjectInfoDisclosure();
|
|
- disclosure.setOkrObjectId(krInfo.getId());
|
|
|
|
|
|
+ disclosure.setExtraId(publicId);
|
|
|
|
+ String[] ids = publicId.split("##");
|
|
|
|
+ disclosure.setKrId(krInfo.getId());
|
|
//部门
|
|
//部门
|
|
if(ids.length == 1){
|
|
if(ids.length == 1){
|
|
disclosure.setPublicType(1);
|
|
disclosure.setPublicType(1);
|
|
@@ -401,12 +425,12 @@ public class OkrServiceImpl implements OkrService {
|
|
okrObjectInfoDisclosureService.save(disclosure);
|
|
okrObjectInfoDisclosureService.save(disclosure);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(null!=krInfo.getRemindIds()&&!krInfo.getRemindIds().isEmpty()){
|
|
|
|
- List<String>remindIds = krInfo.getRemindIds();
|
|
|
|
|
|
+ if(null!=remindIds&&!remindIds.isEmpty()){
|
|
for(String remindId:remindIds){
|
|
for(String remindId:remindIds){
|
|
- String[] ids = remindId.split("##");
|
|
|
|
OkrObjectInfoRemind remind = new OkrObjectInfoRemind();
|
|
OkrObjectInfoRemind remind = new OkrObjectInfoRemind();
|
|
- remind.setOkrObjectId(krInfo.getId());
|
|
|
|
|
|
+ remind.setExtraId(remindId);
|
|
|
|
+ String[] ids = remindId.split("##");
|
|
|
|
+ remind.setKrId(krInfo.getId());
|
|
//部门
|
|
//部门
|
|
if(ids.length == 1){
|
|
if(ids.length == 1){
|
|
remind.setRemindType(1);
|
|
remind.setRemindType(1);
|
|
@@ -439,7 +463,7 @@ public class OkrServiceImpl implements OkrService {
|
|
@Override
|
|
@Override
|
|
public Map<String, Object> getSyncUserListByMemberId(JSONObject data){
|
|
public Map<String, Object> getSyncUserListByMemberId(JSONObject data){
|
|
QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
|
|
QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
|
|
- String memberId = sysUser.getOpenId();
|
|
|
|
|
|
+ String openId = sysUser.getOpenId();
|
|
Integer pageSize = data.getInteger("pageSize");
|
|
Integer pageSize = data.getInteger("pageSize");
|
|
if(null == pageSize||pageSize == 0){
|
|
if(null == pageSize||pageSize == 0){
|
|
pageSize = 12;
|
|
pageSize = 12;
|
|
@@ -473,12 +497,7 @@ public class OkrServiceImpl implements OkrService {
|
|
List<Map<String, Object>> mapList = new ArrayList<>();
|
|
List<Map<String, Object>> mapList = new ArrayList<>();
|
|
List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoMapper.getAllQuarterObject(name,year, quarter,(pageNumber-1)*pageSize,pageSize);
|
|
List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoMapper.getAllQuarterObject(name,year, quarter,(pageNumber-1)*pageSize,pageSize);
|
|
for(OkrObjectInfo object:OkrObjectInfoList){
|
|
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);
|
|
mapList.add(okrmap);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -489,6 +508,183 @@ public class OkrServiceImpl implements OkrService {
|
|
return map;
|
|
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
|
|
@Override
|
|
public void deleteObjectInfoById(OkrObjectInfo objectInfo){
|
|
public void deleteObjectInfoById(OkrObjectInfo objectInfo){
|
|
@@ -549,7 +745,7 @@ public class OkrServiceImpl implements OkrService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void deleteTaskInfoById(OkrTaskInfo okrTaskInfo){
|
|
public void deleteTaskInfoById(OkrTaskInfo okrTaskInfo){
|
|
- okrTaskInfoMapper.deleteTaskInfoById(okrTaskInfo);
|
|
|
|
|
|
+ okrTaskInfoService.deleteTaskInfoById(okrTaskInfo);
|
|
|
|
|
|
QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
|
|
QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
|
|
String userId = sysUser.getOpenId();
|
|
String userId = sysUser.getOpenId();
|
|
@@ -557,7 +753,7 @@ public class OkrServiceImpl implements OkrService {
|
|
//日志留存
|
|
//日志留存
|
|
OkrLog okrLog = new OkrLog();
|
|
OkrLog okrLog = new OkrLog();
|
|
okrLog.setType(3); //操作:1.创建2.修改3.删除
|
|
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.状态指标
|
|
okrLog.setOperation(3); //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
|
|
}else{
|
|
}else{
|
|
okrLog.setOperation(4);
|
|
okrLog.setOperation(4);
|
|
@@ -589,9 +785,10 @@ public class OkrServiceImpl implements OkrService {
|
|
if(null!=krInfo.getPublicIds()&&!krInfo.getPublicIds().isEmpty()){
|
|
if(null!=krInfo.getPublicIds()&&!krInfo.getPublicIds().isEmpty()){
|
|
List<String>publicIds = krInfo.getPublicIds();
|
|
List<String>publicIds = krInfo.getPublicIds();
|
|
for(String publicId:publicIds){
|
|
for(String publicId:publicIds){
|
|
- String[] ids = publicId.split("##");
|
|
|
|
OkrObjectInfoDisclosure disclosure = new OkrObjectInfoDisclosure();
|
|
OkrObjectInfoDisclosure disclosure = new OkrObjectInfoDisclosure();
|
|
- disclosure.setOkrObjectId(krInfo.getId());
|
|
|
|
|
|
+ disclosure.setExtraId(publicId);
|
|
|
|
+ String[] ids = publicId.split("##");
|
|
|
|
+ disclosure.setKrId(krInfo.getId());
|
|
//部门
|
|
//部门
|
|
if(ids.length == 1){
|
|
if(ids.length == 1){
|
|
disclosure.setPublicType(1);
|
|
disclosure.setPublicType(1);
|
|
@@ -607,9 +804,10 @@ public class OkrServiceImpl implements OkrService {
|
|
if(null!=krInfo.getRemindIds()&&!krInfo.getRemindIds().isEmpty()){
|
|
if(null!=krInfo.getRemindIds()&&!krInfo.getRemindIds().isEmpty()){
|
|
List<String>remindIds = krInfo.getRemindIds();
|
|
List<String>remindIds = krInfo.getRemindIds();
|
|
for(String remindId:remindIds){
|
|
for(String remindId:remindIds){
|
|
- String[] ids = remindId.split("##");
|
|
|
|
OkrObjectInfoRemind remind = new OkrObjectInfoRemind();
|
|
OkrObjectInfoRemind remind = new OkrObjectInfoRemind();
|
|
- remind.setOkrObjectId(krInfo.getId());
|
|
|
|
|
|
+ remind.setExtraId(remindId);
|
|
|
|
+ String[] ids = remindId.split("##");
|
|
|
|
+ remind.setKrId(krInfo.getId());
|
|
//部门
|
|
//部门
|
|
if(ids.length == 1){
|
|
if(ids.length == 1){
|
|
remind.setRemindType(1);
|
|
remind.setRemindType(1);
|