Forráskód Böngészése

风险任务返回部门,元数据映射sqlite

qianxb 2 éve
szülő
commit
1911238d27

+ 3 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/AllProjectStatsVO.java

@@ -57,6 +57,9 @@ public class AllProjectStatsVO {
     @ApiModelProperty(value = "项目id")
     private Long projectId;
 
+    @ApiModelProperty(value = "部门id")
+    private Long deptId;
+
     @ApiModelProperty(value = "延期计划条数")
     private Integer timeOutPlanTotal;
 

+ 1 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/config/sqliteConfig.java

@@ -14,7 +14,7 @@ import javax.sql.DataSource;
 public class sqliteConfig {
     public DataSource dataSource() {
         DruidDataSource ds = new DruidDataSource();
-//        ds.setUrl("jdbc:sqlite:/www/wwwroot/localClient/data");
+//        ds.setUrl("jdbc:sqlite:D:\\BaiduNetdiskDownload\\bladeX后端开发手册\\data");
         ds.setUrl("jdbc:sqlite:/www/wwwroot/Users/hongchuangyanfa/Desktop/localArchive/localClient/data");
         ds.setDriverClassName("org.sqlite.JDBC");
         return ds;

+ 7 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveOfflineVersionInfoController.java

@@ -31,6 +31,13 @@ public class ArchiveOfflineVersionInfoController {
     private final ArchiveOfflineVersionInfoMapper mapper;
     private final IArchiveOfflineVersionInfoService offlineVersionInfoService;
 
+
+    @GetMapping("/test")
+    public R<String> test(Long projectId) throws Exception {
+        offlineVersionInfoService.metadataToSqlite(projectId);
+        return R.data("打包元数据中");
+    }
+
     /**
      * 打包数据
      */

+ 5 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchiveOfflineVersionInfoMapper.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.archive.entity.ArchiveOfflineVersionInfo;
 
+import java.util.HashMap;
+import java.util.List;
+
 /**
  * @Param
  * @Author wangwl
@@ -11,4 +14,6 @@ import org.springblade.archive.entity.ArchiveOfflineVersionInfo;
  **/
 public interface ArchiveOfflineVersionInfoMapper extends BaseMapper<ArchiveOfflineVersionInfo> {
     ArchiveOfflineVersionInfo selectVersionInfo(@Param("projectId") Long projectId);
+
+    List<HashMap<String, Object>> getProjectAllMetadata(@Param("projectId") Long projectId);
 }

+ 4 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchiveOfflineVersionInfoMapper.xml

@@ -16,4 +16,8 @@
         where project_id = #{projectId}
         order by upload_date desc limit 1;
     </select>
+    <select id="getProjectAllMetadata" resultType="java.util.HashMap">
+        SELECT umf.*  from u_metadata_file umf
+        WHERE umf.is_deleted = 0 and umf.contract_id in (select id from m_contract_info mci WHERE mci.p_id = #{projectId} and mci.is_deleted = 0)
+    </select>
 </mapper>

+ 2 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchiveOfflineVersionInfoService.java

@@ -10,4 +10,6 @@ import org.springblade.core.mp.base.BaseService;
  **/
 public interface IArchiveOfflineVersionInfoService extends BaseService<ArchiveOfflineVersionInfo> {
     void packData(Long projectId) throws Exception;
+
+    public void metadataToSqlite(Long projectId) ;
 }

+ 57 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchiveOfflineVersionInfoServiceImpl.java

@@ -32,6 +32,7 @@ import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -70,6 +71,9 @@ public class ArchiveOfflineVersionInfoServiceImpl extends BaseServiceImpl<Archiv
         //导入档案文件
         this.fileToSqlite(projectId);
         System.out.println("导入档案文件");
+        //导入元数据
+        this.metadataToSqlite(projectId);
+        System.out.println("导入元数据");
         //打包文件
         CommonUtil.packageZip(packUrl,zipUrl);
         System.out.println("打包文件");
@@ -89,6 +93,59 @@ public class ArchiveOfflineVersionInfoServiceImpl extends BaseServiceImpl<Archiv
 
     }
 
+    public void metadataToSqlite(Long projectId) {
+        List<HashMap<String, Object>> list = baseMapper.getProjectAllMetadata(projectId);
+        if (list != null && list.size() > 0){
+            try {
+                Connection conn = data.dataSource().getConnection();
+                Statement statement = conn.createStatement();
+                statement.execute("DELETE FROM u_metadata_file");
+                statement.close();
+                //获取执行对象
+                String sql = "INSERT INTO u_metadata_file(id, file_id, file_key_m1, file_key_m4, file_key_m11,file_key_m13,file_key_m14,file_key_m16,file_key_m17,file_key_m18,file_key_m19,file_key_m22,file_key_m34,file_key_m36,file_key_m37,file_key_m38,file_key_m40,file_key_m41,file_key_m60)" +
+                        "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
+                PreparedStatement pstm = conn.prepareStatement(sql);
+                //pstm 绑定数据
+                int i = 0;
+                for (HashMap<String, Object> Map : list) {
+                    i++;
+                    pstm.setLong(1, (Long) Map.get("id"));
+                    pstm.setLong(2, (Long) Map.get("file_id"));
+                    pstm.setString(3, Map.get("file_key_m1") == null ? null : Map.get("file_key_m1")+"");
+                    pstm.setString(4, Map.get("file_key_m4") == null ? null : Map.get("file_key_m4")+"");
+                    pstm.setString(5, Map.get("file_key_m11") == null ? null : Map.get("file_key_m11")+"");
+                    pstm.setString(6, Map.get("file_key_m13") == null ? null : Map.get("file_key_m13")+"");
+                    pstm.setString(7, Map.get("file_key_m14") == null ? null : Map.get("file_key_m14")+"");
+                    pstm.setString(8, Map.get("file_key_m16") == null ? null : Map.get("file_key_m16")+"");
+                    pstm.setString(9, Map.get("file_key_m17") == null ? null : Map.get("file_key_m17")+"");
+                    pstm.setString(10, Map.get("file_key_m18") == null ? null : Map.get("file_key_m18")+"");
+                    pstm.setString(11, Map.get("file_key_m19") == null ? null : Map.get("file_key_m19")+"");
+                    pstm.setString(12, Map.get("file_key_m22") == null ? null : Map.get("file_key_m22")+"");
+                    pstm.setString(13, Map.get("file_key_m34") == null ? null : Map.get("file_key_m34")+"");
+                    pstm.setString(14, Map.get("file_key_m36") == null ? null : Map.get("file_key_m36")+"");
+                    pstm.setString(15, Map.get("file_key_m37") == null ? null : Map.get("file_key_m37")+"");
+                    pstm.setString(16, Map.get("file_key_m38") == null ? null : Map.get("file_key_m38")+"");
+                    pstm.setString(17, Map.get("file_key_m40") == null ? null : Map.get("file_key_m40")+"");
+                    pstm.setString(18, Map.get("file_key_m41") == null ? null : Map.get("file_key_m41")+"");
+                    pstm.setString(19, Map.get("file_key_m60") == null ? null : Map.get("file_key_m60")+"");
+                    //添加批处理
+                    pstm.addBatch();
+                    if (i % 1000 == 0) {
+                        pstm.executeBatch();
+                        pstm.clearBatch();
+                    }
+                }
+                //将批处理余下的语句执行完毕
+                pstm.executeBatch();
+                //释放资源
+                pstm.close();
+                conn.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
     public void fileToSqlite(Long projectId) throws Exception {
         List<ArchiveFile> list = fileClient.getListByProjectId(projectId);
         if (list != null && list.size() > 0) {

+ 3 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java

@@ -629,14 +629,17 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
                 if (integer != 5 && integer != 6){
                     vo.setCostTypeValue(collect.get(integer).get(0).getDictName());
                     vo.setTimeOutPlanTotal(listMap.get(integer).size());
+                    vo.setDeptId(listMap.get(integer).get(0).getDeptId());
                 }else {
                     vo.setCostTypeValue(collect.get(5).get(0).getDictName());
                     if (listMap.get(5) != null && listMap.get(6) != null){
                         vo.setTimeOutPlanTotal(listMap.get(5).size() + listMap.get(6).size());
                     }else if (listMap.get(5) != null){
                         vo.setTimeOutPlanTotal(listMap.get(5).size());
+                        vo.setDeptId(listMap.get(5).get(0).getDeptId());
                     }else if (listMap.get(6) != null){
                         vo.setTimeOutPlanTotal(listMap.get(6).size());
+                        vo.setDeptId(listMap.get(6).get(0).getDeptId());
                     }
                 }
                 vos.add(vo);