Compare commits

...

2 Commits

Author SHA1 Message Date
zhaokai 540a2d7c26 Merge remote-tracking branch 'origin/master' 2026-03-26 14:58:20 +08:00
zhaokai 3fca101701 消息待办 2026-03-26 14:58:10 +08:00
7 changed files with 61 additions and 14 deletions

View File

@ -56,6 +56,7 @@ public class ProjectTaskAddExe {
private final DomainDepartmentRepository domainDepartmentRepository;
private final TodoListEventPusherUtil todoListEventPusherUtil;
private final DomainGroupRepository domainGroupRepository;
private final CorpInfoRepository corpInfoRepository;
@DubboReference
private MessageFacade messageFacade;
@Transactional(rollbackFor = Exception.class)
@ -127,41 +128,67 @@ public class ProjectTaskAddExe {
} else if (CollUtil.isNotEmpty(projectTaskGroupUserAddCmdList) && CollUtil.isEmpty(projectTaskScoreInfoAddCmdList)) {
// 只有group user列表不为空等待评分设置
projectTaskE.setExecuteStatus(ProjectTaskExecuteStatusEnum.SCORE_WAIT_SET.getCode());
//通知department
String domainDepartmentId = projectTaskE.getDomainDepartmentId();
DomainDepartmentDO infoByUUID = domainDepartmentRepository.getInfoByUUID(domainDepartmentId);
messageNotice(infoByUUID.getMasterUserId(),"MS000105",projectTaskE.getId(),null);
//股份端主账号
List<CorpInfoDO> gufen = corpInfoRepository.getGufen();
gufen.forEach(info -> {
messageNotice(info.getId(),"MS000105",projectTaskE.getId(),null);
});
} else if (CollUtil.isEmpty(projectTaskGroupUserAddCmdList) && CollUtil.isNotEmpty(projectTaskScoreInfoAddCmdList)) {
// 只有score info列表不为空等待项目组设置
//通知group
projectTaskE.setExecuteStatus(ProjectTaskExecuteStatusEnum.PROJECT_GROUP_WAIT_SET.getCode());
String domainGroupId = projectTaskE.getDomainGroupId();
DomainGroupDO info = domainGroupRepository.getInfoByGroupId(domainGroupId);
DomainDepartmentDO infoByUUID = domainDepartmentRepository.getInfoByUUID(projectTaskE.getDomainDepartmentId());
Map<String, Object> sendParams = new HashMap<String, Object>();
sendParams.put("DomainDepartment", infoByUUID.getMasterDepartmentName());
messageNotice(info.getTeamUserId(),"MS000108",projectTaskE.getId(),sendParams);
messageNotice(info.getCorpinfoId(),"MS000108",projectTaskE.getId(),sendParams);
}
projectTaskGateway.update(projectTaskE);
return true;
}
// Map<String, Object> sendParams = new HashMap<String, Object>();
//
// sendParams.put("SpecialTaskForceName", infoByGroupId.getDomainGroupName());
// sendParams.put("ResearchTask", infoByTaskId.getProjectName());
// sendParams.put("AverageScore", averageScore);
// messageSendCmd.setParams(sendParams);
private void messageNotice(Long userId,String sourceCode,Long foreignKey,Map<String, Object> sendParams) {
//消息通知
try{
String domainDepartmentId = projectTaskE.getDomainDepartmentId();
DomainDepartmentDO infoByUUID = domainDepartmentRepository.getInfoByUUID(domainDepartmentId);
MessageSendCmd messageSendCmd = new MessageSendCmd();
messageSendCmd.setBusinessId(UuidUtil.get32UUID());
MessageTargetCmd messageTargetCmd = new MessageTargetCmd();
messageTargetCmd.setUserId(infoByUUID.getMasterUserId());
messageTargetCmd.setUserId(userId);
messageSendCmd.setTargetCmd(messageTargetCmd);
messageSendCmd.setSourceCode("MS000105");
messageSendCmd.setSourceCode(sourceCode);
messageSendCmd.setNeedTokenEnum(false);
Map<String, Object> sendParams = new HashMap<String, Object>();
messageSendCmd.setParams(sendParams);
log.info("评分完成消息提醒发送消息参数:messageSendCmd: {}", JSONUtil.toJsonStr(messageSendCmd));
SingleResponse<Boolean> d = messageFacade.send(messageSendCmd);
log.info("评分完成消息提醒发送消息结果:d: {}", JSONUtil.toJsonStr(d));
// 发送待办
TodoListAddEvent event = new TodoListAddEvent();
event.setTitle("您有一条【专项领域】待处理");
event.setContent("待开始");
event.setForeignKey(projectTaskE.getId()); // 业务表ID -申请
event.setForeignSubsidiaryKey(projectTaskE.getId()); // 业务附表ID 没有附表时为foreignKey的值
event.setReceiveUser(infoByUUID.getMasterUserId());// user表ID
event.setForeignKey(foreignKey); // 业务表ID -申请
event.setForeignSubsidiaryKey(foreignKey); // 业务附表ID 没有附表时为foreignKey的值
event.setReceiveUser(userId);// user表ID
event.setPcFlag(1); // 是否PC端待办 1是 0否
event.setAppFlag(0); // 是否APP端待办 1是 0否
event.setOtherParams(new JSONObject());
@ -170,8 +197,6 @@ public class ProjectTaskAddExe {
}catch (Exception e) {
log.error("评分完成消息提醒发送消息异常:", e);
}
return true;
}
}

View File

@ -27,5 +27,7 @@ public interface DomainDepartmentMapper extends BaseMapper<DomainDepartmentDO> {
IPage<DomainDepartmentDO> listPage(IPage<DomainDepartmentDO> iPage, Map<String, Object> params, String menuPerms);
List<DomainDepartmentDO> listAll(Map<String, Object> params);
DomainDepartmentDO getInfoByUUID(String domainDepartmentId);
}

View File

@ -4,6 +4,7 @@ import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.domain.persistence.dataobject.CorpInfoDO;
import java.util.List;
import java.util.Map;
/**
@ -22,5 +23,7 @@ public interface CorpInfoRepository extends BaseRepository<CorpInfoDO> {
boolean isSupper();
Boolean checkCorp();
List<CorpInfoDO> getGufen();
}

View File

@ -25,5 +25,6 @@ public interface DomainGroupRepository extends BaseRepository<DomainGroupDO> {
List<DomainGroupDO> getListByCorpinfoId(@NotNull(message = "主责企业不能为空") Long corpinfoId);
DomainGroupDO getInfoByGroupId(String domainGroupId);
}

View File

@ -16,6 +16,7 @@ import com.zcloud.gbscommon.utils.Query;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
@ -68,5 +69,13 @@ public class CorpInfoRepositoryImpl extends BaseRepositoryImpl<CorpInfoMapper, C
public Boolean checkCorp() {
return AuthContext.getUserId().equals(AuthContext.getTenantId());
}
@Override
public List<CorpInfoDO> getGufen() {
QueryWrapper<CorpInfoDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", 2);
List<CorpInfoDO> corpInfoDOS = corpInfoMapper.selectList(queryWrapper);
return corpInfoDOS;
}
}

View File

@ -65,9 +65,7 @@ public class DomainDepartmentRepositoryImpl extends BaseRepositoryImpl<DomainDep
@Override
public DomainDepartmentDO getInfoByUUID(String domainDepartmentId) {
QueryWrapper<DomainDepartmentDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("domain_department_id", domainDepartmentId);
DomainDepartmentDO domainDepartmentDO = getOne(queryWrapper);
DomainDepartmentDO domainDepartmentDO = domainDepartmentMapper.getInfoByUUID(domainDepartmentId);
return domainDepartmentDO;
}
}

View File

@ -44,5 +44,14 @@
group by dd.id
order by dd.create_time desc
</select>
<select id="getInfoByUUID" 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
left join user u on dd.master_user_id = u.id
where dd.delete_enum = 'FALSE'
and dd.domain_department_id = #{domainDepartmentId}
</select>
</mapper>