zero 5 ماه پیش
والد
کامیت
9f95fa8c5d

+ 14 - 0
src/main/java/cn/cslg/pas/common/utils/GenerateObjectUtil.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.common.utils;
 import cn.cslg.pas.common.dto.DomainFieldDTO;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
 import org.springframework.cglib.beans.BeanGenerator;
 import org.springframework.stereotype.Component;
 
@@ -41,4 +42,17 @@ public class GenerateObjectUtil {
             return null;
         }
     }
+
+    public static String getTableColumnName(Object obj, String propertyName) throws Exception {
+        String columnName = "";
+        Field field = obj.getClass().getDeclaredField(propertyName);
+        field.setAccessible(true);
+        // 检查字段是否有@TableField注解
+        if (field.isAnnotationPresent(TableField.class)) {
+            // 获取@TableField注解的值
+            TableField tableField = field.getAnnotation(TableField.class);
+            columnName = tableField.value(); // 获取具体的列名
+        }
+        return columnName;
+    }
 }

+ 2 - 0
src/main/java/cn/cslg/pas/mapper/ReportAffairMapper.java

@@ -22,6 +22,8 @@ public interface ReportAffairMapper extends BaseMapper<ReportAffair> {
 
     public List<QueryCasePhaseVO> queryCasePhase(@Param("projectIds") List<Integer> projectIds);
 
+    public List<QueryCasePhaseVO> queryCasePhaseOral(@Param("projectIds") List<Integer> projectIds);
+
     public List<QueryReportAffairConclusionVO> queryReportAffairConclusion(@Param("projectIds") List<Integer> projectIds);
     public List<Integer> queryProjectByCasePhase(String name);
     public List<Integer> queryProjectByCaseChildPhase(String name);

+ 5 - 0
src/main/java/cn/cslg/pas/mapper/ReportProjectMapper.java

@@ -4,8 +4,10 @@ import cn.cslg.pas.common.vo.business.ReportProjectVO;
 import cn.cslg.pas.domain.business.PatentProject;
 import cn.cslg.pas.domain.business.ReportProject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -19,4 +21,7 @@ public interface ReportProjectMapper extends BaseMapper<ReportProject> {
 
     public List<ReportProjectVO> getReportProject(String select,String sql1,String sql2,String sql3);
     public Long getReportProjectCount(String select,String sql1);
+
+    public int updateReportField(@Param("projectId") Integer projectId,@Param("field") String field,
+                                 @Param("value") Object value);
 }

+ 1 - 7
src/main/java/cn/cslg/pas/service/business/InvalidDecisionFileService.java

@@ -132,13 +132,7 @@ public class InvalidDecisionFileService extends ServiceImpl<InvalidDecisionFileM
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     public void updateReportIssueNum(Integer projectId, String num) {
         if (StringUtils.isNotEmpty(num)) {
-            ReportProject reportProject = reportProjectMapper.selectOne(new LambdaQueryWrapper<ReportProject>()
-                    .eq(ReportProject::getProjectId, projectId));
-            if (ObjectUtils.isNotEmpty(reportProject)) {
-                reportProject.setId(reportProject.getId());
-                reportProject.setIssueNumber(num);
-                reportProject.updateById();
-            }
+            reportProjectMapper.updateReportField(projectId, "issue_number", num);
         }
     }
 

+ 4 - 7
src/main/java/cn/cslg/pas/service/business/InvalidRequestFileService.java

@@ -6,6 +6,7 @@ import cn.cslg.pas.common.dto.invalidDTO.UpdateInvalidRequestFileDTO;
 import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.utils.DateUtils;
+import cn.cslg.pas.common.utils.GenerateObjectUtil;
 import cn.cslg.pas.common.vo.QueryReportAffairCasePhaseVO;
 import cn.cslg.pas.common.vo.invalidVO.InvalidRequestFileVO;
 import cn.cslg.pas.domain.business.*;
@@ -25,6 +26,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -237,13 +239,8 @@ public class InvalidRequestFileService extends ServiceImpl<InvalidRequestFileMap
 
     //同步修改报告中官限
     public void updateReportOfficialDeadline(Integer projectId, Date date) {
-        ReportProject reportProject = reportProjectMapper.selectOne(new LambdaQueryWrapper<ReportProject>()
-                .eq(ReportProject::getProjectId, projectId));
-        if (ObjectUtils.isNotEmpty(reportProject)) {
-            reportProject.setId(reportProject.getId());
-            reportProject.setOfficialDeadline(date);
-            reportProject.updateById();
-        }
+//        reportProjectMapper.updateOfficialDeadline(projectId, date);
+        reportProjectMapper.updateReportField(projectId, "official_deadline", date);
     }
 
 

+ 2 - 14
src/main/java/cn/cslg/pas/service/business/OralTrailService.java

@@ -121,21 +121,9 @@ public class OralTrailService extends ServiceImpl<OralTrailMapper, OralTrail> {
         if (!CollectionUtils.isEmpty(trailVOS)) {
             OralTrailVO trailVO = trailVOS.get(0);
             String participator = trailVO.getParticipator();
-            ReportProject reportProject = reportProjectMapper.selectOne(new LambdaQueryWrapper<ReportProject>()
-                    .eq(ReportProject::getProjectId, projectId));
-            if (ObjectUtils.isNotEmpty(reportProject)) {
-                reportProject.setId(reportProject.getId());
-                reportProject.setOralPanelMembers(participator);
-                reportProject.updateById();
-            }
+            reportProjectMapper.updateReportField(projectId, "oral_panel_members", participator);
         } else {
-            ReportProject reportProject = reportProjectMapper.selectOne(new LambdaQueryWrapper<ReportProject>()
-                    .eq(ReportProject::getProjectId, projectId));
-            if (ObjectUtils.isNotEmpty(reportProject)) {
-                reportProject.setId(reportProject.getId());
-                reportProject.setOralPanelMembers(null);
-                reportProject.updateById();
-            }
+            reportProjectMapper.updateReportField(projectId, "oral_panel_members", null);
         }
     }
 

+ 20 - 6
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -45,6 +45,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
@@ -709,6 +711,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         List<SystemFile> systemFiles = new ArrayList<>();
         List<AssoProjectFile> assoEventFiles = new ArrayList<>();
         List<QueryCasePhaseVO> casePhaseVOS = new ArrayList<>();
+        List<QueryCasePhaseVO> casePhaseVOS1 = new ArrayList<>();
         List<QueryReportAffairConclusionVO> conclusionVOS = new ArrayList<>();
 
 
@@ -761,6 +764,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
             createIds.addAll(personIds);
 
             casePhaseVOS = reportAffairMapper.queryCasePhase(ids);
+            casePhaseVOS1 = reportAffairMapper.queryCasePhaseOral(ids);
             conclusionVOS = reportAffairMapper.queryReportAffairConclusion(ids);
         }
 
@@ -943,11 +947,19 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
             reportProjectVO.setCronNames(reCronNames);
 
             //装载案件阶段与案件子阶段
-            if (!CollectionUtils.isEmpty(casePhaseVOS)) {
+            if (!CollectionUtils.isEmpty(casePhaseVOS) && !CollectionUtils.isEmpty(casePhaseVOS1)) {
+                QueryCasePhaseVO casePhaseVO1 = casePhaseVOS1.stream().filter(i -> i.getProjectId().equals(reportProjectVO.getId())).findFirst().orElse(null);
                 QueryCasePhaseVO casePhaseVO = casePhaseVOS.stream().filter(i -> i.getProjectId().equals(reportProjectVO.getId())).findFirst().orElse(null);
                 if (casePhaseVO != null) {
                     reportProjectVO.setCasePhase(casePhaseVO.getCasePhase());
                     reportProjectVO.setCaseChildPhase(casePhaseVO.getCaseChildPhase());
+                } else {
+                    if (casePhaseVO1 != null) {
+                        Integer flowType = casePhaseVO1.getFlowType();
+                        if (flowType == 6) {
+                            reportProjectVO.setCasePhase(casePhaseVO1.getCasePhase());
+                        }
+                    }
                 }
             }
             //装载行诉结果
@@ -1061,10 +1073,12 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         if (ObjectUtils.isEmpty(reportProject)) {
             throw new XiaoShiException("未查询到该报告");
         }
-        ReportProject project = this.getById(reportProject.getId());
-        GenerateObjectUtil.setObjectProperty(project, columnDTO.getField(), columnDTO.getValue());
-        Thread.sleep(1000);
-        project.updateById();
-        return project.getId();
+        String columnName = GenerateObjectUtil.getTableColumnName(reportProject, columnDTO.getField());
+        if (StringUtils.isNotEmpty(columnName)) {
+            reportProjectMapper.updateReportField(projectId, columnName, columnDTO.getValue());
+        } else {
+            throw new XiaoShiException("获取栏位错误");
+        }
+        return reportProject.getId();
     }
 }

+ 24 - 0
src/main/resources/mapper/ReportAffairMapper.xml

@@ -26,6 +26,30 @@
         WHERE rn = 1
     </select>
 
+    <select id="queryCasePhaseOral" resultType="cn.cslg.pas.common.vo.QueryCasePhaseVO">
+        SELECT *
+        FROM (
+        SELECT a.case_phase,
+        b.project_id,
+        a.flow_type,
+        CASE
+        WHEN a.case_child_phase != '' THEN a.case_child_phase
+        ELSE b.case_child_phase
+        END AS caseChildPhase,
+        ROW_NUMBER() OVER (
+        PARTITION BY b.project_id
+        ORDER BY b.occurred_time DESC, b.id DESC
+        ) AS rn
+        FROM report_affair_case_phase a
+        LEFT JOIN report_affair b ON b.asso_case_phase_id = a.id
+        WHERE b.project_id IN
+        <foreach collection="projectIds" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        ) t
+        WHERE rn = 1
+    </select>
+
     <select id="queryReportAffairConclusion" resultType="cn.cslg.pas.common.vo.QueryReportAffairConclusionVO">
         SELECT *
         FROM (

+ 8 - 0
src/main/resources/mapper/ReportProjectMapper.xml

@@ -20,4 +20,12 @@
         </if>
     </select>
 
+    <update id="updateReportField">
+        UPDATE report
+        <set>
+            ${field} = #{value}
+        </set>
+        WHERE project_id = #{projectId}
+    </update>
+
 </mapper>

+ 8 - 10
src/test/java/cn/cslg/pas/service/EventServiceTests.java

@@ -8,10 +8,7 @@ import cn.cslg.pas.common.dto.es.EsCustomFieldDTO;
 import cn.cslg.pas.common.dto.es.EsCustomFieldValueDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.*;
-import cn.cslg.pas.common.utils.DateUtils;
-import cn.cslg.pas.common.utils.PatentNoUtil;
-import cn.cslg.pas.common.utils.Response;
-import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
 import cn.cslg.pas.common.utils.parseQueryToTree.operateNode;
 import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
@@ -20,6 +17,7 @@ import cn.cslg.pas.common.vo.StarPatentVO;
 import cn.cslg.pas.common.vo.business.*;
 import cn.cslg.pas.controller.EventController;
 import cn.cslg.pas.controller.PatentController;
+import cn.cslg.pas.domain.business.ReportProject;
 import cn.cslg.pas.domain.es.FamilyPatent;
 import cn.cslg.pas.domain.es.Patent;
 import cn.cslg.pas.domain.es.PatentFamilyMessage;
@@ -27,10 +25,7 @@ import cn.cslg.pas.domain.es.PatentPerson;
 import cn.cslg.pas.exception.ExceptionEnum;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.AssoProjectEventMapper;
-import cn.cslg.pas.service.business.InvalidRequestFileService;
-import cn.cslg.pas.service.business.MergePersonService;
-import cn.cslg.pas.service.business.ProductMarketDataService;
-import cn.cslg.pas.service.business.ReportTempleService;
+import cn.cslg.pas.service.business.*;
 import cn.cslg.pas.service.business.es.*;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.common.PatentStarApiService;
@@ -918,6 +913,8 @@ public class EventServiceTests {
 
     @Autowired
     private InvalidRequestFileService invalidRequestFileService;
+    @Autowired
+    private ReportProjectService reportProjectService;
     @Test
     public void test120() throws Exception {
 //        final long count = esService.getMergePersonCount(320, "fbLUhY8BdwlBaY8vCspo");
@@ -928,8 +925,9 @@ public class EventServiceTests {
 //        final String s2 = s.substring(0, s.length()-1);
 //        System.out.println(s2);
 
-        invalidRequestFileService.getCommonMethod(689);
-
+//        invalidRequestFileService.getCommonMethod(689);
+        ReportProject project = reportProjectService.getById(211);
+        GenerateObjectUtil.getTableColumnName(project,"evidenceRiskResponse");
     }
 
 }