diff --git a/ht/src/main/java/com/ccsens/ht/api/ImportController.java b/ht/src/main/java/com/ccsens/ht/api/ImportController.java index acb3e011..efee911e 100644 --- a/ht/src/main/java/com/ccsens/ht/api/ImportController.java +++ b/ht/src/main/java/com/ccsens/ht/api/ImportController.java @@ -1,5 +1,6 @@ package com.ccsens.ht.api; +import cn.hutool.core.collection.CollectionUtil; import com.ccsens.ht.service.IImportService; import com.ccsens.ht.uitl.Constant; import com.ccsens.util.JsonResponse; @@ -18,6 +19,8 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.Part; import java.io.File; +import java.util.Collections; +import java.util.List; /** @@ -54,19 +57,26 @@ public class ImportController { String allowedExts = "xls,xlsx"; String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator; String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir); - File execlFile = new File(dir+path); + File excelFile = new File(dir+path); long time2 = System.currentTimeMillis(); log.info("解析文件耗时:{}", (time2 - time1)); - importService.importPosition(execlFile, 0); + importService.importPosition(excelFile, 0); long time3 = System.currentTimeMillis(); log.info("导入职务耗时:{}", (time3 - time2)); - importService.importTitle(execlFile, 1); + importService.importTitle(excelFile, 1); long time4 = System.currentTimeMillis(); log.info("导入职称耗时:{}", (time4 - time3)); - importService.importReport(execlFile, 2); + List codes = importService.importReport(excelFile, 2); long time5 = System.currentTimeMillis(); log.info("导入报告单耗时:{}", (time5 - time4)); - importService.importQuestion(execlFile, Constant.Ht.Question.ALL); + + if (CollectionUtil.isNotEmpty(codes)) { + for (String code: codes) { + importService.importQuestion(excelFile, code); + log.info("{}导入完成",code); + } + } + return JsonResponse.newInstance().ok(); } @@ -89,19 +99,37 @@ public class ImportController { String allowedExts = "xls,xlsx"; String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator; String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir); - File execlFile = new File(dir+path); + File excelFile = new File(dir+path); long time2 = System.currentTimeMillis(); log.info("解析文件耗时:{}", (time2 - time1)); -// importService.importPosition(execlFile, 0); +// importService.importPosition(excelFile, 0); // long time3 = System.currentTimeMillis(); // log.info("导入职务耗时:{}", (time3 - time2)); -// importService.importTitle(execlFile, 1); +// importService.importTitle(excelFile, 1); long time4 = System.currentTimeMillis(); // log.info("导入职称耗时:{}", (time4 - time3)); - importService.importReport(execlFile, 2); + importService.importReport(excelFile, 2); long time5 = System.currentTimeMillis(); log.info("导入报告单耗时:{}", (time5 - time4)); -// importService.importQuestion(execlFile, Constant.Ht.Question.ALL); +// importService.importQuestion(excelFile, Constant.Ht.Question.ALL); + return JsonResponse.newInstance().ok(); + } + + @ApiOperation(value = "导入指定测评类型",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx") + @ApiImplicitParams({ + @ApiImplicitParam(name = "file", value = "医疗项目表", required = true, paramType = "form",dataType = "__file"), + @ApiImplicitParam(name = "code", value = "测评类型", required = true, paramType = "form",dataType = "__file") + }) + @RequestMapping(value = "/importEvaluation", method = RequestMethod.POST) + public JsonResponse importEvaluation(@RequestParam(required = true) Part file, @RequestParam(required = true) String code) throws Exception{ + + //1.上传文件 + String allowedExts = "xls,xlsx"; + String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator; + String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir); + File excelFile = new File(dir+path); + importService.importQuestion(excelFile, code); + log.info("导入{}",code); return JsonResponse.newInstance().ok(); } @@ -120,14 +148,12 @@ public class ImportController { @RequestMapping(value = "/importMoca", method = RequestMethod.POST) public JsonResponse importMoca(@RequestParam(required = true) Part file) throws Exception{ - long time1 = System.currentTimeMillis(); //1.上传文件 String allowedExts = "xls,xlsx"; String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator; String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir); - File execlFile = new File(dir+path); - long time2 = System.currentTimeMillis(); - importService.importQuestion(execlFile, Constant.Ht.Report.MOCA); + File excelFile = new File(dir+path); + importService.importQuestion(excelFile, Constant.Ht.Report.MOCA); log.info("导入moca"); return JsonResponse.newInstance().ok(); } @@ -146,14 +172,12 @@ public class ImportController { @RequestMapping(value = "/importMMSE", method = RequestMethod.POST) public JsonResponse importMMSE(@RequestParam(required = true) Part file) throws Exception{ - long time1 = System.currentTimeMillis(); //1.上传文件 String allowedExts = "xls,xlsx"; String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator; String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir); - File execlFile = new File(dir+path); - long time2 = System.currentTimeMillis(); - importService.importQuestion(execlFile, Constant.Ht.Report.MMSE); + File excelFile = new File(dir+path); + importService.importQuestion(excelFile, Constant.Ht.Report.MMSE); log.info("导入mmse"); return JsonResponse.newInstance().ok(); } @@ -172,14 +196,12 @@ public class ImportController { @RequestMapping(value = "/importRey", method = RequestMethod.POST) public JsonResponse importRey(@RequestParam(required = true) Part file) throws Exception{ - long time1 = System.currentTimeMillis(); //1.上传文件 String allowedExts = "xls,xlsx"; String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator; String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir); - File execlFile = new File(dir+path); - long time2 = System.currentTimeMillis(); - importService.importQuestion(execlFile, Constant.Ht.Report.REY); + File excelFile = new File(dir+path); + importService.importQuestion(excelFile, Constant.Ht.Report.REY); log.info("导入Rey"); return JsonResponse.newInstance().ok(); } @@ -199,14 +221,12 @@ public class ImportController { @RequestMapping(value = "/importXFXPD", method = RequestMethod.POST) public JsonResponse importXFXPD(@RequestParam(required = true) Part file) throws Exception{ - long time1 = System.currentTimeMillis(); //1.上传文件 String allowedExts = "xls,xlsx"; String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator; String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir); - File execlFile = new File(dir+path); - long time2 = System.currentTimeMillis(); - importService.importQuestion(execlFile, Constant.Ht.Report.XFXPD); + File excelFile = new File(dir+path); + importService.importQuestion(excelFile, Constant.Ht.Report.XFXPD); log.info("导入XFXPD"); return JsonResponse.newInstance().ok(); } diff --git a/ht/src/main/java/com/ccsens/ht/bean/dto/PatientReportDto.java b/ht/src/main/java/com/ccsens/ht/bean/dto/PatientReportDto.java index 5f82f7aa..b3c18771 100644 --- a/ht/src/main/java/com/ccsens/ht/bean/dto/PatientReportDto.java +++ b/ht/src/main/java/com/ccsens/ht/bean/dto/PatientReportDto.java @@ -83,6 +83,8 @@ public class PatientReportDto { private Long id; @ApiModelProperty("是否需要rey 默认为0 0全部查询导出 1不导出rey 2只导出rey") private int rey = 0; + @ApiModelProperty("报告单类型") + private String report = "REPORT1.0"; } diff --git a/ht/src/main/java/com/ccsens/ht/persist/dao/HtPatientReportDao.java b/ht/src/main/java/com/ccsens/ht/persist/dao/HtPatientReportDao.java index c6c9c691..8da3b631 100644 --- a/ht/src/main/java/com/ccsens/ht/persist/dao/HtPatientReportDao.java +++ b/ht/src/main/java/com/ccsens/ht/persist/dao/HtPatientReportDao.java @@ -26,12 +26,13 @@ public interface HtPatientReportDao extends HtPatientReportMapper { PatientReportVo.ReprotPatient queryReportResult(@Param("id") Long id); /** * 根据病人报告单ID查询报告单各项相关分数 - * @param id + * @param id 报告单ID + * @param report 报告单类型 *@return: com.ccsens.ht.bean.vo.PatientReportVo.ReportScore *@Author: wuHuiJuan *@date: 2019/11/19 11:46 */ - List queryReportScore(@Param("id") Long id,@Param("rey") int rey); + List queryReportScore(@Param("id") Long id,@Param("rey") int rey, @Param("report") String report); /** * 查询NPI的分数 diff --git a/ht/src/main/java/com/ccsens/ht/service/IImportService.java b/ht/src/main/java/com/ccsens/ht/service/IImportService.java index 4e496659..4cdb3e47 100644 --- a/ht/src/main/java/com/ccsens/ht/service/IImportService.java +++ b/ht/src/main/java/com/ccsens/ht/service/IImportService.java @@ -1,6 +1,7 @@ package com.ccsens.ht.service; import java.io.File; +import java.util.List; /** * @program: ptpro @@ -30,13 +31,14 @@ public interface IImportService { String importTitle(File file, int sheetIndex) throws Exception; /** *@Description:导入测评报告单分类 - *@param file - *@param sheetIndex + *@param file 文件 + *@param sheetIndex 第几个sheet *@return: void *@Author: wuhuijuan *@date: 2019/10/21 15:08 + * @return 报告单类型 */ - void importReport(File file, int sheetIndex) throws Exception; + List importReport(File file, int sheetIndex) throws Exception; /** *@Description:导入测评报告单分类 diff --git a/ht/src/main/java/com/ccsens/ht/service/ImportService.java b/ht/src/main/java/com/ccsens/ht/service/ImportService.java index 3097e9f9..a230d548 100644 --- a/ht/src/main/java/com/ccsens/ht/service/ImportService.java +++ b/ht/src/main/java/com/ccsens/ht/service/ImportService.java @@ -189,7 +189,8 @@ public class ImportService implements IImportService { } @Override - public void importReport(File file, int sheetIndex) throws Exception{ + public List importReport(File file, int sheetIndex) throws Exception{ + List codes = new ArrayList<>(); List reports = PoiUtil.readExce(file, sheetIndex, null,1, false); log.info("导入职务,读取数据完成"); List reportList = new ArrayList<>(); @@ -200,10 +201,14 @@ public class ImportService implements IImportService { } HtReport report = initReport(objs); reportList.add(report); + if (report.getType() == Constant.Ht.Report.TYPE_EVALUATION) { + codes.add(report.getCode()); + } } if (!reportList.isEmpty()) { htReportDao.insertBatch(reportList); } + return codes; } @Override @@ -216,7 +221,6 @@ public class ImportService implements IImportService { types.add(type); } log.info("导入试题类型:{}", types); - StringBuilder builder = new StringBuilder(); for (String sheetName: types) { List questions = PoiUtil.readExce(file, -1, sheetName,1, true); saveQuestions(questions, sheetName); diff --git a/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java b/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java index ba91682b..d1a83c0f 100644 --- a/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java +++ b/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java @@ -223,7 +223,7 @@ public class PatientReportService implements IPatientReportService { //查询报告单信息和病人信息 PatientReportVo.ReprotPatient reportPatient = htPatientReportDao.queryReportResult(queryDetail.getId()); //查询报告单分数 - List reportScore = htPatientReportDao.queryReportScore(queryDetail.getId(),queryDetail.getRey()); + List reportScore = htPatientReportDao.queryReportScore(queryDetail.getId(),queryDetail.getRey(), queryDetail.getReport()); //重新封装报告单信息 Map map = new HashMap<>(32); List scores = new ArrayList<>(); @@ -235,7 +235,7 @@ public class PatientReportService implements IPatientReportService { } map.put(score.getCode(), score); //测评类(MOCA等) - if (Constant.Ht.Report.TYPE_EVALUATION.equals(score.getType())) { + if (Constant.Ht.Report.TYPE_EVALUATION == score.getType()) { String specialCode = "NPI"; if (specialCode.equalsIgnoreCase(score.getCode())) { initNPI(queryDetail, score); diff --git a/ht/src/main/java/com/ccsens/ht/uitl/Constant.java b/ht/src/main/java/com/ccsens/ht/uitl/Constant.java index 93199c3a..763e6c2a 100644 --- a/ht/src/main/java/com/ccsens/ht/uitl/Constant.java +++ b/ht/src/main/java/com/ccsens/ht/uitl/Constant.java @@ -127,7 +127,7 @@ public class Constant { public static class Report{ public final static String PARENT_CODE = "REPORT1.0"; public final static String PARENT_NAME = "认知功能神经心理量表检查报告单"; - public final static Byte TYPE_EVALUATION = 2; + public final static byte TYPE_EVALUATION = 2; public final static String IGNORE_SCORE = "[个]"; public final static String MOCA_SJZ = "SZJ"; public final static String MOCA = "MoCA"; @@ -142,6 +142,9 @@ public class Constant { /**忽略报告单*/ public final static Byte COMPLETE_IGNORE = 2; + + + /**在历史报告单中显示*/ public final static byte SHOW_HISTORY = 1; public final static Map TYPE = new HashMap<>(); diff --git a/ht/src/main/resources/application.yml b/ht/src/main/resources/application.yml index 5889ff7f..d082c0ea 100644 --- a/ht/src/main/resources/application.yml +++ b/ht/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: test - include: common, util-test \ No newline at end of file + active: prod + include: common, util-prod \ No newline at end of file diff --git a/ht/src/main/resources/mapper_dao/HtPatientReportDao.xml b/ht/src/main/resources/mapper_dao/HtPatientReportDao.xml index acf5782d..7426b0cc 100644 --- a/ht/src/main/resources/mapper_dao/HtPatientReportDao.xml +++ b/ht/src/main/resources/mapper_dao/HtPatientReportDao.xml @@ -47,14 +47,21 @@