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