From eaa823a8b72dad1f731b2b9017203ee608e6d94a Mon Sep 17 00:00:00 2001 From: bot5 Date: Tue, 17 Mar 2026 23:32:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(health):=20=E6=96=B0=E5=A2=9E=E6=85=A2?= =?UTF-8?q?=E6=80=A7=E7=96=BE=E7=97=85=E6=A1=A3=E6=A1=88=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增慢性疾病档案实体类、VO、DTO - 新增Mapper接口和MyBatis映射文件 - 新增Service接口和实现类 - 新增Controller控制器 - 新增数据库建表SQL、菜单和字典数据 - 支持关联成员和疾病知识库 - 支持疾病状态管理和启用/停用 --- .../ChronicDiseaseRecordController.java | 128 +++++++++++++ .../health/domain/ChronicDiseaseRecord.java | 119 ++++++++++++ .../domain/dto/ChronicDiseaseRecordDto.java | 55 ++++++ .../domain/vo/ChronicDiseaseRecordVo.java | 24 +++ .../mapper/ChronicDiseaseRecordMapper.java | 87 +++++++++ .../service/IChronicDiseaseRecordService.java | 71 ++++++++ .../impl/ChronicDiseaseRecordServiceImpl.java | 124 +++++++++++++ .../health/ChronicDiseaseRecordMapper.xml | 172 ++++++++++++++++++ sql/chronic_disease_record.sql | 105 +++++++++++ 9 files changed, 885 insertions(+) create mode 100644 intc-modules/intc-health/src/main/java/com/intc/health/controller/ChronicDiseaseRecordController.java create mode 100644 intc-modules/intc-health/src/main/java/com/intc/health/domain/ChronicDiseaseRecord.java create mode 100644 intc-modules/intc-health/src/main/java/com/intc/health/domain/dto/ChronicDiseaseRecordDto.java create mode 100644 intc-modules/intc-health/src/main/java/com/intc/health/domain/vo/ChronicDiseaseRecordVo.java create mode 100644 intc-modules/intc-health/src/main/java/com/intc/health/mapper/ChronicDiseaseRecordMapper.java create mode 100644 intc-modules/intc-health/src/main/java/com/intc/health/service/IChronicDiseaseRecordService.java create mode 100644 intc-modules/intc-health/src/main/java/com/intc/health/service/impl/ChronicDiseaseRecordServiceImpl.java create mode 100644 intc-modules/intc-health/src/main/resources/mapper/health/ChronicDiseaseRecordMapper.xml create mode 100644 sql/chronic_disease_record.sql diff --git a/intc-modules/intc-health/src/main/java/com/intc/health/controller/ChronicDiseaseRecordController.java b/intc-modules/intc-health/src/main/java/com/intc/health/controller/ChronicDiseaseRecordController.java new file mode 100644 index 0000000..06d3524 --- /dev/null +++ b/intc-modules/intc-health/src/main/java/com/intc/health/controller/ChronicDiseaseRecordController.java @@ -0,0 +1,128 @@ +package com.intc.health.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import javax.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.intc.common.log.annotation.Log; +import com.intc.common.log.enums.BusinessType; +import com.intc.common.security.annotation.RequiresPermissions; +import com.intc.health.domain.ChronicDiseaseRecord; +import com.intc.health.domain.vo.ChronicDiseaseRecordVo; +import com.intc.health.domain.dto.ChronicDiseaseRecordDto; +import com.intc.health.service.IChronicDiseaseRecordService; +import com.intc.common.core.web.controller.BaseController; +import com.intc.common.core.web.domain.AjaxResult; +import com.intc.common.core.utils.poi.ExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.intc.common.core.web.page.TableDataInfo; + +/** + * 慢性疾病档案Controller + * + * @author bot5 + * @date 2026-03-17 + */ +@Api(tags = "慢性疾病档案") +@RestController +@RequestMapping("/chronicDisease") +public class ChronicDiseaseRecordController extends BaseController +{ + @Resource + private IChronicDiseaseRecordService chronicDiseaseRecordService; + + /** + * 查询慢性疾病档案列表 + */ + @ApiOperation(value = "查询慢性疾病档案列表", response = ChronicDiseaseRecordVo.class) + @RequiresPermissions("health:chronicDisease:list") + @GetMapping("/list") + public TableDataInfo list(ChronicDiseaseRecordDto chronicDiseaseRecordDto) + { + startPage(); + List list = chronicDiseaseRecordService.selectChronicDiseaseRecordList(chronicDiseaseRecordDto); + return getDataTable(list); + } + + /** + * 根据成员ID查询慢性疾病档案列表 + */ + @ApiOperation(value = "根据成员ID查询慢性疾病档案列表", response = ChronicDiseaseRecordVo.class) + @RequiresPermissions("health:chronicDisease:list") + @GetMapping("/listByMember/{memberId}") + public AjaxResult listByMember(@PathVariable("memberId") Long memberId) + { + List list = chronicDiseaseRecordService.selectChronicDiseaseRecordByMemberId(memberId); + return success(list); + } + + /** + * 导出慢性疾病档案列表 + */ + @ApiOperation(value = "导出慢性疾病档案列表") + @RequiresPermissions("health:chronicDisease:export") + @Log(title = "慢性疾病档案", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ChronicDiseaseRecordDto chronicDiseaseRecordDto) + { + List list = chronicDiseaseRecordService.selectChronicDiseaseRecordList(chronicDiseaseRecordDto); + ExcelUtil util = new ExcelUtil(ChronicDiseaseRecordVo.class); + util.exportExcel(response, list, "慢性疾病档案数据"); + } + + /** + * 获取慢性疾病档案详细信息 + */ + @ApiOperation(value = "获取慢性疾病档案详细信息") + @RequiresPermissions("health:chronicDisease:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(chronicDiseaseRecordService.selectChronicDiseaseRecordById(id)); + } + + /** + * 新增慢性疾病档案 + */ + @ApiOperation(value = "新增慢性疾病档案") + @RequiresPermissions("health:chronicDisease:add") + @Log(title = "慢性疾病档案", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ChronicDiseaseRecord chronicDiseaseRecord) + { + return toAjax(chronicDiseaseRecordService.insertChronicDiseaseRecord(chronicDiseaseRecord)); + } + + /** + * 修改慢性疾病档案 + */ + @ApiOperation(value = "修改慢性疾病档案") + @RequiresPermissions("health:chronicDisease:edit") + @Log(title = "慢性疾病档案", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ChronicDiseaseRecord chronicDiseaseRecord) + { + return toAjax(chronicDiseaseRecordService.updateChronicDiseaseRecord(chronicDiseaseRecord)); + } + + /** + * 删除慢性疾病档案 + */ + @ApiOperation(value = "删除慢性疾病档案") + @RequiresPermissions("health:chronicDisease:remove") + @Log(title = "慢性疾病档案", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(chronicDiseaseRecordService.deleteChronicDiseaseRecordByIds(ids)); + } +} \ No newline at end of file diff --git a/intc-modules/intc-health/src/main/java/com/intc/health/domain/ChronicDiseaseRecord.java b/intc-modules/intc-health/src/main/java/com/intc/health/domain/ChronicDiseaseRecord.java new file mode 100644 index 0000000..6c4006b --- /dev/null +++ b/intc-modules/intc-health/src/main/java/com/intc/health/domain/ChronicDiseaseRecord.java @@ -0,0 +1,119 @@ +package com.intc.health.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.intc.common.core.annotation.Excel; +import com.intc.common.core.web.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +/** + * 慢性疾病档案对象 chronic_disease_record + * + * @author bot5 + * @date 2026-03-17 + */ +@ApiModel("慢性疾病档案对象") +@Data +public class ChronicDiseaseRecord extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 关联成员ID */ + @ApiModelProperty(value = "关联成员ID") + @NotNull(message = "成员不能为空") + @Excel(name = "成员ID") + private Long memberId; + + /** 成员名称(冗余字段) */ + @Excel(name = "成员名称") + private String memberName; + + /** 关联疾病ID(关联health_diseases表,可选) */ + @ApiModelProperty(value = "关联疾病ID") + @Excel(name = "疾病ID") + private Long diseaseId; + + /** 疾病名称 */ + @ApiModelProperty(value = "疾病名称") + @NotNull(message = "疾病名称不能为空") + @Excel(name = "疾病名称") + private String diseaseName; + + /** 疾病编码(ICD-10标准) */ + @ApiModelProperty(value = "疾病编码(ICD-10标准)") + @Excel(name = "疾病编码") + private String diseaseCode; + + /** 确诊日期 */ + @ApiModelProperty(value = "确诊日期") + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "确诊日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date diagnosisDate; + + /** 状态:1-稳定 2-需关注 3-急性期 */ + @ApiModelProperty(value = "状态:1-稳定 2-需关注 3-急性期") + @NotNull(message = "状态不能为空") + @Excel(name = "状态", readConverterExp = "1=稳定,2=需关注,3=急性期") + private Integer diseaseStatus; + + /** 主治医生 */ + @ApiModelProperty(value = "主治医生") + @Excel(name = "主治医生") + private String mainDoctor; + + /** 就诊医院 */ + @ApiModelProperty(value = "就诊医院") + @Excel(name = "就诊医院") + private String hospital; + + /** 科室 */ + @ApiModelProperty(value = "科室") + @Excel(name = "科室") + private String department; + + /** 备注说明 */ + @ApiModelProperty(value = "备注说明") + private String notes; + + /** 是否启用:1-是 0-否 */ + @ApiModelProperty(value = "是否启用:1-是 0-否") + @Excel(name = "是否启用", readConverterExp = "1=是,0=否") + private Integer isActive; + + /** 删除标志(0代表存在 1代表删除) */ + private String delFlag; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("memberId", getMemberId()) + .append("memberName", getMemberName()) + .append("diseaseId", getDiseaseId()) + .append("diseaseName", getDiseaseName()) + .append("diseaseCode", getDiseaseCode()) + .append("diagnosisDate", getDiagnosisDate()) + .append("diseaseStatus", getDiseaseStatus()) + .append("mainDoctor", getMainDoctor()) + .append("hospital", getHospital()) + .append("department", getDepartment()) + .append("notes", getNotes()) + .append("isActive", getIsActive()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("delFlag", getDelFlag()) + .append("remark", getRemark()) + .toString(); + } +} \ No newline at end of file diff --git a/intc-modules/intc-health/src/main/java/com/intc/health/domain/dto/ChronicDiseaseRecordDto.java b/intc-modules/intc-health/src/main/java/com/intc/health/domain/dto/ChronicDiseaseRecordDto.java new file mode 100644 index 0000000..bbb2fcc --- /dev/null +++ b/intc-modules/intc-health/src/main/java/com/intc/health/domain/dto/ChronicDiseaseRecordDto.java @@ -0,0 +1,55 @@ +package com.intc.health.domain.dto; + +import lombok.Data; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import java.util.Date; + +/** + * 慢性疾病档案Dto对象 chronic_disease_record + * + * @author bot5 + * @date 2026-03-17 + */ +@ApiModel("慢性疾病档案Dto对象") +@Data +public class ChronicDiseaseRecordDto implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 关联成员ID */ + @ApiModelProperty(value = "关联成员ID") + private Long memberId; + + /** 关联疾病ID */ + @ApiModelProperty(value = "关联疾病ID") + private Long diseaseId; + + /** 疾病名称 */ + @ApiModelProperty(value = "疾病名称") + private String diseaseName; + + /** 疾病编码 */ + @ApiModelProperty(value = "疾病编码") + private String diseaseCode; + + /** 状态:1-稳定 2-需关注 3-急性期 */ + @ApiModelProperty(value = "状态") + private Integer diseaseStatus; + + /** 是否启用 */ + @ApiModelProperty(value = "是否启用") + private Integer isActive; + + /** 确诊日期-开始 */ + @ApiModelProperty(value = "确诊日期-开始") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date diagnosisDateStart; + + /** 确诊日期-结束 */ + @ApiModelProperty(value = "确诊日期-结束") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date diagnosisDateEnd; +} \ No newline at end of file diff --git a/intc-modules/intc-health/src/main/java/com/intc/health/domain/vo/ChronicDiseaseRecordVo.java b/intc-modules/intc-health/src/main/java/com/intc/health/domain/vo/ChronicDiseaseRecordVo.java new file mode 100644 index 0000000..f464114 --- /dev/null +++ b/intc-modules/intc-health/src/main/java/com/intc/health/domain/vo/ChronicDiseaseRecordVo.java @@ -0,0 +1,24 @@ +package com.intc.health.domain.vo; + +import com.intc.health.domain.ChronicDiseaseRecord; +import lombok.Data; +import io.swagger.annotations.ApiModel; + +/** + * 慢性疾病档案Vo对象 chronic_disease_record + * + * @author bot5 + * @date 2026-03-17 + */ +@ApiModel("慢性疾病档案Vo对象") +@Data +public class ChronicDiseaseRecordVo extends ChronicDiseaseRecord +{ + private static final long serialVersionUID = 1L; + + /** 疾病类型(来自health_diseases表) */ + private String diseaseType; + + /** 疾病症状(来自health_diseases表) */ + private String diseaseSymptom; +} \ No newline at end of file diff --git a/intc-modules/intc-health/src/main/java/com/intc/health/mapper/ChronicDiseaseRecordMapper.java b/intc-modules/intc-health/src/main/java/com/intc/health/mapper/ChronicDiseaseRecordMapper.java new file mode 100644 index 0000000..224f973 --- /dev/null +++ b/intc-modules/intc-health/src/main/java/com/intc/health/mapper/ChronicDiseaseRecordMapper.java @@ -0,0 +1,87 @@ +package com.intc.health.mapper; + +import java.util.List; +import com.intc.health.domain.vo.ChronicDiseaseRecordVo; +import com.intc.health.domain.dto.ChronicDiseaseRecordDto; +import org.apache.ibatis.annotations.Param; + +/** + * 慢性疾病档案Mapper接口 + * + * @author bot5 + * @date 2026-03-17 + */ +public interface ChronicDiseaseRecordMapper +{ + /** + * 查询慢性疾病档案 + * + * @param id 慢性疾病档案主键 + * @return 慢性疾病档案 + */ + public ChronicDiseaseRecordVo selectChronicDiseaseRecordById(Long id); + + /** + * 查询慢性疾病档案列表 + * + * @param chronicDiseaseRecordDto 慢性疾病档案 + * @return 慢性疾病档案集合 + */ + public List selectChronicDiseaseRecordList(ChronicDiseaseRecordDto chronicDiseaseRecordDto); + + /** + * 根据成员ID查询慢性疾病档案列表 + * + * @param memberId 成员ID + * @return 慢性疾病档案集合 + */ + public List selectChronicDiseaseRecordByMemberId(Long memberId); + + /** + * 新增慢性疾病档案 + * + * @param chronicDiseaseRecord 慢性疾病档案 + * @return 结果 + */ + public int insertChronicDiseaseRecord(com.intc.health.domain.ChronicDiseaseRecord chronicDiseaseRecord); + + /** + * 修改慢性疾病档案 + * + * @param chronicDiseaseRecord 慢性疾病档案 + * @return 结果 + */ + public int updateChronicDiseaseRecord(com.intc.health.domain.ChronicDiseaseRecord chronicDiseaseRecord); + + /** + * 删除慢性疾病档案 + * + * @param id 慢性疾病档案主键 + * @return 结果 + */ + public int deleteChronicDiseaseRecordById(Long id); + + /** + * 批量删除慢性疾病档案 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteChronicDiseaseRecordByIds(Long[] ids); + + /** + * 逻辑删除慢性疾病档案 + * + * @param id 慢性疾病档案主键 + * @return 结果 + */ + public int removeChronicDiseaseRecordById(Long id); + + /** + * 批量逻辑删除慢性疾病档案 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int removeChronicDiseaseRecordByIds(Long[] ids); +} \ No newline at end of file diff --git a/intc-modules/intc-health/src/main/java/com/intc/health/service/IChronicDiseaseRecordService.java b/intc-modules/intc-health/src/main/java/com/intc/health/service/IChronicDiseaseRecordService.java new file mode 100644 index 0000000..8a07b49 --- /dev/null +++ b/intc-modules/intc-health/src/main/java/com/intc/health/service/IChronicDiseaseRecordService.java @@ -0,0 +1,71 @@ +package com.intc.health.service; + +import java.util.List; +import com.intc.health.domain.ChronicDiseaseRecord; +import com.intc.health.domain.dto.ChronicDiseaseRecordDto; +import com.intc.health.domain.vo.ChronicDiseaseRecordVo; + +/** + * 慢性疾病档案Service接口 + * + * @author bot5 + * @date 2026-03-17 + */ +public interface IChronicDiseaseRecordService +{ + /** + * 查询慢性疾病档案 + * + * @param id 慢性疾病档案主键 + * @return 慢性疾病档案 + */ + public ChronicDiseaseRecordVo selectChronicDiseaseRecordById(Long id); + + /** + * 查询慢性疾病档案列表 + * + * @param chronicDiseaseRecordDto 慢性疾病档案 + * @return 慢性疾病档案集合 + */ + public List selectChronicDiseaseRecordList(ChronicDiseaseRecordDto chronicDiseaseRecordDto); + + /** + * 根据成员ID查询慢性疾病档案列表 + * + * @param memberId 成员ID + * @return 慢性疾病档案集合 + */ + public List selectChronicDiseaseRecordByMemberId(Long memberId); + + /** + * 新增慢性疾病档案 + * + * @param chronicDiseaseRecord 慢性疾病档案 + * @return 结果 + */ + public int insertChronicDiseaseRecord(ChronicDiseaseRecord chronicDiseaseRecord); + + /** + * 修改慢性疾病档案 + * + * @param chronicDiseaseRecord 慢性疾病档案 + * @return 结果 + */ + public int updateChronicDiseaseRecord(ChronicDiseaseRecord chronicDiseaseRecord); + + /** + * 批量删除慢性疾病档案 + * + * @param ids 需要删除的慢性疾病档案主键集合 + * @return 结果 + */ + public int deleteChronicDiseaseRecordByIds(Long[] ids); + + /** + * 删除慢性疾病档案信息 + * + * @param id 慢性疾病档案主键 + * @return 结果 + */ + public int deleteChronicDiseaseRecordById(Long id); +} \ No newline at end of file diff --git a/intc-modules/intc-health/src/main/java/com/intc/health/service/impl/ChronicDiseaseRecordServiceImpl.java b/intc-modules/intc-health/src/main/java/com/intc/health/service/impl/ChronicDiseaseRecordServiceImpl.java new file mode 100644 index 0000000..8c6de32 --- /dev/null +++ b/intc-modules/intc-health/src/main/java/com/intc/health/service/impl/ChronicDiseaseRecordServiceImpl.java @@ -0,0 +1,124 @@ +package com.intc.health.service.impl; + +import com.intc.common.core.utils.DateUtils; +import com.intc.common.core.utils.IdWorker; +import com.intc.common.security.utils.SecurityUtils; +import com.intc.health.domain.ChronicDiseaseRecord; +import com.intc.health.domain.dto.ChronicDiseaseRecordDto; +import com.intc.health.domain.vo.ChronicDiseaseRecordVo; +import com.intc.health.mapper.ChronicDiseaseRecordMapper; +import com.intc.health.service.IChronicDiseaseRecordService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 慢性疾病档案Service业务层处理 + * + * @author bot5 + * @date 2026-03-17 + */ +@Service +public class ChronicDiseaseRecordServiceImpl implements IChronicDiseaseRecordService +{ + @Resource + private ChronicDiseaseRecordMapper chronicDiseaseRecordMapper; + + /** + * 查询慢性疾病档案 + * + * @param id 慢性疾病档案主键 + * @return 慢性疾病档案 + */ + @Override + public ChronicDiseaseRecordVo selectChronicDiseaseRecordById(Long id) + { + return chronicDiseaseRecordMapper.selectChronicDiseaseRecordById(id); + } + + /** + * 查询慢性疾病档案列表 + * + * @param chronicDiseaseRecordDto 慢性疾病档案 + * @return 慢性疾病档案 + */ + @Override + public List selectChronicDiseaseRecordList(ChronicDiseaseRecordDto chronicDiseaseRecordDto) + { + return chronicDiseaseRecordMapper.selectChronicDiseaseRecordList(chronicDiseaseRecordDto); + } + + /** + * 根据成员ID查询慢性疾病档案列表 + * + * @param memberId 成员ID + * @return 慢性疾病档案集合 + */ + @Override + public List selectChronicDiseaseRecordByMemberId(Long memberId) + { + return chronicDiseaseRecordMapper.selectChronicDiseaseRecordByMemberId(memberId); + } + + /** + * 新增慢性疾病档案 + * + * @param chronicDiseaseRecord 慢性疾病档案 + * @return 结果 + */ + @Override + public int insertChronicDiseaseRecord(ChronicDiseaseRecord chronicDiseaseRecord) + { + chronicDiseaseRecord.setCreateBy(SecurityUtils.getUsername()); + chronicDiseaseRecord.setCreateTime(DateUtils.getNowDate()); + chronicDiseaseRecord.setId(IdWorker.getId()); + // 默认启用 + if (chronicDiseaseRecord.getIsActive() == null) { + chronicDiseaseRecord.setIsActive(1); + } + // 默认状态为稳定 + if (chronicDiseaseRecord.getDiseaseStatus() == null) { + chronicDiseaseRecord.setDiseaseStatus(1); + } + return chronicDiseaseRecordMapper.insertChronicDiseaseRecord(chronicDiseaseRecord); + } + + /** + * 修改慢性疾病档案 + * + * @param chronicDiseaseRecord 慢性疾病档案 + * @return 结果 + */ + @Override + public int updateChronicDiseaseRecord(ChronicDiseaseRecord chronicDiseaseRecord) + { + chronicDiseaseRecord.setUpdateBy(SecurityUtils.getUsername()); + chronicDiseaseRecord.setUpdateTime(DateUtils.getNowDate()); + return chronicDiseaseRecordMapper.updateChronicDiseaseRecord(chronicDiseaseRecord); + } + + /** + * 批量删除慢性疾病档案 + * + * @param ids 需要删除的慢性疾病档案主键 + * @return 结果 + */ + @Override + public int deleteChronicDiseaseRecordByIds(Long[] ids) + { + return chronicDiseaseRecordMapper.removeChronicDiseaseRecordByIds(ids); + } + + /** + * 删除慢性疾病档案信息 + * + * @param id 慢性疾病档案主键 + * @return 结果 + */ + @Override + public int deleteChronicDiseaseRecordById(Long id) + { + return chronicDiseaseRecordMapper.removeChronicDiseaseRecordById(id); + } +} \ No newline at end of file diff --git a/intc-modules/intc-health/src/main/resources/mapper/health/ChronicDiseaseRecordMapper.xml b/intc-modules/intc-health/src/main/resources/mapper/health/ChronicDiseaseRecordMapper.xml new file mode 100644 index 0000000..281774d --- /dev/null +++ b/intc-modules/intc-health/src/main/resources/mapper/health/ChronicDiseaseRecordMapper.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select a.id, a.member_id, a.disease_id, a.disease_name, a.disease_code, a.diagnosis_date, + a.disease_status, a.main_doctor, a.hospital, a.department, a.notes, a.is_active, + a.create_by, a.create_time, a.update_by, a.update_time, a.del_flag, a.remark, + p.name as member_name, + d.type as disease_type, + d.symptom as disease_symptom + from chronic_disease_record a + left join health_person p on a.member_id = p.id + left join health_diseases d on a.disease_id = d.id + + + + + + + + + + insert into chronic_disease_record + + id, + member_id, + disease_id, + disease_name, + disease_code, + diagnosis_date, + disease_status, + main_doctor, + hospital, + department, + notes, + is_active, + create_by, + create_time, + update_by, + update_time, + del_flag, + remark, + + + #{id}, + #{memberId}, + #{diseaseId}, + #{diseaseName}, + #{diseaseCode}, + #{diagnosisDate}, + #{diseaseStatus}, + #{mainDoctor}, + #{hospital}, + #{department}, + #{notes}, + #{isActive}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{delFlag}, + #{remark}, + + + + + update chronic_disease_record + + member_id = #{memberId}, + disease_id = #{diseaseId}, + disease_name = #{diseaseName}, + disease_code = #{diseaseCode}, + diagnosis_date = #{diagnosisDate}, + disease_status = #{diseaseStatus}, + main_doctor = #{mainDoctor}, + hospital = #{hospital}, + department = #{department}, + notes = #{notes}, + is_active = #{isActive}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from chronic_disease_record where id = #{id} + + + + delete from chronic_disease_record where id in + + #{id} + + + + + update chronic_disease_record set del_flag = '1' where id = #{id} + + + + update chronic_disease_record set del_flag = '1' where id in + + #{id} + + + \ No newline at end of file diff --git a/sql/chronic_disease_record.sql b/sql/chronic_disease_record.sql new file mode 100644 index 0000000..03eed8f --- /dev/null +++ b/sql/chronic_disease_record.sql @@ -0,0 +1,105 @@ +-- ======================================== +-- 慢性疾病档案表 +-- ======================================== +DROP TABLE IF EXISTS chronic_disease_record; +CREATE TABLE chronic_disease_record ( + id BIGSERIAL PRIMARY KEY, + member_id BIGINT NOT NULL, + disease_id BIGINT, + disease_name VARCHAR(100) NOT NULL, + disease_code VARCHAR(20), + diagnosis_date DATE, + disease_status SMALLINT NOT NULL DEFAULT 1, + main_doctor VARCHAR(50), + hospital VARCHAR(100), + department VARCHAR(50), + notes TEXT, + is_active SMALLINT DEFAULT 1, + -- 若依标准字段 + create_by VARCHAR(64) DEFAULT '', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64) DEFAULT '', + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + remark VARCHAR(500) DEFAULT '', + del_flag SMALLINT DEFAULT 0 +); + +COMMENT ON TABLE chronic_disease_record IS '慢性疾病档案表'; +COMMENT ON COLUMN chronic_disease_record.id IS '主键ID'; +COMMENT ON COLUMN chronic_disease_record.member_id IS '关联成员ID'; +COMMENT ON COLUMN chronic_disease_record.disease_id IS '关联疾病ID(关联health_diseases表)'; +COMMENT ON COLUMN chronic_disease_record.disease_name IS '疾病名称(高血压/糖尿病/冠心病等)'; +COMMENT ON COLUMN chronic_disease_record.disease_code IS '疾病编码(ICD-10标准)'; +COMMENT ON COLUMN chronic_disease_record.diagnosis_date IS '确诊日期'; +COMMENT ON COLUMN chronic_disease_record.disease_status IS '状态:1-稳定 2-需关注 3-急性期'; +COMMENT ON COLUMN chronic_disease_record.main_doctor IS '主治医生'; +COMMENT ON COLUMN chronic_disease_record.hospital IS '就诊医院'; +COMMENT ON COLUMN chronic_disease_record.department IS '科室'; +COMMENT ON COLUMN chronic_disease_record.notes IS '备注说明'; +COMMENT ON COLUMN chronic_disease_record.is_active IS '是否启用:1-是 0-否'; +COMMENT ON COLUMN chronic_disease_record.create_by IS '创建者'; +COMMENT ON COLUMN chronic_disease_record.create_time IS '创建时间'; +COMMENT ON COLUMN chronic_disease_record.update_by IS '更新者'; +COMMENT ON COLUMN chronic_disease_record.update_time IS '更新时间'; +COMMENT ON COLUMN chronic_disease_record.remark IS '备注'; +COMMENT ON COLUMN chronic_disease_record.del_flag IS '删除标记:0-正常 1-删除'; + +CREATE INDEX idx_cdr_member_id ON chronic_disease_record(member_id); +CREATE INDEX idx_cdr_disease_id ON chronic_disease_record(disease_id); +CREATE INDEX idx_cdr_disease_status ON chronic_disease_record(disease_status); +CREATE INDEX idx_cdr_is_active ON chronic_disease_record(is_active); + +-- ======================================== +-- 菜单 SQL(若依框架标准格式) +-- ======================================== +-- 慢性疾病档案菜单 +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) +VALUES ('慢性疾病档案', 0, 5, 'chronicDisease', 'health/chronicDisease/index', 1, 0, 'C', '0', '0', 'health:chronicDisease:list', '#', 'admin', NOW(), '慢性疾病档案菜单'); + +-- 获取刚插入的菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮权限 +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) +VALUES ('慢性疾病档案查询', @parentId, 1, '#', '', 1, 0, 'F', '0', '0', 'health:chronicDisease:query', '#', 'admin', NOW(), ''); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) +VALUES ('慢性疾病档案权增', @parentId, 2, '#', '', 1, 0, 'F', '0', '0', 'health:chronicDisease:add', '#', 'admin', NOW(), ''); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) +VALUES ('慢性疾病档案修改', @parentId, 3, '#', '', 1, 0, 'F', '0', '0', 'health:chronicDisease:edit', '#', 'admin', NOW(), ''); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) +VALUES ('慢性疾病档案删除', @parentId, 4, '#', '', 1, 0, 'F', '0', '0', 'health:chronicDisease:remove', '#', 'admin', NOW(), ''); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) +VALUES ('慢性疾病档案导出', @parentId, 5, '#', '', 1, 0, 'F', '0', '0', 'health:chronicDisease:export', '#', 'admin', NOW(), ''); + +-- ======================================== +-- 字典数据 +-- ======================================== +-- 疾病状态字典 +INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) +VALUES ('疾病状态', 'disease_status', '0', 'admin', NOW(), '慢性疾病状态'); + +INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) +VALUES (1, '稳定', '1', 'disease_status', '', 'success', 'Y', '0', 'admin', NOW(), '疾病状态-稳定'); + +INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) +VALUES (2, '需关注', '2', 'disease_status', '', 'warning', 'N', '0', 'admin', NOW(), '疾病状态-需关注'); + +INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) +VALUES (3, '急性期', '3', 'disease_status', '', 'danger', 'N', '0', 'admin', NOW(), '疾病状态-急性期'); + +-- 是否启用字典(如果不存在) +INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) +VALUES ('是否启用', 'is_active', '0', 'admin', NOW(), '是否启用状态') +ON CONFLICT (dict_type) DO NOTHING; + +INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) +VALUES (1, '是', '1', 'is_active', '', 'success', 'Y', '0', 'admin', NOW(), '启用') +ON CONFLICT DO NOTHING; + +INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) +VALUES (2, '否', '0', 'is_active', '', 'danger', 'N', '0', 'admin', NOW(), '停用') +ON CONFLICT DO NOTHING; \ No newline at end of file