diff --git a/src/main/java/com/example/duplicate/controller/LzRmController.java b/src/main/java/com/example/duplicate/controller/LzRmController.java index 7642349..c6d9863 100644 --- a/src/main/java/com/example/duplicate/controller/LzRmController.java +++ b/src/main/java/com/example/duplicate/controller/LzRmController.java @@ -36,4 +36,14 @@ public class LzRmController { return ResultBody.success("失败"); } + + + @ResponseBody + @RequestMapping(value = "batch", method = RequestMethod.POST) + @ApiOperation(value = "生成目录", notes = "生成目录") + public ResultBody Batch(){ + lzRmService.Batch(); + return ResultBody.success("完成"); + + } } diff --git a/src/main/java/com/example/duplicate/controller/vo/Commomtable.java b/src/main/java/com/example/duplicate/controller/vo/Commomtable.java new file mode 100644 index 0000000..ab2b8da --- /dev/null +++ b/src/main/java/com/example/duplicate/controller/vo/Commomtable.java @@ -0,0 +1,34 @@ +package com.example.duplicate.controller.vo; + +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName Commomtable + * @Description 实体类 + * @Author linjj + * @Date 2025/11/5 12:00 + * @Version 1.0 + */ +@Data +public class Commomtable { + //主键id + private String patientId; + //盘号 + private String ph; + //病案号 + private String inpatientNo; + //住院次数 + private String admissTimes; + //姓名 + private String name; + //出院日期 + private Date disDate; + //出院科室 + private String disDept; + //旧病案号 + private String oldInpatientNo; + //文件路径 + private String filePath; +} diff --git a/src/main/java/com/example/duplicate/infrastructure/configOneDao/CommomtableMapper.java b/src/main/java/com/example/duplicate/infrastructure/configOneDao/CommomtableMapper.java index 9af54ed..d336a08 100644 --- a/src/main/java/com/example/duplicate/infrastructure/configOneDao/CommomtableMapper.java +++ b/src/main/java/com/example/duplicate/infrastructure/configOneDao/CommomtableMapper.java @@ -1,10 +1,7 @@ package com.example.duplicate.infrastructure.configOneDao; -import com.example.duplicate.controller.vo.AddLzRmCommVo; -import com.example.duplicate.controller.vo.CommomtableCopyVo; -import com.example.duplicate.controller.vo.CommomtableVo; -import com.example.duplicate.controller.vo.PageCountVo; +import com.example.duplicate.controller.vo.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -32,4 +29,11 @@ public interface CommomtableMapper { Listcom(); + /** + * 批量插入解析后的文件夹信息 + * @param list 实体集合 + * @return 影响行数 + */ + int insertBatch(@Param("list") List list); + } diff --git a/src/main/java/com/example/duplicate/service/LzRmService.java b/src/main/java/com/example/duplicate/service/LzRmService.java index 8b20279..9a765eb 100644 --- a/src/main/java/com/example/duplicate/service/LzRmService.java +++ b/src/main/java/com/example/duplicate/service/LzRmService.java @@ -10,4 +10,6 @@ package com.example.duplicate.service; public interface LzRmService { int LzRmSplit(); + + void Batch(); } diff --git a/src/main/java/com/example/duplicate/service/impl/LzRmServiceImpl.java b/src/main/java/com/example/duplicate/service/impl/LzRmServiceImpl.java index c0c790d..cd300b9 100644 --- a/src/main/java/com/example/duplicate/service/impl/LzRmServiceImpl.java +++ b/src/main/java/com/example/duplicate/service/impl/LzRmServiceImpl.java @@ -14,8 +14,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.File; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -43,6 +45,9 @@ public class LzRmServiceImpl implements LzRmService { private static SimpleDateFormat inSDF = new SimpleDateFormat("yyyy.mm.dd"); private static SimpleDateFormat outSDF = new SimpleDateFormat("yyyy-mm-dd"); + /* 日期解析工具 */ + private static final SimpleDateFormat SDF = new SimpleDateFormat("yyyyMMdd"); + @Override public int LzRmSplit() { //新增状态 @@ -78,6 +83,47 @@ public class LzRmServiceImpl implements LzRmService { return addStatic; } + @Override + public void Batch() { + File root = new File("D:/tmp"); + + File[] firstLevelFolders = root.listFiles(File::isDirectory); + if (firstLevelFolders == null) return; + + for (File folder : firstLevelFolders) { + List batch = new ArrayList<>(); + + File[] subFolders = folder.listFiles(File::isDirectory); + if (subFolders == null) continue; + + for (int i = 0; i < subFolders.length; i++) { + File sub = subFolders[i]; + String[] p = sub.getName().split("-", -1); + + Commomtable c = new Commomtable(); + c.setPatientId(new java.text.SimpleDateFormat("yyyyMMddHHmmssSSS").format(new java.util.Date())+ String.format("%03d", i)); + c.setPh(seg(p, 0)); // 盘号 + c.setInpatientNo(seg(p, 1)); // 病案号 + c.setAdmissTimes(seg(p, 2)); + c.setName(seg(p, 3)); + c.setDisDate(parseDate(seg(p, 4))); + c.setDisDept(seg(p, 5)); + c.setOldInpatientNo(seg(p, 6)); + c.setFilePath(sub.getAbsolutePath()); + + batch.add(c); + } + + /* 模拟批量新增:这里只是打印,实际可调用 Mapper/DAO 批量插入 */ + System.out.println(">>> 准备批量插入一级文件夹:" + folder.getName() + + ",共 " + batch.size() + " 条"); + batch.forEach(System.out::println); + commomtableMapper.insertBatch(batch); + // TODO: 调用 service.batchInsert(batch); + File newDir = new File(folder.getParent(), folder.getName() + "-1"); + } + } + /** * @description: 插入一条数据到Archive_Master表 * @params: commomtableCopyVo @@ -190,4 +236,18 @@ public class LzRmServiceImpl implements LzRmService { return outDate; } + /* 辅助:缺段补“无” */ + private static String seg(String[] arr, int i) { + return i < arr.length && !arr[i].isEmpty() ? arr[i] : "无"; + } + + /* 辅助:解析日期,失败给 null */ + private static Date parseDate(String src) { + if ("无".equals(src)) return null; + try { + return SDF.parse(src); + } catch (ParseException e) { + return null; + } + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ffebfd6..2c4ed94 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -18,15 +18,15 @@ spring: # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver # type: com.alibaba.druid.pool.DruidDataSource db1: #数据源1 - jdbc-url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=zj_record_new + jdbc-url: jdbc:sqlserver://192.168.2.22:1433;DatabaseName=qf_record_lin username: sa - password: admin123 + password: 123456 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver type: com.alibaba.druid.pool.DruidDataSource db2: #数据源2 - jdbc-url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=qf_record + jdbc-url: jdbc:sqlserver://192.168.2.22:1433;DatabaseName=gzsrm username: sa - password: admin123 + password: 123456 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver type: com.alibaba.druid.pool.DruidDataSource #加快springboot初始化,延缓初始化加载 diff --git a/src/main/resources/mapper/CommomtableMapper.xml b/src/main/resources/mapper/CommomtableMapper.xml index 774a502..87d755c 100644 --- a/src/main/resources/mapper/CommomtableMapper.xml +++ b/src/main/resources/mapper/CommomtableMapper.xml @@ -8,6 +8,23 @@ ph, gdh,splitName) values (#{patientId}, #{admissId}, #{admissTimes}, #{inpatientNo}, #{name}, #{disDate}, #{disDeptName}, #{ph},#{gdh},#{splitName}) + + + INSERT INTO common_table + (patient_id, inpatient_no, admiss_times, name, dis_date, dis_dept, old_inpatient_no, file_path,ph) + VALUES + + (#{c.patientId}, + #{c.inpatientNo}, + #{c.admissTimes}, + #{c.name}, + #{c.disDate}, + #{c.disDept}, + #{c.oldInpatientNo}, + #{c.filePath}, + #{c.ph}) + +