|
|
|
@ -4,23 +4,34 @@ import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.lang.Snowflake; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import com.ccsens.common.bean.dto.CDeliverDto; |
|
|
|
import com.ccsens.common.bean.message.DeliverMessageWithChecker; |
|
|
|
import com.ccsens.common.bean.message.DeliverMessageWithUpload; |
|
|
|
import com.ccsens.common.bean.po.ProDeliver; |
|
|
|
import com.ccsens.common.bean.po.ProDeliverChecker; |
|
|
|
import com.ccsens.common.bean.po.ProMember; |
|
|
|
import com.ccsens.common.bean.po.ProTaskSub; |
|
|
|
import com.ccsens.common.bean.vo.CDeliverVo; |
|
|
|
import com.ccsens.common.bean.vo.CMemberVo; |
|
|
|
import com.ccsens.common.bean.vo.CProjectVo; |
|
|
|
import com.ccsens.common.persist.dao.*; |
|
|
|
import com.ccsens.common.util.CommonCodeError; |
|
|
|
import com.ccsens.util.JacksonUtil; |
|
|
|
import com.ccsens.util.bean.message.common.InMessage; |
|
|
|
import com.ccsens.util.bean.message.common.MessageConstant; |
|
|
|
import com.ccsens.util.config.RabbitMQConfig; |
|
|
|
import com.ccsens.util.exception.BaseException; |
|
|
|
import com.github.pagehelper.PageHelper; |
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.amqp.core.AmqpTemplate; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.util.HashSet; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
/** |
|
|
|
* @author AUSU |
|
|
|
@ -48,6 +59,8 @@ public class DeliverService implements IDeliverService{ |
|
|
|
private ProRoleMemberDao roleMemberDao; |
|
|
|
@Resource |
|
|
|
private Snowflake snowflake; |
|
|
|
@Resource |
|
|
|
private AmqpTemplate rabbitTemplate; |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<CDeliverVo.Checker> queryChecker(CDeliverDto.QueryChecker params, Long userId) { |
|
|
|
@ -56,7 +69,7 @@ public class DeliverService implements IDeliverService{ |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void saveDeliver(CDeliverDto.SaveDeliver params, Long userId) { |
|
|
|
public void saveDeliver(CDeliverDto.SaveDeliver params, Long userId) throws Exception { |
|
|
|
if (CollectionUtil.isEmpty(params.getCheckerList())) { |
|
|
|
throw new BaseException(CommonCodeError.CHECKER_DONT_NULL); |
|
|
|
} |
|
|
|
@ -100,6 +113,37 @@ public class DeliverService implements IDeliverService{ |
|
|
|
deliverCheckerDao.insertSelective(deliverChecker); |
|
|
|
} |
|
|
|
//TODO 发送消息
|
|
|
|
sendToDeliverUploadMessage(params, userId, taskSub.getTaskDetailId(), proDeliver.getId()); |
|
|
|
} |
|
|
|
|
|
|
|
public void sendToDeliverUploadMessage(CDeliverDto.SaveDeliver params, Long userId, Long taskDetailId, Long deliverId) throws Exception { |
|
|
|
//获取任务所属的角色id
|
|
|
|
Long roleId = roleDao.getRoleIdByTaskDetailId(taskDetailId); |
|
|
|
//获取成员id和成员名
|
|
|
|
CMemberVo.MemberIdAndName memberIdAndName = memberDao.getByUserIdAndProjectId(params.getProjectId(), userId); |
|
|
|
Long memberId = null; |
|
|
|
String memberName = null; |
|
|
|
if(ObjectUtil.isNotNull(memberIdAndName)){ |
|
|
|
memberId = memberIdAndName.getId(); |
|
|
|
memberName = memberIdAndName.getName(); |
|
|
|
} |
|
|
|
//发送的消息内容
|
|
|
|
DeliverMessageWithUpload message = new DeliverMessageWithUpload(params.getTaskSubId(), |
|
|
|
taskDetailId,deliverId,roleId,memberId,memberName); |
|
|
|
//通过成员id批量获取userId
|
|
|
|
List<String> userIdList = memberDao.queryUserIdByMemberId(params.getCheckerList()); |
|
|
|
if(CollectionUtil.isNotEmpty(userIdList)){ |
|
|
|
//获取接受者的userId
|
|
|
|
Set<String> userIdSet = new HashSet<>(userIdList); |
|
|
|
//封装成inMessage
|
|
|
|
InMessage inMessage = new InMessage(); |
|
|
|
inMessage.setToDomain(MessageConstant.DomainType.User); |
|
|
|
inMessage.setTos(userIdSet); |
|
|
|
inMessage.setData(JacksonUtil.beanToJson(message)); |
|
|
|
log.info("发送消息--上传交付物--:{}",inMessage); |
|
|
|
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, |
|
|
|
JacksonUtil.beanToJson(inMessage)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -129,7 +173,7 @@ public class DeliverService implements IDeliverService{ |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void checkDeliver(CDeliverDto.CheckDeliver params, Long userId) { |
|
|
|
public void checkDeliver(CDeliverDto.CheckDeliver params, Long userId) throws Exception { |
|
|
|
Long userOfMemberId = memberDao.findUserOfMemberId(params.getProjectId(), userId); |
|
|
|
ProDeliverChecker deliverChecker = deliverCheckerDao.selectByPrimaryKey(params.getCheckId()); |
|
|
|
if (!userOfMemberId.equals(deliverChecker.getMemberId())) { |
|
|
|
@ -142,6 +186,48 @@ public class DeliverService implements IDeliverService{ |
|
|
|
deliverCheck.setScore(params.getScore()); |
|
|
|
deliverCheckerDao.updateByPrimaryKeySelective(deliverCheck); |
|
|
|
//TODO 发送消息
|
|
|
|
sendToDeliverCheckerMessage(deliverChecker.getDeliverId(),params.getProjectId(),userId); |
|
|
|
} |
|
|
|
|
|
|
|
private void sendToDeliverCheckerMessage(Long deliverId, Long projectId, Long userId) throws Exception { |
|
|
|
Long subTaskId = null; |
|
|
|
Long taskDetailId = null; |
|
|
|
Long roleId = null; |
|
|
|
Long memberId = null; |
|
|
|
String memberName = null; |
|
|
|
//获取任务信息
|
|
|
|
ProDeliver deliver = deliverDao.selectByPrimaryKey(deliverId); |
|
|
|
if(ObjectUtil.isNotNull(deliver)){ |
|
|
|
subTaskId = deliver.getTaskSubId(); |
|
|
|
ProTaskSub taskSub = taskSubDao.selectByPrimaryKey(deliver.getTaskSubId()); |
|
|
|
if(ObjectUtil.isNotNull(taskSub)){ |
|
|
|
taskDetailId = taskSub.getTaskDetailId(); |
|
|
|
//获取任务所属的角色id
|
|
|
|
roleId = roleDao.getRoleIdByTaskDetailId(taskDetailId); |
|
|
|
} |
|
|
|
} |
|
|
|
//获取成员id和成员名
|
|
|
|
CMemberVo.MemberIdAndName memberIdAndName = memberDao.getByUserIdAndProjectId(projectId, userId); |
|
|
|
if(ObjectUtil.isNotNull(memberIdAndName)){ |
|
|
|
memberId = memberIdAndName.getId(); |
|
|
|
memberName = memberIdAndName.getName(); |
|
|
|
} |
|
|
|
//发送的消息内容
|
|
|
|
DeliverMessageWithChecker checkerMessage = new DeliverMessageWithChecker(subTaskId,taskDetailId,deliverId,roleId,memberId,memberName); |
|
|
|
//获取上传者的userId(消息接收者)
|
|
|
|
ProMember uploadMember = memberDao.selectByPrimaryKey(deliver.getMemberId()); |
|
|
|
if(ObjectUtil.isNotNull(uploadMember)){ |
|
|
|
Set<String> userIdSet = new HashSet<>(); |
|
|
|
userIdSet.add(uploadMember.getUserId().toString()); |
|
|
|
//封装成inMessage
|
|
|
|
InMessage inMessage = new InMessage(); |
|
|
|
inMessage.setToDomain(MessageConstant.DomainType.User); |
|
|
|
inMessage.setTos(userIdSet); |
|
|
|
inMessage.setData(JacksonUtil.beanToJson(checkerMessage)); |
|
|
|
log.info("发送消息--检查交付物--:{}",inMessage); |
|
|
|
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, |
|
|
|
JacksonUtil.beanToJson(inMessage)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|