Merge remote-tracking branch 'origin/dev' into dev
commit
cb9de9a06e
|
|
@ -1,5 +1,6 @@
|
||||||
package org.qinan.safetyeval.app.executor.institution;
|
package org.qinan.safetyeval.app.executor.institution;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import org.qinan.safetyeval.app.convertor.EvalRiskAnalysisCmdConvertor;
|
import org.qinan.safetyeval.app.convertor.EvalRiskAnalysisCmdConvertor;
|
||||||
import org.qinan.safetyeval.app.executor.institution.support.EvalProjectNodeSupport;
|
import org.qinan.safetyeval.app.executor.institution.support.EvalProjectNodeSupport;
|
||||||
import org.qinan.safetyeval.client.api.institution.EvalRiskAnalysisApi;
|
import org.qinan.safetyeval.client.api.institution.EvalRiskAnalysisApi;
|
||||||
|
|
@ -17,11 +18,19 @@ import org.qinan.safetyeval.domain.exception.ErrorCode;
|
||||||
import org.qinan.safetyeval.domain.gateway.EvalRiskAnalysisGateway;
|
import org.qinan.safetyeval.domain.gateway.EvalRiskAnalysisGateway;
|
||||||
import org.qinan.safetyeval.domain.gateway.EvalRiskParticipantGateway;
|
import org.qinan.safetyeval.domain.gateway.EvalRiskParticipantGateway;
|
||||||
import org.qinan.safetyeval.domain.support.EvalNodeCodes;
|
import org.qinan.safetyeval.domain.support.EvalNodeCodes;
|
||||||
|
import org.qinan.safetyeval.infrastructure.dataobject.EvalRiskParticipantDO;
|
||||||
|
import org.qinan.safetyeval.infrastructure.mapper.EvalRiskAnalysisMapper;
|
||||||
|
import org.qinan.safetyeval.infrastructure.mapper.EvalRiskParticipantMapper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class EvalRiskAnalysisExecutor implements EvalRiskAnalysisApi {
|
public class EvalRiskAnalysisExecutor implements EvalRiskAnalysisApi {
|
||||||
|
|
@ -34,6 +43,10 @@ public class EvalRiskAnalysisExecutor implements EvalRiskAnalysisApi {
|
||||||
private EvalProjectNodeSupport evalProjectNodeSupport;
|
private EvalProjectNodeSupport evalProjectNodeSupport;
|
||||||
@Resource
|
@Resource
|
||||||
private EvalRiskAnalysisCmdConvertor evalRiskAnalysisCmdConvertor;
|
private EvalRiskAnalysisCmdConvertor evalRiskAnalysisCmdConvertor;
|
||||||
|
@Autowired
|
||||||
|
private EvalRiskAnalysisMapper evalRiskAnalysisMapper;
|
||||||
|
@Autowired
|
||||||
|
private EvalRiskParticipantMapper evalRiskParticipantMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SingleResponse<EvalRiskAnalysisCO> save(EvalRiskAnalysisSaveCmd cmd) {
|
public SingleResponse<EvalRiskAnalysisCO> save(EvalRiskAnalysisSaveCmd cmd) {
|
||||||
|
|
@ -79,20 +92,30 @@ public class EvalRiskAnalysisExecutor implements EvalRiskAnalysisApi {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public SingleResponse<Boolean> saveParticipant(List<EvalRiskParticipantSaveCmd> cmdList) {
|
public SingleResponse<Boolean> saveParticipant(List<EvalRiskParticipantSaveCmd> cmdList) {
|
||||||
|
List<Long> dbIds = evalRiskParticipantMapper.selectList(new LambdaQueryWrapper<EvalRiskParticipantDO>()
|
||||||
|
.eq(EvalRiskParticipantDO::getRiskId, cmdList.get(0).getRiskId())
|
||||||
|
.eq(EvalRiskParticipantDO::getProjectId, cmdList.get(0).getProjectId()))
|
||||||
|
.stream().map(EvalRiskParticipantDO::getId).collect(Collectors.toList());
|
||||||
|
List<Long> cmdIds = cmdList.stream().map(EvalRiskParticipantSaveCmd::getId).filter(Objects::nonNull).map(Long::new).collect(Collectors.toList());
|
||||||
|
List<Long> delIds = new ArrayList<>();
|
||||||
|
for (Long id : dbIds) {
|
||||||
|
if (!cmdIds.contains(id)) {
|
||||||
|
delIds.add(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
evalRiskParticipantMapper.deleteBatchIds(delIds);
|
||||||
for (EvalRiskParticipantSaveCmd cmd : cmdList) {
|
for (EvalRiskParticipantSaveCmd cmd : cmdList) {
|
||||||
EvalRiskAnalysisEntity risk = requireRisk(cmd.getRiskId());
|
EvalRiskAnalysisEntity risk = requireRisk(cmd.getRiskId());
|
||||||
// evalProjectNodeSupport.assertWrite(risk.getProjectId(), EvalNodeCodes.NODE_01);
|
|
||||||
EvalRiskParticipantEntity entity = evalRiskAnalysisCmdConvertor.convertParticipantCmdToE(cmd);
|
EvalRiskParticipantEntity entity = evalRiskAnalysisCmdConvertor.convertParticipantCmdToE(cmd);
|
||||||
entity.setRiskId(risk.getId());
|
entity.setRiskId(risk.getId());
|
||||||
entity.setProjectId(risk.getProjectId());
|
entity.setProjectId(risk.getProjectId());
|
||||||
if (entity.getSignStatusCode() == null) {
|
|
||||||
entity.setSignStatusCode(1);
|
|
||||||
}
|
|
||||||
if (entity.getId() == null) {
|
if (entity.getId() == null) {
|
||||||
if (entity.getSortOrder() == null) {
|
if (entity.getSortOrder() == null) {
|
||||||
entity.setSortOrder(0);
|
entity.setSortOrder(0);
|
||||||
}
|
}
|
||||||
|
entity.setSignStatusCode(null);
|
||||||
evalRiskParticipantGateway.save(entity);
|
evalRiskParticipantGateway.save(entity);
|
||||||
} else {
|
} else {
|
||||||
EvalRiskParticipantEntity existing = requireParticipant(entity.getId());
|
EvalRiskParticipantEntity existing = requireParticipant(entity.getId());
|
||||||
|
|
|
||||||
|
|
@ -12,21 +12,16 @@ import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||||
import org.qinan.safetyeval.client.dto.institution.EditSignTaskSaveCmd;
|
import org.qinan.safetyeval.client.dto.institution.EditSignTaskSaveCmd;
|
||||||
import org.qinan.safetyeval.client.dto.institution.EvalSignTaskPageQuery;
|
import org.qinan.safetyeval.client.dto.institution.EvalSignTaskPageQuery;
|
||||||
import org.qinan.safetyeval.client.dto.institution.EvalSignTaskSaveCmd;
|
import org.qinan.safetyeval.client.dto.institution.EvalSignTaskSaveCmd;
|
||||||
import org.qinan.safetyeval.domain.constant.*;
|
import org.qinan.safetyeval.domain.constant.ProjectStageEnum;
|
||||||
|
import org.qinan.safetyeval.domain.constant.SignTaskStatusEnum;
|
||||||
|
import org.qinan.safetyeval.domain.constant.SignatureTaskStatusEnum;
|
||||||
import org.qinan.safetyeval.domain.entity.EvalSignTaskEntity;
|
import org.qinan.safetyeval.domain.entity.EvalSignTaskEntity;
|
||||||
import org.qinan.safetyeval.domain.entity.SafetyMessageEntity;
|
|
||||||
import org.qinan.safetyeval.domain.exception.BizException;
|
import org.qinan.safetyeval.domain.exception.BizException;
|
||||||
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
||||||
import org.qinan.safetyeval.domain.gateway.SafetyMessageGateway;
|
import org.qinan.safetyeval.domain.gateway.SafetyMessageGateway;
|
||||||
import org.qinan.safetyeval.domain.query.EvalSignTaskQuery;
|
import org.qinan.safetyeval.domain.query.EvalSignTaskQuery;
|
||||||
import org.qinan.safetyeval.domain.query.PageResult;
|
import org.qinan.safetyeval.domain.query.PageResult;
|
||||||
import org.qinan.safetyeval.domain.service.EvalSignTaskDomainService;
|
import org.qinan.safetyeval.domain.service.EvalSignTaskDomainService;
|
||||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO;
|
|
||||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalRiskParticipantDO;
|
|
||||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalSignTaskDO;
|
|
||||||
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper;
|
|
||||||
import org.qinan.safetyeval.infrastructure.mapper.EvalRiskParticipantMapper;
|
|
||||||
import org.qinan.safetyeval.infrastructure.mapper.EvalSignTaskMapper;
|
|
||||||
import org.qinan.safetyeval.infrastructure.dataobject.*;
|
import org.qinan.safetyeval.infrastructure.dataobject.*;
|
||||||
import org.qinan.safetyeval.infrastructure.mapper.*;
|
import org.qinan.safetyeval.infrastructure.mapper.*;
|
||||||
import org.qinan.safetyeval.infrastructure.support.InstitutionOrgSupport;
|
import org.qinan.safetyeval.infrastructure.support.InstitutionOrgSupport;
|
||||||
|
|
@ -36,8 +31,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.time.LocalDateTime;
|
import java.util.List;
|
||||||
import java.util.*;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
|
@ -69,6 +64,7 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi {
|
||||||
private EvalProjectMemberMapper evalProjectMemberMapper;
|
private EvalProjectMemberMapper evalProjectMemberMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public SingleResponse<EvalSignTaskCO> save(EvalSignTaskSaveCmd cmd) {
|
public SingleResponse<EvalSignTaskCO> save(EvalSignTaskSaveCmd cmd) {
|
||||||
Long orgId = institutionOrgSupport.resolveCurrentOrgId();
|
Long orgId = institutionOrgSupport.resolveCurrentOrgId();
|
||||||
EvalSignTaskEntity entity = evalSignTaskCmdConvertor.convertSaveCmdToE(cmd);
|
EvalSignTaskEntity entity = evalSignTaskCmdConvertor.convertSaveCmdToE(cmd);
|
||||||
|
|
@ -76,9 +72,20 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi {
|
||||||
EvalSignTaskEntity result = evalSignTaskDomainService.add(entity);
|
EvalSignTaskEntity result = evalSignTaskDomainService.add(entity);
|
||||||
// 发送签字任务通知消息
|
// 发送签字任务通知消息
|
||||||
safetyMessageGateway.saveSignMsg(cmd.getTaskTitle(), cmd.getNodeCode(), cmd.getProjectId(), cmd.getSignerPersonnelId());
|
safetyMessageGateway.saveSignMsg(cmd.getTaskTitle(), cmd.getNodeCode(), cmd.getProjectId(), cmd.getSignerPersonnelId());
|
||||||
|
support(cmd.getProjectId(), cmd.getSignerPersonnelId(), cmd.getNodeCode());
|
||||||
return SingleResponse.success(evalSignTaskCmdConvertor.convertEToCO(result));
|
return SingleResponse.success(evalSignTaskCmdConvertor.convertEToCO(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void support(String projectId, String signerPersonnelId, String nodeCode) {
|
||||||
|
if (ProjectStageEnum.RISK_ANALYSIS.getVal().equals(nodeCode)) {
|
||||||
|
evalRiskParticipantMapper.update(new LambdaUpdateWrapper<EvalRiskParticipantDO>()
|
||||||
|
.eq(EvalRiskParticipantDO::getProjectId, projectId)
|
||||||
|
.eq(EvalRiskParticipantDO::getPersonnelId, signerPersonnelId)
|
||||||
|
.set(EvalRiskParticipantDO::getSignStatusCode, SignTaskStatusEnum.PENDING.getCode()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResponse<EvalSignTaskCO> page(EvalSignTaskPageQuery query) {
|
public PageResponse<EvalSignTaskCO> page(EvalSignTaskPageQuery query) {
|
||||||
EvalSignTaskQuery domainQuery = evalSignTaskCmdConvertor.convertPageQueryToQ(query);
|
EvalSignTaskQuery domainQuery = evalSignTaskCmdConvertor.convertPageQueryToQ(query);
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ public class EvalRiskParticipantSaveCmd {
|
||||||
@ApiModelProperty("人员ID")
|
@ApiModelProperty("人员ID")
|
||||||
private String personnelId;
|
private String personnelId;
|
||||||
|
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
@ApiModelProperty("人员姓名")
|
@ApiModelProperty("人员姓名")
|
||||||
private String personnelName;
|
private String personnelName;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import org.qinan.safetyeval.infrastructure.support.OrgContextResolver;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -36,6 +37,7 @@ public class EvalSignTaskGatewayImpl implements EvalSignTaskGateway {
|
||||||
EvalSignTaskDO dataObject = evalSignTaskDoConvertor.convertEToDo(entity);
|
EvalSignTaskDO dataObject = evalSignTaskDoConvertor.convertEToDo(entity);
|
||||||
dataObject.setOrgId(orgContextResolver.resolveOrgId(entity.getOrgId()));
|
dataObject.setOrgId(orgContextResolver.resolveOrgId(entity.getOrgId()));
|
||||||
InsertFieldDefaults.apply(dataObject);
|
InsertFieldDefaults.apply(dataObject);
|
||||||
|
dataObject.setIssueTime(LocalDateTime.now());
|
||||||
evalSignTaskMapper.insert(dataObject);
|
evalSignTaskMapper.insert(dataObject);
|
||||||
entity.setId(dataObject.getId());
|
entity.setId(dataObject.getId());
|
||||||
return entity;
|
return entity;
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ public class SafetyMessageGatewayImpl implements SafetyMessageGateway {
|
||||||
params.put(MsgConstant.MSG_CONTENT_KEY_TITLE, taskTitle);
|
params.put(MsgConstant.MSG_CONTENT_KEY_TITLE, taskTitle);
|
||||||
|
|
||||||
Map<String, String> fillMap = new HashMap<>();
|
Map<String, String> fillMap = new HashMap<>();
|
||||||
ProjectStageEnum projectStageEnum = ProjectStageEnum.fromNode(nodeCode);
|
ProjectStageEnum projectStageEnum = ProjectStageEnum.fromVal(nodeCode);
|
||||||
if (projectStageEnum == null) {
|
if (projectStageEnum == null) {
|
||||||
throw new BizException(ErrorCode.EVAL_PROJECT_NODE_NOT_FOUND);
|
throw new BizException(ErrorCode.EVAL_PROJECT_NODE_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue