From 1940d9f95048e896b5c56004feb56f2e388b1fb6 Mon Sep 17 00:00:00 2001 From: haown <454902499@qq.com> Date: Thu, 26 Oct 2023 16:13:26 +0800 Subject: [PATCH] =?UTF-8?q?update=3D=3D=3D>:=E4=BF=AE=E6=94=B9=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E6=8E=92=E7=8F=AD=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppletSchedulePlanController.java | 45 ++++++++++++++++--- .../HealthConsultationController.java | 4 ++ .../scheduleplan/SchedulePlanDetailDTO.java | 5 ++- .../impl/AppletSchedulePlanServiceImpl.java | 16 +++++-- .../HospitalPersonInfoController.java | 13 +++--- .../ISchedulePlanDetailService.java | 4 ++ .../impl/SchedulePlanDetailServiceImpl.java | 13 ++++++ .../SchedulePlanDetailMapper.xml | 2 +- 8 files changed, 83 insertions(+), 19 deletions(-) diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/appletscheduleplan/AppletSchedulePlanController.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/appletscheduleplan/AppletSchedulePlanController.java index 5c6005e..c4c5070 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/appletscheduleplan/AppletSchedulePlanController.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/appletscheduleplan/AppletSchedulePlanController.java @@ -7,14 +7,19 @@ import com.xinelu.applet.utils.AppointmentTimeUtil; import com.xinelu.applet.vo.specialdisease.WeekDaysVO; import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.R; +import com.xinelu.common.utils.StringUtils; import com.xinelu.manage.domain.scheduleplandetail.SchedulePlanDetail; import com.xinelu.manage.service.scheduleplandetail.ISchedulePlanDetailService; import com.xinelu.manage.vo.scheduleplan.SchedulePlanVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.time.LocalDate; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.compress.utils.Lists; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -44,6 +49,9 @@ public class AppletSchedulePlanController extends BaseController { @ApiOperation("查询医生排班明细") @GetMapping("/getListByDoctor") public R> getListByDoctor(SchedulePlanDTO plan) { + if (plan.getDoctorId() == null) { + return R.fail("请选择医生"); + } LocalDate nowTime = LocalDate.now(); List weekDaysList = Lists.newArrayList(); appointmentTimeUtil.setWeekDayAndWeekDate(nowTime, weekDaysList); @@ -53,12 +61,37 @@ public class AppletSchedulePlanController extends BaseController { } @PostMapping("/updateStatus") - @ApiOperation(value = "医生修改排班时间段的可预约状态") - public R updateStatus(@RequestBody SchedulePlanDetailDTO schedulePlanDetailDTO) { - SchedulePlanDetail planDetail = new SchedulePlanDetail(); - planDetail.setId(schedulePlanDetailDTO.getSchedulePlanDetailId()); - planDetail.setStatus(schedulePlanDetailDTO.getStatus()); - int flag = schedulePlanDetailService.update(planDetail); + @ApiOperation(value = "医生批量修改排班时间段的可预约状态") + public R batchUpdateStatus(@RequestBody SchedulePlanDetailDTO schedulePlanDetailDTO) { + if (CollectionUtils.isEmpty(schedulePlanDetailDTO.getSchedulePlanDetailIds())) { + return R.fail("请选择时间段"); + } + int timeoutCount = 0; + List planDetailList = new ArrayList<>(); + for (long planDetailId : schedulePlanDetailDTO.getSchedulePlanDetailIds()) { + SchedulePlanDetail planDetail = schedulePlanDetailService.getById(planDetailId); + if (planDetail != null) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm"); + // 判断当前时间段是否已有居民预约 + if (StringUtils.equals("1", planDetail.getApplyState()) && StringUtils.equals("0", schedulePlanDetailDTO.getStatus())) { + return R.fail(planDetail.getScheduleStartTime().format(formatter) + "~" + planDetail.getScheduleEndTime().format(formatter) + "已有居民预约,请取消订单后再修改"); + } + // 判断时间段是否已过 + if (planDetail.getScheduleDate().equals(LocalDate.now()) && planDetail.getScheduleStartTime().isBefore(LocalTime.now())) { + timeoutCount++; + } + planDetail.setStatus(schedulePlanDetailDTO.getStatus()); + planDetailList.add(planDetail); + } + } + + if (timeoutCount == schedulePlanDetailDTO.getSchedulePlanDetailIds().size()) { + return R.fail("该时间段已过不可修改"); + } + int flag = 0; + if (CollectionUtils.isNotEmpty(planDetailList)) { + flag = schedulePlanDetailService.batchUpdate(planDetailList); + } return flag < 0 ? R.fail() : R.ok(); } } diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/healthconsultation/HealthConsultationController.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/healthconsultation/HealthConsultationController.java index bd1551d..315bb9e 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/healthconsultation/HealthConsultationController.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/healthconsultation/HealthConsultationController.java @@ -10,6 +10,8 @@ import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.custominterface.Insert; import com.xinelu.common.exception.ServiceException; import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -24,6 +26,7 @@ import java.util.Objects; * @Author zh * @Date 2023-03-07 */ +@Api(tags = "APP及小程序健康咨询接口") @RestController @RequestMapping("/nurseApp/healthConsultation") public class HealthConsultationController extends BaseController { @@ -78,6 +81,7 @@ public class HealthConsultationController extends BaseController { * @param healthConsultationOrderDTO 健康咨询订单 * @return 结果 */ + @ApiOperation(value = "手机App和微信小程序健康咨询确认订单方法") @MobileRequestAuthorization @RepeatSubmit @PostMapping("/addHealthConsultationOrder") diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/scheduleplan/SchedulePlanDetailDTO.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/scheduleplan/SchedulePlanDetailDTO.java index 69a20df..53979b3 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/scheduleplan/SchedulePlanDetailDTO.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/scheduleplan/SchedulePlanDetailDTO.java @@ -2,6 +2,7 @@ package com.xinelu.applet.dto.scheduleplan; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.util.List; import lombok.Data; /** @@ -13,8 +14,8 @@ import lombok.Data; @Data public class SchedulePlanDetailDTO { - @ApiModelProperty("医生排班计划明细表id") - private Long schedulePlanDetailId; + @ApiModelProperty("医生排班计划明细表id列表") + private List schedulePlanDetailIds; @ApiModelProperty("启用状态(0:可预约 1:不可预约)") private String status; diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/scheduleplan/impl/AppletSchedulePlanServiceImpl.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/scheduleplan/impl/AppletSchedulePlanServiceImpl.java index 422b503..d63c11b 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/scheduleplan/impl/AppletSchedulePlanServiceImpl.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/scheduleplan/impl/AppletSchedulePlanServiceImpl.java @@ -8,6 +8,7 @@ import com.xinelu.manage.domain.scheduleplandetail.SchedulePlanDetail; import com.xinelu.manage.mapper.scheduleplandetail.SchedulePlanDetailMapper; import com.xinelu.manage.vo.scheduleplan.SchedulePlanVO; import com.xinelu.manage.vo.scheduleplandetail.SchedulePlanDetailVO; +import java.time.LocalDate; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -36,22 +37,31 @@ public class AppletSchedulePlanServiceImpl implements IAppletSchedulePlanService SchedulePlanDetail query = new SchedulePlanDetail(); query.setDoctorId(schedulePlan.getDoctorId()); query.setScheduleDate(schedulePlan.getWeekdays().get(i).getHealthConsultationDate()); - query.setAfter(1); List detailList = planDetailMapper.getList(query); List morningList = new ArrayList<>(); List afternoonList = new ArrayList<>(); + LocalDate scheduleDate = schedulePlan.getWeekdays().get(i).getHealthConsultationDate(); if (CollectionUtils.isNotEmpty(detailList)) { detailList.forEach(detail -> { + // 可预约状态 + boolean status = true; + if (StringUtils.equals("1", detail.getStatus()) || StringUtils.equals("1", detail.getApplyState())) { + status = false; + } + if (scheduleDate.isEqual(LocalDate.now()) && detail.getScheduleStartTime().isBefore(LocalTime.now())) { + status = false; + } + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm"); if (StringUtils.equals("1", detail.getType())) { morningList.add(SchedulePlanDetailVO.builder().schedulePlanDetailId(detail.getId()) .scheduleTimeSlot(detail.getScheduleStartTime().format(formatter) + "~" + detail.getScheduleEndTime().format(formatter)) - .status(StringUtils.equals("0", detail.getStatus()) && StringUtils.equals("0", detail.getApplyState())).build()); + .status(status).build()); } if (StringUtils.equals("2", detail.getType())) { afternoonList.add(SchedulePlanDetailVO.builder().schedulePlanDetailId(detail.getId()) .scheduleTimeSlot(detail.getScheduleStartTime().format(formatter) + "~" + detail.getScheduleEndTime().format(formatter)) - .status(StringUtils.equals("0", detail.getStatus()) && StringUtils.equals("0", detail.getApplyState())).build()); + .status(status).build()); } }); } diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoninfo/HospitalPersonInfoController.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoninfo/HospitalPersonInfoController.java index fe1e8ee..734510d 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoninfo/HospitalPersonInfoController.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/hospitalpersoninfo/HospitalPersonInfoController.java @@ -18,7 +18,6 @@ import io.swagger.annotations.ApiOperation; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -45,7 +44,7 @@ public class HospitalPersonInfoController extends BaseController { * 查询健康咨询-科室人员信息分页列表 */ @ApiOperation("查询健康咨询-科室人员信息分页列表") - @PreAuthorize("@ss.hasPermi('system:hospitalPerson:list')") + //@PreAuthorize("@ss.hasPermi('system:hospitalPerson:list')") @GetMapping("/list") public TableDataInfo list(HospitalPersonInfoVO hospitalPersonInfo) { startPage(); @@ -57,7 +56,7 @@ public class HospitalPersonInfoController extends BaseController { * 查询健康咨询-科室人员信息列表 */ @ApiOperation("查询健康咨询-科室人员信息列表") - @PreAuthorize("@ss.hasPermi('system:hospitalPerson:list')") + //@PreAuthorize("@ss.hasPermi('system:hospitalPerson:list')") @GetMapping("/getList") public AjaxResult getList(HospitalPersonInfoVO hospitalPersonInfo) { List list = hospitalPersonInfoService.getList(hospitalPersonInfo); @@ -68,7 +67,7 @@ public class HospitalPersonInfoController extends BaseController { * 导出健康咨询-科室人员信息列表 */ @ApiOperation("导出健康咨询-科室人员信息列表") - @PreAuthorize("@ss.hasPermi('system:hospitalPerson:export')") + //@PreAuthorize("@ss.hasPermi('system:hospitalPerson:export')") @Log(title = "健康咨询-科室人员信息", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, HospitalPersonInfoVO hospitalPersonInfo) { @@ -91,7 +90,7 @@ public class HospitalPersonInfoController extends BaseController { * 新增健康咨询-科室人员信息 */ @ApiOperation("新增健康咨询-科室人员信息") - @PreAuthorize("@ss.hasPermi('system:hospitalPerson:add')") + //@PreAuthorize("@ss.hasPermi('system:hospitalPerson:add')") @Log(title = "健康咨询-科室人员信息", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@Validated(Insert.class) @RequestBody HospitalPersonInfoDTO hospitalPersonInfo) { @@ -102,7 +101,7 @@ public class HospitalPersonInfoController extends BaseController { * 修改健康咨询-科室人员信息 */ @ApiOperation("修改健康咨询-科室人员信息") - @PreAuthorize("@ss.hasPermi('system:hospitalPerson:edit')") + //@PreAuthorize("@ss.hasPermi('system:hospitalPerson:edit')") @Log(title = "健康咨询-科室人员信息", businessType = BusinessType.UPDATE) @PostMapping("/edit") public AjaxResult edit(@Validated(Update.class) @RequestBody HospitalPersonInfoDTO hospitalPersonInfo) { @@ -122,7 +121,7 @@ public class HospitalPersonInfoController extends BaseController { * 删除健康咨询-科室人员信息 */ @ApiOperation("删除健康咨询-科室人员信息") - @PreAuthorize("@ss.hasPermi('system:hospitalPerson:remove')") + //@PreAuthorize("@ss.hasPermi('system:hospitalPerson:remove')") @Log(title = "健康咨询-科室人员信息", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/scheduleplandetail/ISchedulePlanDetailService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/scheduleplandetail/ISchedulePlanDetailService.java index 48de06c..f81be13 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/scheduleplandetail/ISchedulePlanDetailService.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/scheduleplandetail/ISchedulePlanDetailService.java @@ -15,4 +15,8 @@ public interface ISchedulePlanDetailService { List getList(SchedulePlanDetail planDetail); int update(SchedulePlanDetail planDetail); + + int batchUpdate(List planDetailList); + + SchedulePlanDetail getById(Long id); } diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/scheduleplandetail/impl/SchedulePlanDetailServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/scheduleplandetail/impl/SchedulePlanDetailServiceImpl.java index 73b82a7..e9c1bfb 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/scheduleplandetail/impl/SchedulePlanDetailServiceImpl.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/scheduleplandetail/impl/SchedulePlanDetailServiceImpl.java @@ -4,6 +4,7 @@ import com.xinelu.manage.domain.scheduleplandetail.SchedulePlanDetail; import com.xinelu.manage.mapper.scheduleplandetail.SchedulePlanDetailMapper; import com.xinelu.manage.service.scheduleplandetail.ISchedulePlanDetailService; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import javax.annotation.Resource; import org.springframework.stereotype.Service; @@ -29,6 +30,18 @@ public class SchedulePlanDetailServiceImpl implements ISchedulePlanDetailService @Override public int update(SchedulePlanDetail planDetail) { return planDetailMapper.updateByPrimaryKeySelective(planDetail); } + + @Override public int batchUpdate(List planDetailList) { + AtomicInteger flag = new AtomicInteger(); + planDetailList.forEach(planDetail -> { + flag.addAndGet(planDetailMapper.updateByPrimaryKeySelective(planDetail)); + }); + return flag.get(); + } + + @Override public SchedulePlanDetail getById(Long id) { + return planDetailMapper.selectByPrimaryKey(id); + } } diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/scheduleplandetail/SchedulePlanDetailMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/scheduleplandetail/SchedulePlanDetailMapper.xml index 12b08f3..288b56b 100644 --- a/xinelu-nurse-manage/src/main/resources/mapper/manage/scheduleplandetail/SchedulePlanDetailMapper.xml +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/scheduleplandetail/SchedulePlanDetailMapper.xml @@ -153,7 +153,7 @@ and DATE_FORMAT(schedule_end_time, '%H%i') >= DATE_FORMAT(#{scheduleEndTime}, '%H%i') - and DATE_FORMAT(schedule_end_time, '%H%i') < DATE_FORMAT(now(), '%H%i') + and DATE_FORMAT(schedule_start_time, '%H%i') > DATE_FORMAT(now(), '%H%i') status = #{status,jdbcType=CHAR}