diff --git a/acupuncture-admin/pom.xml b/acupuncture-admin/pom.xml
index 4663ac2f..fe6877f8 100644
--- a/acupuncture-admin/pom.xml
+++ b/acupuncture-admin/pom.xml
@@ -53,12 +53,32 @@
com.acupuncture
acupuncture-framework
+
+
+ jakarta.activation
+ com.sun.activation
+
+
com.acupuncture
acupuncture-quartz
+
+
+ poi-ooxml
+ org.apache.poi
+
+
+ poi
+ org.apache.poi
+
+
+ poi-ooxml-schemas
+ org.apache.poi
+
+
diff --git a/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/DmsLoginController.java b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/DmsLoginController.java
index b684580d..91360ec3 100644
--- a/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/DmsLoginController.java
+++ b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/DmsLoginController.java
@@ -12,6 +12,7 @@ import com.acupuncture.common.utils.SecurityUtils;
import com.acupuncture.framework.web.service.SysPermissionService;
import com.acupuncture.framework.web.service.TokenService;
import com.acupuncture.framework.web.service.WebDmsLoginService;
+import com.acupuncture.system.domain.po.DmsTenant;
import com.acupuncture.system.domain.vo.DmsLoginUserVo;
import com.acupuncture.system.service.DmsLoginService;
import com.acupuncture.system.service.ISysUserService;
@@ -87,4 +88,9 @@ public class DmsLoginController {
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
return JsonResponse.ok(dmsLoginService.resetPwd(user));
}
+
+ @PostMapping("/queryTenantById")
+ public JsonResponse queryTenantById(@RequestBody DmsLoginUserVo.Query dto){
+ return JsonResponse.ok(dmsLoginService.queryById(dto.getId()));
+ }
}
diff --git a/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java
new file mode 100644
index 00000000..08cbea0b
--- /dev/null
+++ b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java
@@ -0,0 +1,63 @@
+package com.acupuncture.web.controller.web;
+
+import com.acupuncture.common.config.RuoYiConfig;
+import com.acupuncture.common.core.domain.AjaxResult;
+import com.acupuncture.common.core.domain.BaseDto;
+import com.acupuncture.common.utils.file.FileUploadUtils;
+import com.acupuncture.common.utils.file.FileUtils;
+import com.acupuncture.system.domain.dto.ExternalDto;
+import com.acupuncture.system.domain.vo.ExternalVo;
+import com.acupuncture.system.service.ExternalService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author zzc
+ * @Package com.acupuncture.web.controller.web
+ * @Date 2025/3/15 9:21
+ * @description:
+ */
+@Slf4j
+@Api(tags = "外部接口")
+@RestController
+@RequestMapping("/api")
+public class ExternalController {
+
+ @Resource
+ private ExternalService externalService;
+
+ @ApiOperation("获取人员信息")
+ @GetMapping("/http/getUserInfo")
+ public Object test(@RequestParam("from") String from, @RequestParam("memberid") String memberid) {
+ ExternalVo.Result query = externalService.query(from, memberid);
+ if (query == null) {
+ return "no person";
+ }
+ return query;
+ }
+
+ @ApiOperation("上传数据")
+ @PostMapping("/http/uploadMemberInfo")
+ public Object add(@RequestBody BaseDto dto){
+ int add = externalService.add(dto.getParam().getList());
+ if (add == 0) {
+ return "upload fail";
+ }
+ return "upload ok";
+ }
+
+// /**
+// * 上传测试报告
+// * @param reportImageVo
+// * @return
+// */
+// int addReportImage(ExternalDto.ReportImageDto reportImageVo){
+//
+// }
+}
diff --git a/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ScreeningController.java b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ScreeningController.java
new file mode 100644
index 00000000..be9f4df2
--- /dev/null
+++ b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ScreeningController.java
@@ -0,0 +1,173 @@
+package com.acupuncture.web.controller.web;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.core.util.StrUtil;
+import com.acupuncture.common.annotation.Anonymous;
+import com.acupuncture.common.core.domain.BaseDto;
+import com.acupuncture.common.core.domain.JsonResponse;
+import com.acupuncture.common.utils.SecurityUtils;
+import com.acupuncture.system.domain.dto.ScreeningDto;
+import com.acupuncture.system.domain.vo.QuestionnaireVo;
+import com.acupuncture.system.domain.vo.ScrScreenVo;
+import com.acupuncture.system.service.IScreeningService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+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.HttpServletResponse;
+import java.net.URLEncoder;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@Api(tags = "筛查")
+@RestController
+@RequestMapping("/screening")
+public class ScreeningController {
+ @Resource
+ private IScreeningService screeningService;
+
+ @ApiOperation(value = "查询筛查列表", notes = "原:查询医院是否填写了调查筛查")
+ @RequestMapping(value = "/queryDetail", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse> queryDetail(@ApiParam @Validated @RequestBody BaseDto param){
+ log.info("查询筛查列表");
+ if (param.getPageNum() > 0) {
+ PageHelper.startPage(param.getPageNum(), param.getPageSize());
+ }
+ return JsonResponse.ok(screeningService.queryDetailByPage(param.getParam(), param.getPageNum(), param.getPageSize()));
+ }
+
+
+ @ApiOperation(value = "创建筛查详情", notes = "")
+ @RequestMapping(value = "/create", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse createDetail(@ApiParam @Validated @RequestBody BaseDto params) throws Exception {
+ log.info("创建筛查详情{}", params);
+ QuestionnaireVo.DetailInfo detailInfo = screeningService.createDetail(params.getParam(), params.getParam().getUserId(), params.getParam().getTenantId());
+ log.info("创建筛查详情结束");
+ return JsonResponse.ok(detailInfo);
+ }
+
+ @Anonymous
+ @ApiOperation(value = "创建筛查详情***", notes = "")
+ @RequestMapping(value = "/createNoToken", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse createNoToken(@ApiParam @Validated @RequestBody BaseDto params) throws Exception {
+ log.info("创建筛查详情{}", params);
+ QuestionnaireVo.DetailInfo detailInfo = screeningService.createDetail(params.getParam(), params.getParam().getUserId(), params.getParam().getTenantId());
+ log.info("创建筛查详情结束");
+ return JsonResponse.ok(detailInfo);
+ }
+
+ @ApiOperation(value = "提交筛查", notes = "")
+ @RequestMapping(value = "/submit", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse submitQuestionnaire(@ApiParam @Validated @RequestBody BaseDto params) throws Exception {
+ log.info("提交筛查开始{}", params);
+ screeningService.submitQuestionnaire(params.getParam(), SecurityUtils.getUserId());
+ return JsonResponse.ok();
+ }
+
+ @Anonymous
+ @ApiOperation(value = "提交筛查**", notes = "")
+ @RequestMapping(value = "/submitNoToken", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse submitNoToken(@ApiParam @Validated @RequestBody BaseDto params) throws Exception {
+ log.info("提交筛查开始{}", params);
+ screeningService.submitQuestionnaire(params.getParam(), 0L);
+ return JsonResponse.ok();
+ }
+
+
+ @Anonymous
+ @ApiOperation(value = "保存调查筛查**", notes = "")
+ @RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse saveQuestionnaire(@ApiParam @Validated @RequestBody BaseDto params) throws Exception {
+ log.info("保存调查筛查开始{}", params);
+ screeningService.saveQuestionnaire(params.getParam(), params.getParam().getUserId());
+ log.info("保存调查筛查结束");
+ return JsonResponse.ok();
+ }
+
+ @ApiOperation(value = "筛查随访", notes = "")
+ @RequestMapping(value = "/follow", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse follow(@Validated @RequestBody BaseDto screenFollow){
+ screeningService.follow(screenFollow.getParam().getPatientId(), screenFollow.getParam().getStatus());
+ return JsonResponse.ok();
+ }
+
+ @ApiOperation(value = "查询筛查列表", notes = "原:查询医院是否填写了调查筛查")
+ @RequestMapping(value = "/queryNotWrite", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse> queryNotWrite(@ApiParam @Validated @RequestBody BaseDto params) throws Exception {
+ log.info("保存调查筛查开始{}", params);
+ List writeStatusList = screeningService.queryNotWrite(params.getParam());
+ log.info("保存调查筛查结束{}", writeStatusList);
+ return JsonResponse.ok(new PageInfo<>(writeStatusList));
+ }
+
+ @ApiOperation(value = "导出筛查列表", notes = "")
+ @RequestMapping(value = "/exportScreen", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public void export(HttpServletResponse response, @RequestBody @Validated BaseDto param) {
+ screeningService.export(response, param.getParam());
+ }
+
+ @ApiOperation(value = "导出认知筛查列表", notes = "")
+ @RequestMapping(value = "/exportRzScreen", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public void exportRzScreen(HttpServletResponse response, @RequestBody @Validated BaseDto param) {
+ screeningService.exportRzScreen(response, param.getParam());
+ }
+
+// @Anonymous
+// @ApiOperation(value = "导出筛查记录", notes = "")
+// @RequestMapping(value = "/export", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
+// public void export(@ApiParam @Validated ScreeningDto.Export export, HttpServletResponse response) throws Exception {
+// log.info("导出筛查记录{}", export);
+// // 未添加时间条件
+// Workbook workbook = screeningService.export(export);
+// log.info("导出筛查记录结束");
+// String str = "";
+// if (1L == export.getQid()) {
+// str = "2021年1-6月";
+// } else if (3L == export.getQid()) {
+// str = "2021年7-11月";
+// } else if (4L == export.getQid()) {
+// str = "2021年7-12月";
+// } else if (10L == export.getQid()) {
+// str = "2022年7-12月";
+// }
+// String fileName = str + "山西省缺血性脑卒中数据汇总表" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".xlsx";
+// response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, CharsetUtil.UTF_8));
+// workbook.write(response.getOutputStream());
+// }
+//
+// @Anonymous
+// @ApiOperation(value = "导出筛查记录", notes = "")
+// @RequestMapping(value = "/exportByArea", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
+// public void exportByArea(@ApiParam @Validated ScreeningDto.ExportByArea export, HttpServletResponse response) throws Exception {
+// log.info("导出筛查记录{}", export);
+// // 未添加时间条件
+// Workbook workbook = screeningService.exportByArea(export);
+// log.info("导出筛查记录结束");
+// String str = "";
+// if (1L == export.getQid()) {
+// str = "2021年1-6月";
+// } else if (3L == export.getQid()) {
+// str = "2021年7-11月";
+// } else if (4L == export.getQid()) {
+// str = "2021年7-12月";
+// } else if (10L == export.getQid()) {
+// str = "2022年7-12月";
+// }
+// String fileName = str + "山西省缺血性脑卒中数据汇总表"
+// + (StrUtil.isNotEmpty(export.getArea()) ? ("(" + export.getArea() + ")") : "")
+// + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".xlsx";
+// response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, CharsetUtil.UTF_8));
+// workbook.write(response.getOutputStream());
+// }
+}
diff --git a/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/WxQrCodeController.java b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/WxQrCodeController.java
new file mode 100644
index 00000000..5738bea4
--- /dev/null
+++ b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/WxQrCodeController.java
@@ -0,0 +1,127 @@
+package com.acupuncture.web.controller.web;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.acupuncture.common.annotation.Anonymous;
+import com.acupuncture.common.core.domain.BaseDto;
+import com.acupuncture.common.core.domain.JsonResponse;
+import com.acupuncture.system.domain.dto.AmsWxQrCodeDto;
+import com.acupuncture.system.domain.dto.PmsPatientDto;
+import com.acupuncture.system.domain.po.AmsScreenWxQrCode;
+import com.acupuncture.system.domain.vo.AmsWxQrCodeVo;
+import com.acupuncture.system.service.WxQrCodeService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.List;
+
+@Slf4j
+@Api(tags = "微信二维码")
+@RestController
+@RequestMapping("/wxQrCode")
+public class WxQrCodeController {
+
+ @Resource
+ private WxQrCodeService wxQrCodeService;
+
+ @ApiOperation(value = "查询")
+ @PostMapping("/queryList")
+ public JsonResponse> queryList(@Validated @RequestBody BaseDto baseDto){
+ PageHelper.startPage(baseDto.getPageNum(), baseDto.getPageSize());
+ return JsonResponse.ok(new PageInfo<>(wxQrCodeService.queryList(baseDto.getParam().getDiseaseId(), baseDto.getParam().getDeptId())));
+ }
+
+ @ApiOperation(value = "新增")
+ @PostMapping("/add")
+ public JsonResponse add(@Validated @RequestBody AmsScreenWxQrCode amsWxQrCode) throws Exception{
+ wxQrCodeService.add(amsWxQrCode);
+ return JsonResponse.ok();
+ }
+
+ @ApiOperation(value = "删除")
+ @PostMapping("/delete")
+ public JsonResponse delete(@Validated @RequestBody PmsPatientDto.Delete delete){
+ wxQrCodeService.delete(delete.getIdList());
+ return JsonResponse.ok();
+ }
+
+ @ApiOperation(value = "导出")
+ @PostMapping("/export")
+ public JsonResponse export(@Validated @RequestBody AmsWxQrCodeDto.Query query) throws IOException{
+ return JsonResponse.ok(wxQrCodeService.export(query.getUrl(), query.getBq()));
+ }
+//
+ @ApiOperation(value = "查询筛查二维码")
+ @PostMapping("/queryScreenList")
+ public JsonResponse> queryScreenList(@Validated @RequestBody BaseDto dto){
+ if (dto.getPageNum() > 0) {
+ PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
+ }
+ return JsonResponse.ok(new PageInfo<>(wxQrCodeService.queryList(dto.getParam().getTenantId())));
+ }
+
+ @ApiOperation(value = "查询客户端筛查二维码")
+ @PostMapping("/queryClientScreenList")
+ public JsonResponse> queryClientScreenList(){
+ return JsonResponse.ok(wxQrCodeService.queryScreenList());
+ }
+
+ @ApiOperation(value = "添加筛查二维码")
+ @PostMapping("/addScreen")
+ public JsonResponse addScreen(@Validated @RequestBody AmsWxQrCodeDto.ScreenInsert amsScreenWxQrCode) throws Exception{
+ wxQrCodeService.add(amsScreenWxQrCode);
+ return JsonResponse.ok();
+ }
+
+ @ApiOperation(value = "删除")
+ @PostMapping("/deleteScreen")
+ public JsonResponse deleteScreen(@Validated @RequestBody PmsPatientDto.Delete delete){
+ wxQrCodeService.deleteScreen(delete.getIdList());
+ return JsonResponse.ok();
+ }
+
+ @ApiOperation(value = "导出筛查")
+ @PostMapping("/exportScreen")
+ public JsonResponse exportScreen(@Validated @RequestBody AmsWxQrCodeDto.Query query) throws Exception{
+ return JsonResponse.ok(wxQrCodeService.exportScreen(query.getUrl(), query.getTenantId()));
+ }
+
+ @ApiOperation(value = "导出海报筛查")
+ @PostMapping("/exportHbScreen")
+ public JsonResponse exportHbScreen(@Validated @RequestBody AmsWxQrCodeDto.Query query) throws Exception{
+ return JsonResponse.ok(wxQrCodeService.exportHbScreen(query.getUrl(), query.getTenantId()));
+ }
+//
+// @Anonymous
+// @ApiOperation(value = "导出静脉溶栓")
+// @PostMapping("/exportJmrs")
+// public JsonResponse exportJmrs(@Validated @RequestBody AmsWxQrCodeDto.Query query) throws Exception{
+// return JsonResponse.ok(wxQrCodeService.exportjmrs(query.getUrl()));
+//
+// }
+//
+// @ApiOperation(value = "客户端导出")
+// @GetMapping("/exportScreenPath")
+// public JsonResponse exportScreenPath() throws Exception {
+// return JsonResponse.ok(wxQrCodeService.exportScreenPath());
+// }
+//
+// @ApiOperation(value = "客户端导出ZIP")
+// @PostMapping("/exportZipScreenPath")
+// public JsonResponse exportZipScreenPath(@Validated @RequestBody AmsWxQrCodeDto.Query query) throws Exception {
+// return JsonResponse.ok(wxQrCodeService.exportZipScreenPath(query.getTenantId()));
+// }
+//
+// @ApiOperation(value = "客户端导出海报ZIP")
+// @PostMapping("/exportHbZipScreenPath")
+// public JsonResponse exportHbZipScreenPath(@Validated @RequestBody AmsWxQrCodeDto.Query query) throws Exception {
+// return JsonResponse.ok(wxQrCodeService.exportHbZipScreenPath(query.getTenantId()));
+// }
+
+}
diff --git a/acupuncture-admin/src/main/resources/application-dev.yml b/acupuncture-admin/src/main/resources/application-dev.yml
index a6042094..a020b54a 100644
--- a/acupuncture-admin/src/main/resources/application-dev.yml
+++ b/acupuncture-admin/src/main/resources/application-dev.yml
@@ -58,4 +58,12 @@ spring:
merge-sql: true
wall:
config:
- multi-statement-allow: true
\ No newline at end of file
+ multi-statement-allow: true
+
+file:
+ PatientTemplate: /home/acupuncture/server/profile/PatientTemplate.xlsx
+ TreamentTemplate: /home/acupuncture/server/profile/TreamentTemplate.xlsx
+ wxQrCodeTemplate: /home/acupuncture/server/profile/wxQrCodeTemplate.docx
+ screenQrCodeTemplate: /home/acupuncture/server/profile/screenQrCodeTemplate.docx
+ hbTemplate: /home/acupuncture/server/profile/screenHbQrCodeTemplate.docx
+ screenPath: http://test.tall.wiki/acupuncture/web-admin/screening/H5?hospitalId=hosId&hospitalName=hosName¢erId=cId
\ No newline at end of file
diff --git a/acupuncture-admin/src/main/resources/application-stage.yml b/acupuncture-admin/src/main/resources/application-stage.yml
index aa11b73b..3e216ada 100644
--- a/acupuncture-admin/src/main/resources/application-stage.yml
+++ b/acupuncture-admin/src/main/resources/application-stage.yml
@@ -61,4 +61,9 @@ spring:
multi-statement-allow: true
file:
PatientTemplate: /home/acupuncture/server/profile/PatientTemplate.xlsx
- TreamentTemplate: /home/acupuncture/server/profile/TreamentTemplate.xlsx
\ No newline at end of file
+ TreamentTemplate: /home/acupuncture/server/profile/TreamentTemplate.xlsx
+ wxQrCodeTemplate: /home/acupuncture/server/profile/wxQrCodeTemplate.docx
+ screenQrCodeTemplate: /home/acupuncture/server/profile/screenQrCodeTemplate.docx
+ hbTemplate: /home/acupuncture/server/profile/screenHbQrCodeTemplate.docx
+ screenPath: http://test.tall.wiki/acupuncture/web-admin/screening/H5?hospitalId=hosId&hospitalName=hosName¢erId=cId
+ jmrsUrl: /home/acupuncture/server/profile/uploads/jmrsTemplate.docx
diff --git a/acupuncture-admin/src/main/resources/application.yml b/acupuncture-admin/src/main/resources/application.yml
index 5e6b60b6..7a586722 100644
--- a/acupuncture-admin/src/main/resources/application.yml
+++ b/acupuncture-admin/src/main/resources/application.yml
@@ -12,6 +12,7 @@ acupuncture:
addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证
captchaType: math
+ profileUrl: /profile
# 开发环境配置
server:
diff --git a/acupuncture-common/pom.xml b/acupuncture-common/pom.xml
index 56bc592d..66091089 100644
--- a/acupuncture-common/pom.xml
+++ b/acupuncture-common/pom.xml
@@ -135,6 +135,19 @@
compile
+
+
+ com.luhuiguo
+ aspose-words
+ 23.1
+
+
+
+
+ net.glxn.qrgen
+ javase
+ 2.0
+
\ No newline at end of file
diff --git a/acupuncture-common/src/main/java/com/acupuncture/common/constant/ErrorConstant.java b/acupuncture-common/src/main/java/com/acupuncture/common/constant/ErrorConstant.java
new file mode 100644
index 00000000..cc7fb088
--- /dev/null
+++ b/acupuncture-common/src/main/java/com/acupuncture/common/constant/ErrorConstant.java
@@ -0,0 +1,157 @@
+package com.acupuncture.common.constant;
+
+import com.acupuncture.common.enums.BaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author :wei
+ * @date :Created in 2021/10/31 16:58
+ */
+
+@Getter
+@AllArgsConstructor
+public enum ErrorConstant implements BaseEnum {
+
+ SUCCESS(200, "ok"),
+ SYS_ERROR(500, "网络繁忙,请您稍后重试"),
+
+ FILE_FORMAT_ERROR(100, "文件格式错误"),
+
+ INSERT_ERROR(1, "数据添加错误!"),
+ NAME_ERROR(2, "请填写姓名"),
+ SEX_ERROR(3, "请选择性别"),
+ NATION_ERROR(4, "请选择民族"),
+ ID_CARD_NULL(5, "请填写身份证信息"),
+ PARAM_NULL(6, "请检查您的参数是否填写完整。"),
+ EDUCATION_ERROR(7, "请选择文化程度"),
+ EDUCATION_UNIT_ERROR(8, "请填写教育年限"),
+ PARAM_ERROR(9, "请求参数错误,请确认操作是否正确。"),
+ ID_CARD_ERROR(10, "身份证格式错误,请检查身份证填写是否正确。"),
+ PATIENT_ERROR(11, "患者身份证信息已存在或患者信息异常!"),
+ PATIENT_ID_ERROR(12, "患者ID信息异常!"),
+ QUESTION_NOT_FOUND(13, "试题未找到。"),
+ MOBILE_ERROR(14, "手机号格式错误,请确认操作是否正确!"),
+ MOBILE_NULL_ERROR(15, "请填写手机号"),
+ ADDRESS_ERROR(16, "请填写住址信息"),
+ AGE_ERROR(17, "请填写年龄"),
+ CAREER_ERROR(18, "请选择职业"),
+ REPORT_ID_ERROR(21, "患者报告单信息异常!"),
+
+ WORD_ERROR(19, "文件生成异常!"),
+ BAIDU_IDENTIFY_WORDS(20, "图片识别异常,请重新拍摄!(请勿倾斜图片或在光线黑暗的环境中拍摄)"),
+ QUESTION_SAVE_ERROR(21, "选项不能为空!"),
+
+
+ QUESTION_RULE_NOT_FOUND(47, "该评测规则未知,请联系开发人员。"),
+ REPORT_DOCTOR_ERROR(48, "对不起,您没有修改报告单结果的权限。"),
+ NOT_LOGIN(49, "对不起,您尚未登录或登录已失效,请重新登录。"),
+ POSITION_NOT_3(50, "对不起,您尚未选择职务,请重新选择。"),
+
+
+ PATIENT_NOT_CHOICE(57, "没有选择病人,不进行保存答案。"),
+
+
+ URL_ERROR(98, "请求路径转换异常。"),
+ THIRD_ERROR(100, "调用第三方刚接口异常"),
+
+ //参数校验错误
+ PARAMETER_VALIDATOR_ERROR(40000, "参数校验错误"),
+ //没有找到TOKEN
+ TOKEN_NOTFOUND(40001, "Missing or invalid Authorization header."),
+ //Token签名解析错误
+ TOKEN_SIGNATURE_INVALIDATE(40002, "Token signature encoding error"),
+ //Token过期
+ TOKEN_EXPIRED(40003, "Token过期"),
+ //Token Stub 错误
+ TOKEN_STUB_NOT_FOUND(40004, "Token stub not found"),
+ //Token其他错误
+ TOKEN_FAILED(40005, "Token其他错误"),
+ //用户被禁用
+ USER_DISABLED(40006, "User disabled,Please concact the System Administrator"),
+ //没有找到TOKEN
+ USER_CHANGE_PASSWORD_NOT_SAME(40007, "两次密码不一致"),
+ //验证码错误
+ USER_PHONE_SMSCODE_ERROR(40008, "验证码错误"),
+ //短信验证码发送太频繁
+ USER_PHONE_SMSCODE_SEND_INTERVAL_SMALL(40009, "短信验证码发送太频繁,请稍后再试"),
+ //电话和用户名不匹配
+ USER_PHONE_USERNAME_NOT_MATCH(40011, "电话和用户名不匹配"),
+ //没有找到TOKEN
+ USER_LOGIN_WXMP_INVALID_CODE(40012, "无效的小程序code"),
+ //没有找到TOKEN
+ USER_TOKEN_ID_NOT_MATCH(40013, "token中的用户ID和要操作的用户ID不匹配"),
+ //管理员手机号重复
+ USER_PHONE_REPEAT(40014, "管理员手机号重复"),
+ //管理员手机号重复
+ USER_PHONE_NOT_FIND(40015, "手机号不能为空"),
+ //登录类型错误
+ LOGIN_TYPE_ERROR(40016, "登录类型错误,1管理员,2客户端"),
+ //未找到登录类型
+ LOGIN_USERTYPE_NOT_FOUND(40017, "未找到登录类型,00管理员,01客户端"),
+ //没有找到TOKEN
+ PAGEHELPER_SQL_ERROR(40018, "PageHelper自定义SQL解析错误"),
+ //查询记录多于预期
+ RECORD_TOO_MANY_THAN_EXPECTED(50001, "查询记录多于预期"),
+ //FinishKey不正确
+ FINISH_KEY_NOT_FOUND(50002, "FinishKey不正确"),
+ //测评记录不存在
+ PATIENT_REPORT_NOT_FOUND(50003, "测评记录不存在"),
+ //阶段不存在
+ STAGE_NOT_FOUND(50004, "阶段不存在"),
+ FB_TIME_NOT_FIND(50008, "发病时间不正确"),
+ DY_TIME_NOT_FIND(50009, "到院时间不正确"),
+ CZDC_TIME_NOT_FIND(50009, "卒中医生到场时间不正确"),
+ TZ_TIME_NOT_FIND(50009, "团注时间不正确"),
+ CCWC_TIME_NOT_FIND(50010, "穿刺完成时间不正确"),
+ SCXGZT_TIME_NOT_FIND(50011, "首次血管再通时间不正确"),
+ ZY_TIME_NOT_FIND(50012, "住院时间不正确"),
+ SS_TIME_NOT_FIND(50013, "CEA/CAS手术手术时间不正确"),
+ CY_TIME_NOT_FIND(50014, "出院时间不正确"),
+ HOSPITAL_REPEAT_SUBMIT(35,"数据已提交,无法修改"),
+ QUESTIONNAIRE_DETAIL_ERROR(37,"问卷详情信息错误"),
+ QUESTIONNAIRE_INFO_INCOMPLETE(39,"请填写全部选项"),
+ XGZL_INCOMPLETE(40,"请填写血管内治疗的全部选项"),
+ WxmpLoginFailed(50071,"小程序登陆失败"),
+ NOT_DOCTOR(50072, "未找到医生信息"),
+
+ DCS_RUNNING_ERROR(50073,"数据治理服务正在运行中"),
+ DcsLogError(50074,"lastSyncId和lastMakeupDate不应该为null"),
+ DateRangeError(50075,"日期范围错误"),
+ PASSWPRD_ERROR(50076,"密码错误"),
+ HAVING_BIND(50077,"您已绑定"),
+ HAVING_APPLY(50078,"您已申请"),
+ AUTHORITY(50079,"无权限操作"),
+ PHONE_HAVING(50080,"手机号已被注册"),
+
+ PHONE_NOT_FIND(50081,"手机号未找到"),
+
+ DONT_UPDATE(50082,"不允许修改"),
+
+ PHONE_HAVE(50083,"手机号已经存在,请勿重复提交。"),
+
+ NO_PERMISSION(50084,"无权限"),
+ ;
+
+ private Integer code;
+ private String desc;
+
+ public ErrorConstant addMsg(String msg) {
+ this.desc = msg + "行:" + this.desc;
+ return this;
+ }
+
+ public static ErrorConstant getByCode(int code) {
+ for (ErrorConstant codeEnum : ErrorConstant.values()) {
+ if (codeEnum.getCode().intValue() == code) {
+ return codeEnum;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String getKey() {
+ return String.valueOf(code);
+ }
+}
diff --git a/acupuncture-common/src/main/java/com/acupuncture/common/constant/UserConstants.java b/acupuncture-common/src/main/java/com/acupuncture/common/constant/UserConstants.java
index f6dc2955..3a0a5c41 100644
--- a/acupuncture-common/src/main/java/com/acupuncture/common/constant/UserConstants.java
+++ b/acupuncture-common/src/main/java/com/acupuncture/common/constant/UserConstants.java
@@ -85,4 +85,20 @@ public class UserConstants
* QuestionAnswer分隔符
*/
public static final String ANSWER_JOIN_STRING = "!@#";
+
+ public enum SubmitStatus {
+ /**
+ * 问卷提交状态 0:保存 1:提交
+ */
+ save((byte) 0, "保存"),
+ submit((byte) 1, "提交"),
+ ;
+ public byte status;
+ public String name;
+
+ SubmitStatus(byte status, String name) {
+ this.status = status;
+ this.name = name;
+ }
+ }
}
diff --git a/acupuncture-common/src/main/java/com/acupuncture/common/core/redis/RedisCache.java b/acupuncture-common/src/main/java/com/acupuncture/common/core/redis/RedisCache.java
index d12a2923..01b5a98e 100644
--- a/acupuncture-common/src/main/java/com/acupuncture/common/core/redis/RedisCache.java
+++ b/acupuncture-common/src/main/java/com/acupuncture/common/core/redis/RedisCache.java
@@ -73,7 +73,54 @@ public class RedisCache
{
return redisTemplate.expire(key, timeout, unit);
}
+ /**
+ * 普通缓存获取
+ *
+ * @param key 键
+ * @return 值
+ */
+ public Object get(String key) {
+ return key == null ? null : redisTemplate.opsForValue().get(key);
+ }
+ /**
+ * 普通缓存放入
+ *
+ * @param key 键
+ * @param value 值
+ * @return true成功 false失败
+ */
+ public boolean set(String key, Object value) {
+ try {
+ redisTemplate.opsForValue().set(key, value);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+ /**
+ * 普通缓存放入并设置时间
+ *
+ * @param key 键
+ * @param value 值
+ * @param seconds 时间(秒) time要大于0 如果time小于等于0 将设置无限期
+ * @return true成功 false 失败
+ */
+ public boolean set(String key, Object value, long seconds) {
+ try {
+ if (seconds > 0) {
+ redisTemplate.opsForValue().set(key, value, seconds, TimeUnit.SECONDS);
+ } else {
+ set(key, value);
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
/**
* 获取有效时间
*
diff --git a/acupuncture-common/src/main/java/com/acupuncture/common/enums/BaseEnum.java b/acupuncture-common/src/main/java/com/acupuncture/common/enums/BaseEnum.java
new file mode 100644
index 00000000..88c6e5a0
--- /dev/null
+++ b/acupuncture-common/src/main/java/com/acupuncture/common/enums/BaseEnum.java
@@ -0,0 +1,131 @@
+package com.acupuncture.common.enums;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public interface BaseEnum {
+ /**
+ * 获取枚举标识
+ *
+ * @return
+ */
+ Integer getCode();
+
+ /**
+ * 获取枚举标识
+ *
+ * @return
+ */
+ String getKey();
+
+ /**
+ * 获取枚举描述
+ *
+ * @return
+ */
+ String getDesc();
+
+ /**
+ * 通过枚举类型和code值获取对应的枚举类型
+ *
+ * @param enumType
+ * @param code
+ * @param
+ * @return
+ */
+ static T codeOf(Class extends BaseEnum> enumType, Integer code) {
+ if (enumType == null || code == null) {
+ return null;
+ }
+ T[] enumConstants = (T[]) enumType.getEnumConstants();
+ if (enumConstants == null) {
+ return null;
+ }
+ for (T enumConstant : enumConstants) {
+ int enumCode = enumConstant.getCode();
+ if (code.equals(enumCode)) {
+ return enumConstant;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 通过枚举类型和code值获取对应的枚举类型
+ *
+ * @param enumType
+ * @param key
+ * @param
+ * @return
+ */
+ static T keyOf(Class extends BaseEnum> enumType, String key) {
+ if (enumType == null || key == null) {
+ return null;
+ }
+ T[] enumConstants = (T[]) enumType.getEnumConstants();
+ if (enumConstants == null) {
+ return null;
+ }
+ for (T enumConstant : enumConstants) {
+ String enumKey = enumConstant.getKey();
+ if (key.equals(enumKey)) {
+ return enumConstant;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 通过枚举类型和text值获取对应的枚举类型
+ * 该方法等价于 枚举类.valueOf("");
+ * @param enumType
+ * @param text
+ * @param
+ * @return
+ */
+ static T textOf(Class extends BaseEnum> enumType, String text) {
+ if (enumType == null || text.isEmpty()) {
+ return null;
+ }
+ T[] enumConstants = (T[]) enumType.getEnumConstants();
+ if (enumConstants == null) {
+ return null;
+ }
+ for (T enumConstant : enumConstants) {
+ String enumText = enumConstant.toString();
+ if (text.equals(enumText)) {
+ return enumConstant;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 将enum转换为list
+ *
+ * @param enumType
+ * @param
+ * @return
+ */
+ static List