护理员小程序工单代码移植

This commit is contained in:
张恒 2023-09-26 11:27:51 +08:00
parent 0dccd03dac
commit 51808f6aa0
3 changed files with 136 additions and 0 deletions

View File

@ -0,0 +1,41 @@
package com.xinelu.applet.controller.nurseappletpersonworkorder;
import com.xinelu.applet.dto.nursepersonapplogin.OrderFallbackDTO;
import com.xinelu.applet.service.nurseappletpersonworkorder.NurseAppletPersonWorkOrderService;
import com.xinelu.common.annotation.MobileRequestAuthorization;
import com.xinelu.common.core.domain.AjaxResult;
import net.sf.jsqlparser.statement.update.Update;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 护理员工单Controller
*
* @author zh
* @date 2023-03-30
*/
@RestController
@RequestMapping("/nurseApplet/personWorkOrder")
public class NurseAppletPersonWorkOrderController {
@Resource
private NurseAppletPersonWorkOrderService nurseAppletPersonWorkOrderService;
/**
* 护理员接单共用
*
* @param orderFallbackDTO 订单信息
* @return AjaxResult
*/
@MobileRequestAuthorization
@PostMapping("/receiveOrders")
public AjaxResult receiveOrders(@Validated(Update.class) @RequestBody OrderFallbackDTO orderFallbackDTO) {
return nurseAppletPersonWorkOrderService.receiveOrders(orderFallbackDTO);
}
}

View File

@ -0,0 +1,75 @@
package com.xinelu.applet.service.nurseappletpersonworkorder.Impl;
import com.xinelu.applet.dto.nursepersonapplogin.OrderFallbackDTO;
import com.xinelu.applet.service.nurseappletpersonworkorder.NurseAppletPersonWorkOrderService;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.enums.OrderProcessOperateTypeEnum;
import com.xinelu.common.enums.OrderStatusEnum;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.manage.domain.appointmentorderprocessrecord.AppointmentOrderProcessRecord;
import com.xinelu.manage.mapper.appointmentorder.AppointmentOrderMapper;
import com.xinelu.manage.mapper.appointmentorderdetails.AppointmentOrderDetailsMapper;
import com.xinelu.manage.mapper.appointmentorderprocessrecord.AppointmentOrderProcessRecordMapper;
import com.xinelu.manage.service.stationmessagepush.StationMessagePushService;
import com.xinelu.manage.vo.appointmentorder.AppointmentReceivingOrderVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Objects;
/**
* 护理员工单ServiceImpl
*
* @author zh
* @date 2023-03-30
*/
@Slf4j
@Service
public class NurseAppletPersonWorkOrderServiceImpl implements NurseAppletPersonWorkOrderService {
@Resource
private AppointmentOrderMapper appointmentOrderMapper;
@Resource
private AppointmentOrderProcessRecordMapper appointmentOrderProcessRecordMapper;
@Resource
private StationMessagePushService stationMessagePushService;
@Resource
private AppointmentOrderDetailsMapper appointmentOrderDetailsMapper;
/**
* 接单
*
* @param orderFallbackDTO 订单信息
* @return AjaxResult
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult receiveOrders(OrderFallbackDTO orderFallbackDTO) {
AppointmentReceivingOrderVO appointmentReceivingOrder = appointmentOrderDetailsMapper.getAppointmentReceivingOrder(orderFallbackDTO.getAppointmentOrderNo());
if (Objects.isNull(appointmentReceivingOrder)) {
return AjaxResult.error("当前订单不存在,无法接单!");
}
int update = appointmentOrderMapper.updateAppointmentOrderStatus(OrderStatusEnum.NOT_FINISH.getInfo(), orderFallbackDTO.getAppointmentOrderNo());
if (update < 0) {
throw new ServiceException("接单失败,请联系管理员!");
}
AppointmentOrderProcessRecord appointmentOrderProcessRecord = new AppointmentOrderProcessRecord();
appointmentOrderProcessRecord.setAppointmentOrderNo(orderFallbackDTO.getAppointmentOrderNo());
appointmentOrderProcessRecord.setCreateTime(LocalDateTime.now());
appointmentOrderProcessRecord.setOperatePersonId(orderFallbackDTO.getStationPersonId());
appointmentOrderProcessRecord.setOperateTime(LocalDateTime.now());
appointmentOrderProcessRecord.setOperateType(OrderProcessOperateTypeEnum.RECEIVE_ORDER.getInfo());
appointmentOrderProcessRecord.setAppointmentOrderId(orderFallbackDTO.getAppointmentOrderId());
appointmentOrderProcessRecord.setOperateDetails("接单");
int count = appointmentOrderProcessRecordMapper.insertAppointmentOrderProcessRecord(appointmentOrderProcessRecord);
if (count <= 0) {
throw new ServiceException("增加预约订单流程记录失败,请联系管理员!");
}
//异步发送消息
stationMessagePushService.receivingOrdersOperationsPush(appointmentReceivingOrder);
return AjaxResult.success();
}
}

View File

@ -0,0 +1,20 @@
package com.xinelu.applet.service.nurseappletpersonworkorder;
import com.xinelu.applet.dto.nursepersonapplogin.OrderFallbackDTO;
import com.xinelu.common.core.domain.AjaxResult;
/**
* 护理员工单Service
*
* @author zh
* @date 2023-03-30
*/
public interface NurseAppletPersonWorkOrderService {
/**
* 接单
*
* @param orderFallbackDTO 订单信息
* @return AjaxResult
*/
AjaxResult receiveOrders(OrderFallbackDTO orderFallbackDTO);
}