소스 검색

Merge remote-tracking branch 'origin/master'

tags/24080901
PoffyZhang 1 년 전
부모
커밋
b7f02d46af
8개의 변경된 파일123개의 추가작업 그리고 132개의 파일을 삭제
  1. +2
    -9
      pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java
  2. +44
    -90
      pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java
  3. +2
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/organization/model/po/ReqSynthesizePO.java
  4. +58
    -14
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java
  5. +4
    -4
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/mapper/StatisticsMapper.java
  6. +8
    -8
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/mapper/StatisticsMapper.xml
  7. +1
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/service/StatisticsService.java
  8. +4
    -4
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/service/impl/StatisticsServiceImpl.java

+ 2
- 9
pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java 파일 보기

@@ -6,7 +6,6 @@ import com.ningdatech.pmapi.organization.manage.OrganizationManage;
import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO;
import com.ningdatech.pmapi.organization.model.po.ReqSynthesizePO;
import com.ningdatech.pmapi.organization.model.vo.KeyTreeVO;
import com.ningdatech.pmapi.organization.model.vo.OrganizationSynthesizeTreeVO;
import com.ningdatech.pmapi.organization.model.vo.OrganizationTreeVO;
import com.ningdatech.pmapi.organization.model.vo.ResOrganizationListVO;
import io.swagger.annotations.Api;
@@ -50,15 +49,9 @@ public class DingOrganizationController {
return organizationManage.getChildOrganizationList(parentCode);
}

@ApiOperation("综合列表筛选")
@PostMapping("/synthesize-list")
public List<OrganizationSynthesizeTreeVO> organizationSynthesizeList(@Valid @RequestBody ReqSynthesizePO request) {
return organizationManage.organizationSynthesizeList(request);
}

@ApiOperation("组织树状列表筛选")
@ApiOperation("组织树状列表筛选(前端定制化接口不可复用)")
@PostMapping("/tree-list")
public List<KeyTreeVO> treeVOList(@Valid @RequestBody ReqSynthesizePO request) {
return organizationManage.treeVOList(request);
return organizationManage.treeRubbishVOList(request);
}
}

+ 44
- 90
pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java 파일 보기

@@ -13,8 +13,6 @@ import com.ningdatech.pmapi.organization.model.entity.DingOrganization;
import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO;
import com.ningdatech.pmapi.organization.model.po.ReqSynthesizePO;
import com.ningdatech.pmapi.organization.model.vo.KeyTreeVO;
import com.ningdatech.pmapi.organization.model.vo.OrganizationSynthesizeTreeVO;
import com.ningdatech.pmapi.organization.model.vo.OrganizationSynthesizeTreeVO.OrganizationMemberInfo;
import com.ningdatech.pmapi.organization.model.vo.OrganizationTreeVO;
import com.ningdatech.pmapi.organization.model.vo.ResOrganizationListVO;
import com.ningdatech.pmapi.organization.service.IDingEmployeeInfoService;
@@ -26,7 +24,6 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
@@ -110,106 +107,63 @@ public class OrganizationManage {
}).collect(Collectors.toList());
}

public List<OrganizationSynthesizeTreeVO> organizationSynthesizeList(ReqSynthesizePO request) {
String parentCode = request.getParentCode();
Boolean needMember = request.getNeedMember();
public List<KeyTreeVO> treeRubbishVOList(ReqSynthesizePO request) {
String organizationCode = request.getOrganizationCode();

List<OrganizationTreeVO> childOrganizationList = getChildOrganizationList(parentCode);

List<OrganizationSynthesizeTreeVO> organizationSynthesizeTreeVOList = childOrganizationList.stream().map(r -> {
OrganizationSynthesizeTreeVO organizationSynthesizeTreeVO = new OrganizationSynthesizeTreeVO();
organizationSynthesizeTreeVO.setName(r.getName());
organizationSynthesizeTreeVO.setOrganizationCode(r.getOrganizationCode());
organizationSynthesizeTreeVO.setParentCode(r.getParentCode());
return organizationSynthesizeTreeVO;
}).collect(Collectors.toList());

if (needMember && organizationSynthesizeTreeVOList.size() > 0) {
List<String> organizationCodeList = organizationSynthesizeTreeVOList.stream()
.map(OrganizationSynthesizeTreeVO::getOrganizationCode).collect(Collectors.toList());
List<DingEmployeeInfo> dingEmployeeInfoList = iDingEmployeeInfoService.list(Wrappers.lambdaQuery(DingEmployeeInfo.class)
.eq(DingEmployeeInfo::getMainJob, "true")
.in(DingEmployeeInfo::getOrganizationCode, organizationCodeList));

Map<String, List<DingEmployeeInfo>> organizationCodeGroupMap = dingEmployeeInfoList.stream()
.collect(Collectors.groupingBy(DingEmployeeInfo::getOrganizationCode));

for (OrganizationSynthesizeTreeVO organizationSynthesizeTreeVO : organizationSynthesizeTreeVOList) {
String organizationCode = organizationSynthesizeTreeVO.getOrganizationCode();
List<DingEmployeeInfo> dingEmployeeInfoGroupList = organizationCodeGroupMap.get(organizationCode);
if (CollUtil.isNotEmpty(dingEmployeeInfoGroupList)) {
List<OrganizationMemberInfo> organizationMemberInfoList = dingEmployeeInfoGroupList.stream().map(r -> {
OrganizationMemberInfo organizationMemberInfo = new OrganizationMemberInfo();
organizationMemberInfo.setEmployeeCode(r.getEmployeeCode());
organizationMemberInfo.setName(r.getEmployeeName());
return organizationMemberInfo;
}).collect(Collectors.toList());
organizationSynthesizeTreeVO.setMemberList(organizationMemberInfoList);
}
}
List<DingOrganization> dingOrganizationList = new ArrayList<>();
List<String> organizationCodeList = new ArrayList<>();
if (StrUtils.isBlank(organizationCode)) {
organizationCodeList = dingOrganizationProperties.getDeptVisibleScopes();
} else {
organizationCodeList = CollectionUtil.toList(organizationCode);
}
dingOrganizationList = iDingOrganizationService.list(Wrappers.lambdaQuery(DingOrganization.class)
.in(DingOrganization::getOrganizationCode, organizationCodeList));

return organizationSynthesizeTreeVOList;
}

public List<KeyTreeVO> treeVOList(ReqSynthesizePO request) {
String parentCode = request.getParentCode();
Boolean needMember = request.getNeedMember();

List<OrganizationTreeVO> childOrganizationList = getChildOrganizationList(parentCode);

List<KeyTreeVO> orgKeyTreeVOList = childOrganizationList.stream().map(r -> {
List<KeyTreeVO> orgKeyTreeVOList = dingOrganizationList.stream().map(r -> {
KeyTreeVO keyTreeVO = new KeyTreeVO();
keyTreeVO.setTitle(r.getName());
keyTreeVO.setTitle(r.getOrganizationName());
keyTreeVO.setKey(r.getOrganizationCode());
keyTreeVO.setType("ORGANIZATION");
return keyTreeVO;
}).collect(Collectors.toList());
treeVOList(request.getNeedMember(), orgKeyTreeVOList);
return orgKeyTreeVOList;
}

if (StringUtils.isNotBlank(parentCode) && !needMember){
List<DingEmployeeInfo> dingEmployeeInfoList = iDingEmployeeInfoService.list(Wrappers.lambdaQuery(DingEmployeeInfo.class)
.eq(DingEmployeeInfo::getMainJob, "true")
.eq(DingEmployeeInfo::getOrganizationCode, parentCode));
List<KeyTreeVO> memberChildren = dingEmployeeInfoList.stream().map(r -> {
KeyTreeVO child = new KeyTreeVO();
child.setKey(r.getEmployeeCode());
child.setTitle(r.getEmployeeName());
child.setType("MEMBER");
return child;
public void treeVOList(Boolean needMember, List<KeyTreeVO> basicOrgKeyTreeVOList) {
for (KeyTreeVO basicOrgKeyTreeVO : basicOrgKeyTreeVOList) {
String parentCode = basicOrgKeyTreeVO.getKey();
List<OrganizationTreeVO> childOrganizationList = getChildOrganizationList(parentCode);

List<KeyTreeVO> orgKeyTreeVOList = childOrganizationList.stream().map(r -> {
KeyTreeVO keyTreeVO = new KeyTreeVO();
keyTreeVO.setTitle(r.getName());
keyTreeVO.setKey(r.getOrganizationCode());
keyTreeVO.setType("ORGANIZATION");
return keyTreeVO;
}).collect(Collectors.toList());

if (CollUtil.isNotEmpty(memberChildren)) {
orgKeyTreeVOList.addAll(memberChildren);
if (StringUtils.isNotBlank(parentCode) && needMember) {
List<DingEmployeeInfo> dingEmployeeInfoList = iDingEmployeeInfoService.list(Wrappers.lambdaQuery(DingEmployeeInfo.class)
.eq(DingEmployeeInfo::getMainJob, "true")
.eq(DingEmployeeInfo::getOrganizationCode, parentCode));

List<KeyTreeVO> memberChildren = dingEmployeeInfoList.stream().map(r -> {
KeyTreeVO child = new KeyTreeVO();
child.setKey(r.getEmployeeCode());
child.setTitle(r.getEmployeeName());
child.setType("MEMBER");
return child;
}).collect(Collectors.toList());

if (CollUtil.isNotEmpty(memberChildren)) {
orgKeyTreeVOList.addAll(memberChildren);
}
}
basicOrgKeyTreeVO.setChildren(orgKeyTreeVOList);
}
}

// if (needMember && orgKeyTreeVOList.size() > 0) {
// List<String> organizationCodeList = orgKeyTreeVOList.stream()
// .map(KeyTreeVO::getKey).collect(Collectors.toList());
// List<DingEmployeeInfo> dingEmployeeInfoList = iDingEmployeeInfoService.list(Wrappers.lambdaQuery(DingEmployeeInfo.class)
// .eq(DingEmployeeInfo::getMainJob, "true")
// .in(DingEmployeeInfo::getOrganizationCode, organizationCodeList));
//
// Map<String, List<DingEmployeeInfo>> organizationCodeGroupMap = dingEmployeeInfoList.stream()
// .collect(Collectors.groupingBy(DingEmployeeInfo::getOrganizationCode));
//
// for (KeyTreeVO keyTreeVO : orgKeyTreeVOList) {
// String organizationCode = keyTreeVO.getKey();
// List<DingEmployeeInfo> dingEmployeeInfoGroupList = organizationCodeGroupMap.get(organizationCode);
// if (CollUtil.isNotEmpty(dingEmployeeInfoGroupList)) {
// List<KeyTreeVO> memberChildren = dingEmployeeInfoGroupList.stream().map(r -> {
// KeyTreeVO child = new KeyTreeVO();
// child.setKey(r.getEmployeeCode());
// child.setTitle(r.getEmployeeName());
// child.setType("MEMBER");
// return child;
// }).collect(Collectors.toList());
// keyTreeVO.setChildren(memberChildren);
// }
// }
// }

return orgKeyTreeVOList;
}
}

+ 2
- 2
pmapi/src/main/java/com/ningdatech/pmapi/organization/model/po/ReqSynthesizePO.java 파일 보기

@@ -15,8 +15,8 @@ import javax.validation.constraints.NotBlank;
@ApiModel("单位列表综合筛选请求")
public class ReqSynthesizePO {

@ApiModelProperty("组织code")
private String parentCode;
@ApiModelProperty("组织code")
private String organizationCode;

@ApiModelProperty("是否需要组织成员列表")
private Boolean needMember = false;


+ 58
- 14
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java 파일 보기

@@ -158,6 +158,10 @@ public class TodoCenterManage {
public PageVo<ResToBeProcessedVO> todoProjectList(ToBeProcessedReq param) {
// 获取登录用户ID
Long userId = LoginUserUtil.getUserId();
// 获取登录用户全量信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取员工浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();

// 查出项目库项目
ProjectListReq projectListReq = new ProjectListReq();
@@ -184,6 +188,7 @@ public class TodoCenterManage {
Integer pageSize = param.getPageSize();
req.setProcessDefId(param.getProcessDefId());
req.setUserId(String.valueOf(userId));
req.setEmployeeCode(employeeCode);
List<ProcessTaskVo> todoList = processTaskService.getUserTodoList(req);

if (CollUtil.isEmpty(todoList)) {
@@ -230,6 +235,10 @@ public class TodoCenterManage {
public void exportTodoList(HttpServletResponse response, ToBeProcessedExportReq param) {
// 获取登录用户ID
Long userId = LoginUserUtil.getUserId();
// 获取用户全量用户信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取登录用户浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();

// 查出项目库项目
ProjectListReq projectListReq = new ProjectListReq();
@@ -251,6 +260,7 @@ public class TodoCenterManage {
req.setInstCodes(instCodes);
req.setProcessDefId(param.getProcessDefId());
req.setUserId(String.valueOf(userId));
req.setEmployeeCode(employeeCode);
BeanUtils.copyProperties(param,req);
userTodoList = processTaskService.getUserTodoList(req);
}
@@ -287,7 +297,10 @@ public class TodoCenterManage {
public void handler(ReqProcessHandlerDTO param) {
// 获取登录用户ID
Long userId = LoginUserUtil.getUserId();

// 获取登录用户全量信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取登录用户浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();
// 获取入参
String processInstanceId = param.getInstanceId();
Long projectId = param.getProjectId();
@@ -311,7 +324,8 @@ public class TodoCenterManage {
.singleResult();
// 获取流程发起人信息
String startUserId = instance.getStartUserId();
UserInfo startUserInfo = userInfoService.getById(Long.valueOf(startUserId));
UserInfo startUserInfo = userInfoService.getOne(Wrappers.lambdaQuery(UserInfo.class)
.eq(UserInfo::getEmployeeCode, startUserId));
// 获取流程定义名称
String processDefinitionName = instance.getProcessDefinitionName();

@@ -321,7 +335,7 @@ public class TodoCenterManage {
// 盖章并通过
case SEAL_PASS:
// 通过该任务,流程到下一审核人处
processTaskService.handleTask(param, userId);
processTaskService.handleTask(param, employeeCode);
// 获取流程通过后的流程实例
HistoricProcessInstance newInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(processInstanceId)
@@ -395,7 +409,7 @@ public class TodoCenterManage {
case REJECT:
// 驳回该任务,中止流程并使项目进入对应状态,给项目创建人、流程发起人发送浙政钉工作通知:
// 【项目名称】的【流程名称】被驳回,请及时处理。
processTaskService.handleTask(param, userId);
processTaskService.handleTask(param, employeeCode);
// 更新项目状态和流程状态
updateRejectProjectStatus(userId, declaredProject);
// 获取发送浙政钉工作通知必要信息
@@ -410,7 +424,7 @@ public class TodoCenterManage {
// 退回
case BACK:
// 退回该任务
processTaskService.handleTask(param, userId);
processTaskService.handleTask(param, employeeCode);
// 给项目创建人、流程发起人发送浙政钉工作通知:【项目名称】的【流程名称】被退回,请及时处理。
// 获取发送浙政钉工作通知必要信息
WorkNoticeInfo backWorkNoticeInfo = getSendWorkNoticeInfo(startUserInfo);
@@ -424,9 +438,9 @@ public class TodoCenterManage {
// 撤回(流程发起人和当前流程审核人的前一个审核人操作)
case WITHDRAW:
// 登录用户是流程发起人,且是流程发起人撤回
if (userId.equals(Long.valueOf(startUserId))
if (employeeCode.equals(startUserId)
&& ProcessConstant.Field.ROOT.equals(param.getTaskId())) {
processTaskService.handleTask(param, userId);
processTaskService.handleTask(param, employeeCode);
// 若是流程发起人点击撤回,项目回到上一个状态,需调用状态机更新项目状态,流程状态更新为审核通过
switch (Objects.requireNonNull(ProjectStatusEnum.getValue(projectStatus))) {
// 当前项目状态是单位内部审核中
@@ -473,7 +487,7 @@ public class TodoCenterManage {
} else if (!userFlag) {
throw new BizException("当前登录用户无法进行撤回操作!");
} else {
processTaskService.handleTask(param, userId);
processTaskService.handleTask(param, employeeCode);
}
}
break;
@@ -750,6 +764,10 @@ public class TodoCenterManage {

// 获取登录用户ID
Long userId = LoginUserUtil.getUserId();
// 获取登录用户全量信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取登录用户浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();

// 查出项目库项目
ProjectListReq projectListReq = new ProjectListReq();
@@ -773,6 +791,7 @@ public class TodoCenterManage {
Integer pageSize = param.getPageSize();
req.setProcessDefId(param.getProcessDefId());
req.setUserId(String.valueOf(userId));
req.setEmployeeCode(employeeCode);
req.setInstCodes(instCodes);
List<ProcessTaskVo> iDoList = processTaskService.getUserIdoList(req);
if (CollUtil.isEmpty(iDoList)) {
@@ -811,6 +830,10 @@ public class TodoCenterManage {
public void idoExport(HttpServletResponse response, ToBeProcessedExportReq param) {
// 获取登录用户ID
Long userId = LoginUserUtil.getUserId();
// 获取登录用户全量信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取登录用户浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();

//因为要解耦 不能把项目和工作流一起查
// 查出项目库项目
@@ -834,6 +857,7 @@ public class TodoCenterManage {
TodoCenterListReqDTO req = new TodoCenterListReqDTO();
req.setProcessDefId(param.getProcessDefId());
req.setUserId(String.valueOf(userId));
req.setEmployeeCode(employeeCode);
req.setInstCodes(instCodes);
userIdoList = processTaskService.getUserIdoList(req);
}
@@ -873,9 +897,12 @@ public class TodoCenterManage {
* @since 2023/02/06
*/
public PageVo<ResToBeProcessedVO> mySubmittedList(ToBeProcessedReq param) {

// 获取登录用户ID
Long userId = LoginUserUtil.getUserId();
// 获取登录用户全量信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取登录用户浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();

// 查出项目库项目
ProjectListReq projectListReq = new ProjectListReq();
@@ -901,6 +928,7 @@ public class TodoCenterManage {
Integer pageSize = param.getPageSize();
req.setProcessDefId(param.getProcessDefId());
req.setUserId(String.valueOf(userId));
req.setEmployeeCode(employeeCode);
req.setInstCodes(instCodes);
List<ProcessInstanceVo> submittedList = processInstanceService.getUserSubmittedList(req);

@@ -913,7 +941,6 @@ public class TodoCenterManage {
.limit(pageSize)
.collect(Collectors.toList());


List<ResToBeProcessedVO> resVos = userSubmittedList.stream().map(d -> {
ResToBeProcessedVO res = new ResToBeProcessedVO();
Project project = projectInfoMap.get(d.getInstanceId());
@@ -941,6 +968,10 @@ public class TodoCenterManage {

// 获取登录用户ID
long userId = LoginUserUtil.getUserId();
// 获取登录用户全量信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取登录用户浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();

// 查出项目库项目
ProjectListReq projectListReq = new ProjectListReq();
@@ -963,6 +994,7 @@ public class TodoCenterManage {
TodoCenterListReqDTO req = new TodoCenterListReqDTO();
req.setProcessDefId(param.getProcessDefId());
req.setUserId(String.valueOf(userId));
req.setEmployeeCode(employeeCode);
req.setInstCodes(instCodes);
userSubmittedList = processInstanceService.getUserSubmittedList(req);
}
@@ -1005,6 +1037,10 @@ public class TodoCenterManage {

// 获取登录用户ID
Long userId = LoginUserUtil.getUserId();
// 获取登录用户全量信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取登录用户浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();

// 查出项目库项目
ProjectListReq projectListReq = new ProjectListReq();
@@ -1030,7 +1066,8 @@ public class TodoCenterManage {
Integer pageSize = param.getPageSize();
req.setProcessDefId(param.getProcessDefId());
req.setUserId(String.valueOf(userId));
// req.setInstCodes(instCodes);
req.setEmployeeCode(employeeCode);
req.setInstCodes(instCodes);
BeanUtils.copyProperties(param,req);
List<ProcessInstanceVo> ccMeList = processInstanceService.getCcMeList(req);

@@ -1071,6 +1108,10 @@ public class TodoCenterManage {

// 获取登录用户ID
Long userId = LoginUserUtil.getUserId();
// 获取登录用户全量信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取登录用户浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();

// 查出项目库项目
ProjectListReq projectListReq = new ProjectListReq();
@@ -1093,13 +1134,12 @@ public class TodoCenterManage {
TodoCenterListReqDTO req = new TodoCenterListReqDTO();
req.setProcessDefId(param.getProcessDefId());
req.setUserId(String.valueOf(userId));
req.setEmployeeCode(employeeCode);
req.setInstCodes(instCodes);
BeanUtils.copyProperties(param,req);
ccMeList = processInstanceService.getCcMeList(req);
}



ExcelExportWriter excelExportWriter = new ExcelExportWriter();

String fileName = null;
@@ -1343,9 +1383,13 @@ public class TodoCenterManage {
//获取当前登录人的 待办中心统计数据
public TodoCenterStatisticsVO todoCenterStatistics(){
Long userId = LoginUserUtil.getUserId();
// 获取登录用户全量信息
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId);
// 获取登录用户浙政钉code
String employeeCode = userFullInfo.getEmployeeCode();

//为了查询效率 还是自己去写统计接口
TodoCenterStatisticsPO statistics = statisticsService.getStatistics(userId);
TodoCenterStatisticsPO statistics = statisticsService.getStatistics(employeeCode);
TodoCenterStatisticsVO statisticsVO = BeanUtil.copyProperties(statistics,TodoCenterStatisticsVO.class);

return statisticsVO;


+ 4
- 4
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/mapper/StatisticsMapper.java 파일 보기

@@ -7,11 +7,11 @@ import org.apache.ibatis.annotations.Param;
public interface StatisticsMapper extends BaseMapper {


TodoCenterStatisticsPO getStatistics(@Param("userId") String userId);
TodoCenterStatisticsPO getStatistics(@Param("employeeCode") String employeeCode);

TodoCenterStatisticsPO getTodoOrIdo(@Param("userId") String userId);
TodoCenterStatisticsPO getTodoOrIdo(@Param("employeeCode") String employeeCode);

TodoCenterStatisticsPO mysubmitNum(@Param("userId") String userId);
TodoCenterStatisticsPO mysubmitNum(@Param("employeeCode") String employeeCode);

TodoCenterStatisticsPO ccNums(@Param("userId") String userId);
TodoCenterStatisticsPO ccNums(@Param("employeeCode") String employeeCode);
}

+ 8
- 8
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/mapper/StatisticsMapper.xml 파일 보기

@@ -10,10 +10,10 @@
sum(CASE WHEN tol.ccmeNum IS NOT NULL AND tol.ccmeNum > 0 THEN 1 ELSE 0 end) ccmeNum
FROM (
SELECT
sum(CASE WHEN ht.assignee_ = #{userId} AND ht.end_time_ is NULL THEN 1 end) todoNum,
sum(CASE WHEN ht.assignee_ = #{userId} AND ht.end_time_ IS not NULL THEN 1 end) idoNum,
sum(CASE WHEN hp.start_user_id_ = #{userId} THEN 1 end) mysubmitNum,
sum(CASE WHEN cc.user_id = #{userId} THEN 1 end) ccmeNum
sum(CASE WHEN ht.assignee_ = #{employeeCode} AND ht.end_time_ is NULL THEN 1 end) todoNum,
sum(CASE WHEN ht.assignee_ = #{employeeCode} AND ht.end_time_ IS not NULL THEN 1 end) idoNum,
sum(CASE WHEN hp.start_user_id_ = #{employeeCode} THEN 1 end) mysubmitNum,
sum(CASE WHEN cc.user_id = #{employeeCode} THEN 1 end) ccmeNum
FROM
act_hi_procinst hp
LEFT JOIN
@@ -27,8 +27,8 @@
<select id="getTodoOrIdo" parameterType="java.lang.String"
resultType="com.ningdatech.pmapi.todocenter.model.po.TodoCenterStatisticsPO">
SELECT
sum(CASE WHEN ht.assignee_ = #{userId} AND ht.end_time_ is NULL THEN 1 end) todoNum,
sum(CASE WHEN ht.assignee_ = #{userId} AND ht.end_time_ IS not NULL THEN 1 end) idoNum
sum(CASE WHEN ht.assignee_ = #{employeeCode} AND ht.end_time_ is NULL THEN 1 end) todoNum,
sum(CASE WHEN ht.assignee_ = #{employeeCode} AND ht.end_time_ IS not NULL THEN 1 end) idoNum
FROM
act_hi_taskinst ht
</select>
@@ -44,7 +44,7 @@
act_hi_procinst hp
LEFT JOIN
act_hi_taskinst ht ON hp.proc_inst_id_ = ht.proc_inst_id_
where start_user_id_ = #{userId}
where start_user_id_ = #{employeeCode}
GROUP BY hp.id_) tol
</select>

@@ -55,6 +55,6 @@
count(0) ccmeNum
FROM
wflow_cc_tasks cc
where cc.user_id = #{userId}
where cc.employee_code = #{employeeCode}
</select>
</mapper>

+ 1
- 1
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/service/StatisticsService.java 파일 보기

@@ -11,5 +11,5 @@ import com.ningdatech.pmapi.todocenter.model.po.TodoCenterStatisticsPO;
public interface StatisticsService {

//根据用户id 去查询 一些统计数据
TodoCenterStatisticsPO getStatistics(Long userId);
TodoCenterStatisticsPO getStatistics(String employeeCode);
}

+ 4
- 4
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/service/impl/StatisticsServiceImpl.java 파일 보기

@@ -21,21 +21,21 @@ public class StatisticsServiceImpl implements StatisticsService {
private final StatisticsMapper mapper;

@Override
public TodoCenterStatisticsPO getStatistics(Long userId) {
public TodoCenterStatisticsPO getStatistics(String employeeCode) {
TodoCenterStatisticsPO res = new TodoCenterStatisticsPO();

TodoCenterStatisticsPO todoOrIdo = mapper.getTodoOrIdo(String.valueOf(userId));
TodoCenterStatisticsPO todoOrIdo = mapper.getTodoOrIdo(employeeCode);
if(Objects.nonNull(todoOrIdo)){
res.setTodoNum(todoOrIdo.getTodoNum());
res.setIdoNum(todoOrIdo.getIdoNum());
}

TodoCenterStatisticsPO submit = mapper.mysubmitNum(String.valueOf(userId));
TodoCenterStatisticsPO submit = mapper.mysubmitNum(employeeCode);
if(Objects.nonNull(submit)){
res.setMysubmitNum(submit.getMysubmitNum());
}

TodoCenterStatisticsPO ccMe = mapper.ccNums(String.valueOf(userId));
TodoCenterStatisticsPO ccMe = mapper.ccNums(employeeCode);
if(Objects.nonNull(ccMe)){
res.setCcmeNum(ccMe.getCcmeNum());
}


불러오는 중...
취소
저장