update===>:修改医生排班接口。

This commit is contained in:
haown 2023-10-26 16:13:26 +08:00
parent e32e79c496
commit 1940d9f950
8 changed files with 83 additions and 19 deletions

View File

@ -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<List<SchedulePlanVO>> getListByDoctor(SchedulePlanDTO plan) {
if (plan.getDoctorId() == null) {
return R.fail("请选择医生");
}
LocalDate nowTime = LocalDate.now();
List<WeekDaysVO> weekDaysList = Lists.newArrayList();
appointmentTimeUtil.setWeekDayAndWeekDate(nowTime, weekDaysList);
@ -53,12 +61,37 @@ public class AppletSchedulePlanController extends BaseController {
}
@PostMapping("/updateStatus")
@ApiOperation(value = "医生修改排班时间段的可预约状态")
public R<String> 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<String> batchUpdateStatus(@RequestBody SchedulePlanDetailDTO schedulePlanDetailDTO) {
if (CollectionUtils.isEmpty(schedulePlanDetailDTO.getSchedulePlanDetailIds())) {
return R.fail("请选择时间段");
}
int timeoutCount = 0;
List<SchedulePlanDetail> 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();
}
}

View File

@ -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")

View File

@ -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<Long> schedulePlanDetailIds;
@ApiModelProperty("启用状态0:可预约 1不可预约")
private String status;

View File

@ -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<SchedulePlanDetail> detailList = planDetailMapper.getList(query);
List<SchedulePlanDetailVO> morningList = new ArrayList<>();
List<SchedulePlanDetailVO> 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());
}
});
}

View File

@ -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<HospitalPersonInfo> 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) {

View File

@ -15,4 +15,8 @@ public interface ISchedulePlanDetailService {
List<SchedulePlanDetail> getList(SchedulePlanDetail planDetail);
int update(SchedulePlanDetail planDetail);
int batchUpdate(List<SchedulePlanDetail> planDetailList);
SchedulePlanDetail getById(Long id);
}

View File

@ -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<SchedulePlanDetail> 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);
}
}

View File

@ -153,7 +153,7 @@
and DATE_FORMAT(schedule_end_time, '%H%i') >= DATE_FORMAT(#{scheduleEndTime}, '%H%i')
</if>
<if test="after != null">
and DATE_FORMAT(schedule_end_time, '%H%i') &lt; DATE_FORMAT(now(), '%H%i')
and DATE_FORMAT(schedule_start_time, '%H%i') > DATE_FORMAT(now(), '%H%i')
</if>
<if test="status != null">
status = #{status,jdbcType=CHAR}