|
@@ -5,26 +5,24 @@ import cn.com.ctop.okr.dto.UserInfoDto;
|
|
|
import cn.com.ctop.okr.entity.*;
|
|
|
import cn.com.ctop.okr.mapper.*;
|
|
|
import cn.com.ctop.okr.service.*;
|
|
|
-import cn.com.ctop.okr.utils.CorpWexinUtils;
|
|
|
-import cn.com.ctop.okr.utils.DateUtils;
|
|
|
-import cn.com.ctop.okr.utils.ResultMapUtils;
|
|
|
-import cn.com.ctop.okr.utils.StatusCode;
|
|
|
+import cn.com.ctop.okr.utils.*;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
public class OkrServiceImpl implements OkrService {
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private OkrContentStatusMapper okrContentStatusMapper;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private OkrKrInfoMapper okrKrInfoMapper;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private OkrMemberMapper okrMemberMapper;
|
|
|
@Autowired
|
|
|
private IOkrObjectInfoService okrObjectInfoService;
|
|
@@ -79,9 +77,17 @@ public class OkrServiceImpl implements OkrService {
|
|
|
Map<String,Object> timeMap = new HashMap<>();
|
|
|
timeMap.put("year",objectInfo.getYear());
|
|
|
timeMap.put("quarter",objectInfo.getQuarter());
|
|
|
+ Integer month = DateUtils.getMonth();
|
|
|
+ Integer week = DateUtils.getWeekByDate(new Date());
|
|
|
+ List<Integer> months = DateUtils.getMonthsByQuarter(objectInfo.getQuarter());
|
|
|
+ Map<Integer, List<Integer>> weeks = DateUtils.getWeeksOfYearByQuarter(objectInfo.getQuarter());
|
|
|
+ timeMap.put("month",month);
|
|
|
+ timeMap.put("week",week);
|
|
|
+ timeMap.put("months",months);
|
|
|
+ timeMap.put("weeks",weeks);
|
|
|
result.put("time", timeMap);
|
|
|
- result.put("taskInfoList",setTaskList);
|
|
|
- result.put("taskFourWeekList",setTaskFourWeekList);
|
|
|
+ result.put("taskInfoList",transformTaskInfo(setTaskList, 1));
|
|
|
+ result.put("taskFourWeekList",transformTaskInfo(setTaskFourWeekList, 2));
|
|
|
result.put("okr",okrList);
|
|
|
result.put("status", contentStatusList);
|
|
|
return result;
|
|
@@ -225,6 +231,11 @@ public class OkrServiceImpl implements OkrService {
|
|
|
List<String>publicIds = taskInfo.getPublicIds();
|
|
|
List<String>remindIds = taskInfo.getRemindIds();
|
|
|
okrTaskInfoService.updateTaskInfo(taskInfo);
|
|
|
+ if(taskInfo.getStatus() == 2){
|
|
|
+ taskInfo.setStatus(1);
|
|
|
+ taskInfo.setWeek(taskInfo.getWeek()+1);
|
|
|
+ okrTaskInfoService.insertTaskInfo(taskInfo);
|
|
|
+ }
|
|
|
/**
|
|
|
* 需要先删除历史数据
|
|
|
*/
|
|
@@ -572,11 +583,19 @@ public class OkrServiceImpl implements OkrService {
|
|
|
if(null == quarter||quarter == 0){
|
|
|
quarter = currentQuarter;
|
|
|
}
|
|
|
+ Integer month = DateUtils.getMonth();
|
|
|
+ Integer week = DateUtils.getWeekByDate(new Date());
|
|
|
+ List<Integer> months = DateUtils.getMonthsByQuarter(currentQuarter);
|
|
|
+ Map<Integer, List<Integer>> weeks = DateUtils.getWeeksOfYearByQuarter(quarter);
|
|
|
Map<String,Object> timeMap = new HashMap<>();
|
|
|
timeMap.put("year", year);
|
|
|
timeMap.put("quarter",quarter);
|
|
|
timeMap.put("currentYear",currentYear);
|
|
|
timeMap.put("currentQuarter",currentQuarter);
|
|
|
+ timeMap.put("month",month);
|
|
|
+ timeMap.put("months",months);
|
|
|
+ timeMap.put("week",week);
|
|
|
+ timeMap.put("weeks",weeks);
|
|
|
result.put("time", timeMap);
|
|
|
|
|
|
OkrObjectInfo objectInfo =objectInfoService.getByParams(currentUserId,year,quarter);
|
|
@@ -586,11 +605,11 @@ public class OkrServiceImpl implements OkrService {
|
|
|
|
|
|
//本周任务信息
|
|
|
List<OkrTaskInfo> taskInfoList = okrTaskInfoService.getTaskInfo(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter(), 1);
|
|
|
- List<OkrTaskInfo>setTaskList =checkTaskInfo(taskInfoList,currentUserId);
|
|
|
+ List<OkrTaskInfo> setTaskList =checkTaskInfo(taskInfoList,currentUserId);
|
|
|
|
|
|
//未来四周任务信息
|
|
|
List<OkrTaskInfo> taskFourWeekList = okrTaskInfoService.getTaskInfo(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter(), 2);
|
|
|
- List<OkrTaskInfo>settaskFourWeekList =checkTaskInfo(taskFourWeekList,currentUserId);
|
|
|
+ List<OkrTaskInfo> settaskFourWeekList =checkTaskInfo(taskFourWeekList,currentUserId);
|
|
|
|
|
|
//OKR信息
|
|
|
List<OkrObjectInfo> OkrObjectInfoList = okrObjectInfoService.getQuarterObject(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter());
|
|
@@ -606,14 +625,51 @@ public class OkrServiceImpl implements OkrService {
|
|
|
|
|
|
//状态信息
|
|
|
List<OkrContentStatus> contentStatusList = okrContentStatusMapper.getContentStatusList(objectInfo.getUserId(), objectInfo.getYear(), objectInfo.getQuarter());
|
|
|
- result.put("taskInfoList",setTaskList);
|
|
|
- result.put("taskFourWeekList",settaskFourWeekList);
|
|
|
+
|
|
|
+
|
|
|
+ result.put("taskInfoList",transformTaskInfo(setTaskList, 1));
|
|
|
+ result.put("taskFourWeekList",transformTaskInfo(settaskFourWeekList, 2));
|
|
|
result.put("okr",okrList);
|
|
|
result.put("status", contentStatusList);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public Map<Integer, List<OkrTaskInfo>> transformTaskInfo(List<OkrTaskInfo> taskInfoList, Integer type){
|
|
|
+
|
|
|
+ Map<Integer, List<OkrTaskInfo>> resultMap = new HashMap<>();
|
|
|
+ // 1周 2月
|
|
|
+ if(type == 1){
|
|
|
+ taskInfoList.forEach(taskInfo -> {
|
|
|
+ Integer key = Check.isNull(taskInfo.getWeek()) ? 0 : taskInfo.getWeek();
|
|
|
+ if(resultMap.containsKey(key)){
|
|
|
+ resultMap.get(key).add(taskInfo);
|
|
|
+ }else{
|
|
|
+ List<OkrTaskInfo> list = new ArrayList<>();
|
|
|
+ list.add(taskInfo);
|
|
|
+ resultMap.put(key, list);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if(type == 2){
|
|
|
+ taskInfoList.forEach(taskInfo -> {
|
|
|
+ Integer key = Check.isNull(taskInfo.getMonth()) ? 0 : taskInfo.getMonth();
|
|
|
+ if(resultMap.containsKey(key)){
|
|
|
+ resultMap.get(key).add(taskInfo);
|
|
|
+ }else{
|
|
|
+ List<OkrTaskInfo> list = new ArrayList<>();
|
|
|
+ list.add(taskInfo);
|
|
|
+ resultMap.put(key, list);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //联调测试有问题的话做转换
|
|
|
+ //String json = JSONObject.toJSONString(resultMap);
|
|
|
+
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void deleteObjectInfoById(OkrObjectInfo objectInfo){
|
|
|
okrObjectInfoService.deleteObjectInfoById(objectInfo);
|
|
@@ -656,6 +712,22 @@ public class OkrServiceImpl implements OkrService {
|
|
|
}
|
|
|
okrLogService.insertOkrLog(3,opetation,okrTaskInfo.getId(),DateUtils.getYear(new Date()),DateUtils.getQuarter(new Date()),JSONObject.toJSONString(okrTaskInfo),userId);
|
|
|
}
|
|
|
+ @Override
|
|
|
+ public void keepTaskInfoById(OkrTaskInfo okrTaskInfo){
|
|
|
+ okrTaskInfoService.keepTaskInfoById(okrTaskInfo);
|
|
|
+
|
|
|
+ QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ String userId = sysUser.getOpenId();
|
|
|
+ //日志留存
|
|
|
+ Integer opetation = 1;
|
|
|
+ //日志类型:1.目标2.关键成果3.本周任务4.未来四周任务5.状态指标
|
|
|
+ if(okrTaskInfoService.selectById(okrTaskInfo.getId()).getType()==1){
|
|
|
+ opetation = 3;
|
|
|
+ }else{
|
|
|
+ opetation = 4;
|
|
|
+ }
|
|
|
+ okrLogService.insertOkrLog(4,opetation,okrTaskInfo.getId(),DateUtils.getYear(new Date()),DateUtils.getQuarter(new Date()),JSONObject.toJSONString(okrTaskInfo),userId);
|
|
|
+ }
|
|
|
@Autowired
|
|
|
private IOkrObjectInfoDisclosureService okrObjectInfoDisclosureService;
|
|
|
@Autowired
|