护理项目代码移植修改
This commit is contained in:
parent
1a9d2eedd5
commit
444d1f8400
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
@ -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<NurseStationItem> nurseStationItemList;
|
||||
|
||||
/**
|
||||
* 护理站项目信息
|
||||
*/
|
||||
@Valid
|
||||
private NurseStationItem nurseStationItem;
|
||||
|
||||
/**
|
||||
* 护理站护理项目耗材关系表
|
||||
*/
|
||||
private List<NurseStationItemConsumable> nurseStationItemConsumables;
|
||||
|
||||
/**
|
||||
* 护理站护理项目价格表
|
||||
*/
|
||||
@Valid
|
||||
private List<NurseStationItemPrice> nurseStationItemPrices;
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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<NurseStationItemConsumableVO> selectNurseStationItemConsumableList(NurseStationItemConsumable nurseStationItemConsumable);
|
||||
|
||||
/**
|
||||
* 新增护理站护理项目耗材关系
|
||||
*
|
||||
* @param nurseStationItemConsumable 护理站护理项目耗材关系
|
||||
* @return 结果
|
||||
*/
|
||||
int insertNurseStationItemConsumable(List<NurseStationItemConsumable> 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);
|
||||
}
|
||||
@ -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<NurseStationItemVO> selectNurseStationItemList(NurseStationItem nurseStationItem);
|
||||
|
||||
|
||||
/**
|
||||
* 查询所有护理项目信息列表
|
||||
*
|
||||
* @return 护理站护理项目集合
|
||||
*/
|
||||
List<NurseStationItemImportDTO> selectItemInfoList(@Param("nurseStationIdList") List<String> 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<NurseStationItem> getNurseStationItemByIds(@Param("nurseStationItemIdsList") List<Long> 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);
|
||||
}
|
||||
@ -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<NurseStationItemPrice> selectNurseStationItemPriceList(NurseStationItemPrice nurseStationItemPrice);
|
||||
|
||||
/**
|
||||
* 新增护理站护理项目价格
|
||||
*
|
||||
* @param nurseStationItemPrice 护理站护理项目价格
|
||||
* @return 结果
|
||||
*/
|
||||
int insertNurseStationItemPrice(List<NurseStationItemPrice> 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<NurseStationItemPrice> getNurseStationItemPriceByList(@Param("idList") List<Long> idList);
|
||||
}
|
||||
@ -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<NurseStationItemVO> 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<NurseStationItemImportDTO> nurseStationConsumableImport);
|
||||
|
||||
/**
|
||||
* 删除护理站图片地址
|
||||
*
|
||||
* @param pictureUrl 护理站图片地址
|
||||
**/
|
||||
void deletePictureUrl(String pictureUrl);
|
||||
|
||||
/**
|
||||
* 护理项目上下架状态
|
||||
*
|
||||
* @param id 护理项目id
|
||||
* @param shelfStatus 上架状态
|
||||
* @return AjaxResult
|
||||
*/
|
||||
AjaxResult updateShelfStatus(Long id, String shelfStatus);
|
||||
}
|
||||
@ -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<NurseStationItemVO> selectNurseStationItemList(NurseStationItem nurseStationItem) {
|
||||
//查询所有的项目进行
|
||||
startPage();
|
||||
List<NurseStationItemVO> nurseStationItemList = nurseStationItemMapper.selectNurseStationItemList(nurseStationItem);
|
||||
//获取护理站项目的id
|
||||
List<Long> idList = nurseStationItemList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getId())).map(NurseStationItemVO::getId).distinct().collect(Collectors.toList());
|
||||
//根据护理站项目的id去查找所有的项目价格表
|
||||
List<NurseStationItemPrice> nurseStationItemPriceByList = nurseStationItemPriceMapper.getNurseStationItemPriceByList(idList);
|
||||
if (CollectionUtils.isEmpty(nurseStationItemPriceByList)) {
|
||||
return nurseStationItemList;
|
||||
}
|
||||
Map<Long, List<NurseStationItemPrice>> 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<NurseStationItem> nurseStationItemByIds = nurseStationItemMapper.getNurseStationItemByIds(Arrays.asList(ids));
|
||||
//获取护理项目的图片信息
|
||||
List<String> itemPictureUrlList = nurseStationItemByIds.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotBlank(item.getItemPictureUrl())).map(NurseStationItem::getItemPictureUrl).distinct().collect(Collectors.toList());
|
||||
//获取护理项目富文本信息
|
||||
List<String> 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<String> 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<NurseStationItemImportDTO> list) {
|
||||
NurseStationItemImportVO stationItemImport = new NurseStationItemImportVO();
|
||||
//获取当前用户
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return AjaxResult.error("请添加护理项目导入数据!");
|
||||
}
|
||||
//获取所有的护理站名称,去重复以后
|
||||
List<String> stationNameList = list.stream().filter(Objects::nonNull).map(NurseStationItemImportDTO::getNurseStationName).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
|
||||
//获取数据库中已经存在的所有项目信息 +通过服务站名称查询所有的关联
|
||||
List<NurseStationItemImportDTO> allNurseStationItemList = nurseStationItemMapper.selectItemInfoList(stationNameList);
|
||||
//求出差集,进行新增
|
||||
Collection<NurseStationItemImportDTO> subtractList = CollectionUtils.subtract(list, allNurseStationItemList);
|
||||
//求出并集,重复数据
|
||||
Collection<NurseStationItemImportDTO> intersectionList = CollectionUtils.intersection(list, allNurseStationItemList);
|
||||
//如果差集为null直接返回
|
||||
if (CollectionUtils.isEmpty(subtractList)) {
|
||||
stationItemImport.setSuccessList(subtractList);
|
||||
stationItemImport.setFailList(intersectionList);
|
||||
return AjaxResult.success(stationItemImport);
|
||||
}
|
||||
//根据护理项目名称进行分组
|
||||
Map<String, List<NurseStationItemImportDTO>> itemNameMap = list.stream().filter(item -> StringUtils.isNotBlank(item.getNurseItemName())).collect(Collectors.groupingBy(NurseStationItemImportDTO::getNurseItemName));
|
||||
//获取到所有的护理站信息
|
||||
List<NurseStation> nurseStations = nurseStationMapper.selectNurseStationListByNames(stationNameList);
|
||||
//以护理站名称进行分组匹配护理站id
|
||||
Map<String, Long> 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<NurseStationItemPrice> 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<NurseStationItemImportDTO> 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<String> stationItemImgSrc = FileUtils.getImgSrc(nurseStationItemVO.getNurseItemContent());
|
||||
//前端传的
|
||||
List<String> nurseStationItemImgSrc = FileUtils.getImgSrc(nurseStationItem.getNurseItemContent());
|
||||
//差集不同的
|
||||
List<String> 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;
|
||||
}
|
||||
}
|
||||
@ -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<NurseStationItemImportDTO> successList;
|
||||
|
||||
/**
|
||||
* 导入失败数据集合
|
||||
*/
|
||||
private Collection<NurseStationItemImportDTO> failList;
|
||||
}
|
||||
@ -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<NurseStationItemConsumableVO> nurseStationItemConsumables;
|
||||
|
||||
/**
|
||||
* 护理站护理项目价格表
|
||||
*/
|
||||
private List<NurseStationItemPriceVO> nurseStationItemPrices;
|
||||
}
|
||||
@ -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<NurseStationItemConsumableVO> nurseStationItemConsumables;
|
||||
|
||||
/**
|
||||
* 护理站护理项目价格表
|
||||
*/
|
||||
@Valid
|
||||
private List<NurseStationItemPriceVO> nurseStationItemPrices;
|
||||
}
|
||||
@ -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<NurseStationItemPrice> nurseStationItemPrices;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -180,7 +180,7 @@
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<select id="selectCategoryByIds" resultType="com.xinyilu.base.domain.goodsCategory.GoodsCategory">
|
||||
<select id="selectCategoryByIds" resultType="com.xinelu.manage.domain.goodsCategory.GoodsCategory">
|
||||
SELECT
|
||||
id,
|
||||
parent_id,
|
||||
@ -210,7 +210,7 @@
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<select id="selectParentIdById" resultType="com.xinyilu.base.vo.goodsCategory.ParentCategory">
|
||||
<select id="selectParentIdById" resultType="com.xinelu.manage.vo.goodsCategory.ParentCategory">
|
||||
select gc.id,
|
||||
gc.parent_id,
|
||||
gc.goods_category_name,
|
||||
|
||||
@ -0,0 +1,191 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xinelu.manage.mapper.nursestationItemconsumable.NurseStationItemConsumableMapper">
|
||||
|
||||
<resultMap type="NurseStationItemConsumable" id="NurseStationItemConsumableResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="nurseStationItemId" column="nurse_station_item_id"/>
|
||||
<result property="nurseStationConsumableId" column="nurse_station_consumable_id"/>
|
||||
<result property="consumableDetail" column="consumable_detail"/>
|
||||
<result property="consumableUnit" column="consumable_unit"/>
|
||||
<result property="consumableCount" column="consumable_count"/>
|
||||
<result property="consumablePrice" column="consumable_price"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectNurseStationItemConsumableVo">
|
||||
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
|
||||
</sql>
|
||||
|
||||
<select id="selectNurseStationItemConsumableList" parameterType="NurseStationItemConsumable"
|
||||
resultType="com.xinelu.manage.vo.nursestationitemconsumable.NurseStationItemConsumableVO">
|
||||
select nsic.*, nsc.consumable_detail, nsc.consumable_code,nsc.consumable_unit
|
||||
from nurse_station_item_consumable nsic
|
||||
LEFT JOIN nurse_station_consumable nsc ON nsc.id = nsic.nurse_station_consumable_id
|
||||
<where>
|
||||
<if test="nurseStationItemId != null ">
|
||||
and nsic.nurse_station_item_id = #{nurseStationItemId}
|
||||
</if>
|
||||
<if test="nurseStationConsumableId != null ">
|
||||
and nsic.nurse_station_consumable_id = #{nurseStationConsumableId}
|
||||
</if>
|
||||
<if test="consumableCount != null ">
|
||||
and nsic.consumable_count = #{consumableCount}
|
||||
</if>
|
||||
<if test="consumablePrice != null ">
|
||||
and nsic.consumable_price = #{consumablePrice}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectNurseStationItemConsumableById" parameterType="Long"
|
||||
resultType="com.xinelu.manage.vo.nursestationitemconsumable.NurseStationItemConsumableVO">
|
||||
select nsic.*, nsc.consumable_detail, nsc.consumable_code, nsc.consumable_unit
|
||||
from nurse_station_item_consumable nsic
|
||||
LEFT JOIN nurse_station_consumable nsc ON nsc.id = nsic.nurse_station_consumable_id
|
||||
where nsic.id = #{id}
|
||||
</select>
|
||||
|
||||
<!-- <insert id="insertNurseStationItemConsumable" parameterType="NurseStationItemConsumable" useGeneratedKeys="true"
|
||||
keyProperty="id">
|
||||
insert into nurse_station_item_consumable
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="nurseStationItemId != null">nurse_station_item_id,
|
||||
</if>
|
||||
<if test="nurseStationConsumableId != null">nurse_station_consumable_id,
|
||||
</if>
|
||||
<if test="consumableCount != null">consumable_count,
|
||||
</if>
|
||||
<if test="consumablePrice != null">consumable_price,
|
||||
</if>
|
||||
<if test="createBy != null">create_by,
|
||||
</if>
|
||||
<if test="createTime != null">create_time,
|
||||
</if>
|
||||
<if test="updateBy != null">update_by,
|
||||
</if>
|
||||
<if test="updateTime != null">update_time,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="nurseStationItemId != null">#{nurseStationItemId},
|
||||
</if>
|
||||
<if test="nurseStationConsumableId != null">#{nurseStationConsumableId},
|
||||
</if>
|
||||
<if test="consumableCount != null">#{consumableCount},
|
||||
</if>
|
||||
<if test="consumablePrice != null">#{consumablePrice},
|
||||
</if>
|
||||
<if test="createBy != null">#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">#{updateTime},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>-->
|
||||
|
||||
<insert id="insertNurseStationItemConsumable" parameterType="java.util.List">
|
||||
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
|
||||
<foreach collection="list" item="productCategory" index="index"
|
||||
separator=",">
|
||||
(
|
||||
#{productCategory.nurseStationItemId},
|
||||
#{productCategory.nurseStationConsumableId},
|
||||
#{productCategory.consumableDetail},
|
||||
#{productCategory.consumableUnit},
|
||||
#{productCategory.consumableCount},
|
||||
#{productCategory.consumablePrice},
|
||||
#{productCategory.createBy},
|
||||
#{productCategory.createTime},
|
||||
#{productCategory.updateBy},
|
||||
#{productCategory.updateTime}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="updateNurseStationItemConsumable" parameterType="NurseStationItemConsumable">
|
||||
update nurse_station_item_consumable
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="nurseStationItemId != null">nurse_station_item_id =
|
||||
#{nurseStationItemId},
|
||||
</if>
|
||||
<if test="nurseStationConsumableId != null">nurse_station_consumable_id =
|
||||
#{nurseStationConsumableId},
|
||||
</if>
|
||||
<if test="consumableDetail != null">consumable_detail =
|
||||
#{consumableDetail},
|
||||
</if>
|
||||
<if test="consumableUnit != null">consumable_unit =
|
||||
#{consumableUnit},
|
||||
</if>
|
||||
<if test="consumableCount != null">consumable_count =
|
||||
#{consumableCount},
|
||||
</if>
|
||||
<if test="consumablePrice != null">consumable_price =
|
||||
#{consumablePrice},
|
||||
</if>
|
||||
<if test="createBy != null">create_by =
|
||||
#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">create_time =
|
||||
#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">update_by =
|
||||
#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">update_time =
|
||||
#{updateTime},
|
||||
</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteNurseStationItemConsumableById" parameterType="Long">
|
||||
delete
|
||||
from nurse_station_item_consumable
|
||||
where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteNurseStationItemConsumableByItemId" parameterType="Long">
|
||||
delete
|
||||
from nurse_station_item_consumable
|
||||
where nurse_station_item_id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteNurseStationItemConsumableByIds" parameterType="String">
|
||||
delete from nurse_station_item_consumable where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<delete id="deleteNurseStationItemConsumableByItemIds" parameterType="String">
|
||||
delete from nurse_station_item_consumable where nurse_station_item_id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
@ -0,0 +1,438 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xinelu.manage.mapper.nursestationitem.NurseStationItemMapper">
|
||||
|
||||
<resultMap type="NurseStationItem" id="NurseStationItemResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="nurseStationId" column="nurse_station_id"/>
|
||||
<result property="nurseTypeId" column="nurse_type_id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="nurseItemCode" column="nurse_item_code"/>
|
||||
<result property="nurseItemName" column="nurse_item_name"/>
|
||||
<result property="nurseItemContent" column="nurse_item_content"/>
|
||||
<result property="advanceAppointDuration" column="advance_appoint_duration"/>
|
||||
<result property="itemPictureUrl" column="item_picture_url"/>
|
||||
<result property="sort" column="sort"/>
|
||||
<result property="nurseClassifyId" column="nurse_classify_id"/>
|
||||
<result property="appointmentLimitCount" column="appointment_limit_count"/>
|
||||
<result property="appointmentTimeInterval" column="appointment_time_interval"/>
|
||||
<result property="nurseClassifyName" column="nurse_classify_name"/>
|
||||
<result property="shelfStatus" column="shelf_status"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
<!--护理项目映射-->
|
||||
<resultMap type="com.xinelu.manage.vo.nursestationitem.NurseStationItemInfoDetailsVO" id="NurseStationItemInfoVO">
|
||||
<result property="id" column="id"/>
|
||||
<result property="nurseStationId" column="nurse_station_id"/>
|
||||
<result property="nurseTypeId" column="nurse_type_id"/>
|
||||
<result property="nurseItemCode" column="nurse_item_code"/>
|
||||
<result property="nurseItemName" column="nurse_item_name"/>
|
||||
<result property="itemPictureUrl" column="item_picture_url"/>
|
||||
<result property="advanceAppointDuration" column="advance_appoint_duration"/>
|
||||
<result property="nurseItemContent" column="nurse_item_content"/>
|
||||
<result property="sort" column="sort"/>
|
||||
<result property="appointmentLimitCount" column="appointment_limit_count"/>
|
||||
<result property="appointmentTimeInterval" column="appointment_time_interval"/>
|
||||
<result property="nurseClassifyId" column="nurse_classify_id"/>
|
||||
<result property="nurseClassifyName" column="nurse_classify_name"/>
|
||||
<result property="classifyName" column="classify_name"/>
|
||||
<result property="nurseStationName" column="nurse_station_name"/>
|
||||
<result property="shelfStatus" column="shelf_status"/>
|
||||
<collection property="nurseStationItemConsumables" javaType="java.util.List"
|
||||
resultMap="NurseStationItemConsumableResult"/>
|
||||
<collection property="nurseStationItemPrices" javaType="java.util.List"
|
||||
resultMap="NurseStationItemPriceResult"/>
|
||||
</resultMap>
|
||||
<!--护理站项目耗材关系表-->
|
||||
<resultMap type="com.xinelu.manage.vo.nursestationitemconsumable.NurseStationItemConsumableVO"
|
||||
id="NurseStationItemConsumableResult">
|
||||
<result property="consumableId" column="consumableId"/>
|
||||
<result property="nurseStationConsumableId" column="nurse_station_consumable_id"/>
|
||||
<result property="consumableCount" column="consumable_count"/>
|
||||
<result property="consumablePrice" column="consumable_price"/>
|
||||
<result property="consumableDetail" column="consumable_detail"/>
|
||||
<result property="consumableCode" column="consumable_code"/>
|
||||
<result property="consumableUnit" column="consumable_unit"/>
|
||||
</resultMap>
|
||||
<!--护理站价格-->
|
||||
<resultMap type="com.xinelu.manage.vo.nursestationitemprice.NurseStationItemPriceVO"
|
||||
id="NurseStationItemPriceResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="nurseItemPriceId" column="nurseItemPriceId"/>
|
||||
<result property="nurseStationItemId" column="nurse_station_item_id"/>
|
||||
<result property="serveDurationUnit" column="serve_duration_unit"/>
|
||||
<result property="price" column="price"/>
|
||||
<result property="description" column="description"/>
|
||||
<result property="commissionAmount" column="commission_amount"/>
|
||||
<result property="commissionRate" column="commission_rate"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectNurseStationItemInfoVO" resultMap="NurseStationItemInfoVO">
|
||||
select nst.id,
|
||||
nst.nurse_station_id,
|
||||
nst.nurse_type_id,
|
||||
nst.nurse_item_code,
|
||||
nst.nurse_item_name,
|
||||
nst.item_picture_url,
|
||||
nst.advance_appoint_duration,
|
||||
nst.nurse_item_content,
|
||||
nst.sort,
|
||||
nst.nurse_classify_id,
|
||||
nst.appointment_limit_count,
|
||||
nst.appointment_time_interval,
|
||||
nst.nurse_classify_name,
|
||||
nst.shelf_status,
|
||||
nci.classify_name,
|
||||
ns.nurse_station_name,
|
||||
nsip.id nurseItemPriceId,
|
||||
nsip.nurse_station_item_id,
|
||||
nsip.serve_duration_unit,
|
||||
nsip.price,
|
||||
nsip.description,
|
||||
nsip.commission_amount,
|
||||
nsip.commission_rate,
|
||||
nsic.id consumableId,
|
||||
nsic.nurse_station_consumable_id,
|
||||
nsic.consumable_detail,
|
||||
nsic.consumable_unit,
|
||||
nsic.consumable_count,
|
||||
nsic.consumable_price
|
||||
FROM nurse_station_item nst
|
||||
LEFT JOIN nurse_station_item_price nsip ON nsip.nurse_station_item_id = nst.id
|
||||
LEFT JOIN nurse_station_item_consumable nsic ON nsic.nurse_station_item_id = nst.id
|
||||
LEFT JOIN nurse_station ns ON ns.id = nst.nurse_station_id
|
||||
LEFT JOIN nurse_classify_info nci ON nci.id = nst.nurse_classify_id
|
||||
where nst.id = #{id}
|
||||
</select>
|
||||
|
||||
<sql id="selectNurseStationItemVo">
|
||||
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
|
||||
</sql>
|
||||
|
||||
<select id="selectNurseStationItemList" parameterType="NurseStationItem"
|
||||
resultType="com.xinelu.manage.vo.nursestationitem.NurseStationItemVO">
|
||||
select nst.* ,ns.nurse_station_name, nci.classify_name, nt.nurse_type_name
|
||||
from nurse_station_item nst
|
||||
LEFT JOIN nurse_station ns on ns.id=nst.nurse_station_id
|
||||
LEFT JOIN nurse_type nt on nt.id=nst.nurse_type_id
|
||||
LEFT JOIN nurse_classify_info nci ON nci.id = nst.nurse_classify_id
|
||||
<where>
|
||||
<if test="nurseStationId != null ">
|
||||
and nst.nurse_station_id = #{nurseStationId}
|
||||
</if>
|
||||
<if test="nurseTypeId != null ">
|
||||
and nst.nurse_type_id = #{nurseTypeId}
|
||||
</if>
|
||||
<if test="userId != null ">
|
||||
and nst.user_id = #{userId}
|
||||
</if>
|
||||
<if test="nurseItemCode != null and nurseItemCode != ''">
|
||||
and nst.nurse_item_code like concat('%', #{nurseItemCode}, '%')
|
||||
</if>
|
||||
<if test="nurseItemName != null and nurseItemName != ''">
|
||||
and nst.nurse_item_name like concat('%', #{nurseItemName}, '%')
|
||||
</if>
|
||||
<if test="nurseItemContent != null and nurseItemContent != ''">
|
||||
and nst.nurse_item_content = #{nurseItemContent}
|
||||
</if>
|
||||
<if test="advanceAppointDuration != null ">
|
||||
and nst.advance_appoint_duration = #{advanceAppointDuration}
|
||||
</if>
|
||||
<if test="sort != null ">
|
||||
and nst.sort = #{sort}
|
||||
</if>
|
||||
<if test="shelfStatus != null and shelfStatus != ''">
|
||||
and nst.shelf_status = #{shelfStatus}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY nst.create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="selectNurseStationItemById" parameterType="Long"
|
||||
resultType="com.xinelu.manage.vo.nursestationitem.NurseStationItemVO">
|
||||
select nst.id,
|
||||
nst.nurse_station_id,
|
||||
nst.nurse_type_id,
|
||||
nst.nurse_item_code,
|
||||
nst.nurse_item_name,
|
||||
nst.item_picture_url,
|
||||
nst.advance_appoint_duration,
|
||||
nst.nurse_item_content,
|
||||
nst.create_time,
|
||||
nst.create_by,
|
||||
nst.sort,
|
||||
nst.nurse_classify_id,
|
||||
nst.appointment_limit_count,
|
||||
nst.appointment_time_interval,
|
||||
nst.nurse_classify_name,
|
||||
nst.shelf_status,
|
||||
ns.nurse_station_name,
|
||||
nt.nurse_type_name
|
||||
from nurse_station_item nst
|
||||
LEFT JOIN nurse_station ns on ns.id = nst.nurse_station_id
|
||||
LEFT JOIN nurse_type nt on nt.id = nst.nurse_type_id
|
||||
where nst.id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertNurseStationItem" parameterType="NurseStationItem" useGeneratedKeys="true"
|
||||
keyProperty="id">
|
||||
insert into nurse_station_item
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="nurseStationId != null">nurse_station_id,
|
||||
</if>
|
||||
<if test="nurseTypeId != null">nurse_type_id,
|
||||
</if>
|
||||
<if test="userId != null">user_id,
|
||||
</if>
|
||||
<if test="nurseItemCode != null">nurse_item_code,
|
||||
</if>
|
||||
<if test="nurseItemName != null">nurse_item_name,
|
||||
</if>
|
||||
<if test="nurseItemContent != null">nurse_item_content,
|
||||
</if>
|
||||
<if test="advanceAppointDuration != null">advance_appoint_duration,
|
||||
</if>
|
||||
<if test="itemPictureUrl != null">item_picture_url,
|
||||
</if>
|
||||
<if test="sort != null">sort,
|
||||
</if>
|
||||
<if test="nurseClassifyId != null">nurse_classify_id,
|
||||
</if>
|
||||
<if test="appointmentLimitCount != null">appointment_limit_count,
|
||||
</if>
|
||||
<if test="appointmentTimeInterval != null">appointment_time_interval,
|
||||
</if>
|
||||
<if test="nurseClassifyName != null">nurse_classify_name,
|
||||
</if>
|
||||
<if test="shelfStatus != null">shelf_status,
|
||||
</if>
|
||||
<if test="createBy != null">create_by,
|
||||
</if>
|
||||
<if test="createTime != null">create_time,
|
||||
</if>
|
||||
<if test="updateBy != null">update_by,
|
||||
</if>
|
||||
<if test="updateTime != null">update_time,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="nurseStationId != null">#{nurseStationId},
|
||||
</if>
|
||||
<if test="nurseTypeId != null">#{nurseTypeId},
|
||||
</if>
|
||||
<if test="userId != null">#{userId},
|
||||
</if>
|
||||
<if test="nurseItemCode != null">#{nurseItemCode},
|
||||
</if>
|
||||
<if test="nurseItemName != null">#{nurseItemName},
|
||||
</if>
|
||||
<if test="nurseItemContent != null">#{nurseItemContent},
|
||||
</if>
|
||||
<if test="advanceAppointDuration != null">#{advanceAppointDuration},
|
||||
</if>
|
||||
<if test="itemPictureUrl != null">#{itemPictureUrl},
|
||||
</if>
|
||||
<if test="sort != null">#{sort},
|
||||
</if>
|
||||
<if test="nurseClassifyId != null">#{nurseClassifyId},
|
||||
</if>
|
||||
<if test="appointmentLimitCount != null">#{appointmentLimitCount},
|
||||
</if>
|
||||
<if test="appointmentTimeInterval != null">#{appointmentTimeInterval},
|
||||
</if>
|
||||
<if test="nurseClassifyName != null">#{nurseClassifyName},
|
||||
</if>
|
||||
<if test="shelfStatus != null">#{shelfStatus},
|
||||
</if>
|
||||
<if test="createBy != null">#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">#{updateTime},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<!-- <insert id="insertNurseStationItem" parameterType="java.util.List">
|
||||
INSERT INTO
|
||||
nurse_station_item(nurse_station_id, nurse_type_id, user_id, item_picture_url, nurse_item_code, nurse_item_name,nurse_item_content,advance_appoint_duration,sort,create_by, create_time, update_by, update_time)
|
||||
VALUES
|
||||
<foreach collection="list" item="productCategory" index="index"
|
||||
separator=",">
|
||||
(
|
||||
#{productCategory.nurseStationId},
|
||||
#{productCategory.nurseTypeId},
|
||||
#{productCategory.userId},
|
||||
#{productCategory.itemPictureUrl},
|
||||
#{productCategory.itemPictureUrl},
|
||||
#{productCategory.nurseItemCode},
|
||||
#{productCategory.nurseItemName},
|
||||
#{productCategory.nurseItemContent},
|
||||
#{productCategory.advanceAppointDuration},
|
||||
#{productCategory.sort},
|
||||
#{productCategory.createBy},
|
||||
#{productCategory.createTime},
|
||||
#{productCategory.updateBy},
|
||||
#{productCategory.updateTime}
|
||||
)
|
||||
</foreach>
|
||||
</insert>-->
|
||||
|
||||
<update id="updateNurseStationItem" parameterType="NurseStationItem">
|
||||
update nurse_station_item
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="nurseStationId != null">nurse_station_id =
|
||||
#{nurseStationId},
|
||||
</if>
|
||||
<if test="nurseTypeId != null">nurse_type_id =
|
||||
#{nurseTypeId},
|
||||
</if>
|
||||
<if test="userId != null">user_id =
|
||||
#{userId},
|
||||
</if>
|
||||
<if test="nurseItemCode != null">nurse_item_code =
|
||||
#{nurseItemCode},
|
||||
</if>
|
||||
<if test="itemPictureUrl != null">item_picture_url =
|
||||
#{itemPictureUrl},
|
||||
</if>
|
||||
<if test="nurseItemName != null">nurse_item_name =
|
||||
#{nurseItemName},
|
||||
</if>
|
||||
<if test="nurseItemContent != null">nurse_item_content =
|
||||
#{nurseItemContent},
|
||||
</if>
|
||||
<if test="advanceAppointDuration != null">advance_appoint_duration =
|
||||
#{advanceAppointDuration},
|
||||
</if>
|
||||
<if test="sort != null">sort =
|
||||
#{sort},
|
||||
</if>
|
||||
nurse_classify_id = #{nurseClassifyId},
|
||||
appointment_limit_count = #{appointmentLimitCount},
|
||||
<if test="appointmentTimeInterval != null">appointment_time_interval =
|
||||
#{appointmentTimeInterval},
|
||||
</if>
|
||||
<if test="nurseClassifyName != null">nurse_classify_name =
|
||||
#{nurseClassifyName},
|
||||
</if>
|
||||
<if test="shelfStatus != null">shelf_status =
|
||||
#{shelfStatus},
|
||||
</if>
|
||||
<if test="createBy != null">create_by =
|
||||
#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">create_time =
|
||||
#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">update_by =
|
||||
#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">update_time =
|
||||
#{updateTime},
|
||||
</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteNurseStationItemById" parameterType="Long">
|
||||
delete
|
||||
from nurse_station_item
|
||||
where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteNurseStationItemByIds" parameterType="String">
|
||||
delete from nurse_station_item where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectItemInfoList" parameterType="String"
|
||||
resultType="com.xinelu.manage.dto.nursestationitem.NurseStationItemImportDTO">
|
||||
select nst.nurse_item_name, ns.nurse_station_name,nst.advance_appoint_duration,
|
||||
nsip.price,nsip.serve_duration_unit,nst.id as nurseStationItemId
|
||||
from nurse_station_item nst
|
||||
LEFT JOIN nurse_station ns on ns.id = nst.nurse_station_id
|
||||
LEFT JOIN nurse_station_item_price nsip on nsip.nurse_station_item_id = nst.id
|
||||
<where>
|
||||
<if test="nurseStationIdList != null and nurseStationIdList.size() > 0">
|
||||
and ns.nurse_station_name in
|
||||
<foreach item="nurseStationName" collection="nurseStationIdList" open="(" separator="," close=")">
|
||||
#{nurseStationName}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getNurseStationItemByIds" parameterType="NurseStationItem"
|
||||
resultType="NurseStationItem">
|
||||
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,
|
||||
nurse_classify_id,
|
||||
appointment_limit_count,
|
||||
appointment_time_interval,
|
||||
nurse_classify_name,
|
||||
shelf_status,
|
||||
sort,
|
||||
create_by,
|
||||
create_time,
|
||||
update_by,
|
||||
update_time
|
||||
from nurse_station_item
|
||||
<where>
|
||||
<if test="nurseStationItemIdsList != null and nurseStationItemIdsList.size()>0 ">
|
||||
and id in
|
||||
<foreach item="nurseStationItemIds" collection="nurseStationItemIdsList" open="(" separator=","
|
||||
close=")">
|
||||
#{nurseStationItemIds}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
order by create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getNurseStationItemById" parameterType="long" resultType="nurseStationItem">
|
||||
<include refid="selectNurseStationItemVo"></include>
|
||||
where id = #{itemId}
|
||||
</select>
|
||||
|
||||
<update id="updateShelfStatusById">
|
||||
update nurse_station_item
|
||||
set shelf_status = #{shelfStatus}
|
||||
where id = #{id}
|
||||
</update>
|
||||
</mapper>
|
||||
@ -0,0 +1,194 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xinelu.manage.mapper.nursestationitemprice.NurseStationItemPriceMapper">
|
||||
|
||||
<resultMap type="NurseStationItemPrice" id="NurseStationItemPriceResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="nurseStationItemId" column="nurse_station_item_id"/>
|
||||
<result property="serveDurationUnit" column="serve_duration_unit"/>
|
||||
<result property="price" column="price"/>
|
||||
<result property="description" column="description"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="commissionAmount" column="commission_amount"/>
|
||||
<result property="commissionRate" column="commission_rate"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectNurseStationItemPriceVo">
|
||||
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
|
||||
</sql>
|
||||
|
||||
<select id="selectNurseStationItemPriceList" parameterType="NurseStationItemPrice"
|
||||
resultMap="NurseStationItemPriceResult">
|
||||
<include refid="selectNurseStationItemPriceVo"/>
|
||||
<where>
|
||||
<if test="nurseStationItemId != null ">
|
||||
and nurse_station_item_id = #{nurseStationItemId}
|
||||
</if>
|
||||
<if test="serveDurationUnit != null and serveDurationUnit != ''">
|
||||
and serve_duration_unit = #{serveDurationUnit}
|
||||
</if>
|
||||
<if test="price != null ">
|
||||
and price = #{price}
|
||||
</if>
|
||||
<if test="description != null and description != ''">
|
||||
and description = #{description}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectNurseStationItemPriceById" parameterType="Long"
|
||||
resultMap="NurseStationItemPriceResult">
|
||||
<include refid="selectNurseStationItemPriceVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<!-- <insert id="insertNurseStationItemPrice" parameterType="NurseStationItemPrice" useGeneratedKeys="true"
|
||||
keyProperty="id">
|
||||
insert into nurse_station_item_price
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="nurseStationItemId != null">nurse_station_item_id,
|
||||
</if>
|
||||
<if test="serveDurationUnit != null">serve_duration_unit,
|
||||
</if>
|
||||
<if test="price != null">price,
|
||||
</if>
|
||||
<if test="description != null">description,
|
||||
</if>
|
||||
<if test="createBy != null">create_by,
|
||||
</if>
|
||||
<if test="createTime != null">create_time,
|
||||
</if>
|
||||
<if test="updateBy != null">update_by,
|
||||
</if>
|
||||
<if test="updateTime != null">update_time,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="nurseStationItemId != null">#{nurseStationItemId},
|
||||
</if>
|
||||
<if test="serveDurationUnit != null">#{serveDurationUnit},
|
||||
</if>
|
||||
<if test="price != null">#{price},
|
||||
</if>
|
||||
<if test="description != null">#{description},
|
||||
</if>
|
||||
<if test="createBy != null">#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">#{updateTime},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>-->
|
||||
<insert id="insertNurseStationItemPrice" parameterType="java.util.List">
|
||||
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
|
||||
<foreach collection="list" item="productCategory" index="index"
|
||||
separator=",">
|
||||
(
|
||||
#{productCategory.nurseStationItemId},
|
||||
#{productCategory.serveDurationUnit},
|
||||
#{productCategory.price},
|
||||
#{productCategory.description},
|
||||
#{productCategory.createBy},
|
||||
#{productCategory.createTime},
|
||||
#{productCategory.updateBy},
|
||||
#{productCategory.updateTime},
|
||||
#{productCategory.commissionAmount},
|
||||
#{productCategory.commissionRate}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
<update id="updateNurseStationItemPrice" parameterType="NurseStationItemPrice">
|
||||
update nurse_station_item_price
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="nurseStationItemId != null">nurse_station_item_id =
|
||||
#{nurseStationItemId},
|
||||
</if>
|
||||
<if test="serveDurationUnit != null">serve_duration_unit =
|
||||
#{serveDurationUnit},
|
||||
</if>
|
||||
<if test="price != null">price =
|
||||
#{price},
|
||||
</if>
|
||||
<if test="description != null">description =
|
||||
#{description},
|
||||
</if>
|
||||
<if test="createBy != null">create_by =
|
||||
#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">create_time =
|
||||
#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">update_by =
|
||||
#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">update_time =
|
||||
#{updateTime},
|
||||
</if>
|
||||
<if test="commissionAmount != null">commission_amount =
|
||||
#{commissionAmount},
|
||||
</if>
|
||||
<if test="commissionRate != null">commission_rate =
|
||||
#{commissionRate},
|
||||
</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteNurseStationItemPriceById" parameterType="Long">
|
||||
delete
|
||||
from nurse_station_item_price
|
||||
where id = #{id}
|
||||
</delete>
|
||||
<delete id="deleteNurseStationItemPriceByItemId" parameterType="Long">
|
||||
delete
|
||||
from nurse_station_item_price
|
||||
where nurse_station_item_id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteNurseStationItemPriceByIds" parameterType="String">
|
||||
delete from nurse_station_item_price where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
<delete id="deleteNurseStationItemPriceByItemIds" parameterType="String">
|
||||
delete from nurse_station_item_price where nurse_station_item_id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
<select id="getNurseStationItemPriceByList" parameterType="NurseStationItemPrice"
|
||||
resultType="NurseStationItemPrice">
|
||||
<include refid="selectNurseStationItemPriceVo"/>
|
||||
<where>
|
||||
<if test="idList != null and idList.size() > 0">
|
||||
and nurse_station_item_id in
|
||||
<foreach item="nurseStationId" collection="idList" open="(" separator="," close=")">
|
||||
#{nurseStationId}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue
Block a user