diff --git a/xinelu-common/src/main/java/com/xinelu/common/constant/Constants.java b/xinelu-common/src/main/java/com/xinelu/common/constant/Constants.java index 0be737c..afa9dce 100644 --- a/xinelu-common/src/main/java/com/xinelu/common/constant/Constants.java +++ b/xinelu-common/src/main/java/com/xinelu/common/constant/Constants.java @@ -133,4 +133,24 @@ public class Constants { */ public static final String[] JOB_ERROR_STR = {"java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", "org.springframework", "org.apache", "com.xinelu.common.utils.file"}; + + /** + * 科室编码前缀 + */ + public static final String DEPARTMENT_CODE = "HDC"; + + /** + * 健康咨询-科室人员资质证书证书编号前缀 + */ + public static final String CERTIFICATE_CODE = "CE"; + + /** + * 医院编码前缀 + */ + public static final String HOSPITAL_CODE = "HS"; + + /** + * 科室人员编码前缀 + */ + public static final String PERSON_CODE = "PC"; } diff --git a/xinelu-common/src/main/java/com/xinelu/common/core/domain/BaseDomain.java b/xinelu-common/src/main/java/com/xinelu/common/core/domain/BaseDomain.java new file mode 100644 index 0000000..a8a41ce --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/core/domain/BaseDomain.java @@ -0,0 +1,64 @@ +package com.xinelu.common.core.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; +import lombok.Data; + +/** + * @Description 基础实体类 + * @Author 纪寒 + * @Date 2022-09-02 10:02:07 + * @Version 1.0 + */ +@Data +public class BaseDomain { + /** + * 搜索值 + */ + private String searchValue; + + /** + * 创建者 + */ + private String createBy; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 更新者 + */ + private String updateBy; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** + * 备注 + */ + private String remark; + + /** + * 请求参数 + */ + private Map params; + + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } + + public void setParams(Map params) { + this.params = params; + } +} diff --git a/xinelu-common/src/main/java/com/xinelu/common/custominterface/Insert.java b/xinelu-common/src/main/java/com/xinelu/common/custominterface/Insert.java new file mode 100644 index 0000000..317ec01 --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/custominterface/Insert.java @@ -0,0 +1,9 @@ +package com.xinelu.common.custominterface; + +/** + * @description 全局新增接口 + * @author jihan + * @date 2022-07-28 11:52:00 + */ +public interface Insert { +} diff --git a/xinelu-common/src/main/java/com/xinelu/common/custominterface/Query.java b/xinelu-common/src/main/java/com/xinelu/common/custominterface/Query.java new file mode 100644 index 0000000..9ef1567 --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/custominterface/Query.java @@ -0,0 +1,10 @@ +package com.xinelu.common.custominterface; + +/** + * @Description 全局查询接口 + * @Author 纪寒 + * @Date 2022-09-06 10:58:16 + * @Version 1.0 + */ +public interface Query { +} diff --git a/xinelu-common/src/main/java/com/xinelu/common/custominterface/TaskInsert.java b/xinelu-common/src/main/java/com/xinelu/common/custominterface/TaskInsert.java new file mode 100644 index 0000000..a83edc1 --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/custominterface/TaskInsert.java @@ -0,0 +1,8 @@ +package com.xinelu.common.custominterface; + +/** + * @author ljh + * @description 任务确认完成新增接口 + */ +public interface TaskInsert { +} diff --git a/xinelu-common/src/main/java/com/xinelu/common/custominterface/Update.java b/xinelu-common/src/main/java/com/xinelu/common/custominterface/Update.java new file mode 100644 index 0000000..3c6d9df --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/custominterface/Update.java @@ -0,0 +1,9 @@ +package com.xinelu.common.custominterface; + +/** + * @author jihan + * @description 全局修改接口 + * @date 2022-07-28 11:52:00 + */ +public interface Update { +} diff --git a/xinelu-common/src/main/java/com/xinelu/common/utils/DateUtils.java b/xinelu-common/src/main/java/com/xinelu/common/utils/DateUtils.java index 9c7af8d..4ee7827 100644 --- a/xinelu-common/src/main/java/com/xinelu/common/utils/DateUtils.java +++ b/xinelu-common/src/main/java/com/xinelu/common/utils/DateUtils.java @@ -1,5 +1,8 @@ package com.xinelu.common.utils; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +import java.util.Objects; import org.apache.commons.lang3.time.DateFormatUtils; import java.lang.management.ManagementFactory; @@ -157,4 +160,45 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + + /** + * 获取指定日期的结束时间 + * + * @param date 指定日期,如果为null,默认为当天 + * @return 结束日期 + * @author jihan + */ + public static LocalDateTime end(LocalDate date) { + return LocalDateTime.of(null == date ? LocalDate.now() : date, LocalTime.MAX); + } + + /** + * 转换日期到字符串 + * + * @param date LocalDate + * @param pattern 解析格式 + * @return 日期字符串 + * @Author jihan + */ + public static String formatDateToString(LocalDate date, String pattern) { + if (Objects.isNull(date)) { + throw new IllegalArgumentException("date time is null."); + } + return date.format(StringUtils.isNotBlank(pattern) ? DateTimeFormatter.ofPattern(pattern) : DateTimeFormatter.ofPattern("yyyy-MM-dd")); + } + + /** + * 计算两个时间的分钟差 + * + * @param beginTime 开始时间 + * @param endTime 结束时间可以为null, 如果为null则表示now + * @return 分钟差值 + * @author jihan + */ + public static long differenceMinutes(LocalDateTime beginTime, LocalDateTime endTime) { + if (null == beginTime) { + throw new IllegalArgumentException("开始时间不能为空"); + } + return ChronoUnit.MINUTES.between(beginTime, null == endTime ? LocalDateTime.now() : endTime); + } } diff --git a/xinelu-common/src/main/java/com/xinelu/common/utils/codes/GenerateSystemCodeUtil.java b/xinelu-common/src/main/java/com/xinelu/common/utils/codes/GenerateSystemCodeUtil.java new file mode 100644 index 0000000..36161f7 --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/utils/codes/GenerateSystemCodeUtil.java @@ -0,0 +1,81 @@ +package com.xinelu.common.utils.codes; + +import com.xinelu.common.utils.DateUtils; +import java.text.DecimalFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.temporal.TemporalAdjusters; +import java.util.concurrent.TimeUnit; +import javax.annotation.Resource; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +/** + * @Description 编号工具类 + * @Author 纪寒 + * @Date 2022-08-02 18:13:55 + * @Version 1.0 + */ +@Component +public class GenerateSystemCodeUtil { + + @Resource + private RedisTemplate redisTemplate; + + /** + * 使用Redis生成唯一不重复的编码 + * + * @param prefixCode 编号前缀 + * @return 编号信息 MMdd + */ + public String generatePatientCode(String prefixCode) { + DecimalFormat df = new DecimalFormat("0000"); + String dateFmt = DateUtils.formatDateToString(LocalDate.now(), "MMdd"); + Long maxVal = redisTemplate.opsForValue().increment(prefixCode, 1); + //redis有效期开始时间 + LocalDateTime now = LocalDateTime.now(); + //redis有效期结束时间 + LocalDateTime end = DateUtils.end(LocalDate.now()); + redisTemplate.expire(prefixCode, DateUtils.differenceMinutes(now, end), TimeUnit.MINUTES); + return dateFmt + df.format(maxVal); + } + + + /** + * 使用Redis生成唯一不重复的编码 + * + * @param prefixCode 编号前缀 + * @return 编号信息 yyyyMMdd + */ + public String generateSystemCode(String prefixCode) { + DecimalFormat df = new DecimalFormat("0000"); + String dateFmt = DateUtils.formatDateToString(LocalDate.now(), "yyyyMMdd"); + Long maxVal = redisTemplate.opsForValue().increment(prefixCode, 1); + //redis有效期开始时间 + LocalDateTime now = LocalDateTime.now(); + //redis有效期结束时间 + LocalDateTime end = DateUtils.end(LocalDate.now()); + redisTemplate.expire(prefixCode, DateUtils.differenceMinutes(now, end), TimeUnit.MINUTES); + return dateFmt + df.format(maxVal); + + + } + + /** + * 生成科室编码 + * + * @param prefixCode 科室名称前缀 + * @return 科室编码 + */ + public String generateDepartCode(String prefixCode) { + DecimalFormat df = new DecimalFormat("00000"); + String dateFmt = DateUtils.formatDateToString(LocalDate.now(), "yyyy"); + Long maxVal = redisTemplate.opsForValue().increment(prefixCode, 1); + //redis有效期开始时间 + LocalDateTime now = LocalDateTime.now(); + //redis有效期结束时间 + LocalDateTime end = DateUtils.end(LocalDate.now().plusYears(0).with(TemporalAdjusters.lastDayOfYear())); + redisTemplate.expire(prefixCode, DateUtils.differenceMinutes(now, end), TimeUnit.MINUTES); + return dateFmt + df.format(maxVal); + } +} diff --git a/xinelu-common/src/main/java/com/xinelu/common/utils/file/FileUtils.java b/xinelu-common/src/main/java/com/xinelu/common/utils/file/FileUtils.java index 971476b..8c6d5ec 100644 --- a/xinelu-common/src/main/java/com/xinelu/common/utils/file/FileUtils.java +++ b/xinelu-common/src/main/java/com/xinelu/common/utils/file/FileUtils.java @@ -4,6 +4,11 @@ import com.xinelu.common.config.XinELuConfig; import com.xinelu.common.utils.DateUtils; import com.xinelu.common.utils.StringUtils; import com.xinelu.common.utils.uuid.IdUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.apache.commons.compress.utils.Lists; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; @@ -22,6 +27,16 @@ import java.nio.charset.StandardCharsets; public class FileUtils { public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+"; + /** + * 匹配content中的标签 + **/ + private static final String PATTEN_IMG = "<(img|IMG)(.*?)(/>|>|>)"; + + /** + * 匹配标签中的src + **/ + private static final String PATTEN_SRC = "(src|SRC)=(\"|\')(.*?)(\"|\')"; + /** * 输出指定文件的byte数组 * @@ -243,4 +258,38 @@ public class FileUtils { return baseName; } + /** + * 获取img标签中的src值 + * + * @param content img的内容 + * @return List + */ + public static List getImgSrc(String content) { + if (StringUtils.isBlank(content)) { + return Lists.newArrayList(); + } + List list = new ArrayList<>(); + //开始匹配content中的标签 + Pattern pImg = Pattern.compile(PATTEN_IMG); + Matcher mImg = pImg.matcher(content); + boolean resultImg = mImg.find(); + if (resultImg) { + while (resultImg) { + //获取到匹配的标签中的内容 + String strImg = mImg.group(2); + //开始匹配标签中的src + Pattern pSrc = Pattern.compile(PATTEN_SRC); + Matcher mSrc = pSrc.matcher(strImg); + if (mSrc.find()) { + String strSrc = mSrc.group(3); + if (StringUtils.isNotBlank(strSrc)) { + list.add(strSrc); + } + } + //匹配content中是否存在下一个标签,有则继续以上步骤匹配标签中的src + resultImg = mImg.find(); + } + } + return list; + } } diff --git a/xinelu-common/src/main/java/com/xinelu/common/utils/regex/RegexUtil.java b/xinelu-common/src/main/java/com/xinelu/common/utils/regex/RegexUtil.java new file mode 100644 index 0000000..aba0ccb --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/utils/regex/RegexUtil.java @@ -0,0 +1,62 @@ +package com.xinelu.common.utils.regex; + +import com.xinelu.common.exception.ServiceException; +import java.util.regex.Pattern; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; + +/** + * @Description 正则表达式工具类 + * @Author 纪寒 + * @Date 2022-08-24 13:58:48 + * @Version 1.0 + */ +@Component +public class RegexUtil { + + /** + * 校验手机号码 + * + * @param phone 手机号码 + * @return 校验结果 + */ + public boolean regexPhone(String phone) { + if (StringUtils.isBlank(phone)) { + throw new ServiceException("手机号码不能为空!"); + } + //校验手机号 + String regex = "^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(16[2567]{1})|(17[0-9]{1})|(18[0-9]{1})|(19[0-9]{1}))+\\d{8})$"; + return Pattern.matches(regex, phone); + } + + /** + * 校验身份证号码 + * + * @param cardNo 身份证号码 + * @return 校验结果 + */ + public boolean regexCardNo(String cardNo) { + if (StringUtils.isBlank(cardNo)) { + throw new ServiceException("身份证号不能为空!"); + } + //校验身份证号码 + String regex = "(^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|" + + "(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}$)"; + return Pattern.matches(regex, cardNo); + } + + /** + * 校验座机手机号码 + * + * @param seatNumber 座机手机号码 + * @return 校验结果 + */ + public boolean regexSeatNumber(String seatNumber) { + if (StringUtils.isBlank(seatNumber)) { + throw new ServiceException("手机号码不能为空!"); + } + //校验座机手机号 + String regex = "^(([0-9]{4,13}))"; + return Pattern.matches(regex, seatNumber); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitaldepartmentinfo/HospitalDepartmentInfoController.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitaldepartmentinfo/HospitalDepartmentInfoController.java new file mode 100644 index 0000000..727b019 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitaldepartmentinfo/HospitalDepartmentInfoController.java @@ -0,0 +1,100 @@ +package com.xinelu.manage.controller.hospitaldepartmentinfo; + +import com.xinelu.common.annotation.Log; +import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import com.xinelu.common.enums.BusinessType; +import com.xinelu.common.utils.poi.ExcelUtil; +import com.xinelu.manage.dto.hospitaldepartmentinfo.HospitalDepartmentDTO; +import com.xinelu.manage.domain.hospitaldepartmentinfo.HospitalDepartmentInfo; +import com.xinelu.manage.service.hospitaldepartmentinfo.IHospitalDepartmentInfoService; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 科室信息管理Controller + * + * @author zh + * @date 2023-02-13 + */ +@RestController +@RequestMapping("/system/hospitalDepartment") +public class HospitalDepartmentInfoController extends BaseController { + @Resource + private IHospitalDepartmentInfoService hospitalDepartmentInfoService; + + /** + * 查询科室信息管理列表 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalDepartment:list')") + @GetMapping("/list") + public TableDataInfo list(HospitalDepartmentInfo hospitalDepartmentInfo) { + startPage(); + List list = hospitalDepartmentInfoService.selectHospitalDepartmentInfoList(hospitalDepartmentInfo); + return getDataTable(list); + } + + /** + * 导出科室信息管理列表 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalDepartment:export')") + @Log(title = "科室信息管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, HospitalDepartmentInfo hospitalDepartmentInfo) { + List list = hospitalDepartmentInfoService.selectHospitalDepartmentInfoList(hospitalDepartmentInfo); + ExcelUtil util = new ExcelUtil<>(HospitalDepartmentInfo.class); + util.exportExcel(response, list, "科室信息管理数据"); + } + + /** + * 获取科室信息管理详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalDepartment:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(hospitalDepartmentInfoService.selectHospitalDepartmentInfoById(id)); + } + + /** + * 新增科室信息管理 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalDepartment:add')") + @Log(title = "科室信息管理", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@Validated(Insert.class) @RequestBody HospitalDepartmentDTO hospitalDepartment) { + return hospitalDepartmentInfoService.insertHospitalDepartmentInfo(hospitalDepartment); + } + + /** + * 修改科室信息管理 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalDepartment:edit')") + @Log(title = "科室信息管理", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult edit(@Validated(Update.class) @RequestBody HospitalDepartmentInfo hospitalDepartmentInfo) { + return hospitalDepartmentInfoService.updateHospitalDepartmentInfo(hospitalDepartmentInfo); + } + + /** + * 删除科室信息管理 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalDepartment:remove')") + @Log(title = "科室信息管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(hospitalDepartmentInfoService.deleteHospitalDepartmentInfoByIds(ids)); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalinfo/HospitalInfoController.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalinfo/HospitalInfoController.java new file mode 100644 index 0000000..be24b64 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalinfo/HospitalInfoController.java @@ -0,0 +1,101 @@ +package com.xinelu.manage.controller.hospitalinfo; + +import com.xinelu.common.annotation.Log; +import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import com.xinelu.common.enums.BusinessType; +import com.xinelu.common.utils.poi.ExcelUtil; +import com.xinelu.manage.domain.hospitalinfo.HospitalInfo; +import com.xinelu.manage.service.hospitalinfo.IHospitalInfoService; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +; + +/** + * 医院信息管理Controller + * + * @author xinyilu + * @date 2023-02-13 + */ +@RestController +@RequestMapping("/system/hospital") +public class HospitalInfoController extends BaseController { + @Resource + private IHospitalInfoService hospitalInfoService; + + /** + * 查询医院信息管理列表 + */ + @PreAuthorize("@ss.hasPermi('system:hospital:list')") + @GetMapping("/list") + public TableDataInfo list(HospitalInfo hospitalInfo) { + startPage(); + List list = hospitalInfoService.selectHospitalInfoList(hospitalInfo); + return getDataTable(list); + } + + /** + * 导出医院信息管理列表 + */ + @PreAuthorize("@ss.hasPermi('system:hospital:export')") + @Log(title = "医院信息管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, HospitalInfo hospitalInfo) { + List list = hospitalInfoService.selectHospitalInfoList(hospitalInfo); + ExcelUtil util = new ExcelUtil<>(HospitalInfo.class); + util.exportExcel(response, list, "医院信息管理数据"); + } + + /** + * 获取医院信息管理详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:hospital:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(hospitalInfoService.selectHospitalInfoById(id)); + } + + /** + * 新增医院信息管理 + */ + @PreAuthorize("@ss.hasPermi('system:hospital:add')") + @Log(title = "医院信息管理", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@RequestBody @Validated(Insert.class) HospitalInfo hospitalInfo) { + return hospitalInfoService.insertHospitalInfo(hospitalInfo); + } + + /** + * 修改医院信息管理 + */ + @PreAuthorize("@ss.hasPermi('system:hospital:edit')") + @Log(title = "医院信息管理", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult edit(@RequestBody @Validated(Update.class) HospitalInfo hospitalInfo) { + return hospitalInfoService.updateHospitalInfo(hospitalInfo); + } + + /** + * 删除医院信息管理 + */ + @PreAuthorize("@ss.hasPermi('system:hospital:remove')") + @Log(title = "医院信息管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return hospitalInfoService.deleteHospitalInfoByIds(ids); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoncertificate/HospitalPersonCertificateController.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoncertificate/HospitalPersonCertificateController.java new file mode 100644 index 0000000..54db00b --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoncertificate/HospitalPersonCertificateController.java @@ -0,0 +1,100 @@ +package com.xinelu.manage.controller.hospitalpersoncertificate; + +import com.xinelu.common.annotation.Log; +import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import com.xinelu.common.enums.BusinessType; +import com.xinelu.common.utils.poi.ExcelUtil; +import com.xinelu.manage.dto.hospitalpersoncertificate.HospitalPersonCertificateDTO; +import com.xinelu.manage.service.hospitalpersoncertificate.IHospitalPersonCertificateService; +import com.xinelu.manage.vo.hospitalpersoncertificate.HospitalPersonCertificateVO; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 健康咨询-科室人员资质证书信息Controller + * + * @author xinyilu + * @date 2023-02-23 + */ +@RestController +@RequestMapping("/system/certificate") +public class HospitalPersonCertificateController extends BaseController { + @Resource + private IHospitalPersonCertificateService hospitalPersonCertificateService; + + /** + * 查询健康咨询-科室人员资质证书信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:certificate:list')") + @GetMapping("/list") + public TableDataInfo list(HospitalPersonCertificateDTO hospitalPersonCertificate) { + startPage(); + List list = hospitalPersonCertificateService.selectHospitalPersonCertificateList(hospitalPersonCertificate); + return getDataTable(list); + } + + /** + * 导出健康咨询-科室人员资质证书信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:certificate:export')") + @Log(title = "健康咨询-科室人员资质证书信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, HospitalPersonCertificateDTO hospitalPersonCertificate) { + List list = hospitalPersonCertificateService.selectHospitalPersonCertificateList(hospitalPersonCertificate); + ExcelUtil util = new ExcelUtil<>(HospitalPersonCertificateVO.class); + util.exportExcel(response, list, "健康咨询-科室人员资质证书信息数据"); + } + + /** + * 获取健康咨询-科室人员资质证书信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:certificate:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(hospitalPersonCertificateService.selectHospitalPersonCertificateById(id)); + } + + /** + * 新增健康咨询-科室人员资质证书信息 + */ + @PreAuthorize("@ss.hasPermi('system:certificate:add')") + @Log(title = "健康咨询-科室人员资质证书信息", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@Validated(Insert.class) @RequestBody HospitalPersonCertificateDTO hospitalPersonCertificate) { + return hospitalPersonCertificateService.insertHospitalPersonCertificate(hospitalPersonCertificate); + } + + /** + * 修改健康咨询-科室人员资质证书信息 + */ + @PreAuthorize("@ss.hasPermi('system:certificate:edit')") + @Log(title = "健康咨询-科室人员资质证书信息", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult edit(@Validated(Update.class) @RequestBody HospitalPersonCertificateDTO hospitalPersonCertificate) { + return hospitalPersonCertificateService.updateHospitalPersonCertificate(hospitalPersonCertificate); + } + + /** + * 删除健康咨询-科室人员资质证书信息 + */ + @PreAuthorize("@ss.hasPermi('system:certificate:remove')") + @Log(title = "健康咨询-科室人员资质证书信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(hospitalPersonCertificateService.deleteHospitalPersonCertificateByIds(ids)); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoninfo/HospitalPersonInfoController.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoninfo/HospitalPersonInfoController.java new file mode 100644 index 0000000..6869cad --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoninfo/HospitalPersonInfoController.java @@ -0,0 +1,100 @@ +package com.xinelu.manage.controller.hospitalpersoninfo; + +import com.xinelu.common.annotation.Log; +import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import com.xinelu.common.enums.BusinessType; +import com.xinelu.common.utils.poi.ExcelUtil; +import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDTO; +import com.xinelu.manage.service.hospitalpersoninfo.IHospitalPersonInfoService; +import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 健康咨询-科室人员信息Controller + * + * @author xinyilu + * @date 2023-02-14 + */ +@RestController +@RequestMapping("/system/hospitalPerson") +public class HospitalPersonInfoController extends BaseController { + @Resource + private IHospitalPersonInfoService hospitalPersonInfoService; + + /** + * 查询健康咨询-科室人员信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalPerson:list')") + @GetMapping("/list") + public TableDataInfo list(HospitalPersonInfoVO hospitalPersonInfo) { + startPage(); + List list = hospitalPersonInfoService.selectHospitalPersonInfoList(hospitalPersonInfo); + return getDataTable(list); + } + + /** + * 导出健康咨询-科室人员信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalPerson:export')") + @Log(title = "健康咨询-科室人员信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, HospitalPersonInfoVO hospitalPersonInfo) { + List list = hospitalPersonInfoService.selectHospitalPersonInfoList(hospitalPersonInfo); + ExcelUtil util = new ExcelUtil<>(HospitalPersonInfoVO.class); + util.exportExcel(response, list, "健康咨询-科室人员信息数据"); + } + + /** + * 获取健康咨询-科室人员信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalPerson:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(hospitalPersonInfoService.selectHospitalPersonInfoById(id)); + } + + /** + * 新增健康咨询-科室人员信息 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalPerson:add')") + @Log(title = "健康咨询-科室人员信息", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@Validated(Insert.class) @RequestBody HospitalPersonInfoDTO hospitalPersonInfo) { + return hospitalPersonInfoService.insertHospitalPersonInfo(hospitalPersonInfo); + } + + /** + * 修改健康咨询-科室人员信息 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalPerson:edit')") + @Log(title = "健康咨询-科室人员信息", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult edit(@Validated(Update.class) @RequestBody HospitalPersonInfoDTO hospitalPersonInfo) { + return hospitalPersonInfoService.updateHospitalPersonInfo(hospitalPersonInfo); + } + + /** + * 删除健康咨询-科室人员信息 + */ + @PreAuthorize("@ss.hasPermi('system:hospitalPerson:remove')") + @Log(title = "健康咨询-科室人员信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return hospitalPersonInfoService.deleteHospitalPersonInfoByIds(ids); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitaldepartmentinfo/HospitalDepartmentInfo.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitaldepartmentinfo/HospitalDepartmentInfo.java new file mode 100644 index 0000000..0a8c49c --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitaldepartmentinfo/HospitalDepartmentInfo.java @@ -0,0 +1,152 @@ +package com.xinelu.manage.domain.hospitaldepartmentinfo; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseDomain; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.util.Objects; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.validator.constraints.Length; + +/** + * 科室信息管理对象 hospital_department_info + * + * @author zh + * @date 2023-02-13 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "科室信息管理对象", description = "hospital_department_info") +public class HospitalDepartmentInfo extends BaseDomain { + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + + /** + * 父级科室id + */ + @ApiModelProperty(value = "父级科室id") + @Excel(name = "父级科室id") + private Long parentId; + + /** + * 医院表id + */ + @ApiModelProperty(value = "医院表id") + @Excel(name = "医院表id") + @NotNull(message = "医院信息不能为空", groups = {Insert.class, Update.class}) + private Long hospitalId; + + /** + * 医院名称 + */ + @ApiModelProperty(value = "医院名称") + @Excel(name = "医院名称") + @NotBlank(message = "医院名称不能为空", groups = {Insert.class, Update.class}) + private String hospitalName; + + /** + * 科室编码 + */ + @ApiModelProperty(value = "科室编码") + @Excel(name = "科室编码") + private String departmentCode; + + /** + * 科室名称 + */ + @ApiModelProperty(value = "科室名称") + @Excel(name = "科室名称") + @NotBlank(message = "科室名称不能为空", groups = {Insert.class, Update.class}) + @Length(max = 50, message = "科室名称不能超过50位", groups = {Insert.class, Update.class}) + private String departmentName; + + /** + * 科室联系电话,手机号或者座机号 + */ + @ApiModelProperty(value = "科室联系电话,手机号或者座机号") + @Excel(name = "科室联系电话,手机号或者座机号") + private String departmentPhone; + + /** + * 科室负责人名称 + */ + @ApiModelProperty(value = "科室负责人名称") + @Excel(name = "科室负责人名称") + @Length(max = 20, message = "科室负责人名称不能超过20位", groups = { Insert.class, Update.class}) + private String departmentPerson; + + /** + * 科室地址 + */ + @ApiModelProperty(value = "科室地址") + @Excel(name = "科室地址") + @NotBlank(message = "科室地址不能为空", groups = {Insert.class, Update.class}) + @Length(max = 300, message = "科室地址不能超过300位", groups = {Insert.class, Update.class}) + private String departmentAddress; + + /** + * 科室显示级别 + */ + @ApiModelProperty(value = "科室显示级别") + @Excel(name = "科室显示级别") + private Integer departmentLevel; + + /** + * 科室显示顺序 + */ + @ApiModelProperty(value = "科室显示顺序") + @Excel(name = "科室显示顺序") + @NotNull(message = "科室显示顺序不能为空", groups = {Insert.class, Update.class}) + private Integer departmentSort; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HospitalDepartmentInfo that = (HospitalDepartmentInfo) o; + return Objects.equals(hospitalId, that.hospitalId) && Objects.equals(departmentName, that.departmentName); + } + + @Override + public int hashCode() { + return Objects.hash(hospitalId, departmentName); + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("parentId", getParentId()) + .append("hospitalId", getHospitalId()) + .append("hospitalName", getHospitalName()) + .append("departmentCode", getDepartmentCode()) + .append("departmentName", getDepartmentName()) + .append("departmentPhone", getDepartmentPhone()) + .append("departmentPerson", getDepartmentPerson()) + .append("departmentAddress", getDepartmentAddress()) + .append("departmentLevel", getDepartmentLevel()) + .append("departmentSort", getDepartmentSort()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitalinfo/HospitalInfo.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitalinfo/HospitalInfo.java new file mode 100644 index 0000000..b03d980 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitalinfo/HospitalInfo.java @@ -0,0 +1,105 @@ +package com.xinelu.manage.domain.hospitalinfo; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseDomain; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.validator.constraints.Length; + +/** + * 健康咨询-医院信息对象 hospital_info + * + * @author xinyilu + * @date 2023-02-13 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "健康咨询-医院信息对象", description = "hospital_info") +public class HospitalInfo extends BaseDomain implements Serializable { + private static final long serialVersionUID = -8171198728231183571L; + + /** + * 主键id + */ + private Long id; + + /** + * 医院名称 + */ + @ApiModelProperty(value = "医院名称") + @Excel(name = "医院名称") + @NotBlank(message = "医院名称不能为空", groups = { Insert.class, Update.class}) + @Length(max = 50, message = "医院名称不能超过50位", groups = {Insert.class, Update.class}) + private String hospitalName; + + /** + * 医院编码 + */ + @ApiModelProperty(value = "医院编码") + @Excel(name = "医院编码") + private String hospitalCode; + + /** + * 医院地址 + */ + @ApiModelProperty(value = "医院地址") + @Excel(name = "医院地址") + @NotBlank(message = "医院地址不能为空", groups = {Insert.class, Update.class}) + @Length(max = 300, message = "医院地址不能超过300位", groups = {Insert.class, Update.class}) + private String hospitalAddress; + + /** + * 联系电话,手机号或者座机 + */ + @ApiModelProperty(value = "联系电话,手机号或者座机") + @Excel(name = "联系电话,手机号或者座机") + @NotBlank(message = "联系电话不能为空", groups = {Insert.class, Update.class}) + private String phone; + + /** + * 医院简介,包含基本信息和医院图片富文本 + */ + @ApiModelProperty(value = "医院简介,包含基本信息和医院图片富文本") + @Excel(name = "医院简介,包含基本信息和医院图片富文本") + @NotBlank(message = "医院简介不能为空", groups = {Insert.class, Update.class}) + private String hospitalIntroduce; + + /** + * 显示顺序 + */ + @ApiModelProperty(value = "显示顺序") + @Excel(name = "显示顺序") + @NotNull(message = "显示顺序不能为空", groups = {Insert.class, Update.class}) + private Integer hospitalSort; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("hospitalName", getHospitalName()) + .append("hospitalCode", getHospitalCode()) + .append("hospitalAddress", getHospitalAddress()) + .append("phone", getPhone()) + .append("hospitalIntroduce", getHospitalIntroduce()) + .append("hospitalSort", getHospitalSort()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitalpersoncertificate/HospitalPersonCertificate.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitalpersoncertificate/HospitalPersonCertificate.java new file mode 100644 index 0000000..467609d --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitalpersoncertificate/HospitalPersonCertificate.java @@ -0,0 +1,88 @@ +package com.xinelu.manage.domain.hospitalpersoncertificate; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseDomain; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.validator.constraints.Length; + +/** + * 健康咨询-科室人员资质证书信息对象 hospital_person_certificate + * + * @author xinyilu + * @date 2023-02-23 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "健康咨询-科室人员资质证书信息对象", description = "hospital_person_certificate") +public class HospitalPersonCertificate extends BaseDomain implements Serializable { + private static final long serialVersionUID = -7652289041354453152L; + /** + * 主键id + */ + private Long id; + + /** + * 科室人员表id + */ + @ApiModelProperty(value = "科室人员表id") + @Excel(name = "科室人员表id") + private Long hospitalPersonId; + + /** + * 证书名称 + */ + @ApiModelProperty(value = "证书名称") + @Excel(name = "证书名称") + @Length(max = 50, message = "证书名称不能超过50位", groups = { Insert.class, Update.class}) + private String certificateName; + + /** + * 证书编号 + */ + @ApiModelProperty(value = "证书编号") + @Excel(name = "证书编号") + private String certificateCode; + + /** + * 证书图片存放路径 + */ + @ApiModelProperty(value = "证书图片存放路径") + @Excel(name = "证书图片存放路径") + private String certificateUrl; + + /** + * 证书显示顺序 + */ + @ApiModelProperty(value = "证书显示顺序") + @Excel(name = "证书显示顺序") + private Integer certificateSort; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("hospitalPersonId", getHospitalPersonId()) + .append("certificateName", getCertificateName()) + .append("certificateCode", getCertificateCode()) + .append("certificateUrl", getCertificateUrl()) + .append("certificateSort", getCertificateSort()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitalpersoninfo/HospitalPersonInfo.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitalpersoninfo/HospitalPersonInfo.java new file mode 100644 index 0000000..4464765 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/hospitalpersoninfo/HospitalPersonInfo.java @@ -0,0 +1,153 @@ +package com.xinelu.manage.domain.hospitalpersoninfo; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseDomain; +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.math.BigDecimal; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.hibernate.validator.constraints.Length; + +/** + * 健康咨询-科室人员信息对象 hospital_person_info + * + * @author xinyilu + * @date 2023-02-14 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "健康咨询-科室人员信息对象", description = "hospital_person_info") +public class HospitalPersonInfo extends BaseDomain implements Serializable { + private static final long serialVersionUID = 8750821883343940709L; + /** + * 主键id + */ + private Long id; + + /** + * 所属医院id + */ + @ApiModelProperty(value = "所属医院id") + @Excel(name = "所属医院id") + @NotNull(message = "所属医院不能为空!", groups = {Insert.class, Update.class}) + private Long hospitalId; + + /** + * 所属部门id + */ + @ApiModelProperty(value = "所属部门id") + @Excel(name = "所属部门id") + @NotNull(message = "所属部门不能为空!", groups = {Insert.class, Update.class}) + private Long departmentId; + + /** + * 科室人员编码 + */ + @ApiModelProperty(value = "科室人员编码") + @Excel(name = "科室人员编码") + private String personCode; + + /** + * 科室人员名称 + */ + @ApiModelProperty(value = "科室人员名称") + @Excel(name = "科室人员名称") + @NotBlank(message = "科室人员名称不能为空!", groups = { Insert.class, Update.class}) + @Length(max = 50, message = "科室人员名称不能超过50位", groups = {Insert.class, Update.class}) + private String personName; + + /** + * 科室人员联系电话 + */ + @ApiModelProperty(value = "科室人员联系电话") + @Excel(name = "科室人员联系电话") + private String personPhone; + + /** + * 科室人员地址 + */ + @ApiModelProperty(value = "科室人员地址") + @Excel(name = "科室人员地址") + @NotBlank(message = "科室人员地址不能为空!", groups = {Insert.class, Update.class}) + @Length(max = 300, message = "科室人员地址不能超过300位", groups = {Insert.class, Update.class}) + private String personAddress; + + /** + * 身份证号 + */ + @ApiModelProperty(value = "身份证号") + @Excel(name = "身份证号") + private String cardNo; + + /** + * 人员职称,主任医师:CHIEF_PHYSICIAN,副主任医师:DEPUTY_CHIEF_PHYSICIAN,主治医师:ATTENDING_DOCTOR,医师:PHYSICIAN,医士:HEALER,住院医师:RESIDENT_PHYSICIAN + */ + @ApiModelProperty(value = "人员职称,主任医师:CHIEF_PHYSICIAN,副主任医师:DEPUTY_CHIEF_PHYSICIAN,主治医师:ATTENDING_DOCTOR,医师:PHYSICIAN,医士:HEALER,住院医师:RESIDENT_PHYSICIAN") + @Excel(name = "人员职称,主任医师:CHIEF_PHYSICIAN,副主任医师:DEPUTY_CHIEF_PHYSICIAN,主治医师:ATTENDING_DOCTOR,医师:PHYSICIAN,医士:HEALER,住院医师:RESIDENT_PHYSICIAN") + @NotBlank(message = "人员职称不能为空!", groups = {Insert.class, Update.class}) + private String academicTitle; + + /** + * 咨询费用 + */ + @ApiModelProperty(value = "咨询费用") + @Excel(name = "咨询费用") + @NotNull(message = "咨询费用不能为空", groups = {Insert.class, Update.class}) + private BigDecimal consultingFee; + + /** + * 个人简介 + */ + @ApiModelProperty(value = "个人简介") + @Excel(name = "个人简介") + @NotBlank(message = "个人简介不能为空!", groups = {Insert.class, Update.class}) + private String personIntroduce; + + /** + * 显示顺序 + */ + @ApiModelProperty(value = "显示顺序") + @Excel(name = "显示顺序") + @NotNull(message = "显示顺序不能为空", groups = {Insert.class, Update.class}) + private Integer personSort; + + /** + * 科室人员头像地址 + */ + private String personPictureUrl; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("hospitalId", getHospitalId()) + .append("departmentId", getDepartmentId()) + .append("personCode", getPersonCode()) + .append("personName", getPersonName()) + .append("personPhone", getPersonPhone()) + .append("personAddress", getPersonAddress()) + .append("cardNo", getCardNo()) + .append("academicTitle", getAcademicTitle()) + .append("consultingFee", getConsultingFee()) + .append("personIntroduce", getPersonIntroduce()) + .append("personSort", getPersonSort()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitaldepartmentinfo/HospitalDepartmentDTO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitaldepartmentinfo/HospitalDepartmentDTO.java new file mode 100644 index 0000000..334b252 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitaldepartmentinfo/HospitalDepartmentDTO.java @@ -0,0 +1,24 @@ +package com.xinelu.manage.dto.hospitaldepartmentinfo; + +import com.xinelu.manage.domain.hospitaldepartmentinfo.HospitalDepartmentInfo; +import java.io.Serializable; +import java.util.List; +import javax.validation.Valid; +import lombok.Data; + +/** + * 科室信息管理对象DTO + * + * @author zh + * @date 2023-02-13 + */ +@Data +public class HospitalDepartmentDTO implements Serializable { + private static final long serialVersionUID = -1068399981009897805L; + + /** + * 科室信息管理对象传入集合 + */ + @Valid + private List hospitalDepartmentInfoList; +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitalpersoncertificate/CertificateUrlDTO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitalpersoncertificate/CertificateUrlDTO.java new file mode 100644 index 0000000..ce78d23 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitalpersoncertificate/CertificateUrlDTO.java @@ -0,0 +1,25 @@ +package com.xinelu.manage.dto.hospitalpersoncertificate; + +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import java.io.Serializable; +import javax.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/2/24 14:59 + */ +@Data +public class CertificateUrlDTO implements Serializable { + private static final long serialVersionUID = -7621645853517636891L; + + /** + * 证书图片存放路径 + */ + @NotBlank(message = "证书图片存放路径不能为空", groups = { Insert.class, Update.class}) + private String certificateUrl; + + +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitalpersoncertificate/HospitalPersonCertificateDTO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitalpersoncertificate/HospitalPersonCertificateDTO.java new file mode 100644 index 0000000..3140dd9 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitalpersoncertificate/HospitalPersonCertificateDTO.java @@ -0,0 +1,62 @@ +package com.xinelu.manage.dto.hospitalpersoncertificate; + +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import java.io.Serializable; +import java.util.List; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/2/24 14:37 + */ +@Data +public class HospitalPersonCertificateDTO implements Serializable { + private static final long serialVersionUID = 8519380217374904308L; + + /** + * 主键id + */ + private Long id; + + /** + * 科室人员表id + */ + @NotNull(message = "科室人员表id不能为空", groups = { Insert.class, Update.class}) + private Long hospitalPersonId; + + /** + * 证书名称 + */ + @NotBlank(message = "科室人员表id不能为空", groups = {Insert.class, Update.class}) + private String certificateName; + + /** + * 证书编号 + */ + private String certificateCode; + + /** + * 证书图片存放路径 + */ + private String certificateUrl; + + /** + * 证书显示顺序 + */ + @NotNull(message = "证书显示顺序不能为空", groups = {Insert.class, Update.class}) + private Integer certificateSort; + + /** + * 人员名称 + */ + private String personName; + + /** + * 证书图片存放路径集合 + */ + private List certificateUrlList; +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitalpersoninfo/HospitalPersonInfoDTO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitalpersoninfo/HospitalPersonInfoDTO.java new file mode 100644 index 0000000..d8f7657 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/hospitalpersoninfo/HospitalPersonInfoDTO.java @@ -0,0 +1,27 @@ +package com.xinelu.manage.dto.hospitalpersoninfo; + +import com.xinelu.manage.domain.hospitalpersoncertificate.HospitalPersonCertificate; +import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo; +import java.io.Serializable; +import java.util.List; +import javax.validation.Valid; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/2/16 8:58 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class HospitalPersonInfoDTO extends HospitalPersonInfo implements Serializable { + private static final long serialVersionUID = 326904841009413976L; + + /** + * 健康咨询-科室人员证书信息对象集合 + **/ + @Valid + private List hospitalPersonCertificateList; + +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitaldepartmentinfo/HospitalDepartmentInfoMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitaldepartmentinfo/HospitalDepartmentInfoMapper.java new file mode 100644 index 0000000..f0095d0 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitaldepartmentinfo/HospitalDepartmentInfoMapper.java @@ -0,0 +1,86 @@ +package com.xinelu.manage.mapper.hospitaldepartmentinfo; + +import com.xinelu.manage.domain.hospitaldepartmentinfo.HospitalDepartmentInfo; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +/** + * 科室信息管理Mapper接口 + * + * @author zh + * @date 2023-02-13 + */ +public interface HospitalDepartmentInfoMapper { + /** + * 查询科室信息管理 + * + * @param id 科室信息管理主键 + * @return 科室信息管理 + */ + HospitalDepartmentInfo selectHospitalDepartmentInfoById(Long id); + + /** + * 查询科室信息管理列表 + * + * @param hospitalDepartmentInfo 科室信息管理 + * @return 科室信息管理集合 + */ + List selectHospitalDepartmentInfoList(HospitalDepartmentInfo hospitalDepartmentInfo); + + /** + * 新增科室信息管理 + * + * @param hospitalDepartmentInfo 科室信息管理 + * @return 结果 + */ + int insertHospitalDepartmentInfo(HospitalDepartmentInfo hospitalDepartmentInfo); + + /** + * 修改科室信息管理 + * + * @param hospitalDepartmentInfo 科室信息管理 + * @return 结果 + */ + int updateHospitalDepartmentInfo(HospitalDepartmentInfo hospitalDepartmentInfo); + + /** + * 删除科室信息管理 + * + * @param id 科室信息管理主键 + * @return 结果 + */ + int deleteHospitalDepartmentInfoById(Long id); + + /** + * 批量删除科室信息管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteHospitalDepartmentInfoByIds(Long[] ids); + + /** + * 批量新增科室信息管理 + * + * @param hospitalDepartmentInfoList 科室信息管理 + * @return 结果 + */ + int insertHospitalDepartmentList(List hospitalDepartmentInfoList); + + /** + * 根据医院id及科室名称查询同科室名称数量 + * + * @param hospitalId 医院id + * @param departmentName 科室名称 + * @return 数量 + */ + int selectHospitalDepartmentCount(@Param("hospitalId") Long hospitalId, @Param("departmentName") String departmentName); + + /** + * 查询当前医院下的所有科室信息 + * + * @param hospitalIdList 医院id集合 + * @return 科学信息 + */ + List getDepartmentInfoList(@Param("hospitalIdList") List hospitalIdList); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalinfo/HospitalInfoMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalinfo/HospitalInfoMapper.java new file mode 100644 index 0000000..3ddc486 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalinfo/HospitalInfoMapper.java @@ -0,0 +1,77 @@ +package com.xinelu.manage.mapper.hospitalinfo; + +import com.xinelu.manage.domain.hospitalinfo.HospitalInfo; +import java.util.List; + + +/** + * 医院信息管理Mapper接口 + * + * @author xinyilu + * @date 2023-02-13 + */ +public interface HospitalInfoMapper { + /** + * 查询医院信息管理 + * + * @param id 医院信息管理主键 + * @return 医院信息管理 + */ + HospitalInfo selectHospitalInfoById(Long id); + + /** + * 查询医院信息管理列表 + * + * @param hospitalInfo 医院信息管理 + * @return 医院信息管理集合 + */ + List selectHospitalInfoList(HospitalInfo hospitalInfo); + + /** + * 新增医院信息管理 + * + * @param hospitalInfo 医院信息管理 + * @return 结果 + */ + int insertHospitalInfo(HospitalInfo hospitalInfo); + + /** + * 修改医院信息管理 + * + * @param hospitalInfo 医院信息管理 + * @return 结果 + */ + int updateHospitalInfo(HospitalInfo hospitalInfo); + + /** + * 删除医院信息管理 + * + * @param id 医院信息管理主键 + * @return 结果 + */ + int deleteHospitalInfoById(Long id); + + /** + * 批量删除医院信息管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteHospitalInfoByIds(Long[] ids); + + /** + * 根据传入医院名称查询是否有重复名称 + * + * @param hospitalName 医院名称 + * @return 数量 + */ + int selectHospitalNameCount(String hospitalName); + + /** + * 根据id批量查询医院信息 + * + * @param ids id数组 + * @return List + */ + List selectHospitalList(Long[] ids); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoncertificate/HospitalPersonCertificateMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoncertificate/HospitalPersonCertificateMapper.java new file mode 100644 index 0000000..8c32b1b --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoncertificate/HospitalPersonCertificateMapper.java @@ -0,0 +1,88 @@ +package com.xinelu.manage.mapper.hospitalpersoncertificate; + +import com.xinelu.manage.dto.hospitalpersoncertificate.HospitalPersonCertificateDTO; +import com.xinelu.manage.domain.hospitalpersoncertificate.HospitalPersonCertificate; +import com.xinelu.manage.vo.hospitalpersoncertificate.HospitalPersonCertificateVO; +import java.util.List; +import org.apache.ibatis.annotations.Param; + + +/** + * 健康咨询-科室人员资质证书信息Mapper接口 + * + * @author xinyilu + * @date 2023-02-23 + */ +public interface HospitalPersonCertificateMapper { + /** + * 查询健康咨询-科室人员资质证书信息 + * + * @param id 健康咨询-科室人员资质证书信息主键 + * @return 健康咨询-科室人员资质证书信息 + */ + List selectHospitalPersonCertificateById(Long id); + + /** + * 查询健康咨询-科室人员资质证书信息列表 + * + * @param hospitalPersonCertificate 健康咨询-科室人员资质证书信息 + * @return 健康咨询-科室人员资质证书信息集合 + */ + List selectHospitalPersonCertificateList(HospitalPersonCertificateDTO hospitalPersonCertificate); + + /** + * 新增健康咨询-科室人员资质证书信息 + * + * @param hospitalPersonCertificate 健康咨询-科室人员资质证书信息 + * @return 结果 + */ + int insertHospitalPersonCertificate(HospitalPersonCertificate hospitalPersonCertificate); + + /** + * 修改健康咨询-科室人员资质证书信息 + * + * @param hospitalPersonCertificate 健康咨询-科室人员资质证书信息 + * @return 结果 + */ + int updateHospitalPersonCertificate(HospitalPersonCertificate hospitalPersonCertificate); + + /** + * 删除健康咨询-科室人员资质证书信息 + * + * @param id 健康咨询-科室人员资质证书信息主键 + * @return 结果 + */ + int deleteHospitalPersonCertificateById(Long id); + + /** + * 批量删除健康咨询-科室人员资质证书信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteHospitalPersonCertificateByIds(Long[] ids); + + /** + * 批量新增健康咨询-科室人员资质证书信息 + * + * @param hospitalPersonCertificateList 科室人员资质证书信息 + * @return int + **/ + int insertHospitalPersonCertificateList(List hospitalPersonCertificateList); + + /** + * 根据科室人员id查询科室人员资质证书信息 + * + * @param hospitalPersonIdsList 科室人员资质证书信息 + * @return int + **/ + List selectHospitalPersonCertificateByIds(@Param("hospitalPersonIdsList") List hospitalPersonIdsList); + + /** + * 根据科室人员表id删除证书信息 + * + * @param hospitalPersonIds 科室人员表id集合 + * @return 结果 + */ + int deletePersonCertificateByPersonIds(Long[] hospitalPersonIds); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoninfo/HospitalPersonInfoMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoninfo/HospitalPersonInfoMapper.java new file mode 100644 index 0000000..cd2bf3b --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoninfo/HospitalPersonInfoMapper.java @@ -0,0 +1,95 @@ +package com.xinelu.manage.mapper.hospitalpersoninfo; + +import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo; +import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO; +import java.util.List; +import org.apache.ibatis.annotations.Param; + + +/** + * 健康咨询-科室人员信息Mapper接口 + * + * @author xinyilu + * @date 2023-02-14 + */ +public interface HospitalPersonInfoMapper { + /** + * 查询健康咨询-科室人员信息 + * + * @param id 健康咨询-科室人员信息主键 + * @return 健康咨询-科室人员信息 + */ + HospitalPersonInfoVO selectHospitalPersonInfoById(Long id); + + /** + * 查询健康咨询-科室人员信息列表 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 健康咨询-科室人员信息集合 + */ + List selectHospitalPersonInfoList(HospitalPersonInfoVO hospitalPersonInfo); + + /** + * 新增健康咨询-科室人员信息 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 结果 + */ + int insertHospitalPersonInfo(HospitalPersonInfo hospitalPersonInfo); + + /** + * 修改健康咨询-科室人员信息 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 结果 + */ + int updateHospitalPersonInfo(HospitalPersonInfo hospitalPersonInfo); + + /** + * 删除健康咨询-科室人员信息 + * + * @param id 健康咨询-科室人员信息主键 + * @return 结果 + */ + int deleteHospitalPersonInfoById(Long id); + + /** + * 批量删除健康咨询-科室人员信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteHospitalPersonInfoByIds(Long[] ids); + + /** + * 根据传入名称查询是否有重复名称 + * + * @param cardNo 身份证号 + * @return int + **/ + int selectHospitalPersonInfoByCount(String cardNo); + + /** + * 根据科室人员id查询科室人员信息 + * + * @param hospitalPersonIdsList 科室人员资质证书信息 + * @return int + **/ + List selectHospitalPersonByIds(@Param("hospitalPersonIdsList") List hospitalPersonIdsList); + + /** + * 健康咨询 根据科室查询医院人员 + * + * @param departmentId 科室人员信息 + * @return AjaxResult + */ + List selectHospitalPerson(Long departmentId); + + /** + * 根据科室人员id查询科室人员数量 + * + * @param id 科室人员id + * @return int + **/ + int selectHospitalPersonInfoByIdCount(Long id); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitaldepartmentinfo/IHospitalDepartmentInfoService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitaldepartmentinfo/IHospitalDepartmentInfoService.java new file mode 100644 index 0000000..c67db43 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitaldepartmentinfo/IHospitalDepartmentInfoService.java @@ -0,0 +1,62 @@ +package com.xinelu.manage.service.hospitaldepartmentinfo; + +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.manage.dto.hospitaldepartmentinfo.HospitalDepartmentDTO; +import com.xinelu.manage.domain.hospitaldepartmentinfo.HospitalDepartmentInfo; +import java.util.List; + +/** + * 科室信息管理Service接口 + * + * @author xinyilu + * @date 2023-02-13 + */ +public interface IHospitalDepartmentInfoService { + /** + * 查询科室信息管理 + * + * @param id 科室信息管理主键 + * @return 科室信息管理 + */ + HospitalDepartmentInfo selectHospitalDepartmentInfoById(Long id); + + /** + * 查询科室信息管理列表 + * + * @param hospitalDepartmentInfo 科室信息管理 + * @return 科室信息管理集合 + */ + List selectHospitalDepartmentInfoList(HospitalDepartmentInfo hospitalDepartmentInfo); + + /** + * 新增科室信息管理 + * + * @param hospitalDepartment 科室信息管理 + * @return 结果 + */ + AjaxResult insertHospitalDepartmentInfo(HospitalDepartmentDTO hospitalDepartment); + + /** + * 修改科室信息管理 + * + * @param hospitalDepartmentInfo 科室信息管理 + * @return 结果 + */ + AjaxResult updateHospitalDepartmentInfo(HospitalDepartmentInfo hospitalDepartmentInfo); + + /** + * 批量删除科室信息管理 + * + * @param ids 需要删除的科室信息管理主键集合 + * @return 结果 + */ + int deleteHospitalDepartmentInfoByIds(Long[] ids); + + /** + * 删除科室信息管理信息 + * + * @param id 科室信息管理主键 + * @return 结果 + */ + int deleteHospitalDepartmentInfoById(Long id); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitaldepartmentinfo/impl/HospitalDepartmentInfoServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitaldepartmentinfo/impl/HospitalDepartmentInfoServiceImpl.java new file mode 100644 index 0000000..43ee2d9 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitaldepartmentinfo/impl/HospitalDepartmentInfoServiceImpl.java @@ -0,0 +1,156 @@ +package com.xinelu.manage.service.hospitaldepartmentinfo.impl; + +import com.xinelu.common.constant.Constants; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; +import com.xinelu.common.utils.regex.RegexUtil; +import com.xinelu.manage.dto.hospitaldepartmentinfo.HospitalDepartmentDTO; +import com.xinelu.manage.domain.hospitaldepartmentinfo.HospitalDepartmentInfo; +import com.xinelu.manage.mapper.hospitaldepartmentinfo.HospitalDepartmentInfoMapper; +import com.xinelu.manage.service.hospitaldepartmentinfo.IHospitalDepartmentInfoService; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import javax.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 科室信息管理Service业务层处理 + * + * @author zh + * @date 2023-02-13 + */ +@Service +public class HospitalDepartmentInfoServiceImpl implements IHospitalDepartmentInfoService { + @Resource + private HospitalDepartmentInfoMapper hospitalDepartmentInfoMapper; + @Resource + private GenerateSystemCodeUtil generateSystemCodeUtil; + @Resource + private RegexUtil regexUtil; + + /** + * 查询科室信息管理 + * + * @param id 科室信息管理主键 + * @return 科室信息管理 + */ + @Override + public HospitalDepartmentInfo selectHospitalDepartmentInfoById(Long id) { + return hospitalDepartmentInfoMapper.selectHospitalDepartmentInfoById(id); + } + + /** + * 查询科室信息管理列表 + * + * @param hospitalDepartmentInfo 科室信息管理 + * @return 科室信息管理 + */ + @Override + public List selectHospitalDepartmentInfoList(HospitalDepartmentInfo hospitalDepartmentInfo) { + return hospitalDepartmentInfoMapper.selectHospitalDepartmentInfoList(hospitalDepartmentInfo); + } + + /** + * 新增科室信息管理 + * + * @param hospitalDepartment 科室信息管理信息集合 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult insertHospitalDepartmentInfo(HospitalDepartmentDTO hospitalDepartment) { + //校验同一个医院下的科室名称是否重复 + List discountDepartmentList = hospitalDepartment.getHospitalDepartmentInfoList().stream().distinct().collect(Collectors.toList()); + List hospitalIdList = discountDepartmentList.stream().filter(item -> Objects.nonNull(item.getHospitalId())).map(HospitalDepartmentInfo::getHospitalId).collect(Collectors.toList()); + List departmentInfoList = hospitalDepartmentInfoMapper.getDepartmentInfoList(hospitalIdList); + if (CollectionUtils.isNotEmpty(departmentInfoList)) { + List intersectionList = new ArrayList<>(CollectionUtils.intersection(departmentInfoList, discountDepartmentList)); + if (CollectionUtils.isNotEmpty(intersectionList)) { + HospitalDepartmentInfo departmentInfo = intersectionList.get(0); + return AjaxResult.error("所属医院为:'" + departmentInfo.getHospitalName() + "'的'" + departmentInfo.getDepartmentName() + "'科室名称重复,请重新输入!"); + } + } + for (HospitalDepartmentInfo hospitalDepartmentInfo : discountDepartmentList) { + //校验联系电话是否正确 + if (StringUtils.isNotBlank(hospitalDepartmentInfo.getDepartmentPhone())) { + boolean phone = regexUtil.regexSeatNumber(hospitalDepartmentInfo.getDepartmentPhone()); + if (BooleanUtils.isFalse(phone)) { + return AjaxResult.error("您输入的科室联系电话" + hospitalDepartmentInfo.getDepartmentPhone() + "不正确,请重新输入!"); + } + } + //自动生成科室编号,增加创建人、时间 + hospitalDepartmentInfo.setCreateTime(LocalDateTime.now()); + hospitalDepartmentInfo.setCreateBy(SecurityUtils.getUsername()); + hospitalDepartmentInfo.setDepartmentCode(Constants.DEPARTMENT_CODE + generateSystemCodeUtil.generateSystemCode(Constants.DEPARTMENT_CODE)); + } + int insertCount = hospitalDepartmentInfoMapper.insertHospitalDepartmentList(discountDepartmentList); + if (insertCount <= 0) { + throw new ServiceException("新增科室信息失败,请联系管理员!"); + } + return AjaxResult.success(); + } + + /** + * 修改科室信息管理 + * + * @param hospitalDepartmentInfo 科室信息管理 + * @return 结果 + */ + @Override + public AjaxResult updateHospitalDepartmentInfo(HospitalDepartmentInfo hospitalDepartmentInfo) { + HospitalDepartmentInfo getHospitalDepartment = hospitalDepartmentInfoMapper.selectHospitalDepartmentInfoById(hospitalDepartmentInfo.getId()); + if (Objects.isNull(getHospitalDepartment)) { + return AjaxResult.error("当前科室信息不存在,请联系管理员!"); + } + //校验联系电话是否正确 + if (StringUtils.isNotBlank(hospitalDepartmentInfo.getDepartmentPhone())) { + boolean phone = regexUtil.regexSeatNumber(hospitalDepartmentInfo.getDepartmentPhone()); + if (BooleanUtils.isFalse(phone)) { + throw new ServiceException("您输入的科室联系电话" + hospitalDepartmentInfo.getDepartmentPhone() + "不正确,请重新输入!"); + } + } + //校验科室名称是否重复 + if (!hospitalDepartmentInfo.getDepartmentName().equals(getHospitalDepartment.getDepartmentName())) { + int count = hospitalDepartmentInfoMapper.selectHospitalDepartmentCount(hospitalDepartmentInfo.getHospitalId(), hospitalDepartmentInfo.getDepartmentName()); + if (count > 0) { + return AjaxResult.error("您输入的科室名称" + hospitalDepartmentInfo.getDepartmentName() + "重复,请重新输入"); + } + } + hospitalDepartmentInfo.setUpdateBy(SecurityUtils.getUsername()); + hospitalDepartmentInfo.setUpdateTime(LocalDateTime.now()); + hospitalDepartmentInfoMapper.updateHospitalDepartmentInfo(hospitalDepartmentInfo); + return AjaxResult.success(); + } + + /** + * 批量删除科室信息管理 + * + * @param ids 需要删除的科室信息管理主键 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public int deleteHospitalDepartmentInfoByIds(Long[] ids) { + return hospitalDepartmentInfoMapper.deleteHospitalDepartmentInfoByIds(ids); + } + + /** + * 删除科室信息管理信息 + * + * @param id 科室信息管理主键 + * @return 结果 + */ + @Override + public int deleteHospitalDepartmentInfoById(Long id) { + return hospitalDepartmentInfoMapper.deleteHospitalDepartmentInfoById(id); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalinfo/IHospitalInfoService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalinfo/IHospitalInfoService.java new file mode 100644 index 0000000..bef90c8 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalinfo/IHospitalInfoService.java @@ -0,0 +1,62 @@ +package com.xinelu.manage.service.hospitalinfo; + +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.manage.domain.hospitalinfo.HospitalInfo; +import java.util.List; + + +/** + * 医院信息管理Service接口 + * + * @author xinyilu + * @date 2023-02-13 + */ +public interface IHospitalInfoService { + /** + * 查询医院信息管理 + * + * @param id 医院信息管理主键 + * @return 医院信息管理 + */ + HospitalInfo selectHospitalInfoById(Long id); + + /** + * 查询医院信息管理列表 + * + * @param hospitalInfo 医院信息管理 + * @return 医院信息管理集合 + */ + List selectHospitalInfoList(HospitalInfo hospitalInfo); + + /** + * 新增医院信息管理 + * + * @param hospitalInfo 医院信息管理 + * @return 结果 + */ + AjaxResult insertHospitalInfo(HospitalInfo hospitalInfo); + + /** + * 修改医院信息管理 + * + * @param hospitalInfo 医院信息管理 + * @return 结果 + */ + AjaxResult updateHospitalInfo(HospitalInfo hospitalInfo); + + /** + * 批量删除医院信息管理 + * + * @param ids 需要删除的医院信息管理主键集合 + * @return 结果 + */ + AjaxResult deleteHospitalInfoByIds(Long[] ids); + + /** + * 删除医院信息管理信息 + * + * @param id 医院信息管理主键 + * @return 结果 + */ + int deleteHospitalInfoById(Long id); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalinfo/impl/HospitalInfoServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalinfo/impl/HospitalInfoServiceImpl.java new file mode 100644 index 0000000..2dd09a9 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalinfo/impl/HospitalInfoServiceImpl.java @@ -0,0 +1,203 @@ +package com.xinelu.manage.service.hospitalinfo.impl; + +import com.xinelu.common.constant.Constants; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; +import com.xinelu.common.utils.file.FileUtils; +import com.xinelu.common.utils.regex.RegexUtil; +import com.xinelu.manage.domain.hospitalinfo.HospitalInfo; +import com.xinelu.manage.mapper.hospitalinfo.HospitalInfoMapper; +import com.xinelu.manage.service.hospitalinfo.IHospitalInfoService; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import javax.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 医院信息管理Service业务层处理 + * + * @author xinyilu + * @date 2023-02-13 + */ +@Service +public class HospitalInfoServiceImpl implements IHospitalInfoService { + @Resource + private HospitalInfoMapper hospitalInfoMapper; + @Resource + private GenerateSystemCodeUtil generateSystemCodeUtil; + @Resource + private RegexUtil regexUtil; + //@Resource + //private INurseStationItemService nurseStationItemService; + + /** + * 查询医院信息管理 + * + * @param id 医院信息管理主键 + * @return 医院信息管理 + */ + @Override + public HospitalInfo selectHospitalInfoById(Long id) { + return hospitalInfoMapper.selectHospitalInfoById(id); + } + + /** + * 查询医院信息管理列表 + * + * @param hospitalInfo 医院信息管理 + * @return 医院信息管理 + */ + @Override + public List selectHospitalInfoList(HospitalInfo hospitalInfo) { + return hospitalInfoMapper.selectHospitalInfoList(hospitalInfo); + } + + /** + * 新增医院信息管理 + * + * @param hospitalInfo 医院信息管理 + * @return 结果 + */ + @Override + public AjaxResult insertHospitalInfo(HospitalInfo hospitalInfo) { + //校验联系电话是否正确 + if (StringUtils.isNotBlank(hospitalInfo.getPhone())) { + boolean phone = regexUtil.regexSeatNumber(hospitalInfo.getPhone()); + if (BooleanUtils.isFalse(phone)) { + return AjaxResult.error("您输入的联系电话" + hospitalInfo.getPhone() + "不正确,请重新输入!"); + } + } + //校验名称是否重复 + int nameCount = hospitalInfoMapper.selectHospitalNameCount(hospitalInfo.getHospitalName()); + if (nameCount > 0) { + return AjaxResult.error("您输入的医院名称" + hospitalInfo.getHospitalName() + "重复,请重新添加!"); + } + hospitalInfo.setHospitalCode(Constants.HOSPITAL_CODE + generateSystemCodeUtil.generateSystemCode(Constants.HOSPITAL_CODE)); + hospitalInfo.setCreateBy(SecurityUtils.getUsername()); + hospitalInfo.setCreateTime(LocalDateTime.now()); + return AjaxResult.success(hospitalInfoMapper.insertHospitalInfo(hospitalInfo)); + } + + /** + * 修改医院信息管理 + * + * @param hospitalInfo 医院信息管理 + * @return 结果 + */ + @Override + public AjaxResult updateHospitalInfo(HospitalInfo hospitalInfo) { + HospitalInfo getHospitalInfo = hospitalInfoMapper.selectHospitalInfoById(hospitalInfo.getId()); + if (Objects.isNull(getHospitalInfo)) { + return AjaxResult.error("当前医院信息不存在,无法修改,请联系管理员!"); + } + //校验联系电话是否正确 + if (StringUtils.isNotBlank(hospitalInfo.getPhone())) { + boolean phone = regexUtil.regexSeatNumber(hospitalInfo.getPhone()); + if (BooleanUtils.isFalse(phone)) { + return AjaxResult.error("您输入的联系电话" + hospitalInfo.getPhone() + "不正确,请重新输入!"); + } + } + //校验名称是否重复 + if (!hospitalInfo.getHospitalName().equals(getHospitalInfo.getHospitalName())) { + int nameCount = hospitalInfoMapper.selectHospitalNameCount(hospitalInfo.getHospitalName()); + if (nameCount > 0) { + return AjaxResult.error("您输入的医院名称" + hospitalInfo.getHospitalName() + "重复,请重新添加!"); + } + } + hospitalInfo.setUpdateBy(SecurityUtils.getUsername()); + hospitalInfo.setUpdateTime(LocalDateTime.now()); + //修改医院信息 + hospitalInfoMapper.updateHospitalInfo(hospitalInfo); + //修改富文本图片 + this.deleteHospitalPictureUrl(hospitalInfo, getHospitalInfo); + return AjaxResult.success(); + } + + /** + * 批量删除医院信息管理 + * + * @param ids 需要删除的医院信息管理主键 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult deleteHospitalInfoByIds(Long[] ids) { + //查询医院信息 + List hospitalInfoList = hospitalInfoMapper.selectHospitalList(ids); + if (CollectionUtils.isEmpty(hospitalInfoList)) { + return AjaxResult.error("医院信息不存在,无法删除!"); + } + //删除医院信息 + int count = hospitalInfoMapper.deleteHospitalInfoByIds(ids); + if (count <= 0) { + throw new ServiceException("删除医院信息失败,请联系管理员!"); + } + //筛选医院简介 + List hospitalIntroduceList = hospitalInfoList.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotBlank(item.getHospitalIntroduce())).map(HospitalInfo::getHospitalIntroduce).collect(Collectors.toList()); + //遍历获取简介图片地址 + for (String hospitalIntroduce : hospitalIntroduceList) { + List pictureUrlList = FileUtils.getImgSrc(hospitalIntroduce); + for (String pictureUrl : pictureUrlList) { + if (StringUtils.isBlank(pictureUrl)) { + continue; + } + //修改路径 + String substring = pictureUrl.substring(pictureUrl.indexOf("/profile")); + //删除医院简介富文本图片 + //@TODO + //nurseStationItemService.deletePictureUrl(substring); + } + } + return AjaxResult.success(); + } + + /** + * 删除医院信息管理信息 + * + * @param id 医院信息管理主键 + * @return 结果 + */ + @Override + public int deleteHospitalInfoById(Long id) { + return hospitalInfoMapper.deleteHospitalInfoById(id); + } + + /** + * 删除医院富文本图片 + * + * @param hospitalInfo 修改后 + * @param getHospital 修改先 + **/ + public void deleteHospitalPictureUrl(HospitalInfo hospitalInfo, HospitalInfo getHospital) { + if (StringUtils.isNotBlank(hospitalInfo.getHospitalIntroduce()) && StringUtils.isNotBlank(getHospital.getHospitalIntroduce()) + && !hospitalInfo.getHospitalIntroduce().equals(getHospital.getHospitalIntroduce())) { + //修改先 + List getHospitalImgSrc = FileUtils.getImgSrc(getHospital.getHospitalIntroduce()); + //修改后 + List hospitalImgSrc = FileUtils.getImgSrc(hospitalInfo.getHospitalIntroduce()); + //差集不同的 + List subtractNurseStationImgSrc = new ArrayList<>(CollectionUtils.subtract(getHospitalImgSrc, hospitalImgSrc)); + //删除商品富文本图片 + for (String pictureUrl : subtractNurseStationImgSrc) { + if (StringUtils.isBlank(pictureUrl)) { + continue; + } + //修改路径 + String substring = pictureUrl.substring(pictureUrl.indexOf("/profile")); + //删除富文本图片 + // @TODO + //nurseStationItemService.deletePictureUrl(substring); + } + } + } +} + diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoncertificate/IHospitalPersonCertificateService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoncertificate/IHospitalPersonCertificateService.java new file mode 100644 index 0000000..cdf767f --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoncertificate/IHospitalPersonCertificateService.java @@ -0,0 +1,54 @@ +package com.xinelu.manage.service.hospitalpersoncertificate; + +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.manage.dto.hospitalpersoncertificate.HospitalPersonCertificateDTO; +import com.xinelu.manage.vo.hospitalpersoncertificate.HospitalPersonCertificateVO; +import java.util.List; + +/** + * 健康咨询-科室人员资质证书信息Service接口 + * + * @author xinyilu + * @date 2023-02-23 + */ +public interface IHospitalPersonCertificateService { + /** + * 查询健康咨询-科室人员资质证书信息 + * + * @param id 健康咨询-科室人员资质证书信息主键 + * @return 健康咨询-科室人员资质证书信息 + */ + HospitalPersonCertificateVO selectHospitalPersonCertificateById(Long id); + + /** + * 查询健康咨询-科室人员资质证书信息列表 + * + * @param hospitalPersonCertificate 健康咨询-科室人员资质证书信息 + * @return 健康咨询-科室人员资质证书信息集合 + */ + List selectHospitalPersonCertificateList(HospitalPersonCertificateDTO hospitalPersonCertificate); + + /** + * 新增健康咨询-科室人员资质证书信息 + * + * @param hospitalPersonCertificate 健康咨询-科室人员资质证书信息 + * @return 结果 + */ + AjaxResult insertHospitalPersonCertificate(HospitalPersonCertificateDTO hospitalPersonCertificate); + + /** + * 修改健康咨询-科室人员资质证书信息 + * + * @param hospitalPersonCertificate 健康咨询-科室人员资质证书信息 + * @return 结果 + */ + AjaxResult updateHospitalPersonCertificate(HospitalPersonCertificateDTO hospitalPersonCertificate); + + /** + * 批量删除健康咨询-科室人员资质证书信息 + * + * @param ids 需要删除的健康咨询-科室人员资质证书信息主键集合 + * @return 结果 + */ + int deleteHospitalPersonCertificateByIds(Long[] ids); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoncertificate/impl/HospitalPersonCertificateServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoncertificate/impl/HospitalPersonCertificateServiceImpl.java new file mode 100644 index 0000000..51a067d --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoncertificate/impl/HospitalPersonCertificateServiceImpl.java @@ -0,0 +1,137 @@ +package com.xinelu.manage.service.hospitalpersoncertificate.impl; + +import com.xinelu.common.constant.Constants; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.bean.BeanUtils; +import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; +import com.xinelu.manage.dto.hospitalpersoncertificate.CertificateUrlDTO; +import com.xinelu.manage.dto.hospitalpersoncertificate.HospitalPersonCertificateDTO; +import com.xinelu.manage.domain.hospitalpersoncertificate.HospitalPersonCertificate; +import com.xinelu.manage.mapper.hospitalpersoncertificate.HospitalPersonCertificateMapper; +import com.xinelu.manage.service.hospitalpersoncertificate.IHospitalPersonCertificateService; +import com.xinelu.manage.vo.hospitalpersoncertificate.HospitalPersonCertificateVO; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 健康咨询-科室人员资质证书信息Service业务层处理 + * + * @author xinyilu + * @date 2023-02-23 + */ +@Service +public class HospitalPersonCertificateServiceImpl implements IHospitalPersonCertificateService { + @Resource + private HospitalPersonCertificateMapper hospitalPersonCertificateMapper; + @Resource + private GenerateSystemCodeUtil generateSystemCodeUtil; + + /** + * 查询健康咨询-科室人员资质证书信息 + * + * @param id 健康咨询-科室人员资质证书信息主键 + * @return 健康咨询-科室人员资质证书信息 + */ + @Override + public HospitalPersonCertificateVO selectHospitalPersonCertificateById(Long id) { + HospitalPersonCertificateVO hospitalPersonCertificateVO = new HospitalPersonCertificateVO(); + List hospitalPersonCertificateVOList = hospitalPersonCertificateMapper.selectHospitalPersonCertificateById(id); + BeanUtils.copyProperties(hospitalPersonCertificateVOList.get(0), hospitalPersonCertificateVO); + List certificateUrlDTO = new ArrayList<>(); + hospitalPersonCertificateVOList.forEach(hospital -> { + CertificateUrlDTO certificateUrl = new CertificateUrlDTO(); + certificateUrl.setCertificateUrl(hospital.getCertificateUrl()); + certificateUrlDTO.add(certificateUrl); + hospitalPersonCertificateVO.setCertificateUrlList(certificateUrlDTO); + }); + return hospitalPersonCertificateVO; + } + + /** + * 查询健康咨询-科室人员资质证书信息列表 + * + * @param hospitalPersonCertificate 健康咨询-科室人员资质证书信息 + * @return 健康咨询-科室人员资质证书信息 + */ + @Override + public List selectHospitalPersonCertificateList(HospitalPersonCertificateDTO hospitalPersonCertificate) { + return hospitalPersonCertificateMapper.selectHospitalPersonCertificateList(hospitalPersonCertificate); + } + + /** + * 新增健康咨询-科室人员资质证书信息 + * + * @param hospitalPersonCertificate 健康咨询-科室人员资质证书信息 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult insertHospitalPersonCertificate(HospitalPersonCertificateDTO hospitalPersonCertificate) { + if (Objects.isNull(hospitalPersonCertificate)) { + return AjaxResult.error("请添加科室人员资质证书信息!"); + } + List hospitalPersonCertificateList = new ArrayList<>(); + for (CertificateUrlDTO object : hospitalPersonCertificate.getCertificateUrlList()) { + HospitalPersonCertificate hospitalPerson = new HospitalPersonCertificate(); + BeanUtils.copyProperties(hospitalPersonCertificate, hospitalPerson); + hospitalPerson.setCertificateUrl(object.getCertificateUrl()); + hospitalPerson.setCreateTime(LocalDateTime.now()); + hospitalPerson.setCreateBy(SecurityUtils.getUsername()); + hospitalPerson.setCertificateCode(Constants.CERTIFICATE_CODE + generateSystemCodeUtil.generateSystemCode(Constants.CERTIFICATE_CODE)); + hospitalPersonCertificateList.add(hospitalPerson); + } + int hospitalPersonCertificates = hospitalPersonCertificateMapper.insertHospitalPersonCertificateList(hospitalPersonCertificateList); + if (hospitalPersonCertificates <= 0) { + throw new ServiceException("新增科室人员资质证书信息失败,请联系管理员!"); + } + return AjaxResult.success(); + } + + /** + * 修改健康咨询-科室人员资质证书信息 + * + * @param hospitalPersonCertificate 健康咨询-科室人员资质证书信息 + * @return 结果 + */ + @Override + public AjaxResult updateHospitalPersonCertificate(HospitalPersonCertificateDTO hospitalPersonCertificate) { + int deleteHospitalPersonCertificateById = hospitalPersonCertificateMapper.deleteHospitalPersonCertificateById(hospitalPersonCertificate.getHospitalPersonId()); + if (deleteHospitalPersonCertificateById < 0) { + return AjaxResult.error("修改信息失败,请联系管理员!"); + } + List hospitalPersonCertificateList = new ArrayList<>(); + for (CertificateUrlDTO object : hospitalPersonCertificate.getCertificateUrlList()) { + HospitalPersonCertificate hospitalPerson = new HospitalPersonCertificate(); + BeanUtils.copyProperties(hospitalPersonCertificate, hospitalPerson); + hospitalPerson.setCertificateUrl(object.getCertificateUrl()); + hospitalPerson.setCreateTime(LocalDateTime.now()); + hospitalPerson.setCreateBy(SecurityUtils.getUsername()); + hospitalPerson.setCertificateCode(Constants.CERTIFICATE_CODE + generateSystemCodeUtil.generateSystemCode(Constants.CERTIFICATE_CODE)); + hospitalPersonCertificateList.add(hospitalPerson); + } + int hospitalPersonCertificates = hospitalPersonCertificateMapper.insertHospitalPersonCertificateList(hospitalPersonCertificateList); + if (hospitalPersonCertificates <= 0) { + throw new ServiceException("新增科室人员资质证书信息失败,请联系管理员!"); + } + return AjaxResult.success(); + } + + /** + * 批量删除健康咨询-科室人员资质证书信息 + * + * @param ids 需要删除的健康咨询-科室人员资质证书信息主键 + * @return 结果 + */ + @Override + public int deleteHospitalPersonCertificateByIds(Long[] ids) { + return hospitalPersonCertificateMapper.deleteHospitalPersonCertificateByIds(ids); + } + +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/IHospitalPersonInfoService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/IHospitalPersonInfoService.java new file mode 100644 index 0000000..4140c5d --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/IHospitalPersonInfoService.java @@ -0,0 +1,69 @@ +package com.xinelu.manage.service.hospitalpersoninfo; + +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDTO; +import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO; +import java.util.List; + +/** + * 健康咨询-科室人员信息Service接口 + * + * @author xinyilu + * @date 2023-02-14 + */ +public interface IHospitalPersonInfoService { + /** + * 查询健康咨询-科室人员信息 + * + * @param id 健康咨询-科室人员信息主键 + * @return 健康咨询-科室人员信息 + */ + HospitalPersonInfoVO selectHospitalPersonInfoById(Long id); + + /** + * 查询健康咨询-科室人员信息列表 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 健康咨询-科室人员信息集合 + */ + List selectHospitalPersonInfoList(HospitalPersonInfoVO hospitalPersonInfo); + + /** + * 新增健康咨询-科室人员信息 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 结果 + */ + AjaxResult insertHospitalPersonInfo(HospitalPersonInfoDTO hospitalPersonInfo); + + /** + * 修改健康咨询-科室人员信息 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 结果 + */ + AjaxResult updateHospitalPersonInfo(HospitalPersonInfoDTO hospitalPersonInfo); + + /** + * 批量删除健康咨询-科室人员信息 + * + * @param ids 需要删除的健康咨询-科室人员信息主键集合 + * @return 结果 + */ + AjaxResult deleteHospitalPersonInfoByIds(Long[] ids); + + /** + * 删除健康咨询-科室人员信息信息 + * + * @param id 健康咨询-科室人员信息主键 + * @return 结果 + */ + int deleteHospitalPersonInfoById(Long id); + + /** + * 删除图片地址 + * + * @param pictureUrl 图片地址 + **/ + void deletePictureUrl(String pictureUrl); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/impl/HospitalPersonInfoServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/impl/HospitalPersonInfoServiceImpl.java new file mode 100644 index 0000000..a5fe277 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/impl/HospitalPersonInfoServiceImpl.java @@ -0,0 +1,301 @@ +package com.xinelu.manage.service.hospitalpersoninfo.impl; + +import com.xinelu.common.config.XinELuConfig; +import com.xinelu.common.constant.Constants; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; +import com.xinelu.common.utils.regex.RegexUtil; +import com.xinelu.manage.domain.hospitalpersoncertificate.HospitalPersonCertificate; +import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo; +import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDTO; +import com.xinelu.manage.mapper.hospitalpersoncertificate.HospitalPersonCertificateMapper; +import com.xinelu.manage.mapper.hospitalpersoninfo.HospitalPersonInfoMapper; +import com.xinelu.manage.service.hospitalpersoninfo.IHospitalPersonInfoService; +import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO; +import java.io.File; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import javax.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 健康咨询-科室人员信息Service业务层处理 + * + * @author xinyilu + * @date 2023-02-14 + */ +@Service +public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService { + @Resource + private HospitalPersonInfoMapper hospitalPersonInfoMapper; + @Resource + private GenerateSystemCodeUtil generateSystemCodeUtil; + @Resource + private RegexUtil regexUtil; + @Resource + private HospitalPersonCertificateMapper hospitalPersonCertificateMapper; + + /** + * 查询健康咨询-科室人员信息 + * + * @param id 健康咨询-科室人员信息主键 + * @return 健康咨询-科室人员信息 + */ + @Override + public HospitalPersonInfoVO selectHospitalPersonInfoById(Long id) { + return hospitalPersonInfoMapper.selectHospitalPersonInfoById(id); + } + + /** + * 查询健康咨询-科室人员信息列表 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 健康咨询-科室人员信息 + */ + @Override + public List selectHospitalPersonInfoList(HospitalPersonInfoVO hospitalPersonInfo) { + return hospitalPersonInfoMapper.selectHospitalPersonInfoList(hospitalPersonInfo); + } + + /** + * 新增健康咨询-科室人员信息 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult insertHospitalPersonInfo(HospitalPersonInfoDTO hospitalPersonInfo) { + //校验联系电话是否正确 + if (Objects.nonNull(hospitalPersonInfo) && StringUtils.isNotBlank(hospitalPersonInfo.getPersonPhone())) { + boolean phone = regexUtil.regexPhone(hospitalPersonInfo.getPersonPhone()); + if (BooleanUtils.isFalse(phone)) { + return AjaxResult.error("您输入的联系电话" + hospitalPersonInfo.getPersonPhone() + "不正确,请重新输入!"); + } + } + //校验身份证号是否正确 + if (Objects.nonNull(hospitalPersonInfo) && StringUtils.isNotBlank(hospitalPersonInfo.getCardNo())) { + boolean phone = regexUtil.regexCardNo(hospitalPersonInfo.getCardNo()); + if (BooleanUtils.isFalse(phone)) { + return AjaxResult.error("您输入的身份证号" + hospitalPersonInfo.getCardNo() + "不正确,请重新输入!"); + } + //校验身份证号是否重复 + int cardNoByCount = hospitalPersonInfoMapper.selectHospitalPersonInfoByCount(hospitalPersonInfo.getCardNo()); + if (cardNoByCount > 0) { + return AjaxResult.error("您输入的身份证号" + hospitalPersonInfo.getCardNo() + "重复,请重新添加!"); + } + } + if (Objects.nonNull(hospitalPersonInfo.getConsultingFee()) && hospitalPersonInfo.getConsultingFee().compareTo(BigDecimal.ZERO) <= 0) { + return AjaxResult.error("咨询费用不能为0或者负数,请重新输入"); + } + //创建人 创建时间 科室人员编码 + hospitalPersonInfo.setPersonCode(Constants.PERSON_CODE + generateSystemCodeUtil.generateSystemCode(Constants.PERSON_CODE)); + hospitalPersonInfo.setCreateTime(LocalDateTime.now()); + hospitalPersonInfo.setCreateBy(SecurityUtils.getUsername()); + int insertHospitalPersonInfo = hospitalPersonInfoMapper.insertHospitalPersonInfo(hospitalPersonInfo); + if (insertHospitalPersonInfo <= 0) { + throw new ServiceException("新增科室人员信息失败,请联系管理员!"); + } + if (Objects.nonNull(hospitalPersonInfo.getHospitalPersonCertificateList())) { + //新增科室人员资质证书表 + for (HospitalPersonCertificate hospitalPersonCertificate : hospitalPersonInfo.getHospitalPersonCertificateList()) { + hospitalPersonCertificate.setHospitalPersonId(hospitalPersonInfo.getId()); + hospitalPersonCertificate.setCreateTime(LocalDateTime.now()); + hospitalPersonCertificate.setCreateBy(SecurityUtils.getUsername()); + hospitalPersonCertificate.setCertificateCode(Constants.CERTIFICATE_CODE + generateSystemCodeUtil.generateSystemCode(Constants.CERTIFICATE_CODE)); + } + int hospitalPersonCertificates = hospitalPersonCertificateMapper.insertHospitalPersonCertificateList(hospitalPersonInfo.getHospitalPersonCertificateList()); + if (hospitalPersonCertificates <= 0) { + throw new ServiceException("新增科室人员资质证书信息失败,请联系管理员!"); + } + } + return AjaxResult.success(); + } + + /** + * 修改健康咨询-科室人员信息 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult updateHospitalPersonInfo(HospitalPersonInfoDTO hospitalPersonInfo) { + //根据id查询当前人员是否存在 + HospitalPersonInfo personInfo = hospitalPersonInfoMapper.selectHospitalPersonInfoById(hospitalPersonInfo.getId()); + if (Objects.isNull(personInfo)) { + return AjaxResult.error("当前科室人员信息不存在!"); + } + AjaxResult ajaxResult = verificationHospital(hospitalPersonInfo, personInfo); + if (Objects.nonNull(ajaxResult)) { + return ajaxResult; + } + if (Objects.nonNull(hospitalPersonInfo.getConsultingFee()) && hospitalPersonInfo.getConsultingFee().compareTo(BigDecimal.ZERO) <= 0) { + return AjaxResult.error("咨询费用不能为0或者负数,请重新输入"); + } + //修改人 修改时间 + hospitalPersonInfo.setUpdateTime(LocalDateTime.now()); + hospitalPersonInfo.setUpdateBy(SecurityUtils.getUsername()); + hospitalPersonInfoMapper.updateHospitalPersonInfo(hospitalPersonInfo); + //根据科室人员id去查询对应的资质证书 使用流来获取所有的证书路径 + List hospitalPersonCertificateList = hospitalPersonCertificateMapper.selectHospitalPersonCertificateByIds(Collections.singletonList(hospitalPersonInfo.getId())); + //数据库中的 + List hospitalPersonCertificateUrlList = Lists.newArrayList(); + //根据科室人员id删除科室人员资质证书信息表 + if (CollectionUtils.isNotEmpty(hospitalPersonCertificateList)) { + hospitalPersonCertificateUrlList = hospitalPersonCertificateList.stream().filter(Objects::nonNull) + .filter(hospitalUrl -> (StringUtils.isNotBlank(hospitalUrl.getCertificateUrl()))) + .map(HospitalPersonCertificate::getCertificateUrl).collect(Collectors.toList()); + Long[] longs = hospitalPersonCertificateList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getId())).collect(Collectors.toList()).stream().map(HospitalPersonCertificate::getId).toArray(Long[]::new); + int deleteCount = hospitalPersonCertificateMapper.deleteHospitalPersonCertificateByIds(longs); + if (deleteCount <= 0) { + throw new ServiceException("修改科室人员信息失败,请联系管理员!"); + } + } + //前端传的 + List hospitalPersonInfoCertificateUrlList = hospitalPersonInfo.getHospitalPersonCertificateList().stream().filter(Objects::nonNull) + .filter(hospitalUrl -> (StringUtils.isNotBlank(hospitalUrl.getCertificateUrl()))) + .map(HospitalPersonCertificate::getCertificateUrl).collect(Collectors.toList()); + //数据库中的地址与前端传的地址做差集 + List hospitalPersonCertificateUrlSubtract = new ArrayList<>(CollectionUtils.subtract(hospitalPersonCertificateUrlList, hospitalPersonInfoCertificateUrlList)); + //新增科室人员资质证书表 + for (HospitalPersonCertificate hospitalPersonCertificate : hospitalPersonInfo.getHospitalPersonCertificateList()) { + hospitalPersonCertificate.setHospitalPersonId(hospitalPersonInfo.getId()); + hospitalPersonCertificate.setUpdateTime(LocalDateTime.now()); + hospitalPersonCertificate.setUpdateBy(SecurityUtils.getUsername()); + hospitalPersonCertificate.setCertificateCode(Constants.CERTIFICATE_CODE + generateSystemCodeUtil.generateSystemCode(Constants.CERTIFICATE_CODE)); + } + int hospitalPersonCertificates = hospitalPersonCertificateMapper.insertHospitalPersonCertificateList(hospitalPersonInfo.getHospitalPersonCertificateList()); + if (hospitalPersonCertificates <= 0) { + throw new ServiceException("修改科室人员资质证书信息失败,请联系管理员!"); + } + //删除人员的头像 + if (StringUtils.isNotBlank(personInfo.getPersonPictureUrl()) && StringUtils.isNotBlank(hospitalPersonInfo.getPersonPictureUrl()) && !personInfo.getPersonPictureUrl().equals(hospitalPersonInfo.getPersonPictureUrl())) { + this.deletePictureUrl(personInfo.getPersonPictureUrl()); + } + //删除科室人员的资质证书 + if (CollectionUtils.isNotEmpty(hospitalPersonCertificateUrlSubtract)) { + hospitalPersonCertificateUrlSubtract.forEach(this::deletePictureUrl); + } + return AjaxResult.success(); + } + + /** + * 批量删除健康咨询-科室人员信息 + * + * @param ids 需要删除的健康咨询-科室人员信息主键 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult deleteHospitalPersonInfoByIds(Long[] ids) { + //根据科室人员id去查询对应的个人信息 使用流来获取所有的富文本 + List hospitalPersonInfos = hospitalPersonInfoMapper.selectHospitalPersonByIds(Arrays.asList(ids)); + if (CollectionUtils.isEmpty(hospitalPersonInfos)) { + return AjaxResult.success(); + } + //根据科室人员id删除人员信息表 + hospitalPersonInfoMapper.deleteHospitalPersonInfoByIds(ids); + //根据科室人员id去查询对应的资质证书 使用流来获取所有的证书路径 + List hospitalPersonCertificateList = hospitalPersonCertificateMapper.selectHospitalPersonCertificateByIds(Arrays.asList(ids)); + //删除人员资质证书表信息 + if (CollectionUtils.isNotEmpty(hospitalPersonCertificateList)) { + hospitalPersonCertificateMapper.deletePersonCertificateByPersonIds(ids); + } + //使用流获取人员的头像地址 + List personPictureUrlList = hospitalPersonInfos.stream().filter(Objects::nonNull) + .filter(hospital -> (Objects.nonNull(hospital.getPersonPictureUrl()))) + .map(HospitalPersonInfo::getPersonPictureUrl).collect(Collectors.toList()); + //删除人员的头像 + if (CollectionUtils.isNotEmpty(personPictureUrlList)) { + personPictureUrlList.forEach(this::deletePictureUrl); + } + //删除科室人员的资质证书 + List hospitalPersonCertificateUrlList = hospitalPersonCertificateList.stream().filter(Objects::nonNull) + .filter(hospitalUrl -> (StringUtils.isNotBlank(hospitalUrl.getCertificateUrl()))) + .map(HospitalPersonCertificate::getCertificateUrl).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(hospitalPersonCertificateUrlList)) { + hospitalPersonCertificateUrlList.forEach(this::deletePictureUrl); + } + return AjaxResult.success(); + } + + /** + * 删除健康咨询-科室人员信息信息 + * + * @param id 健康咨询-科室人员信息主键 + * @return 结果 + */ + @Override + public int deleteHospitalPersonInfoById(Long id) { + return hospitalPersonInfoMapper.deleteHospitalPersonInfoById(id); + } + + + /** + * 修改数据校验电话与身份证号 + * + * @param hospitalPersonInfo 前端传过来的 + * @param personInfo 数据库中查的 + * @return com.xinelu.common.core.domain.AjaxResult + **/ + public AjaxResult verificationHospital(HospitalPersonInfoDTO hospitalPersonInfo, HospitalPersonInfo personInfo) { + //校验联系电话是否正确 + if (Objects.nonNull(hospitalPersonInfo) && StringUtils.isNotBlank(hospitalPersonInfo.getPersonPhone())) { + boolean phone = regexUtil.regexPhone(hospitalPersonInfo.getPersonPhone()); + if (BooleanUtils.isFalse(phone)) { + return AjaxResult.error("您输入的联系电话" + hospitalPersonInfo.getPersonPhone() + "不正确,请重新输入!"); + } + } + //校验身份证号是否正确 + if (Objects.nonNull(hospitalPersonInfo) && StringUtils.isNotBlank(hospitalPersonInfo.getCardNo())) { + boolean phone = regexUtil.regexCardNo(hospitalPersonInfo.getCardNo()); + if (BooleanUtils.isFalse(phone)) { + return AjaxResult.error("您输入的身份证号" + hospitalPersonInfo.getCardNo() + "不正确,请重新输入!"); + } + } + //校验身份证号是否重复 + if (Objects.nonNull(hospitalPersonInfo) && StringUtils.isNotBlank(hospitalPersonInfo.getCardNo()) && + StringUtils.isNotBlank(personInfo.getCardNo()) && + !personInfo.getCardNo().equals(hospitalPersonInfo.getCardNo())) { + int cardNoByCount = hospitalPersonInfoMapper.selectHospitalPersonInfoByCount(hospitalPersonInfo.getCardNo()); + if (cardNoByCount > 0) { + return AjaxResult.error("您输入的身份证号" + hospitalPersonInfo.getCardNo() + "重复,请重新添加!"); + } + } + return null; + } + + /** + * 删除图片地址 + * + * @param pictureUrl 图片地址 + **/ + @Override + public void deletePictureUrl(String pictureUrl) { + if (StringUtils.isBlank(pictureUrl)) { + return; + } + String picture = XinELuConfig.getProfile() + pictureUrl.replaceAll("/profile", ""); + File checkReportNameFile = new File(picture); + if (checkReportNameFile.exists()) { + boolean delete = checkReportNameFile.delete(); + if (BooleanUtils.isFalse(delete)) { + throw new ServiceException("图片地址删除失败!"); + } + } + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/hospitalpersoncertificate/HospitalPersonCertificateVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/hospitalpersoncertificate/HospitalPersonCertificateVO.java new file mode 100644 index 0000000..ce53d4a --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/hospitalpersoncertificate/HospitalPersonCertificateVO.java @@ -0,0 +1,63 @@ +package com.xinelu.manage.vo.hospitalpersoncertificate; + +import com.xinelu.common.custominterface.Insert; +import com.xinelu.common.custominterface.Update; +import com.xinelu.manage.dto.hospitalpersoncertificate.CertificateUrlDTO; +import java.io.Serializable; +import java.util.List; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/2/24 15:18 + */ +@Data +public class HospitalPersonCertificateVO implements Serializable { + private static final long serialVersionUID = -4426314380828069789L; + + /** + * 主键id + */ + private Long id; + + /** + * 科室人员表id + */ + @NotNull(message = "科室人员表id不能为空", groups = { Insert.class, Update.class}) + private Long hospitalPersonId; + + /** + * 证书名称 + */ + @NotBlank(message = "科室人员表id不能为空", groups = {Insert.class, Update.class}) + private String certificateName; + + /** + * 证书编号 + */ + private String certificateCode; + + /** + * 证书图片存放路径 + */ + private String certificateUrl; + + /** + * 证书显示顺序 + */ + @NotNull(message = "证书显示顺序不能为空", groups = {Insert.class, Update.class}) + private Integer certificateSort; + + /** + * 人员名称 + */ + private String personName; + + /** + * 证书图片存放路径集合 + */ + private List certificateUrlList; +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/hospitalpersoninfo/HospitalPersonInfoVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/hospitalpersoninfo/HospitalPersonInfoVO.java new file mode 100644 index 0000000..e69282b --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/hospitalpersoninfo/HospitalPersonInfoVO.java @@ -0,0 +1,36 @@ +package com.xinelu.manage.vo.hospitalpersoninfo; + +import com.xinelu.manage.domain.hospitalpersoncertificate.HospitalPersonCertificate; +import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo; +import java.io.Serializable; +import java.util.List; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/2/16 9:56 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class HospitalPersonInfoVO extends HospitalPersonInfo implements Serializable { + private static final long serialVersionUID = -5861138784324572184L; + + /** + * 医院名称 + */ + private String hospitalName; + + + /** + * 科室名称 + */ + private String departmentName; + + /** + * 健康咨询-科室人员证书信息对象集合 + **/ + private List hospitalPersonCertificateList; + +} diff --git a/xinelu-nurse-manage/src/main/resources/hospitaldepartmentinfo/HospitalDepartmentInfoMapper.xml b/xinelu-nurse-manage/src/main/resources/hospitaldepartmentinfo/HospitalDepartmentInfoMapper.xml new file mode 100644 index 0000000..c223835 --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/hospitaldepartmentinfo/HospitalDepartmentInfoMapper.xml @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, + parent_id, + hospital_id, + hospital_name, + department_code, + department_name, + department_phone, + department_person, + department_address, + department_level, + department_sort, + create_by, + create_time, + update_by, + update_time + from hospital_department_info + + + + + + + + insert into hospital_department_info + + parent_id, + + hospital_id, + + hospital_name, + + department_code, + + department_name, + + department_phone, + + department_person, + + department_address, + + department_level, + + department_sort, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{parentId}, + + #{hospitalId}, + + #{hospitalName}, + + #{departmentCode}, + + #{departmentName}, + + #{departmentPhone}, + + #{departmentPerson}, + + #{departmentAddress}, + + #{departmentLevel}, + + #{departmentSort}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update hospital_department_info + + parent_id = + #{parentId}, + + hospital_id = + #{hospitalId}, + + hospital_name = + #{hospitalName}, + + department_code = + #{departmentCode}, + + department_name = + #{departmentName}, + + department_phone = + #{departmentPhone}, + + department_person = + #{departmentPerson}, + + department_address = + #{departmentAddress}, + + department_level = + #{departmentLevel}, + + department_sort = + #{departmentSort}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from hospital_department_info + where id = #{id} + + + + delete from hospital_department_info where id in + + #{id} + + + + + insert into hospital_department_info( + parent_id, + hospital_id, + hospital_name, + department_code, + department_name, + department_phone, + department_person, + department_address, + department_level, + department_sort, + create_by, + create_time + )values + + ( + #{hospitalDepartmentInfoList.parentId}, + #{hospitalDepartmentInfoList.hospitalId}, + #{hospitalDepartmentInfoList.hospitalName}, + #{hospitalDepartmentInfoList.departmentCode}, + #{hospitalDepartmentInfoList.departmentName}, + #{hospitalDepartmentInfoList.departmentPhone}, + #{hospitalDepartmentInfoList.departmentPerson}, + #{hospitalDepartmentInfoList.departmentAddress}, + #{hospitalDepartmentInfoList.departmentLevel}, + #{hospitalDepartmentInfoList.departmentSort}, + #{hospitalDepartmentInfoList.createBy}, + #{hospitalDepartmentInfoList.createTime} + ) + + + + + + + \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/resources/hospitalinfo/HospitalInfoMapper.xml b/xinelu-nurse-manage/src/main/resources/hospitalinfo/HospitalInfoMapper.xml new file mode 100644 index 0000000..756ffef --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/hospitalinfo/HospitalInfoMapper.xml @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + select id, + hospital_name, + hospital_code, + hospital_address, + phone, + hospital_introduce, + hospital_sort, + create_by, + create_time, + update_by, + update_time + from hospital_info + + + + + + + + insert into hospital_info + + hospital_name, + + hospital_code, + + hospital_address, + + phone, + + hospital_introduce, + + hospital_sort, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{hospitalName}, + + #{hospitalCode}, + + #{hospitalAddress}, + + #{phone}, + + #{hospitalIntroduce}, + + #{hospitalSort}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update hospital_info + + hospital_name = + #{hospitalName}, + + hospital_code = + #{hospitalCode}, + + hospital_address = + #{hospitalAddress}, + + phone = + #{phone}, + + hospital_introduce = + #{hospitalIntroduce}, + + hospital_sort = + #{hospitalSort}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from hospital_info + where id = #{id} + + + + delete from hospital_info where id in + + #{id} + + + + + + + diff --git a/xinelu-nurse-manage/src/main/resources/hospitalpersoncertificate/HospitalPersonCertificateMapper.xml b/xinelu-nurse-manage/src/main/resources/hospitalpersoncertificate/HospitalPersonCertificateMapper.xml new file mode 100644 index 0000000..036a673 --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/hospitalpersoncertificate/HospitalPersonCertificateMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + select id, + hospital_person_id, + certificate_name, + certificate_code, + certificate_url, + certificate_sort, + create_by, + create_time, + update_by, + update_time + from hospital_person_certificate + + + + + + + + insert into hospital_person_certificate + + hospital_person_id, + + certificate_name, + + certificate_code, + + certificate_url, + + certificate_sort, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{hospitalPersonId}, + + #{certificateName}, + + #{certificateCode}, + + #{certificateUrl}, + + #{certificateSort}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update hospital_person_certificate + + hospital_person_id = + #{hospitalPersonId}, + + certificate_name = + #{certificateName}, + + certificate_code = + #{certificateCode}, + + certificate_url = + #{certificateUrl}, + + certificate_sort = + #{certificateSort}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from hospital_person_certificate + where hospital_person_id = #{id} + + + + delete from hospital_person_certificate where id in + + #{id} + + + + + insert into hospital_person_certificate( + hospital_person_id, + certificate_name, + certificate_code, + certificate_url, + certificate_sort, + create_by, + create_time, + update_by, + update_time + ) values + + ( + #{HospitalPersonCertificate.hospitalPersonId}, + #{HospitalPersonCertificate.certificateName}, + #{HospitalPersonCertificate.certificateCode}, + #{HospitalPersonCertificate.certificateUrl}, + #{HospitalPersonCertificate.certificateSort}, + #{HospitalPersonCertificate.createBy}, + #{HospitalPersonCertificate.createTime}, + #{HospitalPersonCertificate.updateBy}, + #{HospitalPersonCertificate.updateTime} + ) + + + + + + + + delete from hospital_person_certificate where hospital_person_id in + + #{id} + + + diff --git a/xinelu-nurse-manage/src/main/resources/hospitalpersoninfo/HospitalPersonInfoMapper.xml b/xinelu-nurse-manage/src/main/resources/hospitalpersoninfo/HospitalPersonInfoMapper.xml new file mode 100644 index 0000000..52dc7ef --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/hospitalpersoninfo/HospitalPersonInfoMapper.xml @@ -0,0 +1,379 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + hospital_id, + department_id, + person_code, + person_name, + person_phone, + person_address, + card_no, + academic_title, + consulting_fee, + person_introduce, + person_sort, + person_picture_url, + create_by, + create_time, + update_by, + update_time + from hospital_person_info + + + + + + + + insert into hospital_person_info + + hospital_id, + + department_id, + + person_code, + + person_name, + + person_phone, + person_address, + + card_no, + academic_title, + + consulting_fee, + + person_introduce, + + person_sort, + + person_picture_url, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{hospitalId}, + + #{departmentId}, + + #{personCode}, + + #{personName}, + + #{personPhone}, + #{personAddress}, + + #{cardNo}, + #{academicTitle}, + + #{consultingFee}, + + #{personIntroduce}, + + #{personSort}, + + #{personPictureUrl}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update hospital_person_info + + hospital_id = + #{hospitalId}, + + department_id = + #{departmentId}, + + person_code = + #{personCode}, + + person_name = + #{personName}, + + person_phone = #{personPhone}, + person_address = + #{personAddress}, + + card_no = #{cardNo}, + academic_title = + #{academicTitle}, + + consulting_fee = + #{consultingFee}, + + person_introduce = + #{personIntroduce}, + + person_sort = + #{personSort}, + + person_picture_url = + #{personPictureUrl}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from hospital_person_info + where id = #{id} + + + + delete from hospital_person_info where id in + + #{id} + + + + + + + + + + +