diff --git a/tcm/src/main/java/com/ccsens/tcm/api/DebugController.java b/tcm/src/main/java/com/ccsens/tcm/api/DebugController.java index 375a2525..ae5014cb 100644 --- a/tcm/src/main/java/com/ccsens/tcm/api/DebugController.java +++ b/tcm/src/main/java/com/ccsens/tcm/api/DebugController.java @@ -1,5 +1,7 @@ package com.ccsens.tcm.api; +import com.ccsens.tcm.bean.vo.QuestionVo; +import com.ccsens.tcm.service.IImportService; import com.ccsens.util.JsonResponse; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParams; @@ -9,13 +11,17 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.List; @Api(tags = "DEBUG" , description = "DebugController | ") @RestController @RequestMapping("/debug") @Slf4j public class DebugController { + @Resource + private IImportService importService; @ApiOperation(value = "/测试",notes = "") @ApiImplicitParams({ @@ -26,5 +32,13 @@ public class DebugController { return JsonResponse.newInstance().ok("测试"); } + @ApiOperation(value = "/测试",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value="aaa",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"}) + public JsonResponse question(HttpServletRequest request) throws Exception { + List reportCodeVoList = importService.getQuestion(); + return JsonResponse.newInstance().ok(reportCodeVoList); + } } diff --git a/tcm/src/main/java/com/ccsens/tcm/api/ImportController.java b/tcm/src/main/java/com/ccsens/tcm/api/ImportController.java index c8aa033f..4a78064f 100644 --- a/tcm/src/main/java/com/ccsens/tcm/api/ImportController.java +++ b/tcm/src/main/java/com/ccsens/tcm/api/ImportController.java @@ -57,4 +57,13 @@ public class ImportController { return JsonResponse.newInstance().ok(); } + @ApiOperation(value = "更新redis内的试题",notes = "") + @ApiImplicitParams({}) + @RequestMapping(value = "/updateRedis", method = RequestMethod.POST) + public JsonResponse updateRedis() throws Exception{ + + importService.updateRedis(); + log.info("更新redis内的试题成功"); + return JsonResponse.newInstance().ok(); + } } diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java b/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java new file mode 100644 index 00000000..cec2dc37 --- /dev/null +++ b/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java @@ -0,0 +1,78 @@ +package com.ccsens.tcm.bean.vo; + +import lombok.Data; +import java.util.List; + +/** + * @author 逗 + */ +public class QuestionVo { + @Data + public static class ReportCodeVo { + //id + private Long id; + //code + private String code; + //名称 + private String name; + //上级code + private String parentCode; + //是否为必做 + private Byte must; + //第几级code + private Byte level; + //排序 + private Integer sort; + //备注 + private String remark; + //记录类型 + private Byte reportType; + //子类型 + private List subReportCodes; + //题目信息 + private List questionVos; + } + + @Data + public static class CodeQuestionVo { + //id + private Long id; + //题目名称 + private String question; + //code + private String code; + //排序 + private Integer sort; + //单位例如 g/L + private String units; + //类型 1单行文本,2多行文本,3单选,4多选,5下拉菜单,6日期,7图片(文件),8单选+其他, + // 9多选+其他,10下拉+其他,11多选+其他+说明,12单选+关联其他内容 13数字类型 + private Byte type; + //关联的选项id + private Long relevanceOptionId; + //是否是搜索条件 + private Byte searchCriteria; + //备注 + private String remark; + //选项信息 + private List optionVos; + } + + @Data + public static class QuestionOptionVo { + //id + private Long id; + //题目id + private Long questionId; + //排序 + private Integer sort; + //显示值 + private String showValue; + //提交值 + private String submitValue; + //选择之后的操作 0无 1单行文本 2多行文本 3关联其他题目 + private Byte afterOperation; + //选择之后关联的题目 + private List questionVos; + } +} diff --git a/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java b/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java index 31b088cf..0b3de52d 100644 --- a/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java +++ b/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java @@ -1,7 +1,9 @@ package com.ccsens.tcm.persist.dao; import com.ccsens.tcm.bean.po.Question; +import com.ccsens.tcm.bean.vo.QuestionVo; import com.ccsens.tcm.persist.mapper.QuestionMapper; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -16,4 +18,12 @@ public interface QuestionDao extends QuestionMapper { * @param questionList 读取的题目 */ void insertBatch(List questionList); + + + /** + * 根据code查询所有题目 + * @param code code + * @return code下的题目信息包括选项 + */ + List queryQuestionByCode(@Param("code") String code); } diff --git a/tcm/src/main/java/com/ccsens/tcm/persist/dao/ReportCodeDao.java b/tcm/src/main/java/com/ccsens/tcm/persist/dao/ReportCodeDao.java index d3c67f6f..513009d3 100644 --- a/tcm/src/main/java/com/ccsens/tcm/persist/dao/ReportCodeDao.java +++ b/tcm/src/main/java/com/ccsens/tcm/persist/dao/ReportCodeDao.java @@ -1,6 +1,7 @@ package com.ccsens.tcm.persist.dao; import com.ccsens.tcm.bean.po.ReportCode; +import com.ccsens.tcm.bean.vo.QuestionVo; import com.ccsens.tcm.persist.mapper.ReportCodeMapper; import org.springframework.stereotype.Repository; @@ -16,4 +17,10 @@ public interface ReportCodeDao extends ReportCodeMapper { * @param reportList 从表里读取的类型对象数组 */ void insertBatch(List reportList); + + /** + * 查找全部code + * @return 返回code包括子code + */ + List selectCode(); } diff --git a/tcm/src/main/java/com/ccsens/tcm/service/IImportService.java b/tcm/src/main/java/com/ccsens/tcm/service/IImportService.java index e335d402..f2ee9cae 100644 --- a/tcm/src/main/java/com/ccsens/tcm/service/IImportService.java +++ b/tcm/src/main/java/com/ccsens/tcm/service/IImportService.java @@ -1,6 +1,9 @@ package com.ccsens.tcm.service; +import com.ccsens.tcm.bean.vo.QuestionVo; + import java.io.File; +import java.util.List; /** * @author 逗 @@ -18,4 +21,15 @@ public interface IImportService { * @param codeBsxg sheet名 */ void importBsxg(File excelFile, String codeBsxg) throws Exception; + + /** + * 更新redis内的试题 + */ + void updateRedis(); + + /** + * 查询所有题目 + * @return + */ + List getQuestion(); } diff --git a/tcm/src/main/java/com/ccsens/tcm/service/ImportService.java b/tcm/src/main/java/com/ccsens/tcm/service/ImportService.java index 424fca44..81cd7761 100644 --- a/tcm/src/main/java/com/ccsens/tcm/service/ImportService.java +++ b/tcm/src/main/java/com/ccsens/tcm/service/ImportService.java @@ -1,16 +1,15 @@ package com.ccsens.tcm.service; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; import com.ccsens.tcm.bean.po.*; +import com.ccsens.tcm.bean.vo.QuestionVo; import com.ccsens.tcm.persist.dao.QuestionDao; import com.ccsens.tcm.persist.dao.QuestionOptionDao; import com.ccsens.tcm.persist.dao.ReportCodeDao; import com.ccsens.tcm.uitl.Constant; import com.ccsens.util.PoiUtil; -import com.ccsens.util.PropUtil; +import com.ccsens.util.RedisUtil; import com.ccsens.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -38,6 +37,8 @@ public class ImportService implements IImportService { private QuestionDao questionDao; @Resource private QuestionOptionDao questionOptionDao; + @Resource + private RedisUtil redisUtil; @Override public void importReport(File excelFile) throws Exception { @@ -69,14 +70,14 @@ public class ImportService implements IImportService { log.info("导入试题类型:{}", types); for (String sheetName: types) { List questions = PoiUtil.readExce(excelFile, -1, sheetName,1, true); - saveQuestions(questions, sheetName); + saveQuestions(questions); } } /** * 保存试题 * */ - private void saveQuestions(List questions , String evaluationCode) throws Exception{ + private void saveQuestions(List questions) { List questionList = new ArrayList<>(); List optionList = new ArrayList<>(); @@ -188,8 +189,6 @@ public class ImportService implements IImportService { return report; } - - /** * 初始化试题 * @param objs 表格内读取的数据 @@ -220,4 +219,41 @@ public class ImportService implements IImportService { log.info("导入试题:{}", question); return question; } + + /** + * 更新redis内的试题 + */ + @Override + public void updateRedis() { + //查询所有的类型 + List reportCodeVos = reportCodeDao.selectCode(); + //查询所有类型下的试题 + if(CollectionUtil.isNotEmpty(reportCodeVos)){ + reportCodeVos.forEach(reportCodeVo -> { + //查询类型下的题目 + + + reportCodeVo.setQuestionVos(questionDao.queryQuestionByCode(reportCodeVo.getCode())); + if(CollectionUtil.isNotEmpty(reportCodeVo.getSubReportCodes())){ + reportCodeVo.getSubReportCodes().forEach(subReportCode -> { + //查询子类型下的题目 + subReportCode.setQuestionVos(questionDao.queryQuestionByCode(subReportCode.getCode())); + }); + } + }); + } + //将试题信息更新进redis + redisUtil.lSet(Constant.Redis.CODE_QUESTION,reportCodeVos); + } + + /** + * 查看类型下的试题信息 + */ + @Override + public List getQuestion() { + Object objects = redisUtil.lGet(Constant.Redis.CODE_QUESTION, 0, -1); + List reportCodeVos = (List)objects; + + return reportCodeVos; + } } diff --git a/tcm/src/main/java/com/ccsens/tcm/uitl/Constant.java b/tcm/src/main/java/com/ccsens/tcm/uitl/Constant.java index 0e936fd0..2b1f7c5d 100644 --- a/tcm/src/main/java/com/ccsens/tcm/uitl/Constant.java +++ b/tcm/src/main/java/com/ccsens/tcm/uitl/Constant.java @@ -53,4 +53,11 @@ public class Constant { } } + public static class Redis { + /**发病时间*/ + public final static String DISEASE_TIME = "disease_time"; + /**所有题目按code分类*/ + public final static String CODE_QUESTION = "code_question"; + } + } diff --git a/tcm/src/main/resources/mapper_dao/QuestionDao.xml b/tcm/src/main/resources/mapper_dao/QuestionDao.xml index 6701343e..eccbb8c2 100644 --- a/tcm/src/main/resources/mapper_dao/QuestionDao.xml +++ b/tcm/src/main/resources/mapper_dao/QuestionDao.xml @@ -28,4 +28,51 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml b/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml index 1b945da5..7fa8f904 100644 --- a/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml +++ b/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml @@ -26,7 +26,67 @@ #{report.parentCode,jdbcType=VARCHAR}, #{report.must,jdbcType=TINYINT}, #{report.level,jdbcType=TINYINT}, #{report.sort,jdbcType=INTEGER}, #{report.remark,jdbcType=VARCHAR}, #{report.reportType,jdbcType=TINYINT}) - + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file