|
@@ -6,12 +6,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import thyyxxk.webserver.config.exception.ExceptionEnum;
|
|
|
import thyyxxk.webserver.constants.Capacity;
|
|
|
import thyyxxk.webserver.dao.his.querydata.CovidVaccinateAppointmentMapper;
|
|
|
import thyyxxk.webserver.entity.ResultVo;
|
|
|
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 thyyxxk.webserver.utils.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
@@ -34,13 +38,14 @@ public class CovidVaccinateAppointmentService {
|
|
|
private final CovidVaccinateAppointmentMapper dao;
|
|
|
|
|
|
private static final SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ private static final int GET_DATE_SECTION = 7;
|
|
|
|
|
|
public CovidVaccinateAppointmentService(CovidVaccinateAppointmentMapper dao) {
|
|
|
this.dao = dao;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 通过日期区间或者预约的姓名 来查找到数据 分页查询
|
|
|
+ * 通过日期区间 或者 预约的姓名 来查找到数据 分页查询
|
|
|
* @param param 包含 name姓名 ExecuteDate预约时间 currentPage PageSize
|
|
|
* @return 指定数据
|
|
|
* */
|
|
@@ -59,32 +64,44 @@ public class CovidVaccinateAppointmentService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 查询近七日的预约人数 如果没有指定的日期就插入一条
|
|
|
+ * 查看 可以预约的厂家信息
|
|
|
* @return 指定数据
|
|
|
* */
|
|
|
- static final int GET_DATE_SECTION = 7;
|
|
|
- public ResultVo<List<CovidVaccinateThreshold>> queryCount() throws ParseException {
|
|
|
- for(int i = 1; i<= GET_DATE_SECTION; i++){
|
|
|
+
|
|
|
+ public ResultVo<List<CovidVaccinateFactory>> queryCount() {
|
|
|
+ return ResultVoUtil.success(dao.kaiQiYuYueChangJia());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 插入每日阈值人数的限制 要判断一些 第一次创建数据库中没有对应的值那么就全部插入 如果有了
|
|
|
+ * 就只插入没有的日期 这个是新冠疫苗的厂家每日阈值的人数
|
|
|
+ * @param code 只要产品的 code 去判断有没有这个产品的 日期 和 阈值 如果没有就插入 日期 和 默认的阈值 默认值为150
|
|
|
+ * @return 插入完后就需要返回给 前端 查看近七日的 阈值
|
|
|
+ * */
|
|
|
+ public ResultVo<List<CovidVaccinateThreshold>> queryChangJiaDuiYingDeYuZhi(Integer code) throws ParseException {
|
|
|
+ Date maxDate = dao.changJiaYuZhiDoesItExist(code);
|
|
|
+ for(int i = 1; i<= GET_DATE_SECTION; i++){
|
|
|
Date date =SDF.parse(DateUtil.getOffsetDate(i));
|
|
|
- if (dao.maxDate().getTime()<date.getTime()){
|
|
|
- dao.insertDate(DateUtil.getOffsetDate(i));
|
|
|
- log.info("日期为:{}的没有插入",DateUtil.getOffsetDate(i));
|
|
|
+ //厂家在创建的时候是 没有日期的 那么就需要 插入全部的数据
|
|
|
+ if (maxDate == null){
|
|
|
+ dao.chaRuMeiYouDeDate(code,date);
|
|
|
+ log.info("第一次插入新冠疫苗厂家阈值插入=》code:{},插入的日期为:{}",code,date);
|
|
|
+ }else if (maxDate.getTime()<date.getTime()){
|
|
|
+ dao.chaRuMeiYouDeDate(code,date);
|
|
|
+ log.info("新冠疫苗厂家阈值插入=》code:{},插入的日期为:{}",code,date);
|
|
|
}
|
|
|
}
|
|
|
- return ResultVoUtil.success(dao.queryList(DateUtil.getOffsetDate(1),DateUtil.getOffsetDate(7)));
|
|
|
+ return ResultVoUtil.success(dao.chaKanQiTianYuZhi(code,DateUtil.getOffsetDate(1),DateUtil.getOffsetDate(7)));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改指定日期的人数
|
|
|
- * @param modificationDate 原本阈值人数
|
|
|
- * @param newRevisionDate 设置阈值人数
|
|
|
- * @param limitDate 阈值日期
|
|
|
+ * @param id 根据id来修改 对应的阈值
|
|
|
+ * @param value 设置阈值人数
|
|
|
* @return 返回符合的数据
|
|
|
* */
|
|
|
- public ResultVo<Boolean> update(int modificationDate, Date limitDate, int newRevisionDate){
|
|
|
- log.info("修改疫苗预约人数=>操作员:{},修改的日期为:{},限制人数为:{},原本的人数为:{}",
|
|
|
- TokenUtil.getTokenUserId(),SDF.format(limitDate),newRevisionDate,modificationDate);
|
|
|
- return ResultVoUtil.success(dao.update(newRevisionDate,SDF.format(limitDate)));
|
|
|
+ public ResultVo<Boolean> xiuGaiYuZhi(int id, int value){
|
|
|
+ return ResultVoUtil.success(dao.xiuGaiYuZhi(id,value));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -95,7 +112,7 @@ public class CovidVaccinateAppointmentService {
|
|
|
public void exportExcel(HttpServletResponse response, CovidVaccinateAppointment param) {
|
|
|
log.info("导出新冠疫苗excel: {}", JSON.toJSONString(param));
|
|
|
List<CovidVaccinateAppointment> list = getQueryPage(param).getRecords();
|
|
|
- String[] title = {"门诊id","姓名","性别","联系电话","身份证号","年龄","工作单位","工作性质","预约接种时间"};
|
|
|
+ String[] title = {"门诊id","姓名","性别","联系电话","身份证号","年龄","工作单位","工作性质","预约接种时间","产品编码","产品名称","疫苗厂商"};
|
|
|
String[][] content = new String[list.size()][];
|
|
|
for (int i = 0; i < list.size(); i++){
|
|
|
content[i] = new String[title.length];
|
|
@@ -109,6 +126,9 @@ public class CovidVaccinateAppointmentService {
|
|
|
content[i][6] = pojo.getCorpName();
|
|
|
content[i][7] = pojo.getJobCategoryToString();
|
|
|
content[i][8] = DateUtil.formatDatetime(pojo.getExecuteDate(),"yyyy-MM-dd");
|
|
|
+ content[i][9] = String.valueOf(pojo.getVaccinateCode());
|
|
|
+ content[i][10] = pojo.getVaccinateName();
|
|
|
+ content[i][11] = pojo.getVaccinateFactory();
|
|
|
}
|
|
|
//传三个参数 一个是 固定的 response ,excel的头部信息,excel的内容
|
|
|
ExcelUtil.exportExcel(response, title, content);
|
|
@@ -130,4 +150,96 @@ public class CovidVaccinateAppointmentService {
|
|
|
}
|
|
|
return dao.mybatisPlusQueryXGYM(page,qw);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 插入 新增疫苗种类
|
|
|
+ * @param param name:疫苗名字 enableFlag:是否可以预约 bookTip:描述
|
|
|
+ * @return 返回自增的主键
|
|
|
+ * */
|
|
|
+ public ResultVo<Integer> xinZengYiMiao(ZdCovidVaccinate param){
|
|
|
+ try {
|
|
|
+ log.info("插入疫苗=》操作人:{},信息:{}",TokenUtil.getTokenUserId(),JSON.toJSONString(param));
|
|
|
+ dao.xinZengYiMiao(param);
|
|
|
+ }catch (Exception e){
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR,"该疫苗名称已存在,无法保存");
|
|
|
+ }
|
|
|
+
|
|
|
+ return ResultVoUtil.success(param.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 插入对应的 疫苗的厂家
|
|
|
+ * @param param 需要插入的字段有 code主键不允许重复 vaccinateId:对应的疫苗
|
|
|
+ * specification:规格 price:金额,name;名字,enableFlag:是否允许预约
|
|
|
+ * */
|
|
|
+ public ResultVo<Boolean> xinZengChangJia(List<CovidVaccinateFactory> param){
|
|
|
+ //先判断一边是否有存在这编码的
|
|
|
+ for (CovidVaccinateFactory pojo : param) {
|
|
|
+ Integer vaccinesId = dao.changJiaCodePanDuan(pojo.getCode());
|
|
|
+ if (vaccinesId!=null && vaccinesId>0){
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER,
|
|
|
+ "厂家编码为【"+pojo.getCode()+"】已存在插入失败," +
|
|
|
+ "所属疫苗院内编码为【"+vaccinesId+"】");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (CovidVaccinateFactory pojo : param) {
|
|
|
+ log.info("插入厂家=》操作人:{},信息:{}",TokenUtil.getTokenUserId(),JSON.toJSONString(param));
|
|
|
+ dao.xinZengChangJia(pojo);
|
|
|
+ }
|
|
|
+ return ResultVoUtil.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询全部的疫苗名称
|
|
|
+ * @return 返回全部的数据
|
|
|
+ * */
|
|
|
+ public ResultVo<List<ZdCovidVaccinate>> chaKanYiMiao(){
|
|
|
+ return ResultVoUtil.success(dao.chaKanYiMiao());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询全部的疫苗名称
|
|
|
+ * @param id 对应的疫苗
|
|
|
+ * @return 对应的数据
|
|
|
+ * */
|
|
|
+ public ResultVo<List<CovidVaccinateFactory>> chaKanChangJia(int id){
|
|
|
+ return ResultVoUtil.success(dao.chaKanChangJia(id));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id来修改 疫苗的一些字段
|
|
|
+ * @param param 修改的字段为 name enableFlag bookTip 通过id来修改
|
|
|
+ * */
|
|
|
+ public ResultVo<Boolean> xiuGaiYiMiao(ZdCovidVaccinate param){
|
|
|
+ log.info("修改疫苗=》操作人:{},数据:{}",TokenUtil.getTokenUserId(),JSON.toJSONString(param));
|
|
|
+ return ResultVoUtil.success(dao.xiuGaiYiMiao(param));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据code来修改厂家
|
|
|
+ * @param param 传入需要修改的值和原本的code
|
|
|
+ * @return 返回boolean
|
|
|
+ * */
|
|
|
+ public ResultVo<Boolean> xiuGaiChangJia(CovidVaccinateFactory param){
|
|
|
+ log.info("修改新冠疫苗厂家==》操作人:{},数据:{}",TokenUtil.getTokenUserId(),JSON.toJSONString(param));
|
|
|
+ return ResultVoUtil.success(dao.xiuGaiChangJia(param));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除厂家一些信息
|
|
|
+ * @param code 根据code来删除
|
|
|
+ * @return 返回
|
|
|
+ * */
|
|
|
+ public ResultVo<Boolean> shanChuChangJia(Integer code){
|
|
|
+ log.info("删除新冠疫苗厂家==》操作人:{},删除的数据:{}",TokenUtil.getTokenUserId(),code);
|
|
|
+ return ResultVoUtil.success(dao.shanChuChangJia(code));
|
|
|
+ }
|
|
|
+
|
|
|
+ public ResultVo<Boolean> yiJianXiuGaiRiQi(List<CovidVaccinateThreshold> list){
|
|
|
+ log.info("批量修改新冠疫苗厂家阈值==》操作人:{},数据:{}",TokenUtil.getTokenUserId(),JSON.toJSONString(list));
|
|
|
+ for (CovidVaccinateThreshold pojo : list) {
|
|
|
+ dao.xiuGaiYuZhi(pojo.getId(), pojo.getValue());
|
|
|
+ }
|
|
|
+ return ResultVoUtil.success();
|
|
|
+ }
|
|
|
}
|