Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

xiexiang 1 anno fa
parent
commit
f9797a9ebd

+ 48 - 0
src/main/java/cn/cslg/pas/common/dto/ClientDTO.java

@@ -0,0 +1,48 @@
+package cn.cslg.pas.common.dto;
+
+
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * <p>
+ * 委托方表
+ * </p>
+ *
+ * @author 王岩
+ * @since 2022-02-17
+ */
+@Data
+
+public class ClientDTO  {
+
+    private Integer id;
+
+    /**
+     * 委托方名称
+     */
+
+    private String name;
+
+
+    /**
+     * 客户负责人
+     */
+    private Integer personnelId;
+
+
+
+    private Integer tenantId;
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+    @TableField(exist = false)
+    private String personnelName;
+
+}

+ 4 - 1
src/main/java/cn/cslg/pas/common/dto/business/PatentProjectDTO.java

@@ -33,7 +33,10 @@ public class PatentProjectDTO {
     @Schema(description = "描述")
     private String description;
     @Schema(description = "应用场景")
-    private List<Integer> scenarios;
+    private List<Integer> scenarioIds;
+
+    @Schema(description = "应用场景")
+    private List<Integer> matterIds;
     @Schema(description = "是否更新")
     private Boolean ifUpdate;
     @Schema(description = "树结构")

+ 2 - 0
src/main/java/cn/cslg/pas/domain/business/AssoProjectEvent.java

@@ -26,6 +26,8 @@ public class AssoProjectEvent extends BaseEntity<AssoProjectEvent> {
      */
     @TableField(value = "project_type")
     private Integer projectType;
+    @TableField(value = "scenario_id")
+    private Integer scenarioId;
     @TableField(value = "matter_id")
     private Integer matterId;
     @TableField(value = "event_id")

+ 2 - 2
src/main/java/cn/cslg/pas/domain/business/Project.java

@@ -25,7 +25,7 @@ public class Project extends BaseEntity<Project> {
     private String name;
 
     /**
-     * 委托类型(1客户,2部门)
+     * 委托类型(1服务机构,0部门)
      */
     @TableField(value = "entrust_type")
     private Integer entrustType;
@@ -34,7 +34,7 @@ public class Project extends BaseEntity<Project> {
      * 委托方id
      */
     @TableField(value = "entrust_id")
-    private String entrust_id;
+    private String entrustId;
 
     /**
      * 负责人id

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

@@ -1,12 +1,15 @@
 package cn.cslg.pas.mapper;
 
+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.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
- * 报告表
+ * 报告mapper层
  *
  * @Author 李仁杰
  * @Date 2023/11/1
@@ -14,4 +17,5 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface ReportProjectMapper extends BaseMapper<ReportProject> {
 
+    public List<ReportProjectVO> getReportProject(String sql1,String sql2,String sql3);
 }

+ 94 - 34
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.service.business;
 
+import cn.cslg.pas.common.dto.ClientDTO;
 import cn.cslg.pas.common.dto.business.*;
 import cn.cslg.pas.common.model.cronModel.*;
 import cn.cslg.pas.common.model.request.GroupRequest;
@@ -62,7 +63,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     private LoginUtils loginUtils;
 
     @Autowired
-    private AssoProjectScenarioService assoProjectScenarioService;
+    private PermissionService permissionService;
 
     @Autowired
     private AssoProjectEventService assoProjectEventService;
@@ -77,9 +78,9 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     @Transactional(rollbackFor = Exception.class)
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
 
-       List<String> sqls = formatQueryService.reSqls(queryRequest,"patentProject");
-        //根据sql查询事件信息
-        List<PatentProjectVO> patentProjectVOS = patentProjectMapper.getPatentProject(sqls.get(0),sqls.get(1),sqls.get(2));
+        List<String> sqls = formatQueryService.reSqls(queryRequest, "patentProject");
+        //根据sql查询专题库信息
+        List<PatentProjectVO> patentProjectVOS = patentProjectMapper.getPatentProject(sqls.get(0), sqls.get(1), sqls.get(2));
 
         //装载事件信息
         Records records = new Records();
@@ -97,8 +98,6 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     }
 
     /**
-     *
-     *
      * @param object
      * @param files
      * @return
@@ -108,7 +107,6 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     public Object updateMessage(Object object, List<MultipartFile> files) {
 
 
-
         return null;
     }
 
@@ -117,7 +115,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     public Object deleteMessage(List<Integer> ids) throws IOException {
         //TODO 检查是否有关联报告,如果有则提示不允许删除
 
-     //TODO 根据id删除专利数据库和文件关联表
+        //TODO 根据id删除专利数据库和文件关联表
 
         //TODO 根据id删除专利数据库和事件的关联表
 
@@ -140,7 +138,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         //
 
 
-        return  null;
+        return null;
     }
 
     /**
@@ -151,14 +149,14 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
      * @throws Exception
      */
     @Transactional(rollbackFor = Exception.class)
-    public Object getGroup(GroupRequest groupRequest,String tableName) throws Exception {
-        StringRequest stringRequest =new StringRequest();
-        BeanUtils.copyProperties(groupRequest,stringRequest);
-        List<String> sqls = formatQueryService.reSqls(stringRequest,tableName);
+    public Object getGroup(GroupRequest groupRequest, String tableName) throws Exception {
+        StringRequest stringRequest = new StringRequest();
+        BeanUtils.copyProperties(groupRequest, stringRequest);
+        List<String> sqls = formatQueryService.reSqls(stringRequest, tableName);
         //格式化 分组
-        GroupConfig groupConfig=null;
+        GroupConfig groupConfig = null;
         if (groupRequest.getGroupBy() != null) {
-            String json = CommonService.readJsonFile(tableName+".json");
+            String json = CommonService.readJsonFile(tableName + ".json");
             List<GroupConfig> groupConfigs = JSON.parseArray(json, GroupConfig.class);
             groupConfig = groupConfigs.stream().filter(item -> groupRequest.getGroupBy().equals(item.getField())).findFirst().orElse(null);
             if (groupConfig == null) {
@@ -168,12 +166,13 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
 
         //返回分组数据
         QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
-        ReGroupDataVO  reGroupDataVO = queryGroupImp.getGroup(sqls, tableName, groupConfig.getSqlField());
+        ReGroupDataVO reGroupDataVO = queryGroupImp.getGroup(sqls, tableName, groupConfig.getSqlField());
 
         //装载数据
         GroupVO groupVO = new GroupVO();
         groupVO.setField(groupRequest.getGroupBy());
         groupVO.setValues(reGroupDataVO.getValues());
+
         Records records = new Records();
         records.setCurrent(groupRequest.getCurrent());
         records.setSize(groupRequest.getSize());
@@ -184,6 +183,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
 
     /**
      * 添加
+     *
      * @param object
      * @return
      */
@@ -191,7 +191,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     @Transactional(rollbackFor = Exception.class)
     public Object addMessage(Object object) {
         //TODO 校验参数
-        PatentProjectDTO patentProjectDTO =(PatentProjectDTO)object;
+        PatentProjectDTO patentProjectDTO = (PatentProjectDTO) object;
         //判断是否选择更新并且上传了cron表达式
         if (patentProjectDTO.getIfUpdate() != false) {
             if (patentProjectDTO.getCrons() == null && patentProjectDTO.getCrons().equals("")) {
@@ -215,6 +215,45 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
          */
         Project project = new Project();
         BeanUtils.copyProperties(patentProjectDTO, project);
+
+        //TODO 当委托方id或者委托方名称不为空时,
+        if (patentProjectDTO.getEntrustId() != null || patentProjectDTO.getEntrustName() != null) {
+
+            //根据创建人的租户类型设置project的委托类型
+            if (personnelVO.getTenantType().equals("1")) {
+                project.setEntrustType(1);
+
+                //当委托方id不为空时
+                if (patentProjectDTO.getEntrustId() != null) {
+                    project.setEntrustId(patentProjectDTO.getEntrustId());
+                }
+                //若且租户类型为代理机构,并且委托方id为空,委托方名称不为空时,新增委托方
+                else {
+                    ClientDTO clientDTO = new ClientDTO();
+                    clientDTO.setName(patentProjectDTO.getEntrustName());
+                    clientDTO.setTenantId(personnelVO.getTenantId());
+                    try {
+                        String res = permissionService.addClient(clientDTO);
+                        JSONObject jsonObject = JSONObject.parseObject(res);
+                        Integer clientId = Integer.parseInt(jsonObject.get("data").toString());
+                        project.setEntrustId(clientId.toString());
+                    }
+          catch (Exception e)
+          {
+              throw new XiaoShiException("网络异常");
+          }
+
+                }
+            } else {
+
+                if (patentProjectDTO.getEntrustId() != null) {
+                    project.setEntrustType(0);
+                    project.setEntrustId(patentProjectDTO.getEntrustId());
+                }
+            }
+
+
+        }
         project.setCreateId(personnelVO.getId());
         project.setTenantId(personnelVO.getTenantId());
         project.insert();
@@ -247,10 +286,45 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
                 assoProjectEvent.setProjectType(0);
                 assoProjectEvents.add(assoProjectEvent);
             }
-            if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
-                assoProjectEventService.saveBatch(assoProjectEvents);
+        }
+
+        //装载应用场景和project关联
+        List<Integer> scenarios = patentProjectDTO.getScenarioIds();
+        if (scenarios != null && scenarios.size() > 0) {
+            for (Integer item : scenarios) {
+                AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
+                //项目id
+                assoProjectEvent.setProjectId(project.getId());
+                //创建人
+                assoProjectEvent.setCreateId(personnelVO.getId());
+                //类型为专题库
+                assoProjectEvent.setProjectType(0);
+                //装载场景id
+                assoProjectEvent.setScenarioId(item);
+                assoProjectEvents.add(assoProjectEvent);
             }
+        }
 
+        //装载应用场景和project关联
+        List<Integer> matter = patentProjectDTO.getMatterIds();
+        if (matter != null && matter.size() > 0) {
+            for (Integer item : matter) {
+                AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
+                //项目id
+                assoProjectEvent.setProjectId(project.getId());
+                //创建人
+                assoProjectEvent.setCreateId(personnelVO.getId());
+                //类型为专题库
+                assoProjectEvent.setProjectType(0);
+                //装载处理事项id
+                assoProjectEvent.setMatterId(item);
+                assoProjectEvents.add(assoProjectEvent);
+            }
+        }
+
+        //统一进行保存
+        if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
+            assoProjectEventService.saveBatch(assoProjectEvents);
         }
 
         /**
@@ -295,20 +369,6 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
                 assoProjectFileService.saveBatch(assoProjectFiles);
             }
         }
-
-        //装载应用场景
-        List<Integer> scenarios =patentProjectDTO.getScenarios();
-        if(scenarios!=null&&scenarios.size()>0){
-          List<AssoProjectScenario> assoProjectScenarios =new ArrayList<>();
-          scenarios.forEach(item->{
-              AssoProjectScenario assoProjectScenario =new AssoProjectScenario();
-              assoProjectScenario.setProjectId(project.getId());
-              assoProjectScenario.setScenarioId(item);
-              assoProjectScenarios.add(assoProjectScenario);
-              assoProjectScenarioService.saveBatch(assoProjectScenarios);
-          });
-        }
-
         return project.getId();
     }
 
@@ -318,7 +378,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         //TODO 更新场景
         //TODO 更新事件
         //TODO 若产品或产品类别技术类别有更新,则删除产品或产品类别技术类别和专利的标引(只需判断,删除部分,待es完成)
-       //TODO 更新关联附件
+        //TODO 更新关联附件
 
         return null;
     }

+ 5 - 3
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -11,6 +11,7 @@ import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.business.EventCountVO;
 import cn.cslg.pas.common.vo.business.EventVO;
+import cn.cslg.pas.common.vo.business.ReportProjectVO;
 import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
@@ -48,6 +49,8 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper,Report
     private EventMapper eventMapper;
 
     @Autowired
+    private ReportProjectMapper reportProjectMapper;
+    @Autowired
     private FormatQueryService formatQueryService;
 
     @Autowired
@@ -89,17 +92,16 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper,Report
 
        List<String> sqls = formatQueryService.reSqls(queryRequest,"event");
         //根据sql查询事件信息
-        List<EventVO> eventVOS = eventMapper.getEvent(sqls.get(0),sqls.get(1),sqls.get(2));
+        List<ReportProjectVO> reportProject = reportProjectMapper.getReportProject(sqls.get(0),sqls.get(1),sqls.get(2));
 
         //查询总数
         Long total = eventMapper.getEventCount(sqls.get(0));
 
         //装载事件信息
-        this.loadEvent(eventVOS);
         Records records = new Records();
         records.setCurrent(queryRequest.getCurrent());
         records.setSize(queryRequest.getSize());
-        records.setData(eventVOS);
+        records.setData(reportProject);
         records.setTotal(total);
         return records;
     }

+ 21 - 0
src/main/java/cn/cslg/pas/service/permissions/PermissionService.java

@@ -1,5 +1,7 @@
 package cn.cslg.pas.service.permissions;
 
+import cn.cslg.pas.common.dto.ClientDTO;
+import cn.cslg.pas.common.utils.LoginUtils;
 import com.google.gson.Gson;
 import okhttp3.MediaType;
 import okhttp3.OkHttpClient;
@@ -124,4 +126,23 @@ public class PermissionService {
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
+
+
+    /**
+     * @title 添加客户
+     * @description 添加客户
+     * @autor lrj
+     */
+
+    public String addClient(ClientDTO client) throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        String param = new Gson().toJson(client);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/client/add")
+                .addHeader("Cookie", LoginUtils.getToken())
+                .post(requestBody)
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
 }

+ 1 - 3
src/main/resources/mapper/PatentProjectMapper.xml

@@ -5,12 +5,10 @@
         select p.id as id,p.name as name ,p.contract_no as contract_no,p.volume_number as
         volumeNumber,p.commission_case_day as commissionCaseDay,p.description as description,p.create_id as
         createId,p.create_time as createTime,pp.if_update as ifUpdate,pp.crons as crons from patent_project as pp left join project as p
-        on pp.project_id =p.id
+        on pp.project_id =p.id left join asso_project_event as asso_event on  asso_event.project_id =p.id
         <if test="sql1!=''">
             where ${sql1}
         </if>
-
-
         ${sql2} ${sql3}
     </select>
 

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

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.cslg.pas.mapper.ReportProjectMapper">
+    <select id="getReportProject" resultType="cn.cslg.pas.common.vo.business.ReportProjectVO">
+        select p.id as id,p.name as name ,p.contract_no as contract_no,p.volume_number as
+        volumeNumber,p.commission_case_day as commissionCaseDay,p.description as description,p.create_id as
+        createId,p.create_time as createTime from report_project as rp left join project as p
+        on pp.project_id =p.id left join asso_project_event as asso_event on  asso_event.project_id =p.id
+        <if test="sql1!=''">
+            where ${sql1}
+        </if>
+        ${sql2} ${sql3}
+    </select>
+
+</mapper>