Explorar o código

Merge remote-tracking branch 'origin/master'

chendayu %!s(int64=2) %!d(string=hai) anos
pai
achega
93ccdb37db

+ 71 - 0
RMS/src/main/java/cn/cslg/report/controller/OutSidersController.java

@@ -0,0 +1,71 @@
+package cn.cslg.report.controller;
+
+import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.vo.CompareFilesVO;
+import cn.cslg.report.common.model.vo.PatentVO;
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.Task;
+import cn.cslg.report.entity.asso.SyneryCode;
+import cn.cslg.report.service.business.CompareFilesService;
+import cn.cslg.report.service.business.TaskService;
+import cn.cslg.report.service.business.asso.SyneryCodeService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+@SuppressWarnings({"all"})
+@Tag(name = "外部人员调用接口")
+@RestController
+@RequestMapping(Constants.REPORT_API + "/outSiders")
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+
+public class OutSidersController {
+    private final SyneryCodeService syneryCodeService;
+    private final TaskService taskService;
+    @RequestMapping(value = "/getTaskByCode", method = RequestMethod.GET)
+    @Operation(summary = "根据code码获得任务信息")
+    public String getTaskByCode(String code) throws IOException {
+        //根据code码获得taskId
+        LambdaQueryWrapper<SyneryCode> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SyneryCode::getCode, code);
+        List<SyneryCode> syneryCodes = syneryCodeService.list(queryWrapper);
+        if (syneryCodes.size() != 0) {
+            SyneryCode syneryCode = syneryCodes.get(0);
+            //根据taskId获得task信息
+            Task task = taskService.getById(syneryCode.getTaskId());
+
+            return Response.success(task);
+        }
+        return Response.error("code码输入错误");
+    }
+
+    @RequestMapping(value = "/getTaskByCo", method = RequestMethod.GET)
+    @Operation(summary = "根据code码获得任务")
+    public String getTas() throws IOException {
+        String str = "用户表<user><123>";
+        String parStr = "\\<([^}]*)\\>";
+        Pattern pattern = Pattern.compile(parStr);
+        Matcher matcher = pattern.matcher(str);
+        List<String> list =new ArrayList<>();
+        while (matcher.find()){
+      String a =     str .substring(0, matcher.start());list.add(matcher.group());
+            System.out.println(matcher.group()+":"+a);
+        }
+
+        return Response.error("code码输入错误");
+    }
+}

+ 10 - 9
RMS/src/main/java/cn/cslg/report/service/OutInterfaceService.java

@@ -224,7 +224,6 @@ public class OutInterfaceService {
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
                 .url(PCSUrl + "/permission/api/system/getPersonnelByIds")
-                .addHeader("Cookie", LoginUtils.getToken())
                 .post(requestBody)
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
@@ -281,30 +280,32 @@ public class OutInterfaceService {
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
                 .url(PASUrl + "/api/v2/patent/right?patentNo=" + patentNo)
-//                .addHeader("Cookie", LoginUtils.getToken())
                 .get()
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
 
-    public String getClientNameFromPAS(Integer id) throws IOException {
+    public String getDeparts(List<Integer> ids) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
+        String param = new Gson().toJson(ids);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
         Request request = new Request.Builder()
-                .url(PASUrl + "/api/v2/client/getClientName?id=" + id)
-                .get()
+                .url(PCSUrl + "/permission/api/system/getDeparts")
+                .post(requestBody)
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
 
-    public String getPersonNameAndDepart(Integer personId, Integer departId) throws IOException {
+    public String getClientNameFromPAS(List<Integer> ids) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
+        String param = new Gson().toJson(ids);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
         Request request = new Request.Builder()
-                .url(PCSUrl + "/permission/api/system/getPersonNameAndDepart?personId=" + personId + "&departId=" + departId)
-                .get()
+                .url(PASUrl + "/api/v2/system/getClientsByIds")
+                .post(requestBody)
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
-
     public String getPatentNos(Integer projectId) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()

+ 3 - 1
RMS/src/main/java/cn/cslg/report/service/business/CompareMessageService.java

@@ -140,7 +140,9 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
               }
 
             }
-            BeanUtil.copyProperties(compareMessage, compareMessageVO);
+            compareMessageVO.setCompareResult(compareMessage.getCompareResult());
+            compareMessageVO.setCompareDescription(compareMessage.getCompareDescription());
+            compareMessageVO.setTargetDescription(compareMessage.getTargetDescription());
             compareMessageVOS.add(compareMessageVO);
         });
         //将拆解的权要和特征装载到对象PatentRightVo

+ 44 - 17
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -6,14 +6,14 @@ import cn.cslg.report.common.model.vo.ReportVO;
 import cn.cslg.report.common.model.vo.SystemDictVO;
 import cn.cslg.report.common.utils.*;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
+import cn.cslg.report.entity.Personnel;
 import cn.cslg.report.entity.Report;
 
 import cn.cslg.report.entity.ReportFiles;
 import cn.cslg.report.entity.asso.AssoReportFile;
 import cn.cslg.report.mapper.ReportMapper;
-import cn.cslg.report.service.IProductService;
 import cn.cslg.report.service.OutInterfaceService;
-import cn.cslg.report.service.impl.ProductServiceImpl;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -53,7 +53,6 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     private final TaskService taskService;
     private final FeatureService featureService;
     private final CompareScenariosService compareScenariosService;
-    private final IProductService productService;
 
     /**
      * @param report 报告类
@@ -64,7 +63,6 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         try {
             report.getScenarioList();
             report.setScenarioId(StringUtils.join(report.getScenarioList(), ","));
-
             if (report.getAssociateReportId() != null) {
                 LambdaQueryWrapper<Report> wrapper = new LambdaQueryWrapper<>();
                 wrapper.eq(Report::getId, report.getAssociateReportId());
@@ -143,16 +141,14 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         //提出报告Id
         List<Integer> reportIds = reports.stream().map(Report::getId).collect(Collectors.toList());
         // 提出客户Id
-        List<Integer> clientId = reports.stream().map(Report::getClientId).collect(Collectors.toList());
+        List<Integer> clientIds = reports.stream().map(Report::getClientId).collect(Collectors.toList());
         //提出部门Id
-        List<Integer> departId = reports.stream().map(Report::getDepartmentId).collect(Collectors.toList());
+        List<Integer> departIds = reports.stream().map(Report::getDepartmentId).collect(Collectors.toList());
         //提出人员Id
-        List<Integer> personId = reports.stream().map(Report::getDepartmentId).collect(Collectors.toList());
+        List<Integer> personIds = reports.stream().map(Report::getDepartmentId).collect(Collectors.toList());
         //提出创建人Id
-        List<Integer> createId = reports.stream().map(Report::getCreatePersonId).collect(Collectors.toList());
-        //根据客户Id查出客户信息
-
-
+        List<Integer> createIds = reports.stream().map(Report::getCreatePersonId).collect(Collectors.toList());
+        personIds.addAll(createIds);
         //根据报告ID查询报告文件关联信息
         List<AssoReportFile> assoReportFiles = assoReportFileService.queryFileByReportId(reportIds);
         List<ReportFiles> reportFilesList = new ArrayList<>();
@@ -160,14 +156,46 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
             List<Integer> fileIds = assoReportFiles.stream().map(AssoReportFile::getFileId).collect(Collectors.toList());
             reportFilesList = reportFileService.getFiles(fileIds);
         }
-
         String res = outInterfaceService.getDictsFromPAS();
         JSONObject jsonObject = JSONObject.parseObject(res);
         List<SystemDictVO> list = JSONArray.parseArray(jsonObject.getString("data"), SystemDictVO.class);
         List<ReportFiles> temList = reportFilesList;
+        //根据人员Id获得人员信息
+        String res1 = outInterfaceService.getPersonnelByIdsFromPCS(personIds);
+        JSONObject jsonObject1 = JSONObject.parseObject(res1);
+        //解析jason获得标的专利的权要
+        List<Personnel> personnels = JSON.parseArray(jsonObject1.getString("data"), Personnel.class);
+        //根据部门Id 获得部门信息
+        List<Map<String, Object>> mapDeparts =new ArrayList<>();
+        if(departIds.size()!=0) {
+            String res2 = outInterfaceService.getDeparts(departIds);
+            mapDeparts = JSONObject.parseArray(res2);
+        }
+        //根据客户Id 获得客户信息
+        List<Map<String, Object>> mapClients =new ArrayList<>();
+        if(clientIds.size()!=0) {
+            String res3 = outInterfaceService.getClientNameFromPAS(clientIds);
+            mapClients =JSONObject.parseArray(res3);
+        }
         //过滤报告
-        reports.forEach(
-                item -> {
+        for(Report item :reports){
+                    //装载创建人名和负责人名
+                    List<Personnel> mapCre = personnels.stream().filter(tem -> tem.getId().equals(item.getPersonId())).collect(Collectors.toList());
+                    List<Personnel> mapDuty = personnels.stream().filter(tem -> tem.getId().equals(item.getCreatePersonId())).collect(Collectors.toList());
+                    if(mapDuty.size()!=0)
+                    item.setPersonName(mapDuty.get(0).getPersonnelName());
+                    if(mapCre.size()!=0)
+                    item.setCreatePersonName(mapCre.get(0).getPersonnelName());
+                    //装载部门名
+                    List<Map<String, Object>> mapDeaprt = mapDeparts.stream().filter(tem -> tem.get("departId").toString().equals(item.getDepartmentId().toString())).collect(Collectors.toList());
+                     if(mapDeaprt.size()!=0){
+                         item.setDepartmentName(mapDeaprt.get(0).get("departName").toString());
+                     }
+                     //装载客户
+                    List<Map<String, Object>> mapClient = mapClients.stream().filter(tem -> tem.get("clientId").toString().equals(item.getClientId().toString())).collect(Collectors.toList());
+                    if(mapClient.size()!=0){
+                        item.setClientName(mapClient.get(0).get("clientName").toString());
+                    }
                     //装载报告应用场景
                     if (StringUtils.isNotEmpty(item.getScenarioId())) {
                         item.setScenarioList(StringUtils.changeStringToString(item.getScenarioId(), ","));
@@ -183,8 +211,7 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
                         List<ReportFiles> partFiles = temList.stream().filter(tem -> partFileIds.contains(tem.getId())).collect(Collectors.toList());
                         item.setReportFiles(partFiles);
                     }
-                });
-
+                }
         return reports;
     }
 
@@ -244,7 +271,7 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         compareScenariosService.deleteByReportId(id);
         assoTaskPersonelService.deleAssoTaskPersonel(id);
         //陈宇 ↓ 删除和报告有关的产品表数据、删除和产品有关的产品文件关联表数据、删除和产品有关的附件图片文件表数据
-        productService.deleteProduct(id);
+//        productService.deleteProduct(id);
 
         int dele = reportMapper.dele(id);
         if (dele > 0) {

+ 44 - 3
RMS/src/main/java/cn/cslg/report/service/business/TaskService.java

@@ -41,6 +41,8 @@ import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 @Service
@@ -604,7 +606,12 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         task.setProgress(0.0);
         task.setEndTime(syneryVO.getEndTime());
         task.setRemark(syneryVO.getRemark());
-        task.setHandlePersonId(syneryVO.getHandlePersonId());
+        if(syneryVO.getHandlePersonId() !=null){
+            task.setHandlePersonId(syneryVO.getHandlePersonId());
+        }
+        else{
+            task.setHandlePersonName(syneryVO.getPersonEmail());
+        }
         task.setCreateID(loginUtils.getId());
         task.insert();
         QueryCMVO queryCMVO = new QueryCMVO();
@@ -643,12 +650,46 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
             });
             syneryCCService.saveBatch(synery_ccs);
         }
+
         String code =DataUtils.generateShortUuid();
         SyneryCode syneryCode =new SyneryCode();
         syneryCode.setCode(code);
         syneryCode.setTaskId(task.getId());
+        syneryCode.insert();
+        Map<String, Object> map = new LinkedHashMap<>();
+        map.put("title", "任务通知");
+        map.put("template", "mail/Synery.html");
+        if(syneryVO.getHandlePersonId()!=null) {
+            String resBody = outInterfaceService.getPersonnelByIdsFromPCS(Arrays.asList(task.getHandlePersonId()));
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            //解析jason获得标的专利的权要
+            List<Personnel> personnels = JSON.parseArray(jsonObject.getString("data"), Personnel.class);
+            map.put("value1", personnels.get(0).getPersonnelName());
+            map.put("email", personnels.get(0).getPersonnelEmail());
+            map.put("img", "\\src\\main\\resources\\mail\\logo.png");
+            map.put("value2", syneryCode.getCode());
+            map.put("value3", "http://localhost:8086/identificationCode");
+            mailUtils.sendEmailMessage(map);
+        }
+      else{
+          String orgin = syneryVO.getPersonEmail();
+            String parStr = "\\<([^}]*)\\>";
+            Pattern pattern = Pattern.compile(parStr);
+            Matcher matcher = pattern.matcher(orgin);
+            if(matcher.find()) {
+                String personName = orgin.substring(0, matcher.start());
+                String email =matcher.group(0);
+             email =   email.replace("<","");
+                email= email.replace(">","");
+                map.put("value1",personName);
+                map.put("email",email);
+                map.put("img", "\\src\\main\\resources\\mail\\logo.png");
+                map.put("value2", syneryCode.getCode());
+                map.put("value3", "http://localhost:8086/identificationCode");
+                mailUtils.sendEmailMessage(map);
+            }
+        }
+
         return Response.success();
     }
-
-
 }

+ 1 - 1
RMS/src/main/resources/mapper/ReportFieldMapper.xml

@@ -127,7 +127,7 @@
         select distinct c.PATENT_NO from COMPARE_FILES c <where>
         <foreach collection="params" item="item" separator=" and ">
             c.PATENT_NO in (
-            select  distinct a.PATENT_NO from ASSO_TASK_PERSONEL a left join  OS_PATENT_FIELD_PATENT_LINK b on a.PATENT_NO =b.PATENT_NO
+            select  distinct a.PATENT_NO from ASSO_TASK_PATENT a left join  OS_PATENT_FIELD_PATENT_LINK b on a.PATENT_NO =b.PATENT_NO
             and a.REPORT_ID=b.REPORT_ID and b.CID=#{item.field}
             <where>
                 a.TASK_ID=#{taskId}

BIN=BIN
RMS/target/classes/cn/cslg/report/service/OutInterfaceService.class


BIN=BIN
RMS/target/classes/cn/cslg/report/service/business/CompareMessageService.class


BIN=BIN
RMS/target/classes/cn/cslg/report/service/business/ReportService.class


BIN=BIN
RMS/target/classes/cn/cslg/report/service/business/TaskService.class


+ 1 - 1
RMS/target/classes/mapper/ReportFieldMapper.xml

@@ -127,7 +127,7 @@
         select distinct c.PATENT_NO from COMPARE_FILES c <where>
         <foreach collection="params" item="item" separator=" and ">
             c.PATENT_NO in (
-            select  distinct a.PATENT_NO from ASSO_TASK_PERSONEL a left join  OS_PATENT_FIELD_PATENT_LINK b on a.PATENT_NO =b.PATENT_NO
+            select  distinct a.PATENT_NO from ASSO_TASK_PATENT a left join  OS_PATENT_FIELD_PATENT_LINK b on a.PATENT_NO =b.PATENT_NO
             and a.REPORT_ID=b.REPORT_ID and b.CID=#{item.field}
             <where>
                 a.TASK_ID=#{taskId}