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 cc7ef3e..aa5b4d8 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 @@ -8,6 +8,7 @@ import io.jsonwebtoken.Claims; * @author xinelu */ public class Constants { + /** * UTF-8 字符集 */ @@ -174,6 +175,36 @@ public class Constants { */ public static final String LABEL_CODE = "BQ"; + /** + * 护理项目分类编码前缀 + */ + public static final String CLASSIFY_ITEM = "HLT"; + + /** + * 科室编码前缀 + */ + 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"; + + /** + * 护理机构分类编码前缀 + */ + public static final String NURSE_AGENCY = "NA"; + /** * 护理站图片路径上传 */ @@ -247,24 +278,4 @@ public class Constants { * 客服图片路径上传 */ public static final String GROUP_QR_CODE_URL = "groupQrCodeUrl"; - - /** - * 科室编码前缀 - */ - 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/utils/AgeUtil.java b/xinelu-common/src/main/java/com/xinelu/common/utils/AgeUtil.java new file mode 100644 index 0000000..5c9d13d --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/utils/AgeUtil.java @@ -0,0 +1,67 @@ +package com.xinelu.common.utils; + +import com.xinelu.common.exception.ServiceException; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Calendar; +import java.util.GregorianCalendar; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/2/27 11:45 + */ +public class AgeUtil { + + /** + * 根据出生日期计算年龄数值 + * + * @param date 出生日期 + * @return 年龄数值 + */ + public static Long getAgeMonth(String date) { + if (StringUtils.isBlank(date)) { + throw new ServiceException("请输入正确的出生日期!"); + } + String[] data = StringUtils.split(date, "-"); + if (data.length < 3) { + throw new ServiceException("请输入正确的出生日期!"); + } + Calendar birthday = new GregorianCalendar(Integer.parseInt(data[0]), Integer.parseInt(data[1]), Integer.parseInt(data[2])); + Calendar now = Calendar.getInstance(); + int day = now.get(Calendar.DAY_OF_MONTH) - birthday.get(Calendar.DAY_OF_MONTH); + //月份从0开始计算,所以需要+1 + int month = now.get(Calendar.MONTH) + 1 - birthday.get(Calendar.MONTH); + BigDecimal monthFraction; + int year = now.get(Calendar.YEAR) - birthday.get(Calendar.YEAR); + //按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。 + if (day < 0) { + month -= 1; + //得到上一个月,用来得到上个月的天数。 + now.add(Calendar.MONTH, -1); + } + if (month < 0) { + //当前月份加12个月 + monthFraction = BigDecimal.valueOf(month).add(BigDecimal.valueOf(12)).divide(BigDecimal.valueOf(12), 1, RoundingMode.HALF_UP); + year--; + } else { + //当前月份 + monthFraction = BigDecimal.valueOf(month).divide(BigDecimal.valueOf(12), 1, RoundingMode.HALF_UP); + } + BigDecimal bigDecimal = BigDecimal.ZERO; + if (year >= 0) { + bigDecimal = bigDecimal.add(BigDecimal.valueOf(year)); + } + if ((monthFraction.compareTo(BigDecimal.ZERO) > 0)) { + bigDecimal = bigDecimal.add(monthFraction); + } + //今天出生 + if (year == 0 && month == 0 && day == 0) { + return BigDecimal.ZERO.longValue(); + } + return Math.round(bigDecimal.doubleValue()); + } + +} + diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/nurseclassifyinfo/NurseClassifyInfoController.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/nurseclassifyinfo/NurseClassifyInfoController.java new file mode 100644 index 0000000..df3e4d3 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/nurseclassifyinfo/NurseClassifyInfoController.java @@ -0,0 +1,94 @@ +package com.xinelu.manage.controller.nurseclassifyinfo; + +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.nurseclassifyinfo.NurseClassifyInfo; +import com.xinelu.manage.dto.nurseclassifyinfo.NurseClassifyInfoDTO; +import com.xinelu.manage.service.nurseclassifyinfo.INurseClassifyInfoService; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 护理机构和护理项目分类信息Controller + * + * @author xinyilu + * @date 2023-02-08 + */ +@RestController +@RequestMapping("/classifyItem/info") +public class NurseClassifyInfoController extends BaseController { + @Resource + private INurseClassifyInfoService nurseClassifyInfoService; + + /** + * 查询护理项目分类信息列表 + */ + @GetMapping("/list") + public TableDataInfo list(NurseClassifyInfo nurseClassifyInfo) { + startPage(); + List list = nurseClassifyInfoService.selectNurseClassifyInfoList(nurseClassifyInfo); + return getDataTable(list); + } + + /** + * 导出护理项目分类信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:classifyItem:export')") + @Log(title = "护理机构和护理项目分类信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, NurseClassifyInfo nurseClassifyInfo) { + List list = nurseClassifyInfoService.selectNurseClassifyInfoList(nurseClassifyInfo); + ExcelUtil util = new ExcelUtil<>(NurseClassifyInfo.class); + util.exportExcel(response, list, "护理机构和护理项目分类信息数据"); + } + + /** + * 获取护理项目分类信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:classifyItem:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(nurseClassifyInfoService.selectNurseClassifyInfoById(id)); + } + + /** + * 新增护理项目分类信息 + */ + @PreAuthorize("@ss.hasPermi('system:classifyItem:add')") + @Log(title = "护理机构和护理项目分类信息", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@Validated(Insert.class) @RequestBody NurseClassifyInfoDTO nurseClassifyInfo) { + return nurseClassifyInfoService.insertNurseClassifyInfo(nurseClassifyInfo.getNurseClassifyInfoList()); + } + + /** + * 修改护理项目分类信息 + */ + @PreAuthorize("@ss.hasPermi('system:classifyItem:edit')") + @Log(title = "护理机构和护理项目分类信息", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult edit(@Validated(Update.class) @RequestBody NurseClassifyInfo nurseClassifyInfo) { + return nurseClassifyInfoService.updateNurseClassifyInfo(nurseClassifyInfo); + } + + /** + * 删除护理项目分类信息 + */ + @PreAuthorize("@ss.hasPermi('system:classifyItem:remove')") + @Log(title = "护理机构和护理项目分类信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return nurseClassifyInfoService.deleteNurseClassifyInfoByIds(ids); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/nursestation/NurseStationController.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/nursestation/NurseStationController.java index deedc21..5417a6e 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/nursestation/NurseStationController.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/nursestation/NurseStationController.java @@ -1,11 +1,6 @@ package com.xinelu.manage.controller.nursestation; -import com.xinelu.manage.domain.dto.nursestation.NurseStationDTO; -import com.xinelu.manage.domain.dto.nursestation.NurseStationImportDTO; -import com.xinelu.manage.domain.vo.nursestation.NurseStationSysUserVO; -import com.xinelu.manage.domain.vo.nursestation.NurseStationVO; -import com.xinelu.manage.service.nursestation.INurseStationService; import com.xinelu.common.annotation.Log; import com.xinelu.common.constant.Constants; import com.xinelu.common.core.controller.BaseController; @@ -16,6 +11,11 @@ import com.xinelu.common.custominterface.Update; import com.xinelu.common.enums.BusinessType; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.poi.ExcelUtil; +import com.xinelu.manage.dto.nursestation.NurseStationDTO; +import com.xinelu.manage.dto.nursestation.NurseStationImportDTO; +import com.xinelu.manage.service.nursestation.INurseStationService; +import com.xinelu.manage.vo.nursestation.NurseStationSysUserVO; +import com.xinelu.manage.vo.nursestation.NurseStationVO; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.security.access.prepost.PreAuthorize; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/patientinfo/PatientInfo.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/patientinfo/PatientInfo.java new file mode 100644 index 0000000..cdd787c --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/patientinfo/PatientInfo.java @@ -0,0 +1,275 @@ +package com.xinelu.manage.domain.patientinfo; + +import com.fasterxml.jackson.annotation.JsonFormat; +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 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; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.time.LocalDate; + +/** + * 被护理人基本信息对象 patient_info + * + * @author xinyilu + * @date 2022-09-02 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "被护理人基本信息对象", description = "patient_info") +public class PatientInfo extends BaseDomain implements Serializable { + private static final long serialVersionUID = -9042864713058829058L; + /** + * 主键id + */ + @NotNull(message = "被护理人id不能为空", groups = {Update.class}) + private Long id; + + /** + * 居住小区编码 + */ + @ApiModelProperty(value = "居住小区编码") + @Excel(name = "居住小区编码") + private String communityCode; + + /** + * 所属区域编码 + */ + @ApiModelProperty(value = "所属区域编码") + @Excel(name = "所属区域编码") + private String areaCode; + + /** + * 用户编号 + */ + @ApiModelProperty(value = "用户编号") + @Excel(name = "用户编号") + private String patientCode; + + /** + * 用户姓名 + */ + @NotBlank(message = "用户姓名不能为空", groups = {Update.class}) + @ApiModelProperty(value = "用户姓名") + @Excel(name = "用户姓名") + private String patientName; + + /** + * 身份证号 + */ + @Length(max = 18, message = "身份证号不能超过18位", groups = {Insert.class, Update.class}) + @NotBlank(message = "身份证号不能为空", groups = {Update.class}) + @ApiModelProperty(value = "身份证号") + @Excel(name = "身份证号") + private String cardNo; + + /** + * sys_user表id + */ + @ApiModelProperty(value = "sys_user表id") + @Excel(name = "sys_user表id") + private Long userId; + + /** + * 用户微信unionid + */ + @ApiModelProperty(value = "用户微信unionid") + @Excel(name = "用户微信unionid") + private String unionid; + + /** + * 用户微信openid + */ + @ApiModelProperty(value = "用户微信openid") + @Excel(name = "用户微信openid") + private String openid; + + /** + * 手机号码 + */ + @Length(max = 11, message = "手机号码不能超过11位", groups = {Insert.class, Update.class}) + @NotBlank(message = "手机号码不能为空", groups = {Update.class}) + @ApiModelProperty(value = "手机号码") + @Excel(name = "手机号码") + private String phone; + + /** + * 居住地址 + */ + @Length(max = 100, message = "居住地址不能超过100位", groups = {Insert.class, Update.class}) + @ApiModelProperty(value = "居住地址") + @Excel(name = "居住地址") + private String address; + + /** + * 紧急联系人名称 + */ + @ApiModelProperty(value = "紧急联系人名称") + @Excel(name = "紧急联系人名称") + private String urgentContactName; + + /** + * 紧急联系人电话 + */ + @ApiModelProperty(value = "紧急联系人电话") + @Excel(name = "紧急联系人电话") + private String urgentContactPhone; + + /** + * 居住小区名称 + */ + @Length(max = 100, message = "居住小区名称不能超过100位", groups = {Insert.class, Update.class}) + @ApiModelProperty(value = "居住小区名称") + @Excel(name = "居住小区名称") + private String communityAliasName; + + /** + * 住址经度 + */ + @ApiModelProperty(value = "住址经度") + @Excel(name = "住址经度") + private String homeLongitude; + + /** + * 住址纬度 + */ + @ApiModelProperty(value = "住址纬度") + @Excel(name = "住址纬度") + private String homeLatitude; + + /** + * 个人头像地址 + */ + @ApiModelProperty(value = "个人头像地址") + @Excel(name = "个人头像地址") + private String headPictureUrl; + + /** + * 登录密码 + */ + @Length(min = 6, max = 10, message = "密码不能超过10位", groups = {Insert.class}) + @NotBlank(message = "密码", groups = {Insert.class, Update.class}) + @ApiModelProperty(value = "登录密码") + @Excel(name = "登录密码") + private String password; + + /** + * 会员积分 + */ + @ApiModelProperty(value = "会员积分") + @Excel(name = "会员积分") + private Integer integral; + + /** + * 登录标识 + */ + @ApiModelProperty(value = "完善标识") + @Excel(name = "完善标识") + private Integer loginFlag; + + /** + * 主账号标识,0:主账号,1:子账号 + */ + private Integer primaryAccountFlag; + + /** + * 所选服务id,多个用逗号隔开 + */ + private String serviceIds; + + /** + * 所在位置名称 + */ + private String locationName; + + /** + * 会员完善信息来源 + */ + private String source; + + /** + * 邀请好友完善信息方式-邀请人id + */ + private Long invitationPatientId; + + /** + * 累计签到次数 + */ + private Integer totalSignInDays; + + /** + * 性别 + */ + private String sex; + + /** + * 出生日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate birthDate; + + /** + * 逻辑删除标识,0:否,1:是 + */ + private Integer delFlag; + + /** + * 小程序个人微信二维码图片存放地址 + */ + private String personalWechatCodeUrl; + + /** + * 失能情况,NOT_DISABLED:未失能,DISABLED:已失能 + */ + private String disablingCondition; + + /** + * 失能原因 + */ + private String disablingReason; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("communityCode", getCommunityCode()) + .append("areaCode", getAreaCode()) + .append("patientCode", getPatientCode()) + .append("patientName", getPatientName()) + .append("cardNo", getCardNo()) + .append("userId", getUserId()) + .append("unionid", getUnionid()) + .append("openid", getOpenid()) + .append("phone", getPhone()) + .append("address", getAddress()) + .append("urgentContactName", getUrgentContactName()) + .append("urgentContactPhone", getUrgentContactPhone()) + .append("homeLongitude", getHomeLongitude()) + .append("homeLatitude", getHomeLatitude()) + .append("headPictureUrl", getHeadPictureUrl()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("password", getPassword()) + .append("integral", getIntegral()) + .append("loginFlag", getLoginFlag()) + .append("primaryAccountFlag", getPrimaryAccountFlag()) + .append("delFlag", getDelFlag()) + .toString(); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nurseclassifyinfo/NurseClassifyInfoDTO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nurseclassifyinfo/NurseClassifyInfoDTO.java new file mode 100644 index 0000000..3a81298 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nurseclassifyinfo/NurseClassifyInfoDTO.java @@ -0,0 +1,23 @@ +package com.xinelu.manage.dto.nurseclassifyinfo; + +import com.xinelu.manage.domain.nurseclassifyinfo.NurseClassifyInfo; +import lombok.Data; + +import javax.validation.Valid; +import java.io.Serializable; +import java.util.List; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/2/8 13:43 + */ +@Data +public class NurseClassifyInfoDTO implements Serializable { + private static final long serialVersionUID = -8135087444417985080L; + /** + * 护理类型信息对象集合 + **/ + @Valid + private List nurseClassifyInfoList; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/dto/nursestation/NurseStationDTO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestation/NurseStationDTO.java similarity index 91% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/dto/nursestation/NurseStationDTO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestation/NurseStationDTO.java index 4d49bae..2a6e335 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/dto/nursestation/NurseStationDTO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestation/NurseStationDTO.java @@ -1,7 +1,7 @@ -package com.xinelu.manage.domain.dto.nursestation; +package com.xinelu.manage.dto.nursestation; import com.xinelu.manage.domain.nursestation.NurseStation; -import com.xinelu.manage.domain.vo.nursestation.NurseStationLabelVO; +import com.xinelu.manage.vo.nursestation.NurseStationLabelVO; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/dto/nursestation/NurseStationImportDTO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestation/NurseStationImportDTO.java similarity index 97% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/dto/nursestation/NurseStationImportDTO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestation/NurseStationImportDTO.java index 5051986..50e5bc0 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/dto/nursestation/NurseStationImportDTO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestation/NurseStationImportDTO.java @@ -1,4 +1,4 @@ -package com.xinelu.manage.domain.dto.nursestation; +package com.xinelu.manage.dto.nursestation; import com.xinelu.common.annotation.Excel; import com.xinelu.common.core.domain.BaseDomain; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nurseclassifyinfo/NurseClassifyInfoMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nurseclassifyinfo/NurseClassifyInfoMapper.java new file mode 100644 index 0000000..f140314 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nurseclassifyinfo/NurseClassifyInfoMapper.java @@ -0,0 +1,105 @@ +package com.xinelu.manage.mapper.nurseclassifyinfo; + + +import com.xinelu.manage.domain.nurseclassifyinfo.NurseClassifyInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 护理机构和护理项目分类信息Mapper接口 + * + * @author xinyilu + * @date 2023-02-08 + */ +public interface NurseClassifyInfoMapper { + /** + * 查询护理项目分类信息 + * + * @param id 护理机构和护理项目分类信息主键 + * @return 护理机构和护理项目分类信息 + */ + NurseClassifyInfo selectNurseClassifyInfoById(Long id); + + /** + * 查询护理项目分类信息列表 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息 + * @return 护理机构和护理项目分类信息集合 + */ + List selectNurseClassifyInfoList(NurseClassifyInfo nurseClassifyInfo); + + /** + * 新增护理项目分类信息 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息 + * @return 结果 + */ + int insertNurseClassifyInfo(NurseClassifyInfo nurseClassifyInfo); + + /** + * 修改护理项目分类信息 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息 + * @return 结果 + */ + int updateNurseClassifyInfo(NurseClassifyInfo nurseClassifyInfo); + + /** + * 删除护理项目分类信息 + * + * @param id 护理机构和护理项目分类信息主键 + * @return 结果 + */ + int deleteNurseClassifyInfoById(Long id); + + /** + * 批量删除护理项目分类信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteNurseClassifyInfoByIds(Long[] ids); + + /** + * 批量新增护理项目分类信息 + * + * @param nurseClassifyInfoList 护理项目分类信息集合 + * @return int + **/ + int insertNurseClassifyInfoList(List nurseClassifyInfoList); + + /** + * 批量新增护理机构分类信息 + * + * @param nurseClassifyInfoList 护理项目分类信息集合 + * @return int + **/ + int insertNurseStationClassifyList(List nurseClassifyInfoList); + + /** + * 根据护理机构分类名称查询名称重复数量 + * + * @param classifyName 护理机构分类名称 + * @param classifyType 护理机构分类类型 + * @return 结果 + */ + int selectNurseStationClassNameCount(@Param("classifyName") String classifyName, @Param("classifyType") String classifyType); + + /** + * 根据ids查询护理机构信息 + * + * @param ids 护理机构id数组 + * @return List + */ + List selectNurseStationClassByIds(Long[] ids); + + /** + * 根据护理机构分类名称查询名称重复数量 + * + * @param classifyNameList 名称集合 + * @param classifyType 类型 + * @return int + */ + List selectNurseStationClassNameByList(@Param("list") List classifyNameList, @Param("classifyType") String classifyType); +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestation/NurseStationMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestation/NurseStationMapper.java index 8c997e7..6931220 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestation/NurseStationMapper.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestation/NurseStationMapper.java @@ -1,15 +1,15 @@ package com.xinelu.manage.mapper.nursestation; -import com.xinelu.manage.domain.dto.nursestation.NurseStationImportDTO; import com.xinelu.manage.domain.nursestation.NurseStation; import com.xinelu.manage.domain.nursestationitem.NurseStationItem; import com.xinelu.manage.domain.nursestationlabel.NurseStationLabel; import com.xinelu.manage.domain.nursetype.NurseType; -import com.xinelu.manage.domain.vo.nursestation.NurseStationAndAreaVO; -import com.xinelu.manage.domain.vo.nursestation.NurseStationByUserVO; -import com.xinelu.manage.domain.vo.nursestation.NurseStationSysUserVO; -import com.xinelu.manage.domain.vo.nursestation.NurseStationVO; +import com.xinelu.manage.dto.nursestation.NurseStationImportDTO; +import com.xinelu.manage.vo.nursestation.NurseStationAndAreaVO; +import com.xinelu.manage.vo.nursestation.NurseStationByUserVO; +import com.xinelu.manage.vo.nursestation.NurseStationSysUserVO; +import com.xinelu.manage.vo.nursestation.NurseStationVO; import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationlabel/NurseStationLabelMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationlabel/NurseStationLabelMapper.java index a7cd323..090c002 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationlabel/NurseStationLabelMapper.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationlabel/NurseStationLabelMapper.java @@ -1,7 +1,7 @@ package com.xinelu.manage.mapper.nursestationlabel; import com.xinelu.manage.domain.nursestationlabel.NurseStationLabel; -import com.xinelu.manage.domain.vo.nursestation.NurseStationLabelVO; +import com.xinelu.manage.vo.nursestation.NurseStationLabelVO; import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/patientinfo/PatientInfoMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/patientinfo/PatientInfoMapper.java new file mode 100644 index 0000000..b0156d7 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/patientinfo/PatientInfoMapper.java @@ -0,0 +1,136 @@ +package com.xinelu.manage.mapper.patientinfo; + + +import com.xinelu.manage.domain.patientinfo.PatientInfo; +import com.xinelu.manage.vo.patientinfo.PatientInfoVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 被护理人基本信息Mapper接口 + * + * @author xinyilu + * @date 2022-09-02 + */ +public interface PatientInfoMapper { + + /** + * 查询被护理人基本信息 + * + * @param patientId 被护理人基本信息主键 + * @return 被护理人基本信息 + */ + PatientInfo selectPatientInfoByPatientId(Long patientId); + + /** + * 查询被护理人基本信息 + * + * @param id 被护理人基本信息主键 + * @return 被护理人基本信息 + */ + PatientInfoVO selectPatientInfoById(Long id); + + /** + * 查询被护理人基本信息列表 + * + * @param patientInfo 被护理人基本信息 + * @return 被护理人基本信息集合 + */ + List selectPatientInfoList(PatientInfoVO patientInfo); + + /** + * 新增被护理人基本信息 + * + * @param patientInfo 被护理人基本信息 + * @return 结果 + */ + int insertPatientInfo(PatientInfo patientInfo); + + /** + * 修改被护理人基本信息 + * + * @param patientInfo 被护理人基本信息 + * @return 结果 + */ + int updatePatientInfo(PatientInfo patientInfo); + + /** + * 批量删除被护理人基本信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deletePatientInfoByIds(Long[] ids); + + /** + * 修改被护理人头像图片 + * + * @param openid 用户编号 + * @param headPictureUrl 个人头像地址 + * @return int + **/ + int updateHeadPatientHead(@Param("openid") String openid, @Param("headPictureUrl") String headPictureUrl); + + /** + * 修改被护理人头像图片App + * + * @param id 用户ID + * @param headPictureUrl 个人头像地址 + * @return int + **/ + int updateHeadPatientHeadPortrait(@Param("id") Long id, @Param("headPictureUrl") String headPictureUrl); + + /** + * 根据id查询所有信息App + * + * @param id 用户id + * @return PatientInfo 结果 + **/ + PatientInfoVO getPatientInfoById(Long id); + + /** + * 新增被护理人基本信息 + * + * @param patientInfo 被护理人基本信息 + * @return 结果 + */ + int insertAppletLoginPatientInfo(PatientInfo patientInfo); + + /** + * 增加会员积分数量 + * + * @param id 主键会员id + * @param integral 积分数量 + * @return 影响数量 + */ + int addPatientIntegralCount(@Param("id") Long id, @Param("integral") Integer integral); + + /** + * 减少会员积分数量 + * + * @param id 主键会员id + * @param integral 积分数量 + * @return 影响数量 + */ + int reducePatientIntegralCount(@Param("id") Long id, @Param("integral") Integer integral); + + /** + * 更新会员失能情况 + * + * @param id 会员id + * @param disablingCondition 失能情况,NOT_DISABLED:未失能,DISABLED:已失能 + * @param disablingReason 失能原因 + * @return int + **/ + int updatePatientDisabling(@Param("id") Long id, @Param("disablingCondition") String disablingCondition, @Param("disablingReason") String disablingReason); + + /** + * 修改邀请人二维码地址信息 + * + * @param id 主键id + * @param personalWeChatCodeUrl 邀请人二维码地址 + * @return 数量 + */ + int updatePersonalWeChatCodeUrl(@Param("id") Long id, @Param("personalWeChatCodeUrl") String personalWeChatCodeUrl); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/sysarea/SysAreaMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/sysarea/SysAreaMapper.java index 0e744a2..81a7315 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/sysarea/SysAreaMapper.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/sysarea/SysAreaMapper.java @@ -1,9 +1,9 @@ package com.xinelu.manage.mapper.sysarea; import com.xinelu.manage.domain.sysarea.SysArea; -import com.xinelu.manage.domain.vo.sysarea.AreaInfoVO; -import com.xinelu.manage.domain.vo.sysarea.ParentAreaVO; -import com.xinelu.manage.domain.vo.sysarea.SysAreaVO; +import com.xinelu.manage.vo.sysarea.AreaInfoVO; +import com.xinelu.manage.vo.sysarea.ParentAreaVO; +import com.xinelu.manage.vo.sysarea.SysAreaVO; import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nurseclassifyinfo/INurseClassifyInfoService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nurseclassifyinfo/INurseClassifyInfoService.java new file mode 100644 index 0000000..bf40345 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nurseclassifyinfo/INurseClassifyInfoService.java @@ -0,0 +1,102 @@ +package com.xinelu.manage.service.nurseclassifyinfo; + +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.manage.domain.nurseclassifyinfo.NurseClassifyInfo; + +import java.util.List; + +/** + * 护理机构和护理项目分类信息Service接口 + * + * @author xinyilu + * @date 2023-02-08 + */ +public interface INurseClassifyInfoService { + /** + * 查询护理项目分类信息 + * + * @param id 护理机构和护理项目分类信息主键 + * @return 护理机构和护理项目分类信息 + */ + NurseClassifyInfo selectNurseClassifyInfoById(Long id); + + /** + * 查询护理项目分类信息列表 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息 + * @return 护理机构和护理项目分类信息集合 + */ + List selectNurseClassifyInfoList(NurseClassifyInfo nurseClassifyInfo); + + /** + * 新增护理项目分类信息 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息 + * @return 结果 + */ + AjaxResult insertNurseClassifyInfo(List nurseClassifyInfo); + + /** + * 修改护理项目分类信息 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息 + * @return 结果 + */ + AjaxResult updateNurseClassifyInfo(NurseClassifyInfo nurseClassifyInfo); + + /** + * 批量删除护理项目分类信息 + * + * @param ids 需要删除的护理机构和护理项目分类信息主键集合 + * @return 结果 + */ + AjaxResult deleteNurseClassifyInfoByIds(Long[] ids); + + /** + * 删除护理项目分类信息信息 + * + * @param id 护理机构和护理项目分类信息主键 + * @return 结果 + */ + int deleteNurseClassifyInfoById(Long id); + + /** + * 查询护理机构分类信息列表 + * + * @param nurseClassifyInfo 护理机构分类信息 + * @return 护理机构分类信息集合 + */ + List selectNurseStationClassifyList(NurseClassifyInfo nurseClassifyInfo); + + /** + * 获取护理机构分类信息详细信息 + * + * @param id 护理机构分类信息主键 + * @return 护理机构分类信息 + */ + NurseClassifyInfo selectNurseStationClassifyById(Long id); + + /** + * 新增护理机构分类信息 + * + * @param nurseClassifyInfoList 护理机构分类信息集合 + * @return 结果 + */ + AjaxResult insertNurseStationClassifyInfo(List nurseClassifyInfoList); + + /** + * 修改护理机构分类信息 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息 + * @return 结果 + */ + AjaxResult updateNurseStationClassifyInfo(NurseClassifyInfo nurseClassifyInfo); + + /** + * 批量删除护理机构分类信息 + * + * @param ids 需要删除的护理机构分类信息主键集合 + * @return AjaxResult + */ + AjaxResult deleteNurseStationClassifyByIds(Long[] ids); +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nurseclassifyinfo/impl/NurseClassifyInfoServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nurseclassifyinfo/impl/NurseClassifyInfoServiceImpl.java new file mode 100644 index 0000000..cd34bdb --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nurseclassifyinfo/impl/NurseClassifyInfoServiceImpl.java @@ -0,0 +1,317 @@ +package com.xinelu.manage.service.nurseclassifyinfo.impl; + + +import com.xinelu.common.config.XinELuConfig; +import com.xinelu.common.constant.Constants; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.enums.NurseClassifyInfoEnum; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; +import com.xinelu.manage.domain.nurseclassifyinfo.NurseClassifyInfo; +import com.xinelu.manage.mapper.nurseclassifyinfo.NurseClassifyInfoMapper; +import com.xinelu.manage.service.nurseclassifyinfo.INurseClassifyInfoService; +import com.xinelu.manage.service.patientinfo.IPatientInfoService; +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; + +import javax.annotation.Resource; +import java.io.File; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 护理机构和护理项目分类信息Service业务层处理 + * + * @author xinelu + * @date 2023-02-08 + */ +@Service +public class NurseClassifyInfoServiceImpl implements INurseClassifyInfoService { + @Resource + private NurseClassifyInfoMapper nurseClassifyInfoMapper; + @Resource + private GenerateSystemCodeUtil generateSystemCodeUtil; + @Resource + private IPatientInfoService patientInfoService; + + /** + * 查询护理项目分类信息 + * + * @param id 护理机构和护理项目分类信息主键 + * @return 护理机构和护理项目分类信息 + */ + @Override + public NurseClassifyInfo selectNurseClassifyInfoById(Long id) { + return nurseClassifyInfoMapper.selectNurseClassifyInfoById(id); + } + + /** + * 查询护理项目分类信息列表 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息 + * @return 护理机构和护理项目分类信息 + */ + @Override + public List selectNurseClassifyInfoList(NurseClassifyInfo nurseClassifyInfo) { + nurseClassifyInfo.setClassifyType(NurseClassifyInfoEnum.NURSE_ITEM.getInfo()); + return nurseClassifyInfoMapper.selectNurseClassifyInfoList(nurseClassifyInfo); + } + + /** + * 新增护理项目分类信息 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult insertNurseClassifyInfo(List nurseClassifyInfo) { + if (CollectionUtils.isEmpty(nurseClassifyInfo)) { + return AjaxResult.error("请添加护理项目分类信息!"); + } + //筛选护理项目分类名称,去重 + List classifyNameList = nurseClassifyInfo.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotBlank(item.getClassifyName())).map(NurseClassifyInfo::getClassifyName).collect(Collectors.toList()); + List distinctClassifyNameList = classifyNameList.stream().distinct().collect(Collectors.toList()); + //集合取差集 + List subtractNameList = new ArrayList<>(CollectionUtils.subtract(classifyNameList, distinctClassifyNameList)); + if (subtractNameList.size() > 0) { + return AjaxResult.error("'" + subtractNameList.get(0) + "'已存在,请修改后重新录入!"); + } + //从数据库去项目分类名称 + List existClassNameList = nurseClassifyInfoMapper.selectNurseStationClassNameByList(distinctClassifyNameList, NurseClassifyInfoEnum.NURSE_ITEM.getInfo()); + //传入护理项目分类集合与数据库护理项目分类名称取交集 + List existRetainAllNameList = new ArrayList<>(CollectionUtils.intersection(distinctClassifyNameList, existClassNameList)); + if (existRetainAllNameList.size() > 0) { + return AjaxResult.error("'" + existRetainAllNameList.get(0) + "'名称重复,请重新输入!"); + } + for (NurseClassifyInfo nurseClassify : nurseClassifyInfo) { + // 设置创建人与创建时间 护理项目分类编码 以及护理项目类型 + nurseClassify.setCreateTime(LocalDateTime.now()); + nurseClassify.setCreateBy(SecurityUtils.getUsername()); + nurseClassify.setClassifyType(NurseClassifyInfoEnum.NURSE_ITEM.getInfo()); + nurseClassify.setClassifyCode(Constants.CLASSIFY_ITEM + generateSystemCodeUtil.generateSystemCode(Constants.CLASSIFY_ITEM)); + } + int insertCount = nurseClassifyInfoMapper.insertNurseClassifyInfoList(nurseClassifyInfo); + if (insertCount <= 0) { + throw new ServiceException("新增护理项目分类信息失败,请联系管理员!"); + } + return AjaxResult.success(); + } + + /** + * 修改护理项目分类信息 + * + * @param nurseClassifyInfo 护理机构和护理项目分类信息/classifyItem/info/list + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult updateNurseClassifyInfo(NurseClassifyInfo nurseClassifyInfo) { + NurseClassifyInfo nurseClassifyInfoById = nurseClassifyInfoMapper.selectNurseClassifyInfoById(nurseClassifyInfo.getId()); + if (Objects.isNull(nurseClassifyInfoById)) { + return AjaxResult.error("当前护理项目分类信息不存在,无法修改,请联系管理员!"); + } + if (StringUtils.isNotBlank(nurseClassifyInfoById.getClassifyName()) && !nurseClassifyInfo.getClassifyName().equals(nurseClassifyInfoById.getClassifyName())) { + //查询是否有相同名字的护理项目分类 + int classifyInfoByCount = nurseClassifyInfoMapper.selectNurseStationClassNameCount(nurseClassifyInfo.getClassifyName(), NurseClassifyInfoEnum.NURSE_ITEM.getInfo()); + if (classifyInfoByCount > 0) { + return AjaxResult.error("'" + nurseClassifyInfo.getClassifyName() + "'名称重复,请重新输入!"); + } + } + // 设置更新人与更新时间 + nurseClassifyInfo.setUpdateTime(LocalDateTime.now()); + nurseClassifyInfo.setUpdateBy(SecurityUtils.getUsername()); + int updateNurseClassifyInfo = nurseClassifyInfoMapper.updateNurseClassifyInfo(nurseClassifyInfo); + if (updateNurseClassifyInfo <= 0) { + throw new ServiceException("修改护理项目分类信息失败,请联系管理员!"); + } + //删除原有上传的分类图片 + if (StringUtils.isNotBlank(nurseClassifyInfo.getClassifyPictureUrl()) && StringUtils.isNotBlank(nurseClassifyInfoById.getClassifyPictureUrl()) + && !nurseClassifyInfo.getClassifyPictureUrl().equals(nurseClassifyInfoById.getClassifyPictureUrl())) { + this.deletePictureUrl(nurseClassifyInfoById.getClassifyPictureUrl()); + } + return AjaxResult.success(); + } + + /** + * 批量删除护理项目分类信息 + * + * @param ids 需要删除的护理机构和护理项目分类信息主键 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult deleteNurseClassifyInfoByIds(Long[] ids) { + List nurseClassifyList = nurseClassifyInfoMapper.selectNurseStationClassByIds(ids); + int count = nurseClassifyInfoMapper.deleteNurseClassifyInfoByIds(ids); + if (count < 0) { + throw new ServiceException("删除护理分类失败,请联系管理员!"); + } + List selectPictureUrl = nurseClassifyList.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotBlank(item.getClassifyPictureUrl())).map(NurseClassifyInfo::getClassifyPictureUrl).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(selectPictureUrl)) { + patientInfoService.updatePicture(selectPictureUrl); + } + return AjaxResult.success(); + } + + /** + * 删除护理项目分类信息信息 + * + * @param id 护理机构和护理项目分类信息主键 + * @return 结果 + */ + @Override + public int deleteNurseClassifyInfoById(Long id) { + return nurseClassifyInfoMapper.deleteNurseClassifyInfoById(id); + } + + + /** + * 删除护理项目分类信息图片地址 + * + * @param pictureUrl 护理项目分类信息图片地址 + **/ + private 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("图片地址删除失败!"); + } + } + } + + /** + * 查询护理机构分类信息列表 + * + * @param nurseClassifyInfo 护理机构分类信息 + * @return 护理机构分类信息 + */ + @Override + public List selectNurseStationClassifyList(NurseClassifyInfo nurseClassifyInfo) { + nurseClassifyInfo.setClassifyType(NurseClassifyInfoEnum.NURSE_AGENCY.getInfo()); + return nurseClassifyInfoMapper.selectNurseClassifyInfoList(nurseClassifyInfo); + } + + /** + * 获取护理机构分类信息详细信息 + * + * @param id 护理机构分类信息主键 + * @return 护理机构分类信息 + */ + @Override + public NurseClassifyInfo selectNurseStationClassifyById(Long id) { + return nurseClassifyInfoMapper.selectNurseClassifyInfoById(id); + } + + /** + * 新增护理机构分类信息 + * + * @param nurseClassifyInfoList 护理机构分类信息集合 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult insertNurseStationClassifyInfo(List nurseClassifyInfoList) { + if (CollectionUtils.isEmpty(nurseClassifyInfoList)) { + return AjaxResult.error("请添加护理机构分类!"); + } + //筛选传入名称 去重 + List classifyNameList = nurseClassifyInfoList.stream().filter(Objects::nonNull).map(NurseClassifyInfo::getClassifyName).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(classifyNameList)) { + return AjaxResult.success(); + } + List distinctClassifyNameList = classifyNameList.stream().distinct().collect(Collectors.toList()); + //集合取差集 + List subtractNameList = new ArrayList<>(CollectionUtils.subtract(classifyNameList, distinctClassifyNameList)); + if (subtractNameList.size() > 0) { + return AjaxResult.error("'" + subtractNameList.get(0) + "'重复,请修改后重新录入!"); + } + //根据传入资讯名称查询数据库名称集合 + List existNameList = nurseClassifyInfoMapper.selectNurseStationClassNameByList(distinctClassifyNameList, NurseClassifyInfoEnum.NURSE_AGENCY.getInfo()); + //集合取交集 + List existRetainAllNameList = new ArrayList<>(CollectionUtils.intersection(existNameList, distinctClassifyNameList)); + if (existRetainAllNameList.size() > 0) { + return AjaxResult.error("'" + existRetainAllNameList.get(0) + "'名称重复,请重新输入!"); + } + for (NurseClassifyInfo nurseClassifyInfo : nurseClassifyInfoList) { + // 设置创建人与创建时间 + nurseClassifyInfo.setCreateTime(LocalDateTime.now()); + nurseClassifyInfo.setCreateBy(SecurityUtils.getUsername()); + //增加护理机构类型 + nurseClassifyInfo.setClassifyType(NurseClassifyInfoEnum.NURSE_AGENCY.getInfo()); + //编号生成 + nurseClassifyInfo.setClassifyCode(Constants.NURSE_AGENCY + generateSystemCodeUtil.generateSystemCode(Constants.NURSE_AGENCY)); + } + //批量新增 + int count = nurseClassifyInfoMapper.insertNurseStationClassifyList(nurseClassifyInfoList); + if (count < 0) { + throw new ServiceException("增加护理机构分类失败,请联系管理员!"); + } + return AjaxResult.success(); + } + + /** + * 修改护理机构分类信息 + * + * @param nurseClassifyInfo 护理机构分类信息 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult updateNurseStationClassifyInfo(NurseClassifyInfo nurseClassifyInfo) { + NurseClassifyInfo selectNurseStationClassify = nurseClassifyInfoMapper.selectNurseClassifyInfoById(nurseClassifyInfo.getId()); + if (Objects.isNull(selectNurseStationClassify)) { + return AjaxResult.error("当前护理机构分类信息不存在,无法修改,请联系管理员!"); + } + if (StringUtils.isNotBlank(selectNurseStationClassify.getClassifyName()) && + !nurseClassifyInfo.getClassifyName().equals(selectNurseStationClassify.getClassifyName())) { + int nameCount = nurseClassifyInfoMapper.selectNurseStationClassNameCount(nurseClassifyInfo.getClassifyName(), NurseClassifyInfoEnum.NURSE_AGENCY.getInfo()); + if (nameCount > 0) { + return AjaxResult.error("'" + nurseClassifyInfo.getClassifyName() + "'名称重复,请重新输入!"); + } + } + // 设置更新人与更新时间 + nurseClassifyInfo.setUpdateTime(LocalDateTime.now()); + nurseClassifyInfo.setUpdateBy(SecurityUtils.getUsername()); + nurseClassifyInfoMapper.updateNurseClassifyInfo(nurseClassifyInfo); + //删除原有上传的分类图片 + if (StringUtils.isNotBlank(nurseClassifyInfo.getClassifyPictureUrl()) && StringUtils.isNotBlank(selectNurseStationClassify.getClassifyPictureUrl()) + && !nurseClassifyInfo.getClassifyPictureUrl().equals(selectNurseStationClassify.getClassifyPictureUrl())) { + deletePictureUrl(selectNurseStationClassify.getClassifyPictureUrl()); + } + return AjaxResult.success(); + } + + /** + * 删除护理机构分类信息 + * + * @param ids 需要删除的护理机构分类信息主键集合 + * @return AjaxResult + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult deleteNurseStationClassifyByIds(Long[] ids) { + List nurseClassifyList = nurseClassifyInfoMapper.selectNurseStationClassByIds(ids); + int count = nurseClassifyInfoMapper.deleteNurseClassifyInfoByIds(ids); + if (count < 0) { + throw new ServiceException("删除护理机构分类失败,请联系管理员!"); + } + List selectPicture = nurseClassifyList.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotBlank(item.getClassifyPictureUrl())).map(NurseClassifyInfo::getClassifyPictureUrl).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(selectPicture)) { + patientInfoService.updatePicture(selectPicture); + } + return AjaxResult.success(); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestation/INurseStationService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestation/INurseStationService.java index c334558..58c80c7 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestation/INurseStationService.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestation/INurseStationService.java @@ -1,15 +1,15 @@ package com.xinelu.manage.service.nursestation; -import com.xinelu.manage.domain.dto.nursestation.NurseStationDTO; -import com.xinelu.manage.domain.dto.nursestation.NurseStationImportDTO; +import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.manage.domain.nursestation.NurseStation; import com.xinelu.manage.domain.nursestationitem.NurseStationItem; -import com.xinelu.manage.domain.vo.nursestation.NurseStationAndAreaVO; -import com.xinelu.manage.domain.vo.nursestation.NurseStationByUserVO; -import com.xinelu.manage.domain.vo.nursestation.NurseStationSysUserVO; -import com.xinelu.manage.domain.vo.nursestation.NurseStationVO; -import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.manage.dto.nursestation.NurseStationDTO; +import com.xinelu.manage.dto.nursestation.NurseStationImportDTO; +import com.xinelu.manage.vo.nursestation.NurseStationAndAreaVO; +import com.xinelu.manage.vo.nursestation.NurseStationByUserVO; +import com.xinelu.manage.vo.nursestation.NurseStationSysUserVO; +import com.xinelu.manage.vo.nursestation.NurseStationVO; import org.springframework.web.multipart.MultipartFile; import java.util.List; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestation/impl/NurseStationServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestation/impl/NurseStationServiceImpl.java index b44287d..6d7c473 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestation/impl/NurseStationServiceImpl.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestation/impl/NurseStationServiceImpl.java @@ -1,19 +1,5 @@ package com.xinelu.manage.service.nursestation.impl; -import com.xinelu.manage.domain.dto.nursestation.NurseStationDTO; -import com.xinelu.manage.domain.dto.nursestation.NurseStationImportDTO; -import com.xinelu.manage.domain.nurseclassifyinfo.NurseClassifyInfo; -import com.xinelu.manage.domain.nursestation.NurseStation; -import com.xinelu.manage.domain.nursestationclassifyrelation.NurseStationClassifyRelation; -import com.xinelu.manage.domain.nursestationitem.NurseStationItem; -import com.xinelu.manage.domain.nursetype.NurseType; -import com.xinelu.manage.domain.vo.nursestation.*; -import com.xinelu.manage.domain.vo.sysarea.SysAreaVO; -import com.xinelu.manage.mapper.nursestation.NurseStationMapper; -import com.xinelu.manage.mapper.nursestationclassifyrelation.NurseStationClassifyRelationMapper; -import com.xinelu.manage.mapper.nursestationlabel.NurseStationLabelMapper; -import com.xinelu.manage.mapper.sysarea.SysAreaMapper; -import com.xinelu.manage.service.nursestation.INurseStationService; import com.xinelu.common.config.AppletPageConfig; import com.xinelu.common.config.XinELuConfig; import com.xinelu.common.constant.Constants; @@ -27,6 +13,20 @@ import com.xinelu.common.utils.file.FileUploadUtils; import com.xinelu.common.utils.file.FileUtils; import com.xinelu.common.utils.file.MimeTypeUtils; import com.xinelu.common.utils.regex.RegexUtil; +import com.xinelu.manage.domain.nurseclassifyinfo.NurseClassifyInfo; +import com.xinelu.manage.domain.nursestation.NurseStation; +import com.xinelu.manage.domain.nursestationclassifyrelation.NurseStationClassifyRelation; +import com.xinelu.manage.domain.nursestationitem.NurseStationItem; +import com.xinelu.manage.domain.nursetype.NurseType; +import com.xinelu.manage.dto.nursestation.NurseStationDTO; +import com.xinelu.manage.dto.nursestation.NurseStationImportDTO; +import com.xinelu.manage.mapper.nursestation.NurseStationMapper; +import com.xinelu.manage.mapper.nursestationclassifyrelation.NurseStationClassifyRelationMapper; +import com.xinelu.manage.mapper.nursestationlabel.NurseStationLabelMapper; +import com.xinelu.manage.mapper.sysarea.SysAreaMapper; +import com.xinelu.manage.service.nursestation.INurseStationService; +import com.xinelu.manage.vo.nursestation.*; +import com.xinelu.manage.vo.sysarea.SysAreaVO; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/patientinfo/IPatientInfoService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/patientinfo/IPatientInfoService.java new file mode 100644 index 0000000..40f9bdb --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/patientinfo/IPatientInfoService.java @@ -0,0 +1,83 @@ +package com.xinelu.manage.service.patientinfo; + + +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.manage.domain.patientinfo.PatientInfo; +import com.xinelu.manage.vo.patientinfo.PatientInfoVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 被护理人基本信息Service接口 + * + * @author xinyilu + * @date 2022-09-02 + */ +public interface IPatientInfoService { + /** + * 查询被护理人基本信息 + * + * @param id 被护理人基本信息主键 + * @return 被护理人基本信息 + */ + PatientInfoVO selectPatientInfoById(Long id); + + /** + * 查询被护理人基本信息列表 + * + * @param patientInfo 被护理人基本信息 + * @return 被护理人基本信息集合 + */ + List selectPatientInfoList(PatientInfoVO patientInfo); + + /** + * 新增被护理人基本信息 + * + * @param patientInfo 被护理人基本信息 + * @return 结果 + */ + int insertPatientInfo(PatientInfo patientInfo); + + /** + * 修改被护理人基本信息 + * + * @param patientInfo 被护理人基本信息 + * @return 结果 + */ + AjaxResult updatePatientInfo(PatientInfo patientInfo); + + /** + * 批量删除被护理人基本信息 + * + * @param ids 需要删除的被护理人基本信息主键集合 + * @return 结果 + */ + int deletePatientInfoByIds(Long[] ids); + + /** + * 修改被护理人头像图片 + * + * @param openid 用户编号 + * @param headPictureUrl 个人头像地址 + * @return boolean + **/ + boolean updateHeadPatientHead(@Param("openid") String openid, @Param("headPictureUrl") String headPictureUrl); + + /** + * 删除旧图片 + * + * @param pictureUrlList 路径 + * @return 结果 + */ + AjaxResult updatePicture(List pictureUrlList); + + /** + * PC端重置密码 + * + * @param id 会员id + * @param password 密码 + * @return AjaxResult + */ + AjaxResult updatePasswordById(@Param("id") Long id, @Param("password") String password); +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java new file mode 100644 index 0000000..dd57d76 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java @@ -0,0 +1,219 @@ +package com.xinelu.manage.service.patientinfo.impl; + + +import com.xinelu.common.config.XinELuConfig; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.AgeUtil; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.StringUtils; +import com.xinelu.common.utils.regex.RegexUtil; +import com.xinelu.common.utils.sign.Md5Utils; +import com.xinelu.manage.domain.patientinfo.PatientInfo; +import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; +import com.xinelu.manage.mapper.sysarea.SysAreaMapper; +import com.xinelu.manage.service.patientinfo.IPatientInfoService; +import com.xinelu.manage.vo.patientinfo.PatientInfoVO; +import com.xinelu.manage.vo.sysarea.SysAreaVO; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang3.BooleanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.io.File; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 被护理人基本信息Service业务层处理 + * + * @author xinelu + * @date 2022-09-02 + */ +@Service +public class PatientInfoServiceImpl implements IPatientInfoService { + @Resource + private PatientInfoMapper patientInfoMapper; + @Resource + private RegexUtil regexUtil; + @Resource + private SysAreaMapper sysAreaMapper; + + /** + * 查询被护理人基本信息 + * + * @param id 被护理人基本信息主键 + * @return 被护理人基本信息 + */ + @Override + public PatientInfoVO selectPatientInfoById(Long id) { + //根据Id获取会员信息 + PatientInfoVO patientInfoById = patientInfoMapper.getPatientInfoById(id); + if (Objects.isNull(patientInfoById)) { + throw new ServiceException("当前用户信息不存在,无法进行修改!"); + } + //判断当前用户信息是否已经完善,只有完善的才可以修改用户信息 + if (Objects.isNull(patientInfoById.getLoginFlag())) { + throw new ServiceException("当前用户信息未完善,无法进行修改!"); + } + if (Objects.nonNull(patientInfoById.getBirthDate())) { + patientInfoById.setAge(AgeUtil.getAgeMonth(String.valueOf(patientInfoById.getBirthDate()))); + } + //根据区域编号查询上级区域信息 + SysAreaVO superiorRegions = sysAreaMapper.getSubordinateRegionsFindSuperiorRegions(StringUtils.isBlank(patientInfoById.getAreaCode()) ? "" : patientInfoById.getAreaCode()); + ArrayList sysArea = new ArrayList<>(); + sysArea.add(superiorRegions); + patientInfoById.setSysAreaVOList(sysArea); + return patientInfoById; + } + + /** + * 查询被护理人基本信息列表 + * + * @param patientInfo 被护理人基本信息 + * @return 被护理人基本信息 + */ + @Override + public List selectPatientInfoList(PatientInfoVO patientInfo) { + List patientInfoVO = patientInfoMapper.selectPatientInfoList(patientInfo); + List areaCodeList = patientInfoVO + .stream().filter(Objects::nonNull) + .map(PatientInfoVO::getAreaCode) + .filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList()); + if (CollectionUtils.isEmpty(areaCodeList)) { + return patientInfoVO; + } + // 获取本护理站的区域信息 + List nurseStationAreaByList = sysAreaMapper.getNurseStationAreaByList(areaCodeList); + if (CollectionUtils.isEmpty(nurseStationAreaByList)) { + return patientInfoVO; + } + //以护理站id进行分组将标签配置信息转为Map集合 + Map> nurseStationAreaMap = nurseStationAreaByList.stream() + .filter(Objects::nonNull) + .filter(item -> Objects.nonNull(item.getStreetCode())) + .collect(Collectors.groupingBy(SysAreaVO::getStreetCode)); + patientInfoVO.forEach(item -> + item.setSysAreaVOList(nurseStationAreaMap.getOrDefault(Objects.isNull(item.getAreaCode()) ? 0L : item.getAreaCode(), Lists.newArrayList()))); + return patientInfoVO; + } + + /** + * 新增被护理人基本信息 + * + * @param patientInfo 被护理人基本信息 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public int insertPatientInfo(PatientInfo patientInfo) { + patientInfo.setCreateBy(SecurityUtils.getUsername()); + patientInfo.setCreateTime(LocalDateTime.now()); + return patientInfoMapper.insertPatientInfo(patientInfo); + } + + /** + * 修改被护理人基本信息 + * + * @param patientInfo 被护理人基本信息 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult updatePatientInfo(PatientInfo patientInfo) { + boolean regexPhone = regexUtil.regexPhone(patientInfo.getPhone()); + if (BooleanUtils.isFalse(regexPhone)) { + return AjaxResult.error("手机号格式不正确!"); + } + boolean regexCardNo = regexUtil.regexCardNo(patientInfo.getCardNo()); + if (BooleanUtils.isFalse(regexCardNo)) { + return AjaxResult.error("身份证号格式不正确!"); + } + //调用md5加密方法 + String changePassword = Md5Utils.hash(patientInfo.getPassword()); + patientInfo.setPassword(changePassword); + patientInfo.setUpdateTime(LocalDateTime.now()); + patientInfo.setUpdateBy(SecurityUtils.getUsername()); + int updatePatientInfo = patientInfoMapper.updatePatientInfo(patientInfo); + if (updatePatientInfo <= 0) { + throw new ServiceException("修改被护理人信息失败,请联系管理员!"); + } + return AjaxResult.success(); + } + + /** + * 批量删除被护理人基本信息 + * + * @param ids 需要删除的被护理人基本信息主键 + * @return 结果 + */ + @Override + public int deletePatientInfoByIds(Long[] ids) { + return patientInfoMapper.deletePatientInfoByIds(ids); + } + + /** + * 修改被护理人头像图片用于AppletLoginServiceImpl + * + * @param openid 用户编号 + * @param headPictureUrl 个人头像地址 + * @return boolean 结果 + **/ + @Override + public boolean updateHeadPatientHead(String openid, String headPictureUrl) { + return patientInfoMapper.updateHeadPatientHead(openid, headPictureUrl) > 0; + } + + /** + * 删除旧图片 + * + * @param pictureUrlList 路径 + * @return 结果 + */ + @Override + public AjaxResult updatePicture(List pictureUrlList) { + if (CollectionUtils.isEmpty(pictureUrlList)) { + return AjaxResult.success(); + } + for (String pictureUrl : pictureUrlList) { + if (StringUtils.isBlank(pictureUrl)) { + continue; + } + 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("图片文件删除失败!"); + } + } + } + return AjaxResult.success(); + } + + /** + * PC端重置密码 + * + * @param id 会员id + * @param password 密码 + * @return AjaxResult + */ + @Override + public AjaxResult updatePasswordById(Long id, String password) { + PatientInfo patientInfo = new PatientInfo(); + patientInfo.setId(id); + patientInfo.setPassword(Md5Utils.hash(password)); + int update = patientInfoMapper.updatePatientInfo(patientInfo); + if (update <= 0) { + throw new ServiceException("重置密码失败,请联系管理员!"); + } + return AjaxResult.success(); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationAndAreaVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationAndAreaVO.java similarity index 93% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationAndAreaVO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationAndAreaVO.java index 6dff826..77fc301 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationAndAreaVO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationAndAreaVO.java @@ -1,9 +1,9 @@ -package com.xinelu.manage.domain.vo.nursestation; +package com.xinelu.manage.vo.nursestation; import com.xinelu.manage.domain.nurseclassifyinfo.NurseClassifyInfo; import com.xinelu.manage.domain.nursestation.NurseStation; -import com.xinelu.manage.domain.vo.sysarea.SysAreaVO; +import com.xinelu.manage.vo.sysarea.SysAreaVO; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationByUserVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationByUserVO.java similarity index 85% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationByUserVO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationByUserVO.java index c3b2cad..fb953db 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationByUserVO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationByUserVO.java @@ -1,7 +1,7 @@ -package com.xinelu.manage.domain.vo.nursestation; +package com.xinelu.manage.vo.nursestation; import com.xinelu.manage.domain.nursestation.NurseStation; -import com.xinelu.manage.domain.vo.sysarea.SysAreaVO; +import com.xinelu.manage.vo.sysarea.SysAreaVO; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationLabelVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationLabelVO.java similarity index 97% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationLabelVO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationLabelVO.java index 10f63a7..86edbba 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationLabelVO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationLabelVO.java @@ -1,4 +1,4 @@ -package com.xinelu.manage.domain.vo.nursestation; +package com.xinelu.manage.vo.nursestation; import com.xinelu.common.annotation.Excel; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationSysUserVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationSysUserVO.java similarity index 94% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationSysUserVO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationSysUserVO.java index 6dd8aa2..fda82b9 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationSysUserVO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationSysUserVO.java @@ -1,4 +1,4 @@ -package com.xinelu.manage.domain.vo.nursestation; +package com.xinelu.manage.vo.nursestation; import lombok.Data; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationVO.java similarity index 90% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationVO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationVO.java index 1911691..c2962b1 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/nursestation/NurseStationVO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestation/NurseStationVO.java @@ -1,9 +1,9 @@ -package com.xinelu.manage.domain.vo.nursestation; +package com.xinelu.manage.vo.nursestation; import com.xinelu.manage.domain.nursestation.NurseStation; import com.xinelu.manage.domain.nursetype.NurseType; -import com.xinelu.manage.domain.vo.sysarea.SysAreaVO; +import com.xinelu.manage.vo.sysarea.SysAreaVO; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/patientinfo/PatientInfoVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/patientinfo/PatientInfoVO.java new file mode 100644 index 0000000..fdc8316 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/patientinfo/PatientInfoVO.java @@ -0,0 +1,38 @@ +package com.xinelu.manage.vo.patientinfo; + +import com.xinelu.manage.domain.patientinfo.PatientInfo; +import com.xinelu.manage.vo.sysarea.SysAreaVO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description 被护理人传输实体类 + * @Author zhangheng + * @Date 2022-09-09 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PatientInfoVO extends PatientInfo implements Serializable { + private static final long serialVersionUID = 5139292471395501256L; + /** + * 区域名称 + */ + private String areaName; + /** + * 护理站区域集合 + */ + List sysAreaVOList; + + /** + * 年龄 + */ + private Long age; + + /** + * 护理员标识数量 + */ + private Integer personCount; +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/sysarea/AreaInfoVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/sysarea/AreaInfoVO.java similarity index 94% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/sysarea/AreaInfoVO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/sysarea/AreaInfoVO.java index c4f3d3a..49b9351 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/sysarea/AreaInfoVO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/sysarea/AreaInfoVO.java @@ -1,4 +1,4 @@ -package com.xinelu.manage.domain.vo.sysarea; +package com.xinelu.manage.vo.sysarea; import lombok.Data; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/sysarea/ParentAreaVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/sysarea/ParentAreaVO.java similarity index 91% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/sysarea/ParentAreaVO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/sysarea/ParentAreaVO.java index b7af585..4326d7a 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/sysarea/ParentAreaVO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/sysarea/ParentAreaVO.java @@ -1,4 +1,4 @@ -package com.xinelu.manage.domain.vo.sysarea; +package com.xinelu.manage.vo.sysarea; import com.xinelu.manage.domain.sysarea.SysArea; import lombok.Data; diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/sysarea/SysAreaVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/sysarea/SysAreaVO.java similarity index 95% rename from xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/sysarea/SysAreaVO.java rename to xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/sysarea/SysAreaVO.java index 32bb4f8..f0fdadc 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/vo/sysarea/SysAreaVO.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/sysarea/SysAreaVO.java @@ -1,4 +1,4 @@ -package com.xinelu.manage.domain.vo.sysarea; +package com.xinelu.manage.vo.sysarea; import lombok.Data; diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/nurseclassifyinfo/NurseClassifyInfoMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/nurseclassifyinfo/NurseClassifyInfoMapper.xml new file mode 100644 index 0000000..3aeec0f --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/nurseclassifyinfo/NurseClassifyInfoMapper.xml @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + select id, + parent_id, + classify_code, + classify_name, + classify_level, + classify_type, + classify_picture_url, + classify_sort, + create_by, + create_time, + update_by, + update_time + from nurse_classify_info + + + + + + + + insert into nurse_classify_info + + parent_id, + + classify_code, + + classify_name, + + classify_level, + + classify_type, + + classify_picture_url, + + classify_sort, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{parentId}, + + #{classifyCode}, + + #{classifyName}, + + #{classifyLevel}, + + #{classifyType}, + + #{classifyPictureUrl}, + + #{classifySort}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update nurse_classify_info + + parent_id = + #{parentId}, + + classify_code = + #{classifyCode}, + + classify_name = + #{classifyName}, + + classify_level = + #{classifyLevel}, + + classify_type = + #{classifyType}, + + classify_picture_url = + #{classifyPictureUrl}, + + classify_sort = + #{classifySort}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from nurse_classify_info + where id = #{id} + + + + delete from nurse_classify_info where id in + + #{id} + + + + + insert into nurse_classify_info( + parent_id, + classify_code, + classify_name, + classify_level, + classify_type, + classify_picture_url, + classify_sort, + create_by, + create_time, + update_by, + update_time + ) values + + ( + #{nurseClassifyInfoList.parentId}, + #{nurseClassifyInfoList.classifyCode}, + #{nurseClassifyInfoList.classifyName}, + #{nurseClassifyInfoList.classifyLevel}, + #{nurseClassifyInfoList.classifyType}, + #{nurseClassifyInfoList.classifyPictureUrl}, + #{nurseClassifyInfoList.classifySort}, + #{nurseClassifyInfoList.createBy}, + #{nurseClassifyInfoList.createTime}, + #{nurseClassifyInfoList.updateBy}, + #{nurseClassifyInfoList.updateTime} + ) + + + + + insert into nurse_classify_info( + parent_id, + classify_code, + classify_name, + classify_level, + classify_type, + classify_picture_url, + classify_sort, + create_by, + create_time + ) + values + + ( + #{nurseClassifyInfoList.parentId}, + #{nurseClassifyInfoList.classifyCode}, + #{nurseClassifyInfoList.classifyName}, + #{nurseClassifyInfoList.classifyLevel}, + #{nurseClassifyInfoList.classifyType}, + #{nurseClassifyInfoList.classifyPictureUrl}, + #{nurseClassifyInfoList.classifySort}, + #{nurseClassifyInfoList.createBy}, + #{nurseClassifyInfoList.createTime} + ) + + + + + + + + + \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestation/NurseStationMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestation/NurseStationMapper.xml index 81aeeed..ca4ff94 100644 --- a/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestation/NurseStationMapper.xml +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestation/NurseStationMapper.xml @@ -2,7 +2,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -124,8 +124,8 @@ from nurse_station - @@ -202,7 +202,7 @@ - @@ -694,7 +694,7 @@ - SELECT sdt.dict_name, sdd.dict_label nurseTypeName, sdd.dict_value nurseTypeCode @@ -747,8 +747,8 @@ - SELECT su.user_id, su.nurse_station_ids @@ -762,8 +762,8 @@ order by su.create_time desc - SELECT ns.id nurseStationId, ns.nurse_station_name, @@ -783,7 +783,7 @@ order by ns.create_time desc - select nurse_station_name, phone, address, duty_person, duty_phone, agency_introduce FROM nurse_station diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/patientinfo/PatientInfoMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/patientinfo/PatientInfoMapper.xml new file mode 100644 index 0000000..cb5503e --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/patientinfo/PatientInfoMapper.xml @@ -0,0 +1,589 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + community_code, + area_code, + patient_code, + patient_name, + card_no, + user_id, + unionid, + openid, + phone, + address, + urgent_contact_name, + urgent_contact_phone, + community_alias_name, + home_longitude, + home_latitude, + head_picture_url, + password, + integral, + login_flag, + create_by, + create_time, + primary_account_flag, + service_ids, + location_name, + invitation_patient_id, + total_sign_in_days, + sex, + birth_date, + del_flag, + personal_wechat_code_url, + disabling_condition, + disabling_reason + from patient_info + + + + + + + + + + insert into patient_info + + community_code, + + area_code, + + patient_code, + + patient_name, + + card_no, + + user_id, + + unionid, + + openid, + + phone, + + address, + + urgent_contact_name, + + urgent_contact_phone, + + community_alias_name, + + home_longitude, + + home_latitude, + + head_picture_url, + + password, + + integral, + + login_flag, + + create_by, + + create_time, + + update_by, + + update_time, + + primary_account_flag, + + service_ids, + + location_name, + + source, + + invitation_patient_id, + + total_sign_in_days, + + sex, + + birth_date, + + del_flag, + + personal_wechat_code_url, + + disabling_condition, + + disabling_reason, + + + + #{communityCode}, + + #{areaCode}, + + #{patientCode}, + + #{patientName}, + + #{cardNo}, + + #{userId}, + + #{unionid}, + + #{openid}, + + #{phone}, + + #{address}, + + #{urgentContactName}, + + #{urgentContactPhone}, + + #{communityAliasName}, + + #{homeLongitude}, + + #{homeLatitude}, + + #{headPictureUrl}, + + #{password}, + + #{integral}, + + #{loginFlag}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + #{primaryAccountFlag}, + + #{serviceIds}, + + #{locationName}, + + #{source}, + + #{invitationPatientId}, + + #{totalSignInDays}, + + #{sex}, + + #{birthDate}, + + #{delFlag}, + + #{personalWechatCodeUrl}, + + #{disablingCondition}, + + #{disablingReason}, + + + + + + update patient_info + + community_code = + #{communityCode}, + + area_code = + #{areaCode}, + + patient_code = + #{patientCode}, + + patient_name = + #{patientName}, + + card_no = + #{cardNo}, + + user_id = + #{userId}, + + unionid = + #{unionid}, + + openid = + #{openid}, + + phone = + #{phone}, + + address = + #{address}, + + urgent_contact_name = + #{urgentContactName}, + + urgent_contact_phone = + #{urgentContactPhone}, + + community_alias_name = + #{communityAliasName}, + + home_longitude = + #{homeLongitude}, + + home_latitude = + #{homeLatitude}, + + head_picture_url = + #{headPictureUrl}, + + password = + #{password}, + + integral = + #{integral}, + + login_flag = + #{loginFlag}, + + primary_account_flag = + #{primaryAccountFlag}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + service_ids = + #{serviceIds}, + + location_name = + #{locationName}, + + source = + #{source}, + + invitation_patient_id = + #{invitationPatientId}, + + total_sign_in_days = + #{totalSignInDays}, + + sex = + #{sex}, + + birth_date = + #{birthDate}, + + del_flag = + #{delFlag}, + + personal_wechat_code_url = + #{personalWechatCodeUrl}, + + disabling_condition = + #{disablingCondition}, + + disabling_reason = + #{disablingReason}, + + + where id = #{id} + + + + delete from patient_info where id in + + #{id} + + + + + update patient_info + set head_picture_url = #{headPictureUrl} + where id = #{id} + + + + update patient_info + set head_picture_url = #{headPictureUrl} + where id = #{id} + + + + + + insert into patient_info + + openid, + + phone, + + create_time, + + area_code, + + + + #{openid}, + + #{phone}, + + #{createTime}, + + #{areaCode}, + + + + + + update patient_info + set integral = integral + #{integral}, + update_time = now() + where id = #{id} + + + + update patient_info + set integral = integral - #{integral}, + update_time = now() + where id = #{id} + and integral > 0 + + + + update patient_info + set disabling_condition = #{disablingCondition}, + disabling_reason = #{disablingReason} + where id = #{id} + + + + update patient_info + set personal_wechat_code_url = #{personalWeChatCodeUrl}, + update_time = now() + where id = #{id} + + diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/sysarea/SysAreaMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/sysarea/SysAreaMapper.xml index 55655f7..a194e16 100644 --- a/xinelu-nurse-manage/src/main/resources/mapper/manage/sysarea/SysAreaMapper.xml +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/sysarea/SysAreaMapper.xml @@ -2,7 +2,7 @@ - + @@ -183,7 +183,7 @@ - SELECT province.area_name province_name, province.area_code province_code, @@ -280,8 +280,8 @@ - SELECT province.area_name province_name, province.area_code province_code, @@ -307,8 +307,8 @@ - SELECT province.area_name province_name, province.area_code province_code, city.area_name city_name, @@ -342,7 +342,7 @@ AND region.area_code = #{areaCode} limit 1; - SELECT sa.id, sa.parent_code, (select area_name FROM sys_area where area_code = sa.parent_code) parentName,