|
@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.github.jfcloud.admin.api.sys.dto.message.MessageUserDTO;
|
|
|
import com.github.jfcloud.common.core.util.R;
|
|
|
import com.github.jfcloud.common.data.datascope.DataScope;
|
|
|
import com.github.jfcloud.common.holder.RequestHolder;
|
|
@@ -44,10 +45,13 @@ import com.github.jfcloud.gene.form.entity.StrainCustomInfo;
|
|
|
import com.github.jfcloud.gene.form.entity.StrainPurificationInfo;
|
|
|
import com.github.jfcloud.gene.form.service.StrainCustomInfoService;
|
|
|
import com.github.jfcloud.gene.form.service.StrainPurificationInfoService;
|
|
|
+import com.github.jfcloud.gene.sys.service.DBSystemPropertiesService;
|
|
|
import com.github.jfcloud.gene.util.WordDataService;
|
|
|
import com.github.jfcloud.gene.util.WordUtil;
|
|
|
+import com.github.jfcloud.project.api.dto.LacmsProjectDTO;
|
|
|
import com.github.jfcloud.project.api.dto.ProjectFeignDTO;
|
|
|
import com.github.jfcloud.project.api.feign.RemoteProjectService;
|
|
|
+import com.github.jfcloud.project.api.feign.SubProjectFeign;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.SneakyThrows;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -65,6 +69,7 @@ import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -79,7 +84,9 @@ public class FlowInfoServiceImpl extends ServiceImpl<FlowInfoMapper, FlowInfo> i
|
|
|
private final FileInfoService fileInfoService;
|
|
|
private final FlowFileVersionService fileVersionService;
|
|
|
private final RemoteProjectService remoteProjectService;
|
|
|
+ private final SubProjectFeign subProjectFeign;
|
|
|
private final FlowAuditService flowAuditService;
|
|
|
+ private final DBSystemPropertiesService systemPropertiesService;
|
|
|
|
|
|
@Override
|
|
|
public Page<FlowPageDto> getPage(FlowPageVo vo) {
|
|
@@ -304,17 +311,41 @@ public class FlowInfoServiceImpl extends ServiceImpl<FlowInfoMapper, FlowInfo> i
|
|
|
projectFeignDTO.setLeaders(nickname);
|
|
|
|
|
|
log.info("推送科研项目:flowId={}, param={}", id, JSON.toJSONString(projectFeignDTO));
|
|
|
-
|
|
|
R<Long> longR = remoteProjectService.initProject(projectFeignDTO);
|
|
|
if (!longR.isOk()) {
|
|
|
log.error("projectId={}推送科研失败,{}", id, longR);
|
|
|
}
|
|
|
Assert.isTrue(longR.isOk(), "操作失败,科研" + longR);
|
|
|
Long kyId = longR.getData();
|
|
|
- new FlowInfo()
|
|
|
- .setId(id)
|
|
|
- .setKyId(kyId)
|
|
|
- .updateById();
|
|
|
+ new FlowInfo().setId(id).setKyId(kyId).updateById();
|
|
|
+
|
|
|
+ //推送数据到动物中心,生成动物中心项目信息
|
|
|
+ LacmsProjectDTO lacmsProjectDTO = new LacmsProjectDTO();
|
|
|
+ lacmsProjectDTO.setKyId(kyId);
|
|
|
+ lacmsProjectDTO.setProjectName(flowInfo.getProjectName());
|
|
|
+ lacmsProjectDTO.setProjectLeader(vo.getProjectLeader());
|
|
|
+ lacmsProjectDTO.setPl(flowInfo.getProjectLeaderName());
|
|
|
+ lacmsProjectDTO.setEthicsCode(flowInfo.getApprovalNo());
|
|
|
+ log.info("推送动物中心:flowId={}, param={}", id, JSON.toJSONString(lacmsProjectDTO));
|
|
|
+ subProjectFeign.initProject(lacmsProjectDTO);
|
|
|
+
|
|
|
+ //通知相关人
|
|
|
+ String userIds = systemPropertiesService.getValue("gene.execute.id");
|
|
|
+ if (StrUtil.isNotBlank(userIds)) {
|
|
|
+ //钉钉通知
|
|
|
+ if (systemPropertiesService.getBooleanValue("gene.execute.dingding.enable")) {
|
|
|
+ List<MessageUserDTO> userList = Stream.of(userIds.split(","))
|
|
|
+ .filter(StrUtil::isNotBlank)
|
|
|
+ .map(x -> {
|
|
|
+ MessageUserDTO messageUserDTO = new MessageUserDTO();
|
|
|
+ messageUserDTO.setUserId(Long.parseLong(x));
|
|
|
+ return messageUserDTO;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ String dingMsg = String.format("【基因定制/%s】【%s】已执行,请查看", flowInfo.getProjectName(), UserUtil.getNickName());
|
|
|
+ notifyService.sendDingding(dingMsg, userList);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|