Переглянути джерело

根据名称装载自定义字段

lwhhszx 1 рік тому
батько
коміт
c7390cea05

+ 2 - 0
src/main/java/cn/cslg/pas/common/vo/business/ReportProjectVO.java

@@ -222,4 +222,6 @@ public class ReportProjectVO {
     private Boolean ifSecondInvalid;
     @Schema(description = "主被动类型")
     private Integer actType;
+    @Schema(description = "专利类型")
+   private Integer patentType;
 }

+ 54 - 0
src/main/java/cn/cslg/pas/common/vo/invalidVO/InvalidStatutesVO.java

@@ -34,6 +34,51 @@ public class InvalidStatutesVO {
     private Integer relatedContent;
 
     /**
+     * 无效理由详情
+     */
+    private String invalidReasonDetail;
+
+    /**
+     * 一审起诉人意见
+     */
+    private String prosecutorOpinions1;
+
+    /**
+     * 一审被诉人意见
+     */
+    private String respondentOpinions1;
+
+    /**
+     * 一审第三方意见
+     */
+    private String thirdOpinions1;
+
+    /**
+     * 一审法院意见
+     */
+    private String courtOpinions1;
+
+    /**
+     * 二审起诉人意见
+     */
+    private String prosecutorOpinions2;
+
+    /**
+     * 二审被诉人意见
+     */
+    private String respondentOpinions2;
+
+    /**
+     * 二审第三方意见
+     */
+    private String thirdOpinions2;
+
+    /**
+     * 二审法院意见
+     */
+    private String courtOpinions2;
+
+    /**
      * 权利要求id
      */
     private Integer claimId;
@@ -42,4 +87,13 @@ public class InvalidStatutesVO {
 
     private String claimText;
 
+
+    private String rbDecision;
+
+    private String courtDecision1;
+
+    private String courtDecision2;
+
+
+
 }

+ 6 - 3
src/main/java/cn/cslg/pas/controller/PatentClaimController.java

@@ -41,6 +41,7 @@ public class PatentClaimController {
         return Response.success(records);
     }
 
+
     @Operation(summary = "保存权利要求")
     @PostMapping("/addClaim")
     public Response addClaim(@RequestBody AddClaimsDTO addClaimsDTO) throws Exception {
@@ -50,13 +51,15 @@ public class PatentClaimController {
             return Response.success("添加成功");
         }
         return Response.error("添加失败");
+
     }
 
 
     //更新权要法院意见等信息
     @Operation(summary = "更新权利要求")
-    @PostMapping("/updateClaimMessage")
-    public Response updateClaimMessage(@RequestBody List<UpdateClaimMessageDTO> updateClaimMessageDTOs) throws Exception {
+    @PostMapping("/updateMessage")
+    public Response updateMessage(@RequestBody List<UpdateClaimMessageDTO> updateClaimMessageDTOs) throws Exception {
+
         Boolean flag = patentClaimService.updateClaimMessage(updateClaimMessageDTOs);
         if (!flag) {
             return Response.error("更新失败");
@@ -64,5 +67,5 @@ public class PatentClaimController {
         }
         return Response.success("更新成功");
     }
-    //
+
 }

+ 6 - 0
src/main/java/cn/cslg/pas/domain/business/ReportProject.java

@@ -108,4 +108,10 @@ public class ReportProject extends BaseEntity<ReportProject> {
      */
     @TableField(value = "act_type")
     private Integer actType;
+
+    /**
+     * 主被动类型
+     */
+    @TableField(value = "patent_type")
+    private Integer patentType;
 }

+ 85 - 4
src/main/java/cn/cslg/pas/service/business/CustomFieldService.java

@@ -11,11 +11,10 @@ import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
-import cn.cslg.pas.common.utils.CacheUtils;
-import cn.cslg.pas.common.utils.FormatUtil;
-import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.vo.FieldValueVO;
 import cn.cslg.pas.common.vo.PatentWithIdVO;
+import cn.cslg.pas.common.vo.UploadParamsVO;
 import cn.cslg.pas.common.vo.business.AllCustomFieldVO;
 import cn.cslg.pas.common.vo.business.CustomFieldVO;
 import cn.cslg.pas.common.vo.business.ProductVO;
@@ -391,6 +390,7 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
 
     /**
      * 查询栏位选项
+     *
      * @param queryEsCustomFieldDTO
      * @return
      * @throws Exception
@@ -508,7 +508,7 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
         LambdaQueryWrapper<TreeNode> treeNodeWrapper = new LambdaQueryWrapper<>();
         treeNodeWrapper.eq(TreeNode::getName, name)
                 .eq(TreeNode::getType, 4)
-                .in(TreeNode::getTypeId,ids);
+                .in(TreeNode::getTypeId, ids);
         List<TreeNode> treeNodes = treeNodeService.list(treeNodeWrapper);
 
         if (options != null && options.size() != 0) {
@@ -546,4 +546,85 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
         }
         return esCustomFieldDTOS;
     }
+
+    public List<EsCustomFieldDTO> getCustomFieldDTOs(List<UploadParamsVO.Field> customerFieldList, Integer projectId, Integer taskId) {
+        List<EsCustomFieldDTO> esCustomFieldDTOS = new ArrayList<>();
+        for (UploadParamsVO.Field field : customerFieldList) {
+            String key = field.getKey();
+            List<String> fields = StringUtils.changeStringToString(key, ":");
+            if (fields.size() == 2) {
+                String name = fields.get(0);
+                Integer fieldId = null;
+                List<String> value = field.getFieldList();
+                Integer type = Integer.parseInt(fields.get(1));
+                List<String> select = field.getFieldList();
+                if (StringUtils.isNull(select)) {
+                    return esCustomFieldDTOS;
+                }
+
+                switch (type) {
+                    case 0:
+                        ;
+                    case 1:
+                        ;
+                    case 2:
+                        ;
+                    case 3:
+                        fieldId = this.GetIdByName(name, projectId, type);
+                        break;
+                    case 4:
+
+
+                    case 5:
+                        fieldId = this.GetIdByName(name, projectId, type);
+                        value = customOptionService.getIdsByNames(value, fieldId);
+                        break;
+                    case 6:
+                        //TODO 根据名称和类型查询
+                        fieldId = this.GetIdByName(name, projectId, type);
+                       value =treeNodeService.getIdByNames(value,fieldId,type);
+                        ;
+                }
+
+                EsCustomFieldDTO esCustomFieldDTO = new EsCustomFieldDTO();
+                esCustomFieldDTO.setFieldType(type);
+                esCustomFieldDTO.setFieldId(fieldId.toString());
+                esCustomFieldDTO.setFieldValue(value);
+                esCustomFieldDTO.setProjectId(projectId);
+                esCustomFieldDTO.setTaskId(taskId);
+                esCustomFieldDTOS.add(esCustomFieldDTO);
+            }
+
+        }
+        return esCustomFieldDTOS;
+
+    }
+
+    /**
+     * 根据名称获得自定义字段id
+     *
+     * @param name
+     * @param projectId
+     * @param type
+     * @return
+     */
+    public Integer GetIdByName(String name, Integer projectId, Integer type) {
+        LambdaQueryWrapper<CustomField> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CustomField::getName, name)
+                .eq(CustomField::getProjectId, projectId)
+                .eq(CustomField::getType, type);
+        CustomField customField = this.getOne(queryWrapper);
+        if (customField != null) {
+            return customField.getId();
+        }
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        CustomField customField1 = new CustomField();
+        customField1.setName(name);
+        customField1.setProjectId(projectId);
+        customField1.setType(type);
+        customField1.setCreateId(personnelVO.getId());
+        customField1.insert();
+        return customField1.getId();
+    }
+
 }

+ 23 - 0
src/main/java/cn/cslg/pas/service/business/CustomOptionService.java

@@ -227,4 +227,27 @@ public class CustomOptionService extends ServiceImpl<CustomOptionMapper, CustomO
             throw new XiaoShiException("参数错误");
         }
     }
+
+
+    public List<String> getIdsByNames(List<String> names,Integer fieldId){
+        List<String> ids =new ArrayList<>();
+        names.forEach(item->{
+            //根据名称和id查询
+            LambdaQueryWrapper<CustomOption> queryWrapper =new LambdaQueryWrapper<>();
+            queryWrapper.eq(CustomOption::getName,item)
+                    .eq(CustomOption::getCustomFieldId,fieldId);
+            CustomOption customOption =this.getOne(queryWrapper);
+            if (customOption==null){
+                customOption =new CustomOption();
+                customOption.setCustomFieldId(fieldId);
+                customOption.setName(item);
+                customOption.insert();
+            }
+            ids.add(item);
+        });
+        return  ids;
+    }
+
+
+
 }

+ 3 - 0
src/main/java/cn/cslg/pas/service/business/InvalidStatutesService.java

@@ -160,6 +160,9 @@ public class InvalidStatutesService extends ServiceImpl<InvalidStatutesMapper, I
                     if (patentClaim != null) {
                         invalidStatutesVO.setClaimSort(patentClaim.getSysOrder());
                         invalidStatutesVO.setClaimText(patentClaim.getContent());
+                        invalidStatutesVO.setRbDecision(patentClaim.getRbDecision());
+                        invalidStatutesVO.setCourtDecision1(patentClaim.getCourtDecision1());
+                        invalidStatutesVO.setCourtDecision2(patentClaim.getCourtDecision2());
                     }
                 }
             } else {

+ 36 - 7
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -13,6 +13,7 @@ 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.PatentWithIdVO;
 import cn.cslg.pas.common.vo.business.*;
 import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.UnLoginException;
@@ -24,6 +25,7 @@ import cn.cslg.pas.mapper.AssoProjectEventMapper;
 import cn.cslg.pas.mapper.EventMapper;
 import cn.cslg.pas.mapper.PatentProjectMapper;
 import cn.cslg.pas.mapper.ReportProjectMapper;
+import cn.cslg.pas.service.business.es.EsService;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.permissions.PermissionService;
 import cn.cslg.pas.service.query.FormatQueryService;
@@ -97,6 +99,8 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
 
     @Autowired
     private ScenarioService scenarioService;
+    @Autowired
+    private EsService esService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -127,35 +131,43 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         return null;
     }
 
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Object deleteMessage(List<Integer> ids) throws IOException {
+
         //后续事项
         LambdaQueryWrapper<FollowUp> followUpWrapper = new LambdaQueryWrapper<>();
         followUpWrapper.in(FollowUp::getProjectId, ids);
         followUpService.remove(followUpWrapper);
+
         //事件
         LambdaQueryWrapper<AssoProjectEvent> eventWrapper = new LambdaQueryWrapper<>();
         eventWrapper.in(AssoProjectEvent::getProjectId, ids);
         assoProjectEventService.remove(eventWrapper);
+
         //附件
         LambdaQueryWrapper<AssoProjectFile> fileWrapper = new LambdaQueryWrapper<>();
         fileWrapper.in(AssoProjectFile::getProjectId, ids);
         assoProjectFileService.remove(fileWrapper);
+
         //核心结论
         LambdaQueryWrapper<AssoReportCron> reportCronWrapper = new LambdaQueryWrapper<>();
         reportCronWrapper.in(AssoReportCron::getProjectId, ids);
         assoReportCronService.remove(reportCronWrapper);
+
         //和报告关联
         LambdaQueryWrapper<AssoProject> assoReportWrapper = new LambdaQueryWrapper<>();
         assoReportWrapper.in(AssoProject::getProjectId, ids);
         assoReportWrapper.eq(AssoProject::getProjectType, 2);
         assoReportWrapper.eq(AssoProject::getAssoProjectType, 2);
         assoProjectService.remove(assoReportWrapper);
+
         //report
         LambdaQueryWrapper<ReportProject> reportProjectWrapper = new LambdaQueryWrapper<>();
         reportProjectWrapper.in(ReportProject::getProjectId, ids);
         this.remove(reportProjectWrapper);
+
         //project
         projectService.removeBatchByIds(ids);
         return ids;
@@ -250,19 +262,23 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         project.setTenantId(personnelVO.getTenantId());
         //TODO 当委托方id或者委托方名称不为空时,
         if (reportProjectDTO.getEntrustId() != null || reportProjectDTO.getEntrustName() != null) {
+
             //根据创建人的租户类型设置project的委托类型
             if (personnelVO.getTenantType().equals("1")) {
                 project.setEntrustType(1);
+
                 //当委托方id不为空时
                 if (reportProjectDTO.getEntrustId() != null) {
                     project.setEntrustId(reportProjectDTO.getEntrustId());
                 }
+
                 //若且租户类型为代理机构,并且委托方id为空,委托方名称不为空时,新增委托方
                 else {
                     if (reportProjectDTO.getEntrustName() != null && reportProjectDTO.getEntrustName().trim() != "") {
                         ClientDTO clientDTO = new ClientDTO();
                         clientDTO.setName(reportProjectDTO.getEntrustName());
                         clientDTO.setTenantId(personnelVO.getTenantId());
+
                         try {
                             String res = permissionService.addClient(clientDTO);
                             JSONObject jsonObject = JSONObject.parseObject(res);
@@ -274,6 +290,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
                         }
                     }
                 }
+
             } else {
                 if (reportProjectDTO.getEntrustId() != null) {
                     project.setEntrustType(0);
@@ -295,11 +312,23 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
             assoProject.insert();
         }
 
+
         /**
          * 装载reportProject
          */
         ReportProject reportProject = new ReportProject();
         BeanUtils.copyProperties(reportProjectDTO, reportProject);
+        if (reportProject.getSignPatentNo() != null) {
+            try {
+                PatentWithIdVO patentWithIdVO = esService.getIdByPatentNo(reportProject.getSignPatentNo());
+                if (patentWithIdVO != null && patentWithIdVO.getPatent() != null) {
+                    reportProject.setPatentType(reportProject.getPatentType());
+                }
+            } catch (Exception e) {
+                throw new XiaoShiException("未查询到标的专利");
+            }
+            //根据专利号查询专利
+        }
         reportProject.setProjectId(project.getId());
         //根据是否直接完成设置报告的状态
         if (reportProjectDTO.getIfFinish() == null) {
@@ -825,16 +854,16 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
     //更新是否有第二次更新
     public Boolean updateIfSecondInvalid(UpdateIfSecondInvalidDTO dto) {
         Integer projectId = dto.getProjectId();
-        Boolean ifSecondInvalid =dto.getIfSecondInvalid();
-        if(ifSecondInvalid==null){
+        Boolean ifSecondInvalid = dto.getIfSecondInvalid();
+        if (ifSecondInvalid == null) {
             throw new XiaoShiException("");
         }
         //根据 项目id查询报告
-        LambdaQueryWrapper<ReportProject> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(ReportProject::getProjectId,projectId);
-        ReportProject reportProject =this.getOne(queryWrapper);
-        if(reportProject==null){
-            throw  new XiaoShiException("不存在报告");
+        LambdaQueryWrapper<ReportProject> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ReportProject::getProjectId, projectId);
+        ReportProject reportProject = this.getOne(queryWrapper);
+        if (reportProject == null) {
+            throw new XiaoShiException("不存在报告");
         }
 
         reportProject.setIfSecondInvalid(dto.getIfSecondInvalid());

+ 53 - 18
src/main/java/cn/cslg/pas/service/business/TreeNodeService.java

@@ -136,7 +136,7 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
                 });
 
                 //返回树
-                List<TreeNodeVO> treeNodeVOS = treeNodeMapper.getTreeNodeByIds(ids, false,null,null);
+                List<TreeNodeVO> treeNodeVOS = treeNodeMapper.getTreeNodeByIds(ids, false, null, null);
                 this.loadTreeNode(treeNodeVOS);
                 reTreeNodeVOS = this.reTrees(treeNodeVOS);
                 records.setData(reTreeNodeVOS);
@@ -511,20 +511,19 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
         Integer fromTypeId = copyTreeNodeDTO.getFromTypeId();
         Integer fromType = copyTreeNodeDTO.getFromType();
         List<Integer> fromNodeIds = copyTreeNodeDTO.getFromNodeIds();
-        Integer toTypeId =copyTreeNodeDTO.getToTypeId();
-        Integer toType =copyTreeNodeDTO.getToType();
-        Integer toId =copyTreeNodeDTO.getToNodeId();
-        Boolean  ifCopyChild =copyTreeNodeDTO.getIfCopyChild();
-        Boolean  ifDelete =copyTreeNodeDTO.getIfDelete();
+        Integer toTypeId = copyTreeNodeDTO.getToTypeId();
+        Integer toType = copyTreeNodeDTO.getToType();
+        Integer toId = copyTreeNodeDTO.getToNodeId();
+        Boolean ifCopyChild = copyTreeNodeDTO.getIfCopyChild();
+        Boolean ifDelete = copyTreeNodeDTO.getIfDelete();
 
-        List<TreeNodeVO> fromTreeNodeVOS =new ArrayList<>();
+        List<TreeNodeVO> fromTreeNodeVOS = new ArrayList<>();
 
         //判断是否复制全部
-        if(fromNodeIds==null||fromNodeIds.size()==0){
-fromTreeNodeVOS = treeNodeMapper.getTreeNodeByIds(null,false, fromType,fromTypeId);
-        }
-else {
-            fromTreeNodeVOS = treeNodeMapper.getTreeNodeByIds(fromNodeIds,ifCopyChild, null,null);
+        if (fromNodeIds == null || fromNodeIds.size() == 0) {
+            fromTreeNodeVOS = treeNodeMapper.getTreeNodeByIds(null, false, fromType, fromTypeId);
+        } else {
+            fromTreeNodeVOS = treeNodeMapper.getTreeNodeByIds(fromNodeIds, ifCopyChild, null, null);
         }
 //根据id查出树
 
@@ -537,8 +536,8 @@ else {
             level = treeNode.getLevel();
             for (ReTreeNodeVO item : fromReTreeNodeVOs) {
                 item.setParentId(toId);
-                    item.setPath(treeNode.getPath() + treeNode.getId()+"/");
-                item.setLevel(level+1);
+                item.setPath(treeNode.getPath() + treeNode.getId() + "/");
+                item.setLevel(level + 1);
                 item.setType(treeNode.getType());
                 item.setTypeId(treeNode.getTypeId());
             }
@@ -558,9 +557,8 @@ else {
             QueryTreeNodeDTO queryTreeNodeDTO2 = new QueryTreeNodeDTO();
             queryTreeNodeDTO2.setId(toId);
             toTreeNodeVOs = treeNodeMapper.getTreeNode(queryTreeNodeDTO2);
-        }
-        else{
-            toTreeNodeVOs = treeNodeMapper.getTreeNodeByIds(null,true, toType,toTypeId);
+        } else {
+            toTreeNodeVOs = treeNodeMapper.getTreeNodeByIds(null, true, toType, toTypeId);
         }
         while (fromReTreeNodeVOs.size() != 0) {
             List<ReTreeNodeVO> reTreeNodeVOS = new ArrayList<>();
@@ -587,7 +585,7 @@ else {
                         item.setPath(reTreeNodeVO.getPath() + reTreeNodeVO.getId());
                         item.setTypeId(reTreeNodeVO.getTypeId());
                         item.setType(reTreeNodeVO.getType());
-                        item.setLevel(reTreeNodeVO.getLevel()+1);
+                        item.setLevel(reTreeNodeVO.getLevel() + 1);
                     });
                     reTreeNodeVOS.addAll(childNodes);
 
@@ -705,4 +703,41 @@ else {
         records.setData(treeNodeVOS);
         return records;
     }
+
+
+    public List<String> getIdByNames(List<String> values, Integer fieldId, Integer type) {
+
+        List<String> ids = new ArrayList<>();
+        values.forEach(item -> {
+            List<String> nodes = cn.cslg.pas.common.utils.StringUtils.changeStringToString(item, "\\");
+            TreeNode lastTreeNode = null;
+            for (int i = 0; i < nodes.size(); i++) {
+                LambdaQueryWrapper<TreeNode> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(TreeNode::getTypeId, fieldId)
+                        .eq(TreeNode::getType, type)
+                        .eq(TreeNode::getName, nodes.get(i))
+                        .eq(TreeNode::getLevel, i);
+                TreeNode treeNode = this.getOne(queryWrapper);
+                if (treeNode == null) {
+                    treeNode = new TreeNode();
+                    treeNode.setLevel(i);
+                    treeNode.setName(nodes.get(i));
+                    treeNode.setType(type);
+                    if (lastTreeNode != null) {
+                        treeNode.setParentId(lastTreeNode.getId());
+                        treeNode.setPath(lastTreeNode.getPath() + "/" + lastTreeNode.getId());
+                    }
+                    treeNode.insert();
+                    lastTreeNode = treeNode;
+                }
+
+                if (nodes.size() - 1 == i) {
+                    ids.add(treeNode.getId().toString());
+                }
+            }
+
+
+        });
+        return ids;
+    }
 }

+ 1 - 1
src/main/resources/mapper/ReportProjectMapper.xml

@@ -8,7 +8,7 @@
         createId,p.create_time as createTime, rp.report_type as reportType ,p.head_id as headId,p.department_id as
         departmentId,
         p.entrust_type as entrustType,p.entrust_id as entrustId,rp.product_or_tech as productOrTech,rp.cron_description
-        as cronDescription ,rp.status as status,rp.if_second_invalid as ifSecondInvalid from report as rp left join project as p
+        as cronDescription ,rp.status as status,rp.if_second_invalid as ifSecondInvalid,rp.patent_type as patentType from report as rp left join project as p
         on rp.project_id =p.id left join asso_report_cron arc on p.id =arc.project_id
         left join asso_project_event as aspe on p.id =aspe.project_id
         <if test="sql1!=''">