From 444d1f8400d63acb041e7615e0309b0818addbee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=81=92?= <3226558941@qq.com> Date: Wed, 20 Sep 2023 17:38:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A4=E7=90=86=E9=A1=B9=E7=9B=AE=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=A7=BB=E6=A4=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/AppointmentTimeIntervalEnum.java | 38 ++ .../NurseStationItemShelfStatusEnum.java | 29 + .../NurseStationItemConsumable.java | 106 ++++ .../NurseStationItemPrice.java | 98 ++++ .../nursestationitem/NurseStationItemDTO.java | 42 ++ .../NurseStationItemImportDTO.java | 91 +++ .../NurseStationItemConsumableMapper.java | 79 +++ .../NurseStationItemMapper.java | 108 ++++ .../NurseStationItemPriceMapper.java | 86 +++ .../INurseStationItemService.java | 84 +++ .../impl/NurseStationItemServiceImpl.java | 519 ++++++++++++++++++ .../NurseStationItemImportVO.java | 25 + .../NurseStationItemInfoDetailsVO.java | 112 ++++ .../NurseStationItemInfoVO.java | 33 ++ .../nursestationitem/NurseStationItemVO.java | 39 ++ .../NurseStationItemConsumableVO.java | 28 + .../NurseStationItemPriceVO.java | 22 + .../goodsCategory/GoodsCategoryMapper.xml | 4 +- .../NurseStationItemConsumableMapper.xml | 191 +++++++ .../NurseStationItemMapper.xml | 438 +++++++++++++++ .../NurseStationItemPriceMapper.xml | 194 +++++++ 21 files changed, 2364 insertions(+), 2 deletions(-) create mode 100644 xinelu-common/src/main/java/com/xinelu/common/enums/AppointmentTimeIntervalEnum.java create mode 100644 xinelu-common/src/main/java/com/xinelu/common/enums/NurseStationItemShelfStatusEnum.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursestationItemconsumable/NurseStationItemConsumable.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursestationitemprice/NurseStationItemPrice.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestationitem/NurseStationItemDTO.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestationitem/NurseStationItemImportDTO.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationItemconsumable/NurseStationItemConsumableMapper.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationitem/NurseStationItemMapper.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationitemprice/NurseStationItemPriceMapper.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestationitem/INurseStationItemService.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestationitem/impl/NurseStationItemServiceImpl.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemImportVO.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemInfoDetailsVO.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemInfoVO.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemVO.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitemconsumable/NurseStationItemConsumableVO.java create mode 100644 xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitemprice/NurseStationItemPriceVO.java create mode 100644 xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationItemconsumable/NurseStationItemConsumableMapper.xml create mode 100644 xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationitem/NurseStationItemMapper.xml create mode 100644 xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationitemprice/NurseStationItemPriceMapper.xml diff --git a/xinelu-common/src/main/java/com/xinelu/common/enums/AppointmentTimeIntervalEnum.java b/xinelu-common/src/main/java/com/xinelu/common/enums/AppointmentTimeIntervalEnum.java new file mode 100644 index 0000000..c654864 --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/enums/AppointmentTimeIntervalEnum.java @@ -0,0 +1,38 @@ +package com.xinelu.common.enums; + +import lombok.Getter; + +/** + * @Description 时间间隔枚举类型 + * @Author 纪寒 + * @Date 2023-02-14 15:39:05 + * @Version 1.0 + */ +@Getter +public enum AppointmentTimeIntervalEnum { + /** + * 半小时 + */ + HALF_HOUR("HALF_HOUR"), + + /** + * 一小时 + */ + ONE_HOUR("ONE_HOUR"), + + /** + * 九十分钟 + */ + NINETY_MINUTES("NINETY_MINUTES"), + + /** + * 两小时 + */ + TWO_HOUR("TWO_HOUR"), + ; + final private String value; + + AppointmentTimeIntervalEnum(String value) { + this.value = value; + } +} diff --git a/xinelu-common/src/main/java/com/xinelu/common/enums/NurseStationItemShelfStatusEnum.java b/xinelu-common/src/main/java/com/xinelu/common/enums/NurseStationItemShelfStatusEnum.java new file mode 100644 index 0000000..08a15fb --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/enums/NurseStationItemShelfStatusEnum.java @@ -0,0 +1,29 @@ +package com.xinelu.common.enums; + +import lombok.Getter; + +/** + * 护理机构和护理项目分类信息类型 + * + * @author zh + */ +@Getter +public enum NurseStationItemShelfStatusEnum { + + /** + * 未上架 + */ + NOT_SHELF("NOT_SHELF"), + + /** + * 已上架 + */ + SHELF("SHELF"), + ; + + final private String info; + + NurseStationItemShelfStatusEnum(String info) { + this.info = info; + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursestationItemconsumable/NurseStationItemConsumable.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursestationItemconsumable/NurseStationItemConsumable.java new file mode 100644 index 0000000..05134c8 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursestationItemconsumable/NurseStationItemConsumable.java @@ -0,0 +1,106 @@ +package com.xinelu.manage.domain.nursestationItemconsumable; + + +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.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 护理站护理项目耗材关系对象 nurse_station_item_consumable + * + * @author 纪寒 + * @date 2022-09-05 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "护理站护理项目耗材关系对象", description = "nurse_station_item_consumable") +public class NurseStationItemConsumable extends BaseDomain implements Serializable { + private static final long serialVersionUID = -8964840167749631395L; + /** + * 主键id + */ + private Long id; + + /** + * 护理站护理项目表id + */ + @ApiModelProperty(value = "护理站护理项目表id") + @Excel(name = "护理站护理项目表id") + @NotNull(message = "护理站护理项目表id不能为空", groups = {Update.class}) + private Long nurseStationItemId; + + /** + * 护理站耗材信息表id + */ + @ApiModelProperty(value = "护理站耗材信息表id") + @Excel(name = "护理站耗材信息表id") + @NotNull(message = "护理站耗材信息表id不能为空", groups = {Insert.class, Update.class}) + private Long nurseStationConsumableId; + + /** + * 耗材包详情 + */ + @ApiModelProperty(value = "耗材包详情") + @Excel(name = "耗材包详情") + @NotNull(message = "耗材包详情不能为空", groups = {Insert.class, Update.class}) + @Length(max = 100, message = "耗材包详情名称不能超过100位", groups = {Insert.class, Update.class}) + private String consumableDetail; + + + /** + * 耗材单位 + */ + @ApiModelProperty(value = "耗材单位") + @Excel(name = "耗材单位") + @NotNull(message = "耗材单位不能为空", groups = {Insert.class, Update.class}) + @Length(max = 10, message = "耗材单位名称不能超过10位", groups = {Insert.class, Update.class}) + private String consumableUnit; + + /** + * 耗材数量 + */ + @ApiModelProperty(value = "耗材数量") + @Excel(name = "耗材数量") + @NotNull(message = "耗材数量不能为空", groups = {Insert.class, Update.class}) + private Integer consumableCount; + + /** + * 耗材价格 + */ + @ApiModelProperty(value = "耗材价格") + @Excel(name = "耗材价格") + @NotNull(message = "耗材价格不能为空", groups = {Insert.class, Update.class}) + private BigDecimal consumablePrice; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("nurseStationItemId", getNurseStationItemId()) + .append("nurseStationConsumableId", getNurseStationConsumableId()) + .append("consumableCount", getConsumableCount()) + .append("consumablePrice", getConsumablePrice()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursestationitemprice/NurseStationItemPrice.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursestationitemprice/NurseStationItemPrice.java new file mode 100644 index 0000000..f086ac0 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursestationitemprice/NurseStationItemPrice.java @@ -0,0 +1,98 @@ +package com.xinelu.manage.domain.nursestationitemprice; + +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.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 护理站护理项目价格对象 nurse_station_item_price + * + * @author ljh + * @date 2022-09-02 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "护理站护理项目价格对象", description = "nurse_station_item_price") +public class NurseStationItemPrice extends BaseDomain implements Serializable { + private static final long serialVersionUID = 4911452368843523048L; + /** + * 主键id + */ + private Long id; + + /** + * 护理站项目表id + */ + @ApiModelProperty(value = "护理站项目表id") + @Excel(name = "护理站项目表id") + @NotNull(message = "护理站项目表id不能为空", groups = {Update.class}) + private Long nurseStationItemId; + + /** + * 服务时长和单位 + */ + @ApiModelProperty(value = "服务时长和单位") + @Excel(name = "服务时长和单位") + @NotNull(message = "服务时长和单位不能为空", groups = {Insert.class, Update.class}) + @Length(max = 50, message = "服务时长和单位不能超过50个字符", groups = {Insert.class, Update.class}) + private String serveDurationUnit; + + /** + * 价格 + */ + @ApiModelProperty(value = "价格") + @Excel(name = "价格") + @NotNull(message = "价格不能为空", groups = {Insert.class, Update.class}) + private BigDecimal price; + + /** + * 描述 + */ + @ApiModelProperty(value = "描述") + @Excel(name = "描述") + @NotNull(message = "描述不能为空", groups = {Insert.class, Update.class}) + @Length(max = 300, message = "描述不能超过300个字符", groups = {Insert.class, Update.class}) + private String description; + + /** + * 护理项目佣金金额 + */ + private BigDecimal commissionAmount; + + /** + * 护理项目佣金比例,此处存储比例数字,不存储比例单位 + */ + private BigDecimal commissionRate; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("nurseStationItemId", getNurseStationItemId()) + .append("serveDurationUnit", getServeDurationUnit()) + .append("price", getPrice()) + .append("description", getDescription()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestationitem/NurseStationItemDTO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestationitem/NurseStationItemDTO.java new file mode 100644 index 0000000..94982b3 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestationitem/NurseStationItemDTO.java @@ -0,0 +1,42 @@ +package com.xinelu.manage.dto.nursestationitem; + +import com.xinelu.manage.domain.nursestationItemconsumable.NurseStationItemConsumable; +import com.xinelu.manage.domain.nursestationitem.NurseStationItem; +import com.xinelu.manage.domain.nursestationitemprice.NurseStationItemPrice; +import lombok.Data; + +import javax.validation.Valid; +import java.io.Serializable; +import java.util.List; + +/** + * @author wanghao + * @create 2022/9/9 0009 + */ +@Data +public class NurseStationItemDTO implements Serializable { + private static final long serialVersionUID = -4237656620829263845L; + + /** + * 护理类型信息对象集合 + **/ + @Valid + private List nurseStationItemList; + + /** + * 护理站项目信息 + */ + @Valid + private NurseStationItem nurseStationItem; + + /** + * 护理站护理项目耗材关系表 + */ + private List nurseStationItemConsumables; + + /** + * 护理站护理项目价格表 + */ + @Valid + private List nurseStationItemPrices; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestationitem/NurseStationItemImportDTO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestationitem/NurseStationItemImportDTO.java new file mode 100644 index 0000000..cf2f652 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/dto/nursestationitem/NurseStationItemImportDTO.java @@ -0,0 +1,91 @@ +package com.xinelu.manage.dto.nursestationitem; + +import com.xinelu.common.annotation.Excel; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Objects; + +/** + * @author wanghao + * @create 2022/9/15 0015 + */ +@Data +public class NurseStationItemImportDTO implements Serializable { + + private static final long serialVersionUID = 7168583453881428868L; + /** + * 护理站名称 + */ + @Excel(name = "护理站名称") + private String nurseStationName; + + /** + * 护理类型名称 + */ + private String nurseTypeName; + + /** + * 护理项目名称 + */ + @Excel(name = "护理项目名称") + private String nurseItemName; + + /** + * 护理项目内容简介 + */ + @Excel(name = "护理项目内容简介") + private String nurseItemContent; + + /** + * 提前预约时长 + */ + @Excel(name = "提前预约时长") + private String advanceAppointDuration; + + /** + * 服务时长/计量单位 + */ + @Excel(name = "服务时长/计量单位") + private String serveDurationUnit; + + /** + * 价格 + */ + @Excel(name = "价格") + private BigDecimal price; + + /** + * 描述 + */ + @Excel(name = "描述") + private String description; + + /** + * 护理站id + */ + private Long nurseStationId; + + /** + * 护理项目id + */ + private Long nurseStationItemId; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NurseStationItemImportDTO that = (NurseStationItemImportDTO) o; + return Objects.equals(nurseStationName, that.nurseStationName) && Objects.equals(nurseItemName, that.nurseItemName) && Objects.equals(serveDurationUnit, that.serveDurationUnit); + } + + @Override + public int hashCode() { + return Objects.hash(nurseStationName, nurseItemName, serveDurationUnit); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationItemconsumable/NurseStationItemConsumableMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationItemconsumable/NurseStationItemConsumableMapper.java new file mode 100644 index 0000000..230ae8a --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationItemconsumable/NurseStationItemConsumableMapper.java @@ -0,0 +1,79 @@ +package com.xinelu.manage.mapper.nursestationItemconsumable; + + +import com.xinelu.manage.domain.nursestationItemconsumable.NurseStationItemConsumable; +import com.xinelu.manage.vo.nursestationitemconsumable.NurseStationItemConsumableVO; + +import java.util.List; + +/** + * 护理站护理项目耗材关系Mapper接口 + * + * @author 纪寒 + * @date 2022-09-05 + */ +public interface NurseStationItemConsumableMapper { + /** + * 查询护理站护理项目耗材关系 + * + * @param id 护理站护理项目耗材关系主键 + * @return 护理站护理项目耗材关系 + */ + NurseStationItemConsumableVO selectNurseStationItemConsumableById(Long id); + + /** + * 查询护理站护理项目耗材关系列表 + * + * @param nurseStationItemConsumable 护理站护理项目耗材关系 + * @return 护理站护理项目耗材关系集合 + */ + List selectNurseStationItemConsumableList(NurseStationItemConsumable nurseStationItemConsumable); + + /** + * 新增护理站护理项目耗材关系 + * + * @param nurseStationItemConsumable 护理站护理项目耗材关系 + * @return 结果 + */ + int insertNurseStationItemConsumable(List nurseStationItemConsumable); + + /** + * 修改护理站护理项目耗材关系 + * + * @param nurseStationItemConsumable 护理站护理项目耗材关系 + * @return 结果 + */ + int updateNurseStationItemConsumable(NurseStationItemConsumable nurseStationItemConsumable); + + /** + * 根据主键id删除护理站护理项目耗材关系 + * + * @param id 护理站护理项目耗材关系主键 + * @return 结果 + */ + int deleteNurseStationItemConsumableById(Long id); + + /** + * 根据护理项目id删除护理项目耗材信息 + * + * @param id 护理项目id + * @return 数量 + */ + int deleteNurseStationItemConsumableByItemId(Long id); + + /** + * 批量删除护理站护理项目耗材关系 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteNurseStationItemConsumableByIds(Long[] ids); + + /** + * 根据护理项目id批量删除护理项目耗材信息 + * + * @param ids 护理项目id集合 + * @return 数量 + */ + int deleteNurseStationItemConsumableByItemIds(Long[] ids); +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationitem/NurseStationItemMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationitem/NurseStationItemMapper.java new file mode 100644 index 0000000..4e9ffa8 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationitem/NurseStationItemMapper.java @@ -0,0 +1,108 @@ +package com.xinelu.manage.mapper.nursestationitem; + + +import com.xinelu.manage.domain.nursestationitem.NurseStationItem; +import com.xinelu.manage.dto.nursestationitem.NurseStationItemImportDTO; +import com.xinelu.manage.vo.nursestationitem.NurseStationItemInfoDetailsVO; +import com.xinelu.manage.vo.nursestationitem.NurseStationItemVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 护理站护理项目Mapper接口 + * + * @author ljh + * @date 2022-09-02 + */ +public interface NurseStationItemMapper { + /** + * 查询护理站护理项目 + * + * @param id 护理站护理项目主键 + * @return 护理站护理项目 + */ + NurseStationItemVO selectNurseStationItemById(Long id); + + /** + * 查询护理站护理项目列表 + * + * @param nurseStationItem 护理站护理项目 + * @return 护理站护理项目集合 + */ + List selectNurseStationItemList(NurseStationItem nurseStationItem); + + + /** + * 查询所有护理项目信息列表 + * + * @return 护理站护理项目集合 + */ + List selectItemInfoList(@Param("nurseStationIdList") List nurseStationIdList); + + + /** + * 新增护理站护理项目 + * + * @param nurseStationItem 护理站护理项目 + * @return 结果 + */ + int insertNurseStationItem(NurseStationItem nurseStationItem); + + /** + * 修改护理站护理项目 + * + * @param nurseStationItem 护理站护理项目 + * @return 结果 + */ + int updateNurseStationItem(NurseStationItem nurseStationItem); + + /** + * 删除护理站护理项目 + * + * @param id 护理站护理项目主键 + * @return 结果 + */ + int deleteNurseStationItemById(Long id); + + /** + * 批量删除护理站护理项目 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteNurseStationItemByIds(Long[] ids); + + /** + * 查询护理站护理项目 + * + * @param nurseStationItemIdsList 护理站护理项目主键 + * @return 护理站护理项目 + */ + List getNurseStationItemByIds(@Param("nurseStationItemIdsList") List nurseStationItemIdsList); + + /** + * 查询护理站护理项目 + * + * @param id 护理站护理项目主键 + * @return 护理站护理项目 + */ + NurseStationItemInfoDetailsVO selectNurseStationItemInfoVO(Long id); + + /** + * 根据护理项目id查询护理项目信息 + * + * @param itemId 护理项目id + * @return 护理项目信息 + */ + NurseStationItem getNurseStationItemById(Long itemId); + + /** + * 护理项目修改上架状态 + * + * @param id 项目id + * @param shelfStatus 上架状态 + * @return int + */ + int updateShelfStatusById(@Param("id") Long id, @Param("shelfStatus") String shelfStatus); +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationitemprice/NurseStationItemPriceMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationitemprice/NurseStationItemPriceMapper.java new file mode 100644 index 0000000..3c8a2f7 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/nursestationitemprice/NurseStationItemPriceMapper.java @@ -0,0 +1,86 @@ +package com.xinelu.manage.mapper.nursestationitemprice; + +import com.xinelu.manage.domain.nursestationitemprice.NurseStationItemPrice; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 护理站护理项目价格Mapper接口 + * + * @author ljh + * @date 2022-09-02 + */ +public interface NurseStationItemPriceMapper { + /** + * 查询护理站护理项目价格 + * + * @param id 护理站护理项目价格主键 + * @return 护理站护理项目价格 + */ + NurseStationItemPrice selectNurseStationItemPriceById(Long id); + + /** + * 查询护理站护理项目价格列表 + * + * @param nurseStationItemPrice 护理站护理项目价格 + * @return 护理站护理项目价格集合 + */ + List selectNurseStationItemPriceList(NurseStationItemPrice nurseStationItemPrice); + + /** + * 新增护理站护理项目价格 + * + * @param nurseStationItemPrice 护理站护理项目价格 + * @return 结果 + */ + int insertNurseStationItemPrice(List nurseStationItemPrice); + + /** + * 修改护理站护理项目价格 + * + * @param nurseStationItemPrice 护理站护理项目价格 + * @return 结果 + */ + int updateNurseStationItemPrice(NurseStationItemPrice nurseStationItemPrice); + + /** + * 根据id删除护理站护理项目价格 + * + * @param id 护理站护理项目价格主键 + * @return 结果 + */ + int deleteNurseStationItemPriceById(Long id); + + /** + * 根据护理项目id删除护理项目价格 + * + * @param id 护理项目id + * @return 数量 + */ + int deleteNurseStationItemPriceByItemId(Long id); + + /** + * 批量删除护理站护理项目价格 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteNurseStationItemPriceByIds(Long[] ids); + + /** + * 根据护理项目id批量删除护理站护理项目价格 + * + * @param ids 护理项目id集合 + * @return 数量 + */ + int deleteNurseStationItemPriceByItemIds(Long[] ids); + + /** + * 获取护理站项目对应价格的信息 + * + * @param idList 护理项目id集合 + * @return 护理站项目价格集合 + **/ + List getNurseStationItemPriceByList(@Param("idList") List idList); +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestationitem/INurseStationItemService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestationitem/INurseStationItemService.java new file mode 100644 index 0000000..d78ec08 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestationitem/INurseStationItemService.java @@ -0,0 +1,84 @@ +package com.xinelu.manage.service.nursestationitem; + + +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.manage.domain.nursestationitem.NurseStationItem; +import com.xinelu.manage.dto.nursestationitem.NurseStationItemDTO; +import com.xinelu.manage.dto.nursestationitem.NurseStationItemImportDTO; +import com.xinelu.manage.vo.nursestationitem.NurseStationItemInfoVO; +import com.xinelu.manage.vo.nursestationitem.NurseStationItemVO; + +import java.util.List; + +/** + * 护理站护理项目Service接口 + * + * @author ljh + * @date 2022-09-02 + */ +public interface INurseStationItemService { + + /** + * 查询护理站护理项目 + * + * @param id 护理站护理项目主键 + * @return 护理站护理项目 + */ + NurseStationItemInfoVO selectNurseStationItemById(Long id); + + /** + * 查询护理站护理项目列表 + * + * @param nurseStationItem 护理站护理项目 + * @return 护理站护理项目集合 + */ + List selectNurseStationItemList(NurseStationItem nurseStationItem); + + /** + * 新增护理站护理项目 + * + * @param nurseStationItem 护理站护理项目 + * @return 结果 + */ + AjaxResult insertNurseStationItem(NurseStationItemDTO nurseStationItem); + + /** + * 修改护理站护理项目 + * + * @param nurseStationItem 护理站护理项目 + * @return 结果 + */ + AjaxResult updateNurseStationItem(NurseStationItemDTO nurseStationItem); + + /** + * 批量删除护理站护理项目 + * + * @param ids 需要删除的护理站护理项目主键集合 + * @return 结果 + */ + AjaxResult deleteNurseStationItemByIds(Long[] ids); + + /** + * 护理站护理项目信息导入 + * + * @param nurseStationConsumableImport 护理站护理项目 + * @return 结果 + */ + AjaxResult importData(List nurseStationConsumableImport); + + /** + * 删除护理站图片地址 + * + * @param pictureUrl 护理站图片地址 + **/ + void deletePictureUrl(String pictureUrl); + + /** + * 护理项目上下架状态 + * + * @param id 护理项目id + * @param shelfStatus 上架状态 + * @return AjaxResult + */ + AjaxResult updateShelfStatus(Long id, String shelfStatus); +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestationitem/impl/NurseStationItemServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestationitem/impl/NurseStationItemServiceImpl.java new file mode 100644 index 0000000..cde75be --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/nursestationitem/impl/NurseStationItemServiceImpl.java @@ -0,0 +1,519 @@ +package com.xinelu.manage.service.nursestationitem.impl; + + +import com.xinelu.common.config.XinELuConfig; +import com.xinelu.common.constant.Constants; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.domain.model.LoginUser; +import com.xinelu.common.enums.AppointmentTimeIntervalEnum; +import com.xinelu.common.enums.NurseStationItemShelfStatusEnum; +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.common.utils.file.FileUtils; +import com.xinelu.manage.domain.nursestation.NurseStation; +import com.xinelu.manage.domain.nursestationItemconsumable.NurseStationItemConsumable; +import com.xinelu.manage.domain.nursestationitem.NurseStationItem; +import com.xinelu.manage.domain.nursestationitemprice.NurseStationItemPrice; +import com.xinelu.manage.dto.nursestationitem.NurseStationItemDTO; +import com.xinelu.manage.dto.nursestationitem.NurseStationItemImportDTO; +import com.xinelu.manage.mapper.nursestation.NurseStationMapper; +import com.xinelu.manage.mapper.nursestationItemconsumable.NurseStationItemConsumableMapper; +import com.xinelu.manage.mapper.nursestationitem.NurseStationItemMapper; +import com.xinelu.manage.mapper.nursestationitemprice.NurseStationItemPriceMapper; +import com.xinelu.manage.service.nursestationitem.INurseStationItemService; +import com.xinelu.manage.vo.nursestationitem.NurseStationItemImportVO; +import com.xinelu.manage.vo.nursestationitem.NurseStationItemInfoDetailsVO; +import com.xinelu.manage.vo.nursestationitem.NurseStationItemInfoVO; +import com.xinelu.manage.vo.nursestationitem.NurseStationItemVO; +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; + +import javax.annotation.Resource; +import java.io.File; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +import static com.xinelu.common.utils.PageUtils.startPage; + +/** + * 护理站护理项目Service业务层处理 + * + * @author ljh + * @date 2022-09-02 + */ +@Service +public class NurseStationItemServiceImpl implements INurseStationItemService { + @Resource + private NurseStationItemMapper nurseStationItemMapper; + @Resource + private NurseStationItemConsumableMapper nurseStationItemConsumableMapper; + @Resource + private NurseStationItemPriceMapper nurseStationItemPriceMapper; + @Resource + private GenerateSystemCodeUtil generateSystemCodeUtil; + @Resource + private NurseStationMapper nurseStationMapper; + + /** + * 护理项目每个时间点的预约人数上限 + */ + private static final int APPOINTMENT_LIMIT_COUNT = 0; + + /** + * 查询护理站护理项目 + * + * @param id 护理站护理项目主键 + * @return 护理站护理项目 + */ + @Override + public NurseStationItemInfoVO selectNurseStationItemById(Long id) { + NurseStationItemInfoVO nurseStationItemInfo = new NurseStationItemInfoVO(); + NurseStationItemInfoDetailsVO nurseStationItem = nurseStationItemMapper.selectNurseStationItemInfoVO(id); + if (Objects.isNull(nurseStationItem)) { + return nurseStationItemInfo; + } + NurseStationItemVO nurseStationItemVO = new NurseStationItemVO(); + nurseStationItemVO.setId(Objects.isNull(nurseStationItem.getId()) ? null : nurseStationItem.getId()); + nurseStationItemVO.setNurseStationId(Objects.isNull(nurseStationItem.getNurseStationId()) ? null : nurseStationItem.getNurseStationId()); + nurseStationItemVO.setNurseItemName(StringUtils.isBlank(nurseStationItem.getNurseItemName()) ? "" : nurseStationItem.getNurseItemName()); + nurseStationItemVO.setNurseItemCode(StringUtils.isBlank(nurseStationItem.getNurseItemCode()) ? "" : nurseStationItem.getNurseItemCode()); + nurseStationItemVO.setNurseStationName(StringUtils.isBlank(nurseStationItem.getNurseStationName()) ? "" : nurseStationItem.getNurseStationName()); + nurseStationItemVO.setNurseItemContent(StringUtils.isBlank(nurseStationItem.getNurseItemContent()) ? "" : nurseStationItem.getNurseItemContent()); + nurseStationItemVO.setItemPictureUrl(StringUtils.isBlank(nurseStationItem.getItemPictureUrl()) ? "" : nurseStationItem.getItemPictureUrl()); + nurseStationItemVO.setAdvanceAppointDuration(StringUtils.isBlank(nurseStationItem.getAdvanceAppointDuration()) ? "" : nurseStationItem.getAdvanceAppointDuration()); + nurseStationItemVO.setSort(Objects.isNull(nurseStationItem.getSort()) ? null : nurseStationItem.getSort()); + nurseStationItemVO.setNurseClassifyId(Objects.isNull(nurseStationItem.getNurseClassifyId()) ? null : nurseStationItem.getNurseClassifyId()); + nurseStationItemVO.setClassifyName(StringUtils.isBlank(nurseStationItem.getClassifyName()) ? "" : nurseStationItem.getClassifyName()); + nurseStationItemVO.setAppointmentLimitCount(Objects.isNull(nurseStationItem.getAppointmentLimitCount()) ? null : nurseStationItem.getAppointmentLimitCount()); + nurseStationItemVO.setAppointmentTimeInterval(StringUtils.isBlank(nurseStationItem.getAppointmentTimeInterval()) ? "" : nurseStationItem.getAppointmentTimeInterval()); + nurseStationItemVO.setShelfStatus(StringUtils.isBlank(nurseStationItem.getShelfStatus()) ? "" : nurseStationItem.getShelfStatus()); + nurseStationItemInfo.setNurseStationItem(nurseStationItemVO); + if (CollectionUtils.isNotEmpty(nurseStationItem.getNurseStationItemConsumables())) { + nurseStationItemInfo.setNurseStationItemConsumables(nurseStationItem.getNurseStationItemConsumables()); + } + if (CollectionUtils.isNotEmpty(nurseStationItem.getNurseStationItemPrices())) { + nurseStationItemInfo.setNurseStationItemPrices(nurseStationItem.getNurseStationItemPrices()); + } + return nurseStationItemInfo; + } + + /** + * 查询护理站护理项目列表 + * + * @param nurseStationItem 护理站护理项目 + * @return 护理站护理项目 + */ + @Override + public List selectNurseStationItemList(NurseStationItem nurseStationItem) { + //查询所有的项目进行 + startPage(); + List nurseStationItemList = nurseStationItemMapper.selectNurseStationItemList(nurseStationItem); + //获取护理站项目的id + List idList = nurseStationItemList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getId())).map(NurseStationItemVO::getId).distinct().collect(Collectors.toList()); + //根据护理站项目的id去查找所有的项目价格表 + List nurseStationItemPriceByList = nurseStationItemPriceMapper.getNurseStationItemPriceByList(idList); + if (CollectionUtils.isEmpty(nurseStationItemPriceByList)) { + return nurseStationItemList; + } + Map> nurseStationItemPriceMap = nurseStationItemPriceByList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getNurseStationItemId())).collect(Collectors.groupingBy(NurseStationItemPrice::getNurseStationItemId)); + nurseStationItemList.forEach(item -> item.setNurseStationItemPrices(nurseStationItemPriceMap.getOrDefault(Objects.isNull(item.getId()) ? 0L : item.getId(), Lists.newArrayList()))); + return nurseStationItemList; + } + + /** + * 新增护理站护理项目 + * + * @param nurseStationItemDTO 护理站护理项目 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult insertNurseStationItem(NurseStationItemDTO nurseStationItemDTO) { + //判断护理站项目价额是否为负数 + AjaxResult ajaxResult = judgePriceInfo(nurseStationItemDTO); + if (Objects.nonNull(ajaxResult)) { + return ajaxResult; + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + LocalDateTime now = LocalDateTime.now(); + //护理站项目信息 + NurseStationItem nurseStationItem = nurseStationItemDTO.getNurseStationItem(); + //判断护理项目预约时间点间隔是否为空 + if (StringUtils.isBlank(nurseStationItem.getAppointmentTimeInterval())) { + nurseStationItem.setAppointmentTimeInterval(AppointmentTimeIntervalEnum.HALF_HOUR.getValue()); + } + //判断护理项目每个时间点的预约人数上限是否为0 + if (Objects.nonNull(nurseStationItem.getAppointmentLimitCount()) && nurseStationItem.getAppointmentLimitCount() == APPOINTMENT_LIMIT_COUNT) { + return AjaxResult.error("预约人数上限应该大于零,请重新输入!"); + } + nurseStationItem.setCreateTime(now); + nurseStationItem.setCreateBy(loginUser.getUsername()); + nurseStationItem.setUserId(loginUser.getUserId()); + nurseStationItem.setShelfStatus(NurseStationItemShelfStatusEnum.NOT_SHELF.getInfo()); + nurseStationItem.setNurseItemCode(Constants.STATION_ITEM + generateSystemCodeUtil.generateSystemCode(Constants.STATION_ITEM)); + int stationItemCount = nurseStationItemMapper.insertNurseStationItem(nurseStationItem); + if (stationItemCount <= 0) { + throw new ServiceException(nurseStationItem.getNurseItemName() + "-" + "护理项目新增失败!"); + } + //绑定护理站护理项目id + if (CollectionUtils.isNotEmpty(nurseStationItemDTO.getNurseStationItemConsumables())) { + for (NurseStationItemConsumable nurseStationItemConsumable : nurseStationItemDTO.getNurseStationItemConsumables()) { + nurseStationItemConsumable.setNurseStationItemId(nurseStationItem.getId()); + nurseStationItemConsumable.setCreateTime(now); + nurseStationItemConsumable.setCreateBy(loginUser.getUsername()); + } + int itemConsumable = nurseStationItemConsumableMapper.insertNurseStationItemConsumable(nurseStationItemDTO.getNurseStationItemConsumables()); + if (itemConsumable <= 0) { + throw new ServiceException(nurseStationItem.getNurseItemName() + "-" + "护理项目耗材新增失败!"); + } + } + //绑定护理站护理项目价格 + if (CollectionUtils.isNotEmpty(nurseStationItemDTO.getNurseStationItemPrices())) { + for (NurseStationItemPrice nurseStationItemPrice : nurseStationItemDTO.getNurseStationItemPrices()) { + nurseStationItemPrice.setNurseStationItemId(nurseStationItem.getId()); + nurseStationItemPrice.setCreateTime(now); + nurseStationItemPrice.setCreateBy(loginUser.getUsername()); + if (Objects.nonNull(nurseStationItemPrice.getCommissionRate())) { + //算出佣金比例 + BigDecimal commissionRatePriceMultiply = nurseStationItemPrice.getCommissionRate().multiply(nurseStationItemPrice.getPrice().multiply(BigDecimal.valueOf(0.01))).setScale(2, RoundingMode.HALF_UP); + nurseStationItemPrice.setCommissionAmount(commissionRatePriceMultiply); + } + } + int itemPrice = nurseStationItemPriceMapper.insertNurseStationItemPrice(nurseStationItemDTO.getNurseStationItemPrices()); + if (itemPrice <= 0) { + throw new ServiceException(nurseStationItem.getNurseItemName() + "-" + "护理项目价格新增失败!"); + } + } + return AjaxResult.success(); + } + + /** + * 批量修改护理站护理项目 + * + * @param nurseStationItemDTO 护理站护理项目 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult updateNurseStationItem(NurseStationItemDTO nurseStationItemDTO) { + //判断护理站项目价额是否为负数 + AjaxResult ajaxResult = judgePriceInfo(nurseStationItemDTO); + if (Objects.nonNull(ajaxResult)) { + return ajaxResult; + } + //前端传过来的 + NurseStationItem nurseStationItem = nurseStationItemDTO.getNurseStationItem(); + //从数据库中查到的 + NurseStationItemVO nurseStationItemVO = nurseStationItemMapper.selectNurseStationItemById(nurseStationItem.getId()); + if (Objects.isNull(nurseStationItemVO)) { + return AjaxResult.error("当前护理项目信息不存在,无法进行修改,请联系管理员!"); + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + LocalDateTime now = LocalDateTime.now(); + //判断护理项目预约时间点间隔是否为空 + if (StringUtils.isBlank(nurseStationItem.getAppointmentTimeInterval())) { + nurseStationItem.setAppointmentTimeInterval(AppointmentTimeIntervalEnum.HALF_HOUR.getValue()); + } + //判断护理项目每个时间点的预约人数上限是否为0 + if (Objects.nonNull(nurseStationItem.getAppointmentLimitCount()) && nurseStationItem.getAppointmentLimitCount() == APPOINTMENT_LIMIT_COUNT) { + return AjaxResult.error("预约人数上限应该大于零,请重新输入!"); + } + int item = nurseStationItemMapper.updateNurseStationItem(nurseStationItem); + if (item <= 0) { + throw new ServiceException(nurseStationItem.getNurseItemName() + "-" + "护理项目修改失败!"); + } + //删除护理站护理项目耗材关系 + nurseStationItemConsumableMapper.deleteNurseStationItemConsumableByItemId(nurseStationItem.getId()); + //护理站耗材表 + if (CollectionUtils.isNotEmpty(nurseStationItemDTO.getNurseStationItemConsumables())) { + for (NurseStationItemConsumable nurseStationItemConsumable : nurseStationItemDTO.getNurseStationItemConsumables()) { + nurseStationItemConsumable.setNurseStationItemId(nurseStationItem.getId()); + nurseStationItemConsumable.setCreateTime(now); + nurseStationItemConsumable.setCreateBy(loginUser.getUsername()); + } + int itemConsumable = nurseStationItemConsumableMapper.insertNurseStationItemConsumable(nurseStationItemDTO.getNurseStationItemConsumables()); + if (itemConsumable <= 0) { + throw new ServiceException(nurseStationItem.getNurseItemName() + "-" + "护理项目耗材修改失败!"); + } + } + //删除护理站护理项目绑定的价格 + nurseStationItemPriceMapper.deleteNurseStationItemPriceByItemId(nurseStationItem.getId()); + if (CollectionUtils.isNotEmpty(nurseStationItemDTO.getNurseStationItemPrices())) { + for (NurseStationItemPrice nurseStationItemPrice : nurseStationItemDTO.getNurseStationItemPrices()) { + nurseStationItemPrice.setNurseStationItemId(nurseStationItem.getId()); + nurseStationItemPrice.setCreateTime(now); + nurseStationItemPrice.setCreateBy(loginUser.getUsername()); + if (Objects.nonNull(nurseStationItemPrice.getCommissionRate())) { + //算出佣金比例 + BigDecimal commissionRatePriceMultiply = nurseStationItemPrice.getCommissionRate().multiply(nurseStationItemPrice.getPrice().multiply(BigDecimal.valueOf(0.01))).setScale(2, RoundingMode.HALF_UP); + nurseStationItemPrice.setCommissionAmount(commissionRatePriceMultiply); + } + } + //绑定护理站护理项目价格 + int itemPrice = nurseStationItemPriceMapper.insertNurseStationItemPrice(nurseStationItemDTO.getNurseStationItemPrices()); + if (itemPrice <= 0) { + throw new ServiceException(nurseStationItem.getNurseItemName() + "-" + "护理项目价格修改失败!"); + } + } + //删除护理站项目的图片 + if (StringUtils.isNotBlank(nurseStationItemVO.getItemPictureUrl()) && StringUtils.isNotBlank(nurseStationItem.getItemPictureUrl()) && !nurseStationItemVO.getItemPictureUrl().equals(nurseStationItem.getItemPictureUrl())) { + this.deletePictureUrl(nurseStationItemVO.getItemPictureUrl()); + } + //删除护理站富文本图片 + this.deleteNurseStationItemPictureUrl(nurseStationItem, nurseStationItemVO); + return AjaxResult.success(); + } + + /** + * 批量删除护理站护理项目 + * + * @param ids 需要删除的护理站护理项目主键 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult deleteNurseStationItemByIds(Long[] ids) { + //根据id查询护理项目的信息 删除护理站项目的图片地址 + List nurseStationItemByIds = nurseStationItemMapper.getNurseStationItemByIds(Arrays.asList(ids)); + //获取护理项目的图片信息 + List itemPictureUrlList = nurseStationItemByIds.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotBlank(item.getItemPictureUrl())).map(NurseStationItem::getItemPictureUrl).distinct().collect(Collectors.toList()); + //获取护理项目富文本信息 + List nurseItemContentList = nurseStationItemByIds.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotBlank(item.getNurseItemContent())).map(NurseStationItem::getNurseItemContent).distinct().collect(Collectors.toList()); + //删除护理站相关联的项目信息 + nurseStationItemConsumableMapper.deleteNurseStationItemConsumableByItemIds(ids); + nurseStationItemPriceMapper.deleteNurseStationItemPriceByItemIds(ids); + nurseStationItemMapper.deleteNurseStationItemByIds(ids); + //删除图片 + itemPictureUrlList.forEach(this::deletePictureUrl); + //遍历删除护理站富文本图片地址 + for (String nurseItemContent : nurseItemContentList) { + List nurseStationItemImgSrc = FileUtils.getImgSrc(nurseItemContent); + for (String pictureUrl : nurseStationItemImgSrc) { + if (StringUtils.isBlank(pictureUrl)) { + continue; + } + //修改路径 + String substring = pictureUrl.substring(pictureUrl.indexOf("/profile")); + //删除商品富文本图片 + deletePictureUrl(substring); + } + } + return AjaxResult.success(); + } + + /** + * 护理站护理项目信息导入 + * + * @param list 护理站护理项目 + * @return 导入结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult importData(List list) { + NurseStationItemImportVO stationItemImport = new NurseStationItemImportVO(); + //获取当前用户 + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (CollectionUtils.isEmpty(list)) { + return AjaxResult.error("请添加护理项目导入数据!"); + } + //获取所有的护理站名称,去重复以后 + List stationNameList = list.stream().filter(Objects::nonNull).map(NurseStationItemImportDTO::getNurseStationName).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList()); + //获取数据库中已经存在的所有项目信息 +通过服务站名称查询所有的关联 + List allNurseStationItemList = nurseStationItemMapper.selectItemInfoList(stationNameList); + //求出差集,进行新增 + Collection subtractList = CollectionUtils.subtract(list, allNurseStationItemList); + //求出并集,重复数据 + Collection intersectionList = CollectionUtils.intersection(list, allNurseStationItemList); + //如果差集为null直接返回 + if (CollectionUtils.isEmpty(subtractList)) { + stationItemImport.setSuccessList(subtractList); + stationItemImport.setFailList(intersectionList); + return AjaxResult.success(stationItemImport); + } + //根据护理项目名称进行分组 + Map> itemNameMap = list.stream().filter(item -> StringUtils.isNotBlank(item.getNurseItemName())).collect(Collectors.groupingBy(NurseStationItemImportDTO::getNurseItemName)); + //获取到所有的护理站信息 + List nurseStations = nurseStationMapper.selectNurseStationListByNames(stationNameList); + //以护理站名称进行分组匹配护理站id + Map nurseStationLabelMap = nurseStations.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotBlank(item.getNurseStationName())).collect(Collectors.toMap(NurseStation::getNurseStationName, NurseStation::getId)); + //设置护理站id + subtractList.forEach(item -> item.setNurseStationId(nurseStationLabelMap.getOrDefault(item.getNurseStationName(), 0L))); + //添加创建时间/护理站编号/判断如果没有护理站信息,添加0L + List priceList = Lists.newArrayList(); + for (NurseStationItemImportDTO item : subtractList) { + //判断当前护理站项目在数据库中是否已经存在 + String nurseStationName = StringUtils.isBlank(item.getNurseStationName()) ? "" : item.getNurseStationName(); + String nurseItemName = StringUtils.isBlank(item.getNurseItemName()) ? "" : item.getNurseItemName(); + NurseStationItemImportDTO nurseStationItemImport = allNurseStationItemList.stream() + .filter(nurse -> !StringUtils.isAnyBlank(nurse.getNurseStationName(), nurse.getNurseItemName())) + .filter(nurseItem -> nurseStationName.equals(nurseItem.getNurseStationName()) && nurseItemName.equals(nurseItem.getNurseItemName())).findFirst().orElse(new NurseStationItemImportDTO()); + if (Objects.nonNull(nurseStationItemImport.getNurseStationItemId())) { + //添加项目价格信息 + item.setNurseStationItemId(nurseStationItemImport.getNurseStationItemId()); + NurseStationItemPrice nurseStationItemPrice = new NurseStationItemPrice(); + nurseStationItemPrice.setCreateTime(LocalDateTime.now()); + BeanUtils.copyProperties(item, nurseStationItemPrice); + priceList.add(nurseStationItemPrice); + continue; + } + //根据护理项目名称获取护理项目名称 + List itemNameList = itemNameMap.getOrDefault(item.getNurseItemName(), Lists.newArrayList()); + //添加项目信息 + NurseStationItem nurseStationItem = new NurseStationItem(); + nurseStationItem.setNurseStationId(item.getNurseStationId()); + nurseStationItem.setNurseTypeId(0L); + nurseStationItem.setUserId(SecurityUtils.getUserId()); + nurseStationItem.setNurseItemCode(Constants.STATION_ITEM + generateSystemCodeUtil.generateSystemCode(Constants.STATION_ITEM)); + nurseStationItem.setNurseItemName(item.getNurseItemName()); + nurseStationItem.setNurseItemContent(item.getNurseItemContent()); + nurseStationItem.setAdvanceAppointDuration(item.getAdvanceAppointDuration()); + nurseStationItem.setCreateTime(LocalDateTime.now()); + nurseStationItem.setCreateBy(loginUser.getUsername()); + //保存护理项目信息 + int stationItemCount = nurseStationItemMapper.insertNurseStationItem(nurseStationItem); + if (stationItemCount <= 0) { + throw new ServiceException(itemNameList.get(0).getNurseItemName() + "-" + "护理项目导入失败,请联系管理员!"); + } + //添加项目价格信息 + item.setNurseStationItemId(nurseStationItem.getId()); + NurseStationItemPrice nurseStationItemPrice = new NurseStationItemPrice(); + nurseStationItemPrice.setCreateTime(LocalDateTime.now()); + BeanUtils.copyProperties(item, nurseStationItemPrice); + priceList.add(nurseStationItemPrice); + } + //保存护理项目价格信息 + if (CollectionUtils.isNotEmpty(priceList)) { + int itemPriceCount = nurseStationItemPriceMapper.insertNurseStationItemPrice(priceList); + if (itemPriceCount <= 0) { + throw new ServiceException("护理项目价格信息导入失败,请联系管理员!"); + } + } + //新增成功的项目信息 + stationItemImport.setSuccessList(subtractList); + //新增重复的项目信息 + stationItemImport.setFailList(intersectionList); + return AjaxResult.success(stationItemImport); + } + + + /** + * 删除护理站富文本图片 + * + * @param nurseStationItem 前端传过来的 + * @param nurseStationItemVO 数据库中的 + **/ + public void deleteNurseStationItemPictureUrl(NurseStationItem nurseStationItem, NurseStationItemVO nurseStationItemVO) { + if (StringUtils.isNotBlank(nurseStationItem.getNurseItemContent()) && StringUtils.isNotBlank(nurseStationItemVO.getNurseItemContent()) + && !nurseStationItem.getNurseItemContent().equals(nurseStationItemVO.getNurseItemContent())) { + //数据库中的 + List stationItemImgSrc = FileUtils.getImgSrc(nurseStationItemVO.getNurseItemContent()); + //前端传的 + List nurseStationItemImgSrc = FileUtils.getImgSrc(nurseStationItem.getNurseItemContent()); + //差集不同的 + List subtractNurseStationImgSrc = new ArrayList<>(CollectionUtils.subtract(stationItemImgSrc, nurseStationItemImgSrc)); + for (String pictureUrl : subtractNurseStationImgSrc) { + if (StringUtils.isBlank(pictureUrl)) { + continue; + } + //修改路径 + String substring = pictureUrl.substring(pictureUrl.indexOf("/profile")); + //删除商品富文本图片 + deletePictureUrl(substring); + } + } + } + + + /** + * 删除护理站图片地址 + * + * @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("图片地址删除失败!"); + } + } + } + + /** + * 护理项目修改上架状态 + * + * @param id 护理项目id + * @param shelfStatus 上架状态 + * @return AjaxResult + */ + @Override + public AjaxResult updateShelfStatus(Long id, String shelfStatus) { + if (!NurseStationItemShelfStatusEnum.SHELF.getInfo().equals(shelfStatus) && !NurseStationItemShelfStatusEnum.NOT_SHELF.getInfo().equals(shelfStatus)) { + return AjaxResult.error("上架状态不存在!"); + } + NurseStationItem nurseStationItem = nurseStationItemMapper.getNurseStationItemById(id); + if (Objects.isNull(nurseStationItem)) { + return AjaxResult.error("该护理项目不存在!"); + } + nurseStationItemMapper.updateShelfStatusById(id, shelfStatus); + return AjaxResult.success(); + } + + /** + * 校验护理站项目价格和耗材包单价是否为负数 + * + * @param nurseStationItemDTO 输入参数 + * @return 返回结果信息 + */ + private AjaxResult judgePriceInfo(NurseStationItemDTO nurseStationItemDTO) { + //判断护理站项目价额是否为负数 + if (CollectionUtils.isNotEmpty(nurseStationItemDTO.getNurseStationItemPrices())) { + NurseStationItemPrice nurseStationItemPrice = nurseStationItemDTO.getNurseStationItemPrices().stream().filter(item -> Objects.nonNull(item.getPrice()) && item.getPrice().compareTo(BigDecimal.ZERO) < 0).findFirst().orElse(null); + if (Objects.nonNull(nurseStationItemPrice)) { + return AjaxResult.error("护理项目价格不能为负数,请重新输入!"); + } + NurseStationItemPrice itemPrice = nurseStationItemDTO.getNurseStationItemPrices().stream().filter(item -> Objects.nonNull(item.getCommissionAmount()) && item.getCommissionAmount().compareTo(BigDecimal.ZERO) < 0).findFirst().orElse(null); + if (Objects.nonNull(itemPrice)) { + return AjaxResult.error("护理项目佣金金额不能为负数,请重新输入!"); + } + NurseStationItemPrice stationItemPrice = nurseStationItemDTO.getNurseStationItemPrices().stream().filter(item -> Objects.nonNull(item.getPrice()) && Objects.nonNull(item.getCommissionAmount())).filter(item -> item.getPrice().compareTo(item.getCommissionAmount()) <= 0).findFirst().orElse(null); + if (Objects.nonNull(stationItemPrice)) { + return AjaxResult.error("护理项目佣金金额不能大于或等于护理项目价格,请重新输入!"); + } + NurseStationItemPrice commissionRatePrice = nurseStationItemDTO.getNurseStationItemPrices().stream().filter(item -> Objects.nonNull(item.getCommissionRate()) && (item.getCommissionRate().compareTo(BigDecimal.ZERO) < 0 || item.getCommissionRate().compareTo(BigDecimal.valueOf(100)) > 0)).findFirst().orElse(null); + if (Objects.nonNull(commissionRatePrice)) { + return AjaxResult.error("护理项目佣金比例只能在0-100之间,请重新输入!"); + } + } + //判断护理项目耗材包价格是否为负数 + if (CollectionUtils.isNotEmpty(nurseStationItemDTO.getNurseStationItemConsumables())) { + NurseStationItemConsumable nurseStationItemConsumable = nurseStationItemDTO.getNurseStationItemConsumables().stream().filter(item -> Objects.nonNull(item.getConsumablePrice()) && item.getConsumablePrice().compareTo(BigDecimal.ZERO) < 0).findFirst().orElse(null); + if (Objects.nonNull(nurseStationItemConsumable)) { + return AjaxResult.error("护理项目耗材包单价不能为负数,请重新输入!"); + } + NurseStationItemConsumable consumableCountInfoTwo = nurseStationItemDTO.getNurseStationItemConsumables().stream().filter(item -> Objects.isNull(item.getConsumableCount())).findFirst().orElse(null); + if (Objects.nonNull(consumableCountInfoTwo)) { + return AjaxResult.error("护理项目耗材包数量不能为空,请重新输入!"); + } + NurseStationItemConsumable consumableCountInfo = nurseStationItemDTO.getNurseStationItemConsumables().stream().filter(item -> Objects.nonNull(item.getConsumableCount()) && item.getConsumableCount() < 0).findFirst().orElse(null); + if (Objects.nonNull(consumableCountInfo)) { + return AjaxResult.error("护理项目耗材包数量不能为负数,请重新输入!"); + } + } + return null; + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemImportVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemImportVO.java new file mode 100644 index 0000000..4fa6d6d --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemImportVO.java @@ -0,0 +1,25 @@ +package com.xinelu.manage.vo.nursestationitem; + +import com.xinelu.manage.dto.nursestationitem.NurseStationItemImportDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.Collection; + +/** + * @author wanghao + * @create 2022/9/16 0016 + */ +@Data +public class NurseStationItemImportVO implements Serializable { + private static final long serialVersionUID = -1672460985369532122L; + /** + * 导入成功数据集合 + */ + private Collection successList; + + /** + * 导入失败数据集合 + */ + private Collection failList; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemInfoDetailsVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemInfoDetailsVO.java new file mode 100644 index 0000000..5f07666 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemInfoDetailsVO.java @@ -0,0 +1,112 @@ +package com.xinelu.manage.vo.nursestationitem; + + +import com.xinelu.manage.vo.nursestationitemconsumable.NurseStationItemConsumableVO; +import com.xinelu.manage.vo.nursestationitemprice.NurseStationItemPriceVO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author wanghao + * @create 2022/9/14 0014 + */ +@Data +public class NurseStationItemInfoDetailsVO implements Serializable { + private static final long serialVersionUID = 9031833992848395690L; + /** + * 主键id + */ + private Long id; + + /** + * 护理站信息表id + */ + private Long nurseStationId; + + /** + * 护理类型表id + */ + private Long nurseTypeId; + + /** + * 护理项目编号 + */ + private String nurseItemCode; + + /** + * 护理项目名称 + */ + private String nurseItemName; + + /** + * 护理项目内容简介 + */ + private String nurseItemContent; + + /** + * 提前预约时长,单位小时 + */ + private String advanceAppointDuration; + + /** + * 护理项目图片地址 + */ + private String itemPictureUrl; + + /** + * 排序 + */ + private Integer sort; + + /** + * 护理类型 + */ + private String nurseTypeName; + + /** + * 护理站名称 + */ + private String nurseStationName; + + /** + * 护理项目所属分类id` + */ + private Long nurseClassifyId; + + /** + * 护理项目所属分类名称 + */ + private String classifyName; + + /** + * 护理项目每个时间点的预约人数上限 + */ + private Integer appointmentLimitCount; + + /** + * 护理项目预约时间点间隔 半小时:HALF_HOUR,一小时:ONE_HOUR,九十分钟:NINETY_MINUTES,两小时:TWO_HOUR + */ + private String appointmentTimeInterval; + + /** + * 护理项目所属分类名称 + */ + private String nurseClassifyName; + + /** + * 上架状态,NOT_SHELF:未上架,SHELF:已上架 + */ + private String shelfStatus; + + /** + * 护理站护理项目耗材关系表 + */ + private List nurseStationItemConsumables; + + /** + * 护理站护理项目价格表 + */ + private List nurseStationItemPrices; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemInfoVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemInfoVO.java new file mode 100644 index 0000000..271ad62 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemInfoVO.java @@ -0,0 +1,33 @@ +package com.xinelu.manage.vo.nursestationitem; + +import com.xinelu.manage.vo.nursestationitemconsumable.NurseStationItemConsumableVO; +import com.xinelu.manage.vo.nursestationitemprice.NurseStationItemPriceVO; +import lombok.Data; + +import javax.validation.Valid; +import java.io.Serializable; +import java.util.List; + +/** + * @author wanghao + * @create 2022/9/14 0014 + */ +@Data +public class NurseStationItemInfoVO implements Serializable { + + private static final long serialVersionUID = -2148215383242589741L; + @Valid + private NurseStationItemVO nurseStationItem; + + /** + * 护理站护理项目耗材关系表 + */ + @Valid + private List nurseStationItemConsumables; + + /** + * 护理站护理项目价格表 + */ + @Valid + private List nurseStationItemPrices; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemVO.java new file mode 100644 index 0000000..babb7f0 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitem/NurseStationItemVO.java @@ -0,0 +1,39 @@ +package com.xinelu.manage.vo.nursestationitem; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.manage.domain.nursestationitem.NurseStationItem; +import com.xinelu.manage.domain.nursestationitemprice.NurseStationItemPrice; +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author wanghao + * @create 2022/9/14 0014 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "护理站护理项目对象", description = "nurse_station_item") +public class NurseStationItemVO extends NurseStationItem { + private static final long serialVersionUID = -1174424044106077959L; + + @Excel(name = "护理类型") + private String nurseTypeName; + + @Excel(name = "护理站名称") + private String nurseStationName; + + /** + * 护理项目所属分类名称 + */ + @Excel(name = "护理项目所属分类名称") + private String classifyName; + + private List nurseStationItemPrices; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitemconsumable/NurseStationItemConsumableVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitemconsumable/NurseStationItemConsumableVO.java new file mode 100644 index 0000000..02082c8 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitemconsumable/NurseStationItemConsumableVO.java @@ -0,0 +1,28 @@ +package com.xinelu.manage.vo.nursestationitemconsumable; + + +import com.xinelu.common.annotation.Excel; +import com.xinelu.manage.domain.nursestationItemconsumable.NurseStationItemConsumable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author wanghao + * @create 2022/9/14 0014 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class NurseStationItemConsumableVO extends NurseStationItemConsumable { + private static final long serialVersionUID = -6843839648810574245L; + @Excel(name = "耗材名称") + private String consumableDetail; + @Excel(name = "耗材编码") + private String consumableCode; + @Excel(name = "耗材包单位") + private String consumableUnit; + + /** + * 护理项目耗材表id + */ + private Long consumableId; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitemprice/NurseStationItemPriceVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitemprice/NurseStationItemPriceVO.java new file mode 100644 index 0000000..765e2d5 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/nursestationitemprice/NurseStationItemPriceVO.java @@ -0,0 +1,22 @@ +package com.xinelu.manage.vo.nursestationitemprice; + +import com.xinelu.manage.domain.nursestationitemprice.NurseStationItemPrice; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * @author ljh + * @version 1.0 + * Create by 2022/11/17 14:00 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class NurseStationItemPriceVO extends NurseStationItemPrice implements Serializable { + private static final long serialVersionUID = 1792338807407538721L; + /** + * 护理站项目价格表id,非数据库字段,后期修改 + */ + private Long nurseItemPriceId; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/goodsCategory/GoodsCategoryMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/goodsCategory/GoodsCategoryMapper.xml index a5994dc..dbc5993 100644 --- a/xinelu-nurse-manage/src/main/resources/mapper/manage/goodsCategory/GoodsCategoryMapper.xml +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/goodsCategory/GoodsCategoryMapper.xml @@ -180,7 +180,7 @@ - SELECT id, parent_id, @@ -210,7 +210,7 @@ - select gc.id, gc.parent_id, gc.goods_category_name, diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationItemconsumable/NurseStationItemConsumableMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationItemconsumable/NurseStationItemConsumableMapper.xml new file mode 100644 index 0000000..6313c9a --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationItemconsumable/NurseStationItemConsumableMapper.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + select id, + nurse_station_item_id, + nurse_station_consumable_id, + consumable_detail, + consumable_unit, + consumable_count, + consumable_price, + create_by, + create_time, + update_by, + update_time + from nurse_station_item_consumable + + + + + + + + + + INSERT INTO + nurse_station_item_consumable(nurse_station_item_id, + nurse_station_consumable_id,consumable_detail,consumable_unit, consumable_count, + consumable_price,create_by, create_time, update_by, update_time) + VALUES + + ( + #{productCategory.nurseStationItemId}, + #{productCategory.nurseStationConsumableId}, + #{productCategory.consumableDetail}, + #{productCategory.consumableUnit}, + #{productCategory.consumableCount}, + #{productCategory.consumablePrice}, + #{productCategory.createBy}, + #{productCategory.createTime}, + #{productCategory.updateBy}, + #{productCategory.updateTime} + ) + + + + + update nurse_station_item_consumable + + nurse_station_item_id = + #{nurseStationItemId}, + + nurse_station_consumable_id = + #{nurseStationConsumableId}, + + consumable_detail = + #{consumableDetail}, + + consumable_unit = + #{consumableUnit}, + + consumable_count = + #{consumableCount}, + + consumable_price = + #{consumablePrice}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from nurse_station_item_consumable + where id = #{id} + + + + delete + from nurse_station_item_consumable + where nurse_station_item_id = #{id} + + + + delete from nurse_station_item_consumable where id in + + #{id} + + + + + delete from nurse_station_item_consumable where nurse_station_item_id in + + #{id} + + + diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationitem/NurseStationItemMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationitem/NurseStationItemMapper.xml new file mode 100644 index 0000000..a3b7813 --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationitem/NurseStationItemMapper.xml @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + nurse_station_id, + nurse_type_id, + user_id, + item_picture_url, + nurse_item_code, + nurse_item_name, + nurse_item_content, + advance_appoint_duration, + sort, + nurse_classify_id, + appointment_limit_count, + appointment_time_interval, + nurse_classify_name, + shelf_status, + create_by, + create_time, + update_by, + update_time + from nurse_station_item + + + + + + + + insert into nurse_station_item + + nurse_station_id, + + nurse_type_id, + + user_id, + + nurse_item_code, + + nurse_item_name, + + nurse_item_content, + + advance_appoint_duration, + + item_picture_url, + + sort, + + nurse_classify_id, + + appointment_limit_count, + + appointment_time_interval, + + nurse_classify_name, + + shelf_status, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{nurseStationId}, + + #{nurseTypeId}, + + #{userId}, + + #{nurseItemCode}, + + #{nurseItemName}, + + #{nurseItemContent}, + + #{advanceAppointDuration}, + + #{itemPictureUrl}, + + #{sort}, + + #{nurseClassifyId}, + + #{appointmentLimitCount}, + + #{appointmentTimeInterval}, + + #{nurseClassifyName}, + + #{shelfStatus}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + + + update nurse_station_item + + nurse_station_id = + #{nurseStationId}, + + nurse_type_id = + #{nurseTypeId}, + + user_id = + #{userId}, + + nurse_item_code = + #{nurseItemCode}, + + item_picture_url = + #{itemPictureUrl}, + + nurse_item_name = + #{nurseItemName}, + + nurse_item_content = + #{nurseItemContent}, + + advance_appoint_duration = + #{advanceAppointDuration}, + + sort = + #{sort}, + + nurse_classify_id = #{nurseClassifyId}, + appointment_limit_count = #{appointmentLimitCount}, + appointment_time_interval = + #{appointmentTimeInterval}, + + nurse_classify_name = + #{nurseClassifyName}, + + shelf_status = + #{shelfStatus}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from nurse_station_item + where id = #{id} + + + + delete from nurse_station_item where id in + + #{id} + + + + + + + + + + + update nurse_station_item + set shelf_status = #{shelfStatus} + where id = #{id} + + \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationitemprice/NurseStationItemPriceMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationitemprice/NurseStationItemPriceMapper.xml new file mode 100644 index 0000000..4343be2 --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/nursestationitemprice/NurseStationItemPriceMapper.xml @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + select id, + nurse_station_item_id, + serve_duration_unit, + price, + description, + create_by, + create_time, + update_by, + update_time, + commission_amount, + commission_rate + from nurse_station_item_price + + + + + + + + + INSERT INTO + nurse_station_item_price(nurse_station_item_id, serve_duration_unit, price, description,create_by, create_time, + update_by, update_time,commission_amount,commission_rate) + VALUES + + ( + #{productCategory.nurseStationItemId}, + #{productCategory.serveDurationUnit}, + #{productCategory.price}, + #{productCategory.description}, + #{productCategory.createBy}, + #{productCategory.createTime}, + #{productCategory.updateBy}, + #{productCategory.updateTime}, + #{productCategory.commissionAmount}, + #{productCategory.commissionRate} + ) + + + + update nurse_station_item_price + + nurse_station_item_id = + #{nurseStationItemId}, + + serve_duration_unit = + #{serveDurationUnit}, + + price = + #{price}, + + description = + #{description}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + commission_amount = + #{commissionAmount}, + + commission_rate = + #{commissionRate}, + + + where id = #{id} + + + + delete + from nurse_station_item_price + where id = #{id} + + + delete + from nurse_station_item_price + where nurse_station_item_id = #{id} + + + + delete from nurse_station_item_price where id in + + #{id} + + + + delete from nurse_station_item_price where nurse_station_item_id in + + #{id} + + + + \ No newline at end of file