package thyyxxk.webserver.dao.his.querydata; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.*; import thyyxxk.webserver.entity.querydata.CovidVaccinateAppointment; import thyyxxk.webserver.entity.querydata.CovidVaccinateFactory; import thyyxxk.webserver.entity.querydata.CovidVaccinateThreshold; import thyyxxk.webserver.entity.querydata.ZdCovidVaccinate; import java.util.Date; import java.util.List; /** *

* 新冠接种预约 Mapper 接口 *

* * @author 肖蟾 * @since 2021-03-16 */ @Mapper public interface CovidVaccinateAppointmentDao { /** * 获取到新冠疫苗预约日期的最大值 * * @return 返回最大的日期 */ @Select("select max(date) as date from t_covid_vaccinate_threshold") Date maxDate(); /** * 统一修改 或者 单个修改阈值 * * @param dataList 传入 id 和 value */ @Update("") void xiuGaiYuZhi(@Param("dataList") List dataList); /** * 使用了MyBatis-Plus 来查询并分页 新冠疫苗的人数 * * @param page 分页的条件 current size * @param queryWrapper 这个是mybatis-plus的条件构造器 * @return 返回一个分页的对象 包含 符合分页条件的数据 和 符合条件数据条数 */ @Select("select patient_id,a.name,sex, " + "phone,social_no,age,corp_name, " + "job_category_to_string=(b.name),execute_date,vaccinate_code,vaccinate_name,vaccinate_factory " + "from t_covid_vaccinate_appointment a " + "inner join t_covid_appointment_job_category_dict b on (b.id = job_category) ${ew.customSqlSegment} and " + "isnull(del_flag,0)=0") IPage mybatisPlusQueryXGYM(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper); /** * 新增疫苗种类 * 这个 @Options(useGeneratedKeys = true,keyColumn = "id" , keyProperty = "id") 是在插入的时候返回这个自增的id * * @param param name:疫苗名字 enableFlag:是否可以预约 bookTip:描述 * @return 返回状态 */ @Insert("insert into t_zd_covid_vaccinate (name,enable_flag,book_tip) values (#{name},#{enableFlag},#{bookTip})") @Options(useGeneratedKeys = true, keyColumn = "id", keyProperty = "id") void xinZengYiMiao(ZdCovidVaccinate param); /** * 插入对应的 疫苗的厂家 * * @param param 需要插入的字段有 code主键不允许重复 vaccinateId:对应的疫苗 * specification:规格 price:金额,name;名字,enableFlag:是否允许预约 */ @Insert("") void xinZengChangJia(List param); /** * 查询全部的疫苗名称 * * @return 返回全部的数据 */ @Select("select * from t_zd_covid_vaccinate") List chaKanYiMiao(); /** * 查询全部的疫苗名称 * * @param id 对应的疫苗 * @return 对应的数据 */ @Select("select *,(b.date) date,(b.value) value,(b.id) id from t_covid_vaccinate_factory a left join t_covid_vaccinate_threshold_new b on " + "(a.code = b.code and date = convert(char(10),getdate(),120)) where vaccinate_id=#{id}") List chaKanChangJia(@Param("id") Integer id); /** * 在插入 厂家信息的时候查看 是否以及存在了 * * @param dataList 多个 code * @return 返回 id 用来给前端查看 */ @Select("") List changJiaCodePanDuan(@Param("dataList") List dataList); /** * 根据id来修改 疫苗的一些字段 * * @param param 修改的字段为 name enableFlag bookTip 通过id来修改 */ @Update("update t_zd_covid_vaccinate set name=#{name},enable_flag=#{enableFlag},book_tip=#{bookTip} where id=#{id}") void xiuGaiYiMiao(ZdCovidVaccinate param); /** * 根据code来修改厂家 * * @param param 根据code来修改 能修改的值为 * @return 返回boolean */ @Update("update t_covid_vaccinate_factory set specification=#{specification},price=#{price}," + "name=#{name},enable_flag=#{enableFlag} where code =#{code}") void xiuGaiChangJia(CovidVaccinateFactory param); /** * 删除厂家 根据code来删除 * * @param code 删除条件 */ @Delete("delete t_covid_vaccinate_factory where code=#{code}") void shanChuChangJia(@Param("code") Integer code); /** * 查看可以预约 新冠疫苗厂家的信息 * * @return 返回一个list的集合 */ @Select("select code,a.name ,(b.name) vaccinate_name from t_covid_vaccinate_factory a inner join " + "t_zd_covid_vaccinate b on (a.vaccinate_id = b.id) " + "where a.enable_flag =1 ") List kaiQiYuYueChangJia(); /** * 查看厂家的code 和 日期 是否存在 * * @param code 厂家的code * @return 返回最大值的日期 */ @Select("select max(date) as date from t_covid_vaccinate_threshold_new where code = #{code}") Date changJiaYuZhiDoesItExist(@Param("code") int code); /** * 插入每个疫苗厂家的限制阈值 * * @param code 厂家的code * @param dateList 七天的日期 * @param value 阈值 从一开始就获取到的 */ @Insert("") void chaRuMeiYouDeDate(@Param("code") int code, @Param("dateList") List dateList, @Param("value") int value); /** * 查看阈值 * * @param code 根据产品编码 * @param startTime 开始时间 * @param endTime 结束时间 * @return 返回七天数据 */ @Select("select * from t_covid_vaccinate_threshold_new where code=#{code} and date>=#{startTime} and date<=#{endTime} order by date") List chaKanQiTianYuZhi(@Param("code") int code, @Param("startTime") String startTime, @Param("endTime") String endTime); @Update("update t_covid_vaccinate_factory set enable_flag=#{enableFlag} where code = #{code}") void kaiQiHuoGuanBiYuYue(@Param("code") Integer code, @Param("enableFlag") Integer enableFlag); }