|
@@ -8,9 +8,11 @@ import cn.cslg.pas.common.model.request.QueryRequest;
|
|
|
import cn.cslg.pas.common.model.request.StringRequest;
|
|
|
import cn.cslg.pas.common.utils.CacheUtils;
|
|
|
import cn.cslg.pas.common.utils.LoginUtils;
|
|
|
+import cn.cslg.pas.common.vo.DepartmentVO;
|
|
|
import cn.cslg.pas.common.vo.business.EventCountVO;
|
|
|
import cn.cslg.pas.common.vo.business.EventVO;
|
|
|
import cn.cslg.pas.common.vo.business.PatentProjectVO;
|
|
|
+import cn.cslg.pas.common.vo.business.ReportCountVO;
|
|
|
import cn.cslg.pas.domain.business.*;
|
|
|
|
|
|
import cn.cslg.pas.exception.UnLoginException;
|
|
@@ -18,8 +20,6 @@ import cn.cslg.pas.exception.XiaoShiException;
|
|
|
import cn.cslg.pas.factorys.businessFactory.Business;
|
|
|
import cn.cslg.pas.factorys.reGroupFactory.QueryGroupFactory;
|
|
|
import cn.cslg.pas.factorys.reGroupFactory.QueryGroupImp;
|
|
|
-import cn.cslg.pas.mapper.AssoProjectEventMapper;
|
|
|
-import cn.cslg.pas.mapper.EventMapper;
|
|
|
import cn.cslg.pas.mapper.PatentProjectMapper;
|
|
|
import cn.cslg.pas.service.common.FileManagerService;
|
|
|
import cn.cslg.pas.service.permissions.PermissionService;
|
|
@@ -37,15 +37,13 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
public class PatentProjectService extends ServiceImpl<PatentProjectMapper, PatentProject> implements Business {
|
|
|
- @Autowired
|
|
|
- private EventMapper eventMapper;
|
|
|
|
|
|
@Autowired
|
|
|
private PatentProjectMapper patentProjectMapper;
|
|
@@ -74,6 +72,11 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
|
|
|
@Autowired
|
|
|
private AssoProjectFileService assoProjectFileService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private FileManagerService fileManagerService;
|
|
|
+ @Autowired
|
|
|
+ private AssoProjectService assoProjectService;
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Object queryMessage(QueryRequest queryRequest) throws Exception {
|
|
@@ -81,12 +84,14 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
|
|
|
List<String> sqls = formatQueryService.reSqls(queryRequest, "patentProject");
|
|
|
//根据sql查询专题库信息
|
|
|
List<PatentProjectVO> patentProjectVOS = patentProjectMapper.getPatentProject(sqls.get(0), sqls.get(1), sqls.get(2));
|
|
|
-
|
|
|
- //装载事件信息
|
|
|
+ Long total = patentProjectMapper.getPatentProjectCount(sqls.get(0));
|
|
|
+ //装载专利数据库信息
|
|
|
+ this.loadPatentProject(patentProjectVOS);
|
|
|
Records records = new Records();
|
|
|
records.setCurrent(queryRequest.getCurrent());
|
|
|
records.setSize(queryRequest.getSize());
|
|
|
records.setData(patentProjectVOS);
|
|
|
+ records.setTotal(total);
|
|
|
return records;
|
|
|
}
|
|
|
|
|
@@ -190,6 +195,9 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Object addMessage(Object object) {
|
|
|
+ if (object == null) {
|
|
|
+ throw new XiaoShiException("参数不能为空");
|
|
|
+ }
|
|
|
//TODO 校验参数
|
|
|
PatentProjectDTO patentProjectDTO = (PatentProjectDTO) object;
|
|
|
//判断是否选择更新并且上传了cron表达式
|
|
@@ -237,11 +245,9 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
|
|
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
Integer clientId = Integer.parseInt(jsonObject.get("data").toString());
|
|
|
project.setEntrustId(clientId.toString());
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new XiaoShiException("网络异常");
|
|
|
}
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
- throw new XiaoShiException("网络异常");
|
|
|
- }
|
|
|
|
|
|
}
|
|
|
} else {
|
|
@@ -251,8 +257,6 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
|
|
|
project.setEntrustId(patentProjectDTO.getEntrustId());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
project.setCreateId(personnelVO.getId());
|
|
|
project.setTenantId(personnelVO.getTenantId());
|
|
@@ -384,12 +388,191 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 装载事件返回类
|
|
|
- *
|
|
|
- * @param eventVOs
|
|
|
+ * @param patentProjectVOS
|
|
|
+ * @throws IOException
|
|
|
*/
|
|
|
- private void loadPatentProject(List<EventVO> eventVOs) throws IOException {
|
|
|
+ private void loadPatentProject(List<PatentProjectVO> patentProjectVOS) throws IOException {
|
|
|
+ List<String> createIds = new ArrayList<>();
|
|
|
+ List<String> departmentIds = new ArrayList<>();
|
|
|
+ List<Integer> clientIds =new ArrayList<>();
|
|
|
+ List<Integer> ids = new ArrayList<>();
|
|
|
+ List<DepartmentVO> departmentVOS =new ArrayList<>();
|
|
|
+ List<ReportCountVO> reportCountVOS = new ArrayList<>();
|
|
|
+ List<Client> clients = new ArrayList<>();
|
|
|
+ List<AssoProjectEvent> assoProjectEvents =new ArrayList<>();
|
|
|
+ List<AssoProjectTreeNode> assoProjectTreeNodes =new ArrayList<>();
|
|
|
+ List<Event> events =new ArrayList<>();
|
|
|
+ //获得创建人id集合
|
|
|
+ patentProjectVOS.forEach(
|
|
|
+ item -> {
|
|
|
+
|
|
|
+ if (item.getCreateId() != null) {
|
|
|
+ createIds.add(item.getCreateId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (item.getHeadId() != null) {
|
|
|
+ createIds.add(item.getHeadId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (item.getId() != null) {
|
|
|
+ ids.add(item.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (item.getDepartmentId() != null) {
|
|
|
+ departmentIds.add(item.getDepartmentId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(item.getEntrustType()!=null&&item.getEntrustType().equals(2))
|
|
|
+ {
|
|
|
+ departmentIds.add(item.getEntrustId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(item.getEntrustType()!=null&&item.getEntrustType().equals(1))
|
|
|
+ {
|
|
|
+ clientIds.add(Integer.parseInt(item.getEntrustId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
+ List<Personnel> personnels = new ArrayList<>();
|
|
|
+ List<String> guids = new ArrayList<>();
|
|
|
+ List<SystemFile> systemFiles = new ArrayList<>();
|
|
|
+ List<AssoProjectFile> assoEventFiles = new ArrayList<>();
|
|
|
+
|
|
|
+ //查询创建人名称
|
|
|
+ if (createIds.size() != 0) {
|
|
|
+ String res = permissionService.getPersonnelByIdsFromPCS(createIds);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
+ personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询部门名称
|
|
|
+ if (departmentIds.size() != 0) {
|
|
|
+ String json = permissionService.getDepartmentByIdsFromPCS(departmentIds);
|
|
|
+ departmentVOS = JSON.parseArray(json,DepartmentVO.class);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (ids.size() != 0) {
|
|
|
+ //根据事件id获得事件文件关联表
|
|
|
+ LambdaQueryWrapper<AssoProjectFile> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.in(AssoProjectFile::getProjectId, ids);
|
|
|
+ assoEventFiles = assoProjectFileService.list(queryWrapper);
|
|
|
+ guids = assoEventFiles.stream().map(AssoProjectFile::getFileGuid).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //根据事件id分组查询事件关联专题库或报告数量
|
|
|
+ reportCountVOS = assoProjectService.getBaseMapper().getReportCount(ids);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //查询文件
|
|
|
+ if (guids.size() != 0) {
|
|
|
+ String res = fileManagerService.getSystemFileFromFMS(guids);
|
|
|
+
|
|
|
+ systemFiles = JSONObject.parseArray(res, SystemFile.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询客户名称
|
|
|
+ if (clientIds.size() != 0) {
|
|
|
+ String res = permissionService.getClientByIdsFromPCS(clientIds);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
+ clients = JSONObject.parseArray(jsonObject.getString("data"), Client.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询应用场景、调查类型、事件和专题库的关联
|
|
|
+ if(ids!=null&&ids.size()>0) {
|
|
|
+ LambdaQueryWrapper<AssoProjectEvent> assoProjectEventQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ assoProjectEventQueryWrapper.in(AssoProjectEvent::getProjectId, ids);
|
|
|
+ assoProjectEvents = assoProjectEventService.list(assoProjectEventQueryWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询和产品,产品分类,技术分类关联列表
|
|
|
+ if(ids!=null&&ids.size()>0){
|
|
|
+ LambdaQueryWrapper<AssoProjectTreeNode> assoProjectTreeNodeQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ assoProjectTreeNodeQueryWrapper.in(AssoProjectTreeNode::getProjectId, ids);
|
|
|
+ assoProjectTreeNodes = assoProjectTreeNodeService.list(assoProjectTreeNodeQueryWrapper);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载信息
|
|
|
+ for (PatentProjectVO patentProjectVO : patentProjectVOS) {
|
|
|
+
|
|
|
+ //装载人员信息
|
|
|
+ Personnel personnel = personnels.stream().filter(item -> item.getId().equals(patentProjectVO.getCreateId())).findFirst().orElse(null);
|
|
|
+ if (personnel != null) {
|
|
|
+ patentProjectVO.setCreateName(personnel.getPersonnelName());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(patentProjectVO.getHeadId()!=null) {
|
|
|
+ Personnel headPersonnel = personnels.stream().filter(item -> item.getId().equals(patentProjectVO.getHeadId())).findFirst().orElse(null);
|
|
|
+ if (headPersonnel != null) {
|
|
|
+ patentProjectVO.setHeadName(personnel.getPersonnelName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载文件信息
|
|
|
+ List<AssoProjectFile> assoProjectFileTemp = assoEventFiles.stream().filter(item -> item.getProjectId().equals(patentProjectVO.getId())).collect(Collectors.toList());
|
|
|
+ if (assoProjectFileTemp.size() != 0) {
|
|
|
+ List<String> guidTemp = assoProjectFileTemp.stream().map(AssoProjectFile::getFileGuid).collect(Collectors.toList());
|
|
|
+ if (guidTemp.size() != 0) {
|
|
|
+ List<SystemFile> systemFileTemp = systemFiles.stream().filter(item -> guidTemp.contains(item.getGuid())).collect(Collectors.toList());
|
|
|
+ if (systemFileTemp.size() != 0) {
|
|
|
+ patentProjectVO.setSystemFileList(systemFileTemp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ //装载报告数量
|
|
|
+ if (reportCountVOS.size() != 0) {
|
|
|
+
|
|
|
+ //报告数量
|
|
|
+ ReportCountVO reportCountVO = reportCountVOS.stream().filter(item ->
|
|
|
+ item.getProjectId().equals(patentProjectVO.getId())).findFirst().orElse(null);
|
|
|
+
|
|
|
+ //设置报告数量
|
|
|
+ if (reportCountVO != null) {
|
|
|
+ patentProjectVO.setReportProjectNum(reportCountVO.getProjectCount());
|
|
|
+ } else {
|
|
|
+ patentProjectVO.setReportProjectNum(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ patentProjectVO.setReportProjectNum(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载部门
|
|
|
+ if(patentProjectVO.getDepartmentId()!=null){
|
|
|
+ DepartmentVO departmentVO = departmentVOS.stream().filter(item->item.getDepartId().equals(patentProjectVO.getDepartmentId())).findFirst().orElse(null);
|
|
|
+ if(departmentVO!=null){
|
|
|
+ patentProjectVO.setDepartmentName(departmentVO.getDepartName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //裝載委托方
|
|
|
+ if(patentProjectVO.getEntrustType()!=null){
|
|
|
+ //当委托方为客户时
|
|
|
+ if(patentProjectVO.getEntrustType().equals(1)){
|
|
|
+ Client client = clients.stream().filter(item->item.getId().equals(Integer.parseInt(patentProjectVO.getEntrustId()))).findFirst().orElse(null);
|
|
|
+
|
|
|
+ if(client!=null){
|
|
|
+ patentProjectVO.setEntrustName(client.getName());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ else if(patentProjectVO.getEntrustType().equals(2)){
|
|
|
+ DepartmentVO departmentVO = departmentVOS.stream().filter(item->item.getDepartId().equals(patentProjectVO.getEntrustId())).findFirst().orElse(null);
|
|
|
+
|
|
|
+ if(departmentVO!=null){
|
|
|
+ patentProjectVO.setEntrustName(departmentVO.getDepartName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|