Compare commits
2 Commits
master
...
dev_workchange
| Author | SHA1 | Date |
|---|---|---|
|
|
6286e6a124 | |
|
|
2b0b9235fc |
|
|
@ -1,8 +1,8 @@
|
|||
spring:
|
||||
config:
|
||||
import:
|
||||
# - classpath:nacos.yml
|
||||
- classpath:nacos.yml
|
||||
- classpath:nacos-prod.yml
|
||||
# - classpath:sdk.yml
|
||||
- classpath:sdk-prod.yml
|
||||
- classpath:nacos-prod.yml
|
||||
- classpath:swagger.yml
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<!doctype html><html lang="zh"><head data-built-info="@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/7/16 14:18:47) App/domain"><meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"/><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><title>--</title><script>(function () {
|
||||
<!doctype html><html lang="zh"><head data-built-info="@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/6/23 17:36:49) App/domain"><meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"/><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><title>--</title><script>(function () {
|
||||
const APP_ENV = {
|
||||
antd: {
|
||||
'ant-prefix': 'micro-temp',
|
||||
|
|
@ -20,4 +20,4 @@
|
|||
redirect: '',
|
||||
FRAMEWORK: APP_ENV.antd
|
||||
};
|
||||
})();</script><script defer="defer" src="/domain/static/js/888.f84533eefa5942ed12fc.js"></script><script defer="defer" src="/domain/static/js/410.ac23b512c1374b5b0539.js"></script><script defer="defer" src="/domain/static/js/main.044e66105e54ad25da94.js"></script><link href="/domain/static/css/main.c74fbb90829596498e3a.css" rel="stylesheet"></head><body><noscript>此网页需要开启JavaScript功能。</noscript><div id="root" style="width: 100%; height: 100%; position: relative;overflow-y: auto"></div><script type="text/javascript">/* @cqsjjb/script 输出当前应用基本信息、构建时间 */console.log("%c@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/7/16 14:18:47) App/domain Version/main Java/<branch-name>", "color: #1890ff; border-radius: 2px; padding: 0 4px; border: 1px solid #1890ff; background: #f9fcff")</script></body></html>
|
||||
})();</script><script defer="defer" src="/domain/static/js/888.f84533eefa5942ed12fc.js"></script><script defer="defer" src="/domain/static/js/410.ac23b512c1374b5b0539.js"></script><script defer="defer" src="/domain/static/js/main.044e66105e54ad25da94.js"></script><link href="/domain/static/css/main.c74fbb90829596498e3a.css" rel="stylesheet"></head><body><noscript>此网页需要开启JavaScript功能。</noscript><div id="root" style="width: 100%; height: 100%; position: relative;overflow-y: auto"></div><script type="text/javascript">/* @cqsjjb/script 输出当前应用基本信息、构建时间 */console.log("%c@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/6/23 17:36:49) App/domain Version/main Java/<branch-name>", "color: #1890ff; border-radius: 2px; padding: 0 4px; border: 1px solid #1890ff; background: #f9fcff")</script></body></html>
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package com.zcloud.domain.facade;
|
||||
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.zcloud.domain.command.DomainWorkChangeExe;
|
||||
import com.zcloud.domain.command.query.DomainWorkQueryExe;
|
||||
import com.zcloud.gbscommon.zclouddomain.facade.ZcloudDomainFacade;
|
||||
import com.zcloud.gbscommon.zclouddomain.request.DomainQry;
|
||||
import com.zcloud.gbscommon.zclouddomain.request.DomainWorkChangeCmd;
|
||||
import com.zcloud.gbscommon.zclouddomain.response.DomainListByUserCO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@DubboService
|
||||
public class ZcloudDomainFacadeImpl implements ZcloudDomainFacade {
|
||||
@Resource
|
||||
private DomainWorkQueryExe domainWorkQueryExe;
|
||||
@Resource
|
||||
private DomainWorkChangeExe domainWorkChangeExe;
|
||||
|
||||
@Override
|
||||
public MultiResponse<DomainListByUserCO> listManagerByUserId(DomainQry domainQry) {
|
||||
return MultiResponse.of(domainWorkQueryExe.execute(domainQry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse updateRiskWorkChange(DomainWorkChangeCmd domainWorkChangeCmd) {
|
||||
domainWorkChangeExe.execute(domainWorkChangeCmd);
|
||||
return SingleResponse.buildSuccess();
|
||||
}
|
||||
}
|
||||
|
|
@ -5,13 +5,14 @@ import com.alibaba.cola.dto.MultiResponse;
|
|||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.Response;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||
import com.zcloud.domain.api.ProjectTaskServiceI;
|
||||
import com.zcloud.domain.dto.ProjectTaskAddCmd;
|
||||
import com.zcloud.domain.dto.ProjectTaskPageQry;
|
||||
import com.zcloud.domain.dto.ProjectTaskUpdateCmd;
|
||||
import com.zcloud.domain.dto.clientobject.ProjectTaskCO;
|
||||
import com.zcloud.domain.dto.clientobject.ProjectTaskDetailsCO;
|
||||
import com.zcloud.domain.dto.clientobject.ProjectTaskScoreCountCO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -19,6 +20,8 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
|||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* web-adapter
|
||||
*
|
||||
|
|
@ -59,8 +62,6 @@ public class ProjectTaskController {
|
|||
return SingleResponse.of(projectTaskService.getInfoById(id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ApiOperation("删除")
|
||||
@GetMapping("/remove/{id}")
|
||||
public Response remove(@PathVariable("id") Long id) {
|
||||
|
|
@ -81,10 +82,5 @@ public class ProjectTaskController {
|
|||
projectTaskService.edit(projectTaskUpdateCmd);
|
||||
return SingleResponse.buildSuccess();
|
||||
}
|
||||
@ApiOperation("可视化大屏-课题评分领域统计")
|
||||
@GetMapping("/scoreCount")
|
||||
public MultiResponse<ProjectTaskScoreCountCO> countScoreByDomain() {
|
||||
return MultiResponse.of(projectTaskService.countScoreByDomain());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,243 @@
|
|||
package com.zcloud.domain.command;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.alibaba.cola.exception.BizException;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jjb.saas.message.client.message.facede.MessageFacade;
|
||||
import com.jjb.saas.message.client.message.request.MessageSendCmd;
|
||||
import com.jjb.saas.message.client.message.request.MessageTargetCmd;
|
||||
import com.zcloud.domain.domain.config.MessageConfig;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainDepartmentDO;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainGroupDO;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainGroupUserDO;
|
||||
import com.zcloud.domain.persistence.repository.DomainDepartmentRepository;
|
||||
import com.zcloud.domain.persistence.repository.DomainDepartmentUserRepository;
|
||||
import com.zcloud.domain.persistence.repository.DomainGroupRepository;
|
||||
import com.zcloud.domain.persistence.repository.DomainGroupUserRepository;
|
||||
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
|
||||
import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent;
|
||||
import com.zcloud.gbscommon.utils.UuidUtil;
|
||||
import com.zcloud.gbscommon.zclouddomain.request.DomainWorkChangeCmd;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 领域工作交接执行器
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class DomainWorkChangeExe {
|
||||
private final DomainDepartmentRepository domainDepartmentRepository;
|
||||
private final DomainDepartmentUserRepository domainDepartmentUserRepository;
|
||||
private final DomainGroupRepository domainGroupRepository;
|
||||
private final DomainGroupUserRepository domainGroupUserRepository;
|
||||
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
||||
private final MessageConfig messageConfig;
|
||||
@DubboReference
|
||||
private MessageFacade messageFacade;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void execute(DomainWorkChangeCmd domainWorkChangeCmd) {
|
||||
checkParam(domainWorkChangeCmd);
|
||||
if (changeDomainDepartment(domainWorkChangeCmd)) {
|
||||
return;
|
||||
}
|
||||
if (changeDomainDepartmentUser(domainWorkChangeCmd)) {
|
||||
return;
|
||||
}
|
||||
if (changeDomainGroup(domainWorkChangeCmd)) {
|
||||
return;
|
||||
}
|
||||
if (changeDomainGroupUser(domainWorkChangeCmd)) {
|
||||
return;
|
||||
}
|
||||
throw new BizException("未找到对应的领域交接工作");
|
||||
}
|
||||
|
||||
private void checkParam(DomainWorkChangeCmd domainWorkChangeCmd) {
|
||||
if (domainWorkChangeCmd == null || StringUtils.isBlank(domainWorkChangeCmd.getWorkId())) {
|
||||
throw new BizException("工作标识不能为空");
|
||||
}
|
||||
if (domainWorkChangeCmd.getOldUserId() == null) {
|
||||
throw new BizException("原交接人员不能为空");
|
||||
}
|
||||
if (domainWorkChangeCmd.getUserId() == null) {
|
||||
throw new BizException("新交接人员不能为空");
|
||||
}
|
||||
}
|
||||
|
||||
private boolean changeDomainDepartment(DomainWorkChangeCmd domainWorkChangeCmd) {
|
||||
DomainDepartmentDO domainDepartmentDO = domainDepartmentRepository.getByWorkId(domainWorkChangeCmd.getWorkId());
|
||||
if (domainDepartmentDO == null) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(domainDepartmentDO.getMasterUserId(), domainWorkChangeCmd.getOldUserId())) {
|
||||
log.warn("领域负责人交接跳过,当前负责人已变更,workId:{}, oldUserId:{}, dbUserId:{}",
|
||||
domainWorkChangeCmd.getWorkId(), domainWorkChangeCmd.getOldUserId(), domainDepartmentDO.getMasterUserId());
|
||||
return true;
|
||||
}
|
||||
domainDepartmentDO.setMasterUserId(domainWorkChangeCmd.getUserId());
|
||||
if (domainWorkChangeCmd.getDeptId() != null) {
|
||||
domainDepartmentDO.setMasterDepartmentId(domainWorkChangeCmd.getDeptId());
|
||||
}
|
||||
domainDepartmentRepository.updateById(domainDepartmentDO);
|
||||
sendWorkChangeMessage(domainWorkChangeCmd, domainDepartmentDO.getId(), "领域负责人", buildDomainDepartmentContent(domainDepartmentDO));
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean changeDomainDepartmentUser(DomainWorkChangeCmd domainWorkChangeCmd) {
|
||||
DomainDepartmentUserDO domainDepartmentUserDO = domainDepartmentUserRepository.getByWorkId(domainWorkChangeCmd.getWorkId());
|
||||
if (domainDepartmentUserDO == null) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(domainDepartmentUserDO.getUserId(), domainWorkChangeCmd.getOldUserId())) {
|
||||
log.warn("领域审核人员交接跳过,当前审核人员已变更,workId:{}, oldUserId:{}, dbUserId:{}",
|
||||
domainWorkChangeCmd.getWorkId(), domainWorkChangeCmd.getOldUserId(), domainDepartmentUserDO.getUserId());
|
||||
return true;
|
||||
}
|
||||
Long duplicateCount = domainDepartmentUserRepository.countByDomainDepartmentIdAndUserId(
|
||||
domainDepartmentUserDO.getDomainDepartmentId(), domainWorkChangeCmd.getUserId(), domainDepartmentUserDO.getId());
|
||||
if (duplicateCount != null && duplicateCount > 0) {
|
||||
throw new BizException("新交接人员已存在于该领域审核人员中");
|
||||
}
|
||||
domainDepartmentUserDO.setUserId(domainWorkChangeCmd.getUserId());
|
||||
if (domainWorkChangeCmd.getDeptId() != null) {
|
||||
domainDepartmentUserDO.setDepartmentId(domainWorkChangeCmd.getDeptId());
|
||||
}
|
||||
domainDepartmentUserRepository.updateById(domainDepartmentUserDO);
|
||||
DomainDepartmentDO domainDepartmentDO = domainDepartmentRepository.getInfoByUUID(domainDepartmentUserDO.getDomainDepartmentId());
|
||||
sendWorkChangeMessage(domainWorkChangeCmd, domainDepartmentUserDO.getId(), "领域审核人员", buildDomainDepartmentContent(domainDepartmentDO));
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean changeDomainGroup(DomainWorkChangeCmd domainWorkChangeCmd) {
|
||||
DomainGroupDO domainGroupDO = domainGroupRepository.getByWorkId(domainWorkChangeCmd.getWorkId());
|
||||
if (domainGroupDO == null) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(domainGroupDO.getTeamUserId(), domainWorkChangeCmd.getOldUserId())) {
|
||||
log.warn("领域组组长交接跳过,当前组长已变更,workId:{}, oldUserId:{}, dbUserId:{}",
|
||||
domainWorkChangeCmd.getWorkId(), domainWorkChangeCmd.getOldUserId(), domainGroupDO.getTeamUserId());
|
||||
return true;
|
||||
}
|
||||
domainGroupDO.setTeamUserId(domainWorkChangeCmd.getUserId());
|
||||
if (domainWorkChangeCmd.getDeptId() != null) {
|
||||
domainGroupDO.setTeamDepartmentId(domainWorkChangeCmd.getDeptId());
|
||||
}
|
||||
if (domainWorkChangeCmd.getCorpId() != null) {
|
||||
domainGroupDO.setCorpinfoId(domainWorkChangeCmd.getCorpId());
|
||||
}
|
||||
domainGroupRepository.updateById(domainGroupDO);
|
||||
sendWorkChangeMessage(domainWorkChangeCmd, domainGroupDO.getId(), "领域组组长", buildDomainGroupContent(domainGroupDO));
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean changeDomainGroupUser(DomainWorkChangeCmd domainWorkChangeCmd) {
|
||||
DomainGroupUserDO domainGroupUserDO = domainGroupUserRepository.getByWorkId(domainWorkChangeCmd.getWorkId());
|
||||
if (domainGroupUserDO == null) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(domainGroupUserDO.getUserId(), domainWorkChangeCmd.getOldUserId())) {
|
||||
log.warn("领域组成员交接跳过,当前成员已变更,workId:{}, oldUserId:{}, dbUserId:{}",
|
||||
domainWorkChangeCmd.getWorkId(), domainWorkChangeCmd.getOldUserId(), domainGroupUserDO.getUserId());
|
||||
return true;
|
||||
}
|
||||
Long duplicateCount = domainGroupUserRepository.countByDomainGroupIdAndUserId(
|
||||
domainGroupUserDO.getDomainGroupId(), domainWorkChangeCmd.getUserId(), domainGroupUserDO.getId());
|
||||
if (duplicateCount != null && duplicateCount > 0) {
|
||||
throw new BizException("新交接人员已存在于该领域组成员中");
|
||||
}
|
||||
domainGroupUserDO.setUserId(domainWorkChangeCmd.getUserId());
|
||||
if (domainWorkChangeCmd.getDeptId() != null) {
|
||||
domainGroupUserDO.setDepartmentId(domainWorkChangeCmd.getDeptId());
|
||||
}
|
||||
domainGroupUserRepository.updateById(domainGroupUserDO);
|
||||
DomainGroupDO domainGroupDO = domainGroupRepository.getInfoByGroupId(domainGroupUserDO.getDomainGroupId());
|
||||
sendWorkChangeMessage(domainWorkChangeCmd, domainGroupUserDO.getId(), "领域组成员", buildDomainGroupContent(domainGroupDO));
|
||||
return true;
|
||||
}
|
||||
|
||||
private void sendWorkChangeMessage(DomainWorkChangeCmd domainWorkChangeCmd, Long foreignKey, String workProject, String workContent) {
|
||||
try {
|
||||
MessageSendCmd messageSendCmd = new MessageSendCmd();
|
||||
messageSendCmd.setBusinessId(UuidUtil.get32UUID());
|
||||
MessageTargetCmd messageTargetCmd = new MessageTargetCmd();
|
||||
messageTargetCmd.setUserId(domainWorkChangeCmd.getUserId());
|
||||
messageSendCmd.setTargetCmd(messageTargetCmd);
|
||||
messageSendCmd.setSourceCode(resolveSourceCode(workProject));
|
||||
messageSendCmd.setNeedTokenEnum(false);
|
||||
messageSendCmd.setParams(buildSendParams(domainWorkChangeCmd, workProject, workContent));
|
||||
log.info("领域工作交接发送消息参数:{}", JSONUtil.toJsonStr(messageSendCmd));
|
||||
SingleResponse<Boolean> response = messageFacade.send(messageSendCmd);
|
||||
log.info("领域工作交接发送消息结果:{}", JSONUtil.toJsonStr(response));
|
||||
|
||||
/* TodoListAddEvent event = new TodoListAddEvent();
|
||||
event.setTitle("您有一条【领域工作】待处理");
|
||||
event.setContent(workProject + "交接待处理");
|
||||
event.setForeignKey(foreignKey);
|
||||
event.setForeignSubsidiaryKey(foreignKey);
|
||||
event.setReceiveUser(domainWorkChangeCmd.getUserId());
|
||||
event.setPcFlag(1);
|
||||
event.setAppFlag(0);
|
||||
event.setOtherParams(new JSONObject());
|
||||
todoListEventPusherUtil.sendMessageAddEvent(event);*/
|
||||
} catch (Exception e) {
|
||||
log.error("领域工作交接发送消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
private String resolveSourceCode(String workProject) {
|
||||
if ("领域负责人".equals(workProject) || "领域审核人员".equals(workProject)) {
|
||||
return StringUtils.defaultIfEmpty(messageConfig.getDomainWorkChange(), messageConfig.getScoreTaskAssign());
|
||||
}
|
||||
return StringUtils.defaultIfEmpty(messageConfig.getDomainWorkChange(), messageConfig.getTaskAssign());
|
||||
}
|
||||
|
||||
private Map<String, Object> buildSendParams(DomainWorkChangeCmd domainWorkChangeCmd, String workProject, String workContent) {
|
||||
Map<String, Object> sendParams = new HashMap<>();
|
||||
sendParams.put("oldUserId", domainWorkChangeCmd.getOldUserId());
|
||||
sendParams.put("newUserId", domainWorkChangeCmd.getUserId());
|
||||
sendParams.put("newUserName", domainWorkChangeCmd.getUserName());
|
||||
sendParams.put("workProject", workProject);
|
||||
sendParams.put("workContent", workContent);
|
||||
sendParams.put("DomainDepartment", workContent);
|
||||
return sendParams;
|
||||
}
|
||||
|
||||
private String buildDomainDepartmentContent(DomainDepartmentDO domainDepartmentDO) {
|
||||
if (domainDepartmentDO == null) {
|
||||
return "领域配置";
|
||||
}
|
||||
if (StringUtils.isNotEmpty(domainDepartmentDO.getDomainTypeName())) {
|
||||
return domainDepartmentDO.getDomainTypeName();
|
||||
}
|
||||
if (StringUtils.isNotEmpty(domainDepartmentDO.getMasterDepartmentName())) {
|
||||
return domainDepartmentDO.getMasterDepartmentName();
|
||||
}
|
||||
return StringUtils.defaultIfEmpty(domainDepartmentDO.getDomainType(), "领域配置");
|
||||
}
|
||||
|
||||
private String buildDomainGroupContent(DomainGroupDO domainGroupDO) {
|
||||
if (domainGroupDO == null) {
|
||||
return "领域组配置";
|
||||
}
|
||||
if (StringUtils.isNotEmpty(domainGroupDO.getDomainGroupName())) {
|
||||
return domainGroupDO.getDomainGroupName();
|
||||
}
|
||||
if (StringUtils.isNotEmpty(domainGroupDO.getDomainTypeName())) {
|
||||
return domainGroupDO.getDomainTypeName();
|
||||
}
|
||||
return StringUtils.defaultIfEmpty(domainGroupDO.getDomainType(), "领域组配置");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
package com.zcloud.domain.command.query;
|
||||
|
||||
import com.zcloud.domain.persistence.dataobject.DomainDepartmentDO;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainGroupDO;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainGroupUserDO;
|
||||
import com.zcloud.domain.persistence.repository.DomainDepartmentRepository;
|
||||
import com.zcloud.domain.persistence.repository.DomainDepartmentUserRepository;
|
||||
import com.zcloud.domain.persistence.repository.DomainGroupRepository;
|
||||
import com.zcloud.domain.persistence.repository.DomainGroupUserRepository;
|
||||
import com.zcloud.gbscommon.zclouddomain.request.DomainQry;
|
||||
import com.zcloud.gbscommon.zclouddomain.response.DomainListByUserCO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 领域待交接工作查询执行器
|
||||
*/
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class DomainWorkQueryExe {
|
||||
private final DomainDepartmentRepository domainDepartmentRepository;
|
||||
private final DomainDepartmentUserRepository domainDepartmentUserRepository;
|
||||
private final DomainGroupRepository domainGroupRepository;
|
||||
private final DomainGroupUserRepository domainGroupUserRepository;
|
||||
|
||||
public List<DomainListByUserCO> execute(DomainQry domainQry) {
|
||||
List<DomainListByUserCO> result = new ArrayList<>();
|
||||
if (domainQry == null || domainQry.getUserId() == null || domainQry.getCorpinfoId() == null) {
|
||||
return result;
|
||||
}
|
||||
result.addAll(listDomainDepartmentWork(domainQry));
|
||||
result.addAll(listDomainDepartmentUserWork(domainQry));
|
||||
result.addAll(listDomainGroupWork(domainQry));
|
||||
result.addAll(listDomainGroupUserWork(domainQry));
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<DomainListByUserCO> listDomainDepartmentWork(DomainQry domainQry) {
|
||||
List<DomainDepartmentDO> domainDepartmentList = domainDepartmentRepository.listWorkByUserId(domainQry.getUserId(), domainQry.getCorpinfoId());
|
||||
List<DomainListByUserCO> result = new ArrayList<>();
|
||||
for (DomainDepartmentDO domainDepartmentDO : domainDepartmentList) {
|
||||
DomainDepartmentDO info = domainDepartmentRepository.getInfoByUUID(domainDepartmentDO.getDomainDepartmentId());
|
||||
DomainListByUserCO data = new DomainListByUserCO();
|
||||
data.setWorkId(domainDepartmentDO.getDomainDepartmentId());
|
||||
data.setWorkProject("领域负责人");
|
||||
data.setWorkContent(buildDomainDepartmentContent(info == null ? domainDepartmentDO : info));
|
||||
result.add(data);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<DomainListByUserCO> listDomainDepartmentUserWork(DomainQry domainQry) {
|
||||
List<DomainDepartmentUserDO> domainDepartmentUserList = domainDepartmentUserRepository.listWorkByUserId(domainQry.getUserId(), domainQry.getCorpinfoId());
|
||||
List<DomainListByUserCO> result = new ArrayList<>();
|
||||
for (DomainDepartmentUserDO domainDepartmentUserDO : domainDepartmentUserList) {
|
||||
DomainDepartmentDO domainDepartmentDO = domainDepartmentRepository.getInfoByUUID(domainDepartmentUserDO.getDomainDepartmentId());
|
||||
DomainListByUserCO data = new DomainListByUserCO();
|
||||
data.setWorkId(domainDepartmentUserDO.getDomainDepartmentUserId());
|
||||
data.setWorkProject("领域审核人员");
|
||||
data.setWorkContent(buildDomainDepartmentContent(domainDepartmentDO));
|
||||
result.add(data);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<DomainListByUserCO> listDomainGroupWork(DomainQry domainQry) {
|
||||
List<DomainGroupDO> domainGroupList = domainGroupRepository.listWorkByUserId(domainQry.getUserId(), domainQry.getCorpinfoId());
|
||||
List<DomainListByUserCO> result = new ArrayList<>();
|
||||
for (DomainGroupDO domainGroupDO : domainGroupList) {
|
||||
DomainGroupDO info = domainGroupRepository.getInfoByGroupId(domainGroupDO.getDomainGroupId());
|
||||
DomainListByUserCO data = new DomainListByUserCO();
|
||||
data.setWorkId(domainGroupDO.getDomainGroupId());
|
||||
data.setWorkProject("领域组组长");
|
||||
data.setWorkContent(buildDomainGroupContent(info == null ? domainGroupDO : info));
|
||||
result.add(data);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<DomainListByUserCO> listDomainGroupUserWork(DomainQry domainQry) {
|
||||
List<DomainGroupUserDO> domainGroupUserList = domainGroupUserRepository.listWorkByUserId(domainQry.getUserId(), domainQry.getCorpinfoId());
|
||||
List<DomainListByUserCO> result = new ArrayList<>();
|
||||
for (DomainGroupUserDO domainGroupUserDO : domainGroupUserList) {
|
||||
DomainGroupDO domainGroupDO = domainGroupRepository.getInfoByGroupId(domainGroupUserDO.getDomainGroupId());
|
||||
DomainListByUserCO data = new DomainListByUserCO();
|
||||
data.setWorkId(domainGroupUserDO.getDomainGroupUserId());
|
||||
data.setWorkProject("领域组成员");
|
||||
data.setWorkContent(buildDomainGroupContent(domainGroupDO));
|
||||
result.add(data);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private String buildDomainDepartmentContent(DomainDepartmentDO domainDepartmentDO) {
|
||||
if (domainDepartmentDO == null) {
|
||||
return "领域配置";
|
||||
}
|
||||
if (StringUtils.isNotEmpty(domainDepartmentDO.getDomainTypeName())) {
|
||||
return domainDepartmentDO.getDomainTypeName();
|
||||
}
|
||||
if (StringUtils.isNotEmpty(domainDepartmentDO.getMasterDepartmentName())) {
|
||||
return domainDepartmentDO.getMasterDepartmentName();
|
||||
}
|
||||
return StringUtils.defaultIfEmpty(domainDepartmentDO.getDomainType(), "领域配置");
|
||||
}
|
||||
|
||||
private String buildDomainGroupContent(DomainGroupDO domainGroupDO) {
|
||||
if (domainGroupDO == null) {
|
||||
return "领域组配置";
|
||||
}
|
||||
if (StringUtils.isNotEmpty(domainGroupDO.getDomainGroupName())) {
|
||||
return domainGroupDO.getDomainGroupName();
|
||||
}
|
||||
if (StringUtils.isNotEmpty(domainGroupDO.getDomainTypeName())) {
|
||||
return domainGroupDO.getDomainTypeName();
|
||||
}
|
||||
return StringUtils.defaultIfEmpty(domainGroupDO.getDomainType(), "领域组配置");
|
||||
}
|
||||
}
|
||||
|
|
@ -13,10 +13,10 @@ import com.zcloud.domain.dto.clientobject.*;
|
|||
import com.zcloud.domain.persistence.dataobject.ProjectTaskDO;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskGroupUserDO;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskInfoDO;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskScoreCountDO;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskScoreInfoDO;
|
||||
import com.zcloud.domain.persistence.repository.*;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
|
@ -42,13 +42,6 @@ public class ProjectTaskQueryExe {
|
|||
private final ProjectTaskGroupUserRepository projectTaskGroupUserRepository;
|
||||
private final ProjectTaskGroupUserCoConvertor projectTaskGroupUserCoConvertor;
|
||||
private final CorpInfoRepository corpInfoRepository;
|
||||
private static final List<ProjectTaskScoreCountCO> SCORE_COUNT_DOMAIN_LIST = java.util.Arrays.asList(
|
||||
buildScoreCount("equipment_safety", "设备、工具具安全专项领域"),
|
||||
buildScoreCount("facility_safety", "设施安全专项领域"),
|
||||
buildScoreCount("Labor_related_parties", "劳务相关方安全专项领域"),
|
||||
buildScoreCount("traffic_safety", "交通、消防、口门安全专项领域"),
|
||||
buildScoreCount("production_safety", "生产作业、船舶靠离泊安全专项领域")
|
||||
);
|
||||
|
||||
/**
|
||||
* 分页
|
||||
|
|
@ -138,32 +131,6 @@ public class ProjectTaskQueryExe {
|
|||
}
|
||||
return projectTaskDetailsCO;
|
||||
}
|
||||
|
||||
public List<ProjectTaskScoreCountCO> countScoreByDomain() {
|
||||
Map<String, ProjectTaskScoreCountDO> countMap = projectTaskRepository.countScoreByDomain()
|
||||
.stream()
|
||||
.collect(java.util.stream.Collectors.toMap(ProjectTaskScoreCountDO::getDomainType, item -> item, (first, second) -> first));
|
||||
return SCORE_COUNT_DOMAIN_LIST.stream().map(item -> {
|
||||
ProjectTaskScoreCountDO countDO = countMap.get(item.getDomainType());
|
||||
ProjectTaskScoreCountCO countCO = buildScoreCount(item.getDomainType(), item.getDomainTypeName());
|
||||
if (countDO != null) {
|
||||
countCO.setNoScoreCount(countDO.getNoScoreCount());
|
||||
countCO.setScoredCount(countDO.getScoredCount());
|
||||
}
|
||||
return countCO;
|
||||
}).sorted(java.util.Comparator.comparing(ProjectTaskScoreCountCO::getNoScoreCount).reversed())
|
||||
.collect(java.util.stream.Collectors.toList());
|
||||
}
|
||||
|
||||
private static ProjectTaskScoreCountCO buildScoreCount(String domainType, String domainTypeName) {
|
||||
ProjectTaskScoreCountCO countCO = new ProjectTaskScoreCountCO();
|
||||
countCO.setDomainType(domainType);
|
||||
countCO.setDomainTypeName(domainTypeName);
|
||||
countCO.setNoScoreCount(0L);
|
||||
countCO.setScoredCount(0L);
|
||||
return countCO;
|
||||
}
|
||||
|
||||
private boolean checkScorePermission(ProjectTaskScoreInfoCO scoreInfo) {
|
||||
// 1. 企业账号且数据属于本企业
|
||||
if (CorpInfoE.isCorp() && AuthContext.getTenantId().equals(scoreInfo.getCorpinfoId())) {
|
||||
|
|
|
|||
|
|
@ -12,12 +12,9 @@ import com.zcloud.domain.dto.ProjectTaskPageQry;
|
|||
import com.zcloud.domain.dto.ProjectTaskUpdateCmd;
|
||||
import com.zcloud.domain.dto.clientobject.ProjectTaskCO;
|
||||
import com.zcloud.domain.dto.clientobject.ProjectTaskDetailsCO;
|
||||
import com.zcloud.domain.dto.clientobject.ProjectTaskScoreCountCO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* web-app
|
||||
*
|
||||
|
|
@ -65,11 +62,6 @@ public class ProjectTaskServiceImpl implements ProjectTaskServiceI {
|
|||
return projectTaskQueryExe.getInfoById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProjectTaskScoreCountCO> countScoreByDomain() {
|
||||
return projectTaskQueryExe.countScoreByDomain();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatExecuteStatusJob() {
|
||||
projectTaskUpdateExe.updatExecuteStatusJob();
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ import com.zcloud.domain.dto.ProjectTaskPageQry;
|
|||
import com.zcloud.domain.dto.ProjectTaskUpdateCmd;
|
||||
import com.zcloud.domain.dto.clientobject.ProjectTaskCO;
|
||||
import com.zcloud.domain.dto.clientobject.ProjectTaskDetailsCO;
|
||||
import com.zcloud.domain.dto.clientobject.ProjectTaskScoreCountCO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* web-client
|
||||
|
|
@ -30,8 +27,6 @@ public interface ProjectTaskServiceI {
|
|||
|
||||
ProjectTaskDetailsCO getInfoById(Long id);
|
||||
|
||||
List<ProjectTaskScoreCountCO> countScoreByDomain();
|
||||
|
||||
void updatExecuteStatusJob();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
package com.zcloud.domain.dto.clientobject;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 课题评分统计返回对象
|
||||
*
|
||||
* @Author zhaokai
|
||||
* @Date 2026-07-16 14:30:00
|
||||
*/
|
||||
@Data
|
||||
public class ProjectTaskScoreCountCO implements Serializable {
|
||||
@ApiModelProperty(value = "领域类型")
|
||||
private String domainType;
|
||||
|
||||
@ApiModelProperty(value = "领域类型名称")
|
||||
private String domainTypeName;
|
||||
|
||||
@ApiModelProperty(value = "未评分数")
|
||||
private Long noScoreCount;
|
||||
|
||||
@ApiModelProperty(value = "已评分数")
|
||||
private Long scoredCount;
|
||||
}
|
||||
|
|
@ -31,4 +31,9 @@ public class MessageConfig {
|
|||
* 评分任务待分配
|
||||
*/
|
||||
private String scoreTaskAssign;
|
||||
|
||||
/**
|
||||
* 领域工作交接通知
|
||||
*/
|
||||
private String domainWorkChange;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
package com.zcloud.domain.persistence.dataobject;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 课题评分统计数据对象
|
||||
*
|
||||
* @Author zhaokai
|
||||
* @Date 2026-07-16 14:30:00
|
||||
*/
|
||||
@Data
|
||||
public class ProjectTaskScoreCountDO {
|
||||
private String domainType;
|
||||
|
||||
private String domainTypeName;
|
||||
|
||||
private Long noScoreCount;
|
||||
|
||||
private Long scoredCount;
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ import com.jjb.saas.framework.datascope.annotation.DataScope;
|
|||
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainDepartmentDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -29,5 +30,9 @@ public interface DomainDepartmentMapper extends BaseMapper<DomainDepartmentDO> {
|
|||
List<DomainDepartmentDO> listAll(Map<String, Object> params);
|
||||
|
||||
DomainDepartmentDO getInfoByUUID(String domainDepartmentId);
|
||||
|
||||
List<DomainDepartmentDO> listWorkByUserId(@Param("userId") Long userId, @Param("corpinfoId") Long corpinfoId);
|
||||
|
||||
DomainDepartmentDO getByWorkId(@Param("workId") String workId);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -20,5 +21,13 @@ public interface DomainDepartmentUserMapper extends BaseMapper<DomainDepartmentU
|
|||
List<DomainDepartmentUserDO> getListByDomainDepartmentId(String domainDepartmentId);
|
||||
|
||||
IPage<DomainDepartmentUserDO> listPage(IPage<DomainDepartmentUserDO> iPage, Map<String, Object> params);
|
||||
|
||||
List<DomainDepartmentUserDO> listWorkByUserId(@Param("userId") Long userId, @Param("corpinfoId") Long corpinfoId);
|
||||
|
||||
DomainDepartmentUserDO getByWorkId(@Param("workId") String workId);
|
||||
|
||||
Long countByDomainDepartmentIdAndUserId(@Param("domainDepartmentId") String domainDepartmentId,
|
||||
@Param("userId") Long userId,
|
||||
@Param("excludeId") Long excludeId);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.jjb.saas.framework.datascope.annotation.DataScope;
|
|||
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainGroupDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -29,5 +30,9 @@ public interface DomainGroupMapper extends BaseMapper<DomainGroupDO> {
|
|||
List<DomainGroupDO> listAll(Map<String, Object> params);
|
||||
|
||||
DomainGroupDO getInfoByGroupId(String domainGroupId);
|
||||
|
||||
List<DomainGroupDO> listWorkByUserId(@Param("userId") Long userId, @Param("corpinfoId") Long corpinfoId);
|
||||
|
||||
DomainGroupDO getByWorkId(@Param("workId") String workId);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zcloud.domain.persistence.dataobject.DomainGroupUserDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -20,5 +21,13 @@ public interface DomainGroupUserMapper extends BaseMapper<DomainGroupUserDO> {
|
|||
List<DomainGroupUserDO> getListByGroupId(String domainGroupId);
|
||||
|
||||
IPage<DomainGroupUserDO> listPage(IPage<DomainGroupUserDO> iPage, Map<String, Object> params);
|
||||
|
||||
List<DomainGroupUserDO> listWorkByUserId(@Param("userId") Long userId, @Param("corpinfoId") Long corpinfoId);
|
||||
|
||||
DomainGroupUserDO getByWorkId(@Param("workId") String workId);
|
||||
|
||||
Long countByDomainGroupIdAndUserId(@Param("domainGroupId") String domainGroupId,
|
||||
@Param("userId") Long userId,
|
||||
@Param("excludeId") Long excludeId);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.jjb.saas.framework.datascope.annotation.DataScope;
|
||||
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskDO;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskScoreCountDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -31,7 +30,5 @@ public interface ProjectTaskMapper extends BaseMapper<ProjectTaskDO> {
|
|||
void updateScoreStatus(String projectTaskId, Integer code, BigDecimal averageScore);
|
||||
|
||||
void updateExecuteStatusBatchById(Integer code, List<Long> idList);
|
||||
|
||||
List<ProjectTaskScoreCountDO> countScoreByDomain();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,5 +24,9 @@ public interface DomainDepartmentRepository extends BaseRepository<DomainDepartm
|
|||
List<DomainDepartmentDO> listAll(Map<String, Object> params);
|
||||
|
||||
DomainDepartmentDO getInfoByUUID(String domainDepartmentId);
|
||||
|
||||
List<DomainDepartmentDO> listWorkByUserId(Long userId, Long corpinfoId);
|
||||
|
||||
DomainDepartmentDO getByWorkId(String workId);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,5 +19,11 @@ public interface DomainDepartmentUserRepository extends BaseRepository<DomainDep
|
|||
void deleteByDomainDepartmentId(String domainDepartmentId);
|
||||
|
||||
List<DomainDepartmentUserDO> getListByDomainDepartmentId(String domainDepartmentId);
|
||||
|
||||
List<DomainDepartmentUserDO> listWorkByUserId(Long userId, Long corpinfoId);
|
||||
|
||||
DomainDepartmentUserDO getByWorkId(String workId);
|
||||
|
||||
Long countByDomainDepartmentIdAndUserId(String domainDepartmentId, Long userId, Long excludeId);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,5 +26,9 @@ public interface DomainGroupRepository extends BaseRepository<DomainGroupDO> {
|
|||
|
||||
DomainGroupDO getInfoByGroupId(String domainGroupId);
|
||||
|
||||
List<DomainGroupDO> listWorkByUserId(Long userId, Long corpinfoId);
|
||||
|
||||
DomainGroupDO getByWorkId(String workId);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,5 +20,11 @@ public interface DomainGroupUserRepository extends BaseRepository<DomainGroupUse
|
|||
|
||||
List<DomainGroupUserDO> getListByGroupId(String domainGroupId);
|
||||
|
||||
List<DomainGroupUserDO> listWorkByUserId(Long userId, Long corpinfoId);
|
||||
|
||||
DomainGroupUserDO getByWorkId(String workId);
|
||||
|
||||
Long countByDomainGroupIdAndUserId(String domainGroupId, Long userId, Long excludeId);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package com.zcloud.domain.persistence.repository;
|
|||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskDO;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskScoreCountDO;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -32,8 +31,6 @@ public interface ProjectTaskRepository extends BaseRepository<ProjectTaskDO> {
|
|||
|
||||
ProjectTaskDO getInfoByTaskId(@NotEmpty(message = "课题任务不能为空") String projectTaskId);
|
||||
|
||||
List<ProjectTaskScoreCountDO> countScoreByDomain();
|
||||
|
||||
List<ProjectTaskDO> getNoFinishByDomainDepartmentId(List<String> domainDepartmentIds);
|
||||
|
||||
List<ProjectTaskDO> getNoFinishByDomainGroupId(List<String> groupIdList);
|
||||
|
|
|
|||
|
|
@ -68,5 +68,15 @@ public class DomainDepartmentRepositoryImpl extends BaseRepositoryImpl<DomainDep
|
|||
DomainDepartmentDO domainDepartmentDO = domainDepartmentMapper.getInfoByUUID(domainDepartmentId);
|
||||
return domainDepartmentDO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DomainDepartmentDO> listWorkByUserId(Long userId, Long corpinfoId) {
|
||||
return domainDepartmentMapper.listWorkByUserId(userId, corpinfoId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DomainDepartmentDO getByWorkId(String workId) {
|
||||
return domainDepartmentMapper.getByWorkId(workId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,5 +45,20 @@ public class DomainDepartmentUserRepositoryImpl extends BaseRepositoryImpl<Domai
|
|||
public List<DomainDepartmentUserDO> getListByDomainDepartmentId(String domainDepartmentId) {
|
||||
return domainDepartmentUserMapper.getListByDomainDepartmentId(domainDepartmentId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DomainDepartmentUserDO> listWorkByUserId(Long userId, Long corpinfoId) {
|
||||
return domainDepartmentUserMapper.listWorkByUserId(userId, corpinfoId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DomainDepartmentUserDO getByWorkId(String workId) {
|
||||
return domainDepartmentUserMapper.getByWorkId(workId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long countByDomainDepartmentIdAndUserId(String domainDepartmentId, Long userId, Long excludeId) {
|
||||
return domainDepartmentUserMapper.countByDomainDepartmentIdAndUserId(domainDepartmentId, userId, excludeId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,5 +66,15 @@ public class DomainGroupRepositoryImpl extends BaseRepositoryImpl<DomainGroupMap
|
|||
public DomainGroupDO getInfoByGroupId(String domainGroupId) {
|
||||
return domainGroupMapper.getInfoByGroupId(domainGroupId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DomainGroupDO> listWorkByUserId(Long userId, Long corpinfoId) {
|
||||
return domainGroupMapper.listWorkByUserId(userId, corpinfoId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DomainGroupDO getByWorkId(String workId) {
|
||||
return domainGroupMapper.getByWorkId(workId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,5 +46,20 @@ public class DomainGroupUserRepositoryImpl extends BaseRepositoryImpl<DomainGrou
|
|||
public List<DomainGroupUserDO> getListByGroupId(String domainGroupId) {
|
||||
return domainGroupUserMapper.getListByGroupId(domainGroupId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DomainGroupUserDO> listWorkByUserId(Long userId, Long corpinfoId) {
|
||||
return domainGroupUserMapper.listWorkByUserId(userId, corpinfoId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DomainGroupUserDO getByWorkId(String workId) {
|
||||
return domainGroupUserMapper.getByWorkId(workId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long countByDomainGroupIdAndUserId(String domainGroupId, Long userId, Long excludeId) {
|
||||
return domainGroupUserMapper.countByDomainGroupIdAndUserId(domainGroupId, userId, excludeId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import com.zcloud.domain.domain.enums.ProjectTaskExecuteStatusEnum;
|
|||
import com.zcloud.domain.domain.enums.ScoreStatusEnum;
|
||||
import com.zcloud.domain.domain.model.CorpInfoE;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskDO;
|
||||
import com.zcloud.domain.persistence.dataobject.ProjectTaskScoreCountDO;
|
||||
import com.zcloud.domain.persistence.mapper.ProjectTaskMapper;
|
||||
import com.zcloud.domain.persistence.repository.CorpInfoRepository;
|
||||
import com.zcloud.domain.persistence.repository.ProjectTaskRepository;
|
||||
|
|
@ -98,11 +97,6 @@ public class ProjectTaskRepositoryImpl extends BaseRepositoryImpl<ProjectTaskMap
|
|||
return projectTaskMapper.selectOne(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProjectTaskScoreCountDO> countScoreByDomain() {
|
||||
return projectTaskMapper.countScoreByDomain();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProjectTaskDO> getNoFinishByDomainDepartmentId(List<String> domainDepartmentIds) {
|
||||
QueryWrapper<ProjectTaskDO> queryWrapper = new QueryWrapper<>();
|
||||
|
|
|
|||
|
|
@ -49,5 +49,24 @@
|
|||
where dd.delete_enum = 'FALSE'
|
||||
and dd.domain_department_id = #{domainDepartmentId}
|
||||
</select>
|
||||
|
||||
<select id="listWorkByUserId" resultType="com.zcloud.domain.persistence.dataobject.DomainDepartmentDO">
|
||||
select dd.*, d.name as masterDepartmentName, u.name as masterUserName
|
||||
from domain_department dd
|
||||
left join department d on dd.master_department_id = d.id and d.delete_enum = 'FALSE'
|
||||
left join user u on dd.master_user_id = u.id and u.delete_enum = 'FALSE'
|
||||
where dd.delete_enum = 'FALSE'
|
||||
and dd.master_user_id = #{userId}
|
||||
and d.corpinfo_id = #{corpinfoId}
|
||||
</select>
|
||||
|
||||
<select id="getByWorkId" resultType="com.zcloud.domain.persistence.dataobject.DomainDepartmentDO">
|
||||
select dd.*, d.name as masterDepartmentName, u.name as masterUserName
|
||||
from domain_department dd
|
||||
left join department d on dd.master_department_id = d.id and d.delete_enum = 'FALSE'
|
||||
left join user u on dd.master_user_id = u.id and u.delete_enum = 'FALSE'
|
||||
where dd.delete_enum = 'FALSE'
|
||||
and dd.domain_department_id = #{workId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
|
|
@ -24,5 +24,36 @@
|
|||
and ddu.domain_department_id = #{params.domainDepartmentId}
|
||||
order by ddu.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="listWorkByUserId" resultType="com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO">
|
||||
select ddu.*, d.name as departmentname, u.name as username, c.corp_name as corpinfoName, c.id as corpinfoId
|
||||
from domain_department_user ddu
|
||||
left join department d on ddu.department_id = d.id and d.delete_enum = 'FALSE'
|
||||
left join corp_info c on d.corpinfo_id = c.id and c.delete_enum = 'FALSE'
|
||||
left join user u on ddu.user_id = u.id and u.delete_enum = 'FALSE'
|
||||
where ddu.delete_enum = 'FALSE'
|
||||
and ddu.user_id = #{userId}
|
||||
and d.corpinfo_id = #{corpinfoId}
|
||||
order by ddu.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getByWorkId" resultType="com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO">
|
||||
select ddu.*, d.name as departmentname, u.name as username, c.corp_name as corpinfoName, c.id as corpinfoId
|
||||
from domain_department_user ddu
|
||||
left join department d on ddu.department_id = d.id and d.delete_enum = 'FALSE'
|
||||
left join corp_info c on d.corpinfo_id = c.id and c.delete_enum = 'FALSE'
|
||||
left join user u on ddu.user_id = u.id and u.delete_enum = 'FALSE'
|
||||
where ddu.delete_enum = 'FALSE'
|
||||
and ddu.domain_department_user_id = #{workId}
|
||||
</select>
|
||||
|
||||
<select id="countByDomainDepartmentIdAndUserId" resultType="java.lang.Long">
|
||||
select count(1)
|
||||
from domain_department_user ddu
|
||||
where ddu.delete_enum = 'FALSE'
|
||||
and ddu.domain_department_id = #{domainDepartmentId}
|
||||
and ddu.user_id = #{userId}
|
||||
and ddu.id <![CDATA[<>]]> #{excludeId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
|
|
@ -70,5 +70,32 @@
|
|||
left join user u on dg.team_user_id = u.id and u.delete_enum = 'false'
|
||||
where dg.delete_enum = 'false' and dg.domain_group_id=#{domainGroupId}
|
||||
</select>
|
||||
|
||||
<select id="listWorkByUserId" resultType="com.zcloud.domain.persistence.dataobject.DomainGroupDO">
|
||||
select dg.*,
|
||||
c.corp_name as corpinfoname,
|
||||
d.name as teamdepartmentname,
|
||||
u.name as teamusername
|
||||
from domain_group dg
|
||||
left join corp_info c on dg.corpinfo_id = c.id and c.delete_enum = 'false'
|
||||
left join department d on dg.team_department_id = d.id and d.delete_enum = 'false'
|
||||
left join user u on dg.team_user_id = u.id and u.delete_enum = 'false'
|
||||
where dg.delete_enum = 'false'
|
||||
and dg.team_user_id = #{userId}
|
||||
and dg.corpinfo_id = #{corpinfoId}
|
||||
</select>
|
||||
|
||||
<select id="getByWorkId" resultType="com.zcloud.domain.persistence.dataobject.DomainGroupDO">
|
||||
select dg.*,
|
||||
c.corp_name as corpinfoname,
|
||||
d.name as teamdepartmentname,
|
||||
u.name as teamusername
|
||||
from domain_group dg
|
||||
left join corp_info c on dg.corpinfo_id = c.id and c.delete_enum = 'false'
|
||||
left join department d on dg.team_department_id = d.id and d.delete_enum = 'false'
|
||||
left join user u on dg.team_user_id = u.id and u.delete_enum = 'false'
|
||||
where dg.delete_enum = 'false'
|
||||
and dg.domain_group_id = #{workId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
|
|
@ -24,5 +24,36 @@
|
|||
group by dgu.id
|
||||
order by dgu.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="listWorkByUserId" resultType="com.zcloud.domain.persistence.dataobject.DomainGroupUserDO">
|
||||
select dgu.*, d.name as departmentname, u.name as username
|
||||
from domain_group_user dgu
|
||||
left join department d on dgu.department_id = d.id and d.delete_enum = 'false'
|
||||
left join user u on dgu.user_id = u.id and u.delete_enum = 'false'
|
||||
left join domain_group dg on dgu.domain_group_id = dg.domain_group_id and dg.delete_enum = 'false'
|
||||
where dgu.delete_enum = 'false'
|
||||
and dgu.user_id = #{userId}
|
||||
and dg.corpinfo_id = #{corpinfoId}
|
||||
group by dgu.id
|
||||
order by dgu.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getByWorkId" resultType="com.zcloud.domain.persistence.dataobject.DomainGroupUserDO">
|
||||
select dgu.*, d.name as departmentname, u.name as username
|
||||
from domain_group_user dgu
|
||||
left join department d on dgu.department_id = d.id and d.delete_enum = 'false'
|
||||
left join user u on dgu.user_id = u.id and u.delete_enum = 'false'
|
||||
where dgu.delete_enum = 'false'
|
||||
and dgu.domain_group_user_id = #{workId}
|
||||
</select>
|
||||
|
||||
<select id="countByDomainGroupIdAndUserId" resultType="java.lang.Long">
|
||||
select count(1)
|
||||
from domain_group_user dgu
|
||||
where dgu.delete_enum = 'FALSE'
|
||||
and dgu.domain_group_id = #{domainGroupId}
|
||||
and dgu.user_id = #{userId}
|
||||
and dgu.id <![CDATA[<>]]> #{excludeId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
|
|
@ -54,17 +54,6 @@
|
|||
left join department d on d.id = dd.master_department_id
|
||||
where pt.delete_enum = 'false' and pt.id=#{id}
|
||||
</select>
|
||||
<select id="countScoreByDomain" resultType="com.zcloud.domain.persistence.dataobject.ProjectTaskScoreCountDO">
|
||||
select
|
||||
pt.domain_type as domainType,
|
||||
pt.domain_type_name as domainTypeName,
|
||||
sum(case when pt.score_status in (0, 1) then 1 else 0 end) as noScoreCount,
|
||||
sum(case when pt.score_status = 2 then 1 else 0 end) as scoredCount
|
||||
from project_task pt
|
||||
where pt.delete_enum = 'false'
|
||||
and pt.domain_type in ('equipment_safety', 'facility_safety', 'Labor_related_parties', 'traffic_safety', 'production_safety')
|
||||
group by pt.domain_type, pt.domain_type_name
|
||||
</select>
|
||||
<update id="updateScoreStatus">
|
||||
update project_task set score_status = #{code}
|
||||
<if test="averageScore != null">
|
||||
|
|
|
|||
Loading…
Reference in New Issue