Commit eee4e28a by Wangmin

新增 完成服务

parent dc985e34
...@@ -14,6 +14,7 @@ import com.pz.merchant.service.ISonOrderService; ...@@ -14,6 +14,7 @@ import com.pz.merchant.service.ISonOrderService;
import com.pz.merchant.service.impl.SonOrderServiceBuilder; import com.pz.merchant.service.impl.SonOrderServiceBuilder;
import com.pz.system.domain.bo.AccompanyAddressBo; import com.pz.system.domain.bo.AccompanyAddressBo;
import com.pz.system.domain.bo.OrderCommonBo; import com.pz.system.domain.bo.OrderCommonBo;
import com.pz.system.domain.bo.OrderFinishedBo;
import com.pz.system.domain.vo.AccompanyDemandVo; import com.pz.system.domain.vo.AccompanyDemandVo;
import com.pz.system.domain.vo.OrderCommonVo; import com.pz.system.domain.vo.OrderCommonVo;
import com.pz.system.service.IDbmyOrderService; import com.pz.system.service.IDbmyOrderService;
...@@ -108,7 +109,7 @@ public class AccompanyController extends BaseController { ...@@ -108,7 +109,7 @@ public class AccompanyController extends BaseController {
} }
/** /**
* 陪诊员取消订单 * 陪诊员开始服务
* *
* @param bo 订单参数 * @param bo 订单参数
* @return 操作结果 * @return 操作结果
...@@ -123,6 +124,21 @@ public class AccompanyController extends BaseController { ...@@ -123,6 +124,21 @@ public class AccompanyController extends BaseController {
} }
/** /**
* 陪诊员 完成服务
*
* @param bo 订单参数
* @return 操作结果
*/
@PutMapping("/finishedService")
public R<Boolean> startOrderService(@Validated(EditGroup.class) @RequestBody OrderFinishedBo bo) {
ISonOrderService orderService = sonOrderServiceBuilder.getSonOrderService(bo.getBusinessId());
if (orderService == null) {
throw new ServiceException("业务异常");
}
return R.ok(orderService.finishedService(bo));
}
/**
* 设置代办买药 陪诊员地址 * 设置代办买药 陪诊员地址
* *
* @param bo 地址 * @param bo 地址
......
package com.pz.merchant.service; package com.pz.merchant.service;
import com.pz.merchant.domain.vo.SonOrderVo; import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.system.domain.bo.OrderFinishedBo;
/** /**
* 子订单业务 * 子订单业务
...@@ -57,16 +58,17 @@ public interface ISonOrderService { ...@@ -57,16 +58,17 @@ public interface ISonOrderService {
* @param totalId 主订单ID * @param totalId 主订单ID
* @return 操作结果 * @return 操作结果
*/ */
default boolean accompanyStartService(Integer totalId){ default boolean accompanyStartService(Integer totalId) {
throw new UnsupportedOperationException("不支持该操作"); throw new UnsupportedOperationException("不支持该操作");
} }
/** /**
* 陪诊员完成服务 * 陪诊员完成服务
* @param totalId 主订单ID *
* @param orderData 主订单数据
* @return 操作结果 * @return 操作结果
*/ */
default boolean finishedService(Integer totalId) { default boolean finishedService(OrderFinishedBo orderData) {
throw new UnsupportedOperationException("不支持该操作"); throw new UnsupportedOperationException("不支持该操作");
} }
......
...@@ -57,7 +57,7 @@ public class DbmyOrder extends BaseEntity { ...@@ -57,7 +57,7 @@ public class DbmyOrder extends BaseEntity {
/** /**
* 收获地址 * 收获地址
*/ */
private String adress; private String address;
/** /**
* 详细地址 * 详细地址
*/ */
......
...@@ -2,6 +2,7 @@ package com.pz.system.service.impl; ...@@ -2,6 +2,7 @@ package com.pz.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.toolkit.Db;
import com.pz.common.core.page.TableDataInfo; import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery; import com.pz.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...@@ -16,6 +17,7 @@ import com.pz.merchant.service.ISonOrderService; ...@@ -16,6 +17,7 @@ import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.DbwzOrder; import com.pz.system.domain.DbwzOrder;
import com.pz.system.domain.TotalOrder; import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.YypzOrder; import com.pz.system.domain.YypzOrder;
import com.pz.system.domain.bo.OrderFinishedBo;
import com.pz.system.mapper.TotalOrderMapper; import com.pz.system.mapper.TotalOrderMapper;
import com.pz.system.mapper.UserVsitorMapper; import com.pz.system.mapper.UserVsitorMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -233,8 +235,75 @@ public class DbghOrderServiceImpl implements IDbghOrderService, ISonOrderService ...@@ -233,8 +235,75 @@ public class DbghOrderServiceImpl implements IDbghOrderService, ISonOrderService
return true; return true;
} }
/**
* 陪诊员开始服务代办挂号
*
* @param totalId 主订单ID
* @return 操作结果
*/
@Override @Override
public boolean accompanyStartService(Integer totalId) { public boolean accompanyStartService(Integer totalId) {
throw new UnsupportedOperationException("此类业务订单不支持该操作"); TotalOrder totalOrder = totalOrderMapper.selectById(totalId);
Objects.requireNonNull(totalOrder, "主订单不存在");
if (totalOrder.getStatus() != 1 || totalOrder.getEmId() == 0) { // 用户已付款
throw new ServiceException("主订单不符合开始服务要求");
}
DbghOrder suborder = baseMapper.selectOne(Wrappers.<DbghOrder>lambdaQuery().eq(DbghOrder::getOrderId, totalId));
Objects.requireNonNull(suborder, "子订单不存在");
if (suborder.getStatus() != 1) { // 订单已接单
throw new ServiceException("子订单不符合开始服务要求");
}
// 操作时间若未到达开始时间,则拒绝该操作
if (suborder.getVisitTime() != null) {
LocalDateTime visitTime = LocalDateTime.ofInstant(suborder.getVisitTime().toInstant(), ZoneId.systemDefault());
LocalDateTime currentDate = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());
if (currentDate.isBefore(visitTime)) {
throw new ServiceException("请在到达陪诊时间后再点击开始服务");
}
}
// 修改子订单状态为开始服务
suborder.setStatus(6);
totalOrder.setSuborderStatus(6);
if (baseMapper.updateById(suborder) < 0) {
throw new ServiceException("操作失败,子订单异常");
}
if (totalOrderMapper.updateById(totalOrder) < 0) {
throw new ServiceException("操作失败,主订单异常");
}
return true;
}
/**
* 陪诊员完成服务 代办挂号
*
* @param orderData 主订单ID
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean finishedService(OrderFinishedBo orderData) {
TotalOrder totalOrder = totalOrderMapper.selectById(orderData.getOrderId());
Objects.requireNonNull(totalOrder, "主订单不存在");
if (totalOrder.getStatus() != 1 || totalOrder.getEmId() == 0) { // 用户已付款
throw new ServiceException("主订单不符合开始服务要求");
}
DbghOrder suborder = baseMapper.selectOne(Wrappers.<DbghOrder>lambdaQuery().eq(DbghOrder::getOrderId, totalOrder.getId()));
Objects.requireNonNull(suborder, "子订单不存在");
if (suborder.getStatus() != 6) { // 订单已接单
throw new ServiceException("子订单不符合开始服务要求");
}
// 修改子订单状态为完成服务
suborder.setStatus(2);
suborder.setOverTime(new Date());
suborder.setVoucher(orderData.getVoucher());
suborder.setRemark(orderData.getRemark());
totalOrder.setSuborderStatus(2);
if (baseMapper.updateById(suborder) < 0) {
throw new ServiceException("操作失败,子订单异常");
}
if (totalOrderMapper.updateById(totalOrder) < 0) {
throw new ServiceException("操作失败,主订单异常");
}
return true;
} }
} }
...@@ -18,6 +18,7 @@ import com.pz.system.domain.DbwzOrder; ...@@ -18,6 +18,7 @@ import com.pz.system.domain.DbwzOrder;
import com.pz.system.domain.TotalOrder; import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.YypzOrder; import com.pz.system.domain.YypzOrder;
import com.pz.system.domain.bo.AccompanyAddressBo; import com.pz.system.domain.bo.AccompanyAddressBo;
import com.pz.system.domain.bo.OrderFinishedBo;
import com.pz.system.mapper.TotalOrderMapper; import com.pz.system.mapper.TotalOrderMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -83,7 +84,7 @@ public class DbmyOrderServiceImpl implements IDbmyOrderService, ISonOrderService ...@@ -83,7 +84,7 @@ public class DbmyOrderServiceImpl implements IDbmyOrderService, ISonOrderService
lqw.eq(StringUtils.isNotBlank(bo.getPrescriptionAttachment()), DbmyOrder::getPrescriptionAttachment, bo.getPrescriptionAttachment()); lqw.eq(StringUtils.isNotBlank(bo.getPrescriptionAttachment()), DbmyOrder::getPrescriptionAttachment, bo.getPrescriptionAttachment());
lqw.eq(bo.getWay() != null, DbmyOrder::getWay, bo.getWay()); lqw.eq(bo.getWay() != null, DbmyOrder::getWay, bo.getWay());
lqw.eq(StringUtils.isNotBlank(bo.getRecipient()), DbmyOrder::getRecipient, bo.getRecipient()); lqw.eq(StringUtils.isNotBlank(bo.getRecipient()), DbmyOrder::getRecipient, bo.getRecipient());
lqw.eq(StringUtils.isNotBlank(bo.getAdress()), DbmyOrder::getAdress, bo.getAdress()); lqw.eq(StringUtils.isNotBlank(bo.getAdress()), DbmyOrder::getAddress, bo.getAdress());
lqw.eq(StringUtils.isNotBlank(bo.getAddressInfo()), DbmyOrder::getAddressInfo, bo.getAddressInfo()); lqw.eq(StringUtils.isNotBlank(bo.getAddressInfo()), DbmyOrder::getAddressInfo, bo.getAddressInfo());
lqw.eq(StringUtils.isNotBlank(bo.getPhone()), DbmyOrder::getPhone, bo.getPhone()); lqw.eq(StringUtils.isNotBlank(bo.getPhone()), DbmyOrder::getPhone, bo.getPhone());
lqw.eq(bo.getIsRefrigerate() != null, DbmyOrder::getIsRefrigerate, bo.getIsRefrigerate()); lqw.eq(bo.getIsRefrigerate() != null, DbmyOrder::getIsRefrigerate, bo.getIsRefrigerate());
...@@ -253,4 +254,38 @@ public class DbmyOrderServiceImpl implements IDbmyOrderService, ISonOrderService ...@@ -253,4 +254,38 @@ public class DbmyOrderServiceImpl implements IDbmyOrderService, ISonOrderService
} }
return true; return true;
} }
/**
* 陪诊员完成服务 代办买药
*
* @param orderData 主订单ID
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean finishedService(OrderFinishedBo orderData) {
TotalOrder totalOrder = totalOrderMapper.selectById(orderData.getOrderId());
Objects.requireNonNull(totalOrder, "主订单不存在");
if (totalOrder.getStatus() != 1 || totalOrder.getEmId() == 0) { // 用户已付款
throw new ServiceException("主订单不符合开始服务要求");
}
DbmyOrder suborder = baseMapper.selectOne(Wrappers.<DbmyOrder>lambdaQuery().eq(DbmyOrder::getOrderId, totalOrder.getId()));
Objects.requireNonNull(suborder, "子订单不存在");
if (suborder.getStatus() != 6) { // 订单已接单
throw new ServiceException("子订单不符合开始服务要求");
}
// 修改子订单状态为完成服务
suborder.setStatus(2);
suborder.setOverTime(new Date());
suborder.setVoucher(orderData.getVoucher());
suborder.setRemark(orderData.getRemark());
totalOrder.setSuborderStatus(2);
if (baseMapper.updateById(suborder) < 0) {
throw new ServiceException("操作失败,子订单异常");
}
if (totalOrderMapper.updateById(totalOrder) < 0) {
throw new ServiceException("操作失败,主订单异常");
}
return true;
}
} }
...@@ -15,6 +15,7 @@ import com.pz.merchant.mapper.EmployeesMapper; ...@@ -15,6 +15,7 @@ import com.pz.merchant.mapper.EmployeesMapper;
import com.pz.merchant.service.ISonOrderService; import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.TotalOrder; import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.YypzOrder; import com.pz.system.domain.YypzOrder;
import com.pz.system.domain.bo.OrderFinishedBo;
import com.pz.system.mapper.TotalOrderMapper; import com.pz.system.mapper.TotalOrderMapper;
import com.pz.system.mapper.UserVsitorMapper; import com.pz.system.mapper.UserVsitorMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -272,4 +273,40 @@ public class DbwzOrderServiceImpl implements IDbwzOrderService, ISonOrderService ...@@ -272,4 +273,40 @@ public class DbwzOrderServiceImpl implements IDbwzOrderService, ISonOrderService
} }
return true; return true;
} }
/**
* 陪诊员完成服务 代办问诊
*
* @param orderData 主订单ID
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean finishedService(OrderFinishedBo orderData) {
TotalOrder totalOrder = totalOrderMapper.selectById(orderData.getOrderId());
Objects.requireNonNull(totalOrder, "主订单不存在");
if (totalOrder.getStatus() != 1 || totalOrder.getEmId() == 0) { // 用户已付款
throw new ServiceException("主订单不符合开始服务要求");
}
DbwzOrder suborder = baseMapper.selectOne(Wrappers.<DbwzOrder>lambdaQuery().eq(DbwzOrder::getOrderId, totalOrder.getId()));
Objects.requireNonNull(suborder, "子订单不存在");
if (suborder.getStatus() != 6) { // 订单已接单
throw new ServiceException("子订单不符合开始服务要求");
}
// 修改子订单状态为完成服务
suborder.setStatus(2);
suborder.setOverTime(new Date());
suborder.setVoucher(orderData.getVoucher());
suborder.setIndications(orderData.getDoctor());
suborder.setRemark(orderData.getRemark());
totalOrder.setSuborderStatus(2);
if (baseMapper.updateById(suborder) < 0) {
throw new ServiceException("操作失败,子订单异常");
}
if (totalOrderMapper.updateById(totalOrder) < 0) {
throw new ServiceException("操作失败,主订单异常");
}
return true;
}
} }
...@@ -15,6 +15,7 @@ import com.pz.merchant.mapper.EmployeesMapper; ...@@ -15,6 +15,7 @@ import com.pz.merchant.mapper.EmployeesMapper;
import com.pz.merchant.service.ISonOrderService; import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.DbwzOrder; import com.pz.system.domain.DbwzOrder;
import com.pz.system.domain.TotalOrder; import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.bo.OrderFinishedBo;
import com.pz.system.mapper.CityMapper; import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.TotalOrderMapper; import com.pz.system.mapper.TotalOrderMapper;
import com.pz.system.mapper.UserVsitorMapper; import com.pz.system.mapper.UserVsitorMapper;
...@@ -274,4 +275,38 @@ public class YypzOrderServiceImpl implements IYypzOrderService, ISonOrderService ...@@ -274,4 +275,38 @@ public class YypzOrderServiceImpl implements IYypzOrderService, ISonOrderService
} }
return true; return true;
} }
/**
* 陪诊员完成服务 预约陪诊
*
* @param orderData 主订单ID
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean finishedService(OrderFinishedBo orderData) {
TotalOrder totalOrder = totalOrderMapper.selectById(orderData.getOrderId());
Objects.requireNonNull(totalOrder, "主订单不存在");
if (totalOrder.getStatus() != 1 || totalOrder.getEmId() == 0) { // 用户已付款
throw new ServiceException("主订单不符合开始服务要求");
}
YypzOrder suborder = baseMapper.selectOne(Wrappers.<YypzOrder>lambdaQuery().eq(YypzOrder::getOrderId, totalOrder.getId()));
Objects.requireNonNull(suborder, "子订单不存在");
if (suborder.getStatus() != 6) { // 订单已接单
throw new ServiceException("子订单不符合开始服务要求");
}
// 修改子订单状态为完成服务
suborder.setStatus(2);
suborder.setOverTime(new Date());
suborder.setVoucher(orderData.getVoucher());
suborder.setRemark(orderData.getRemark());
totalOrder.setSuborderStatus(2);
if (baseMapper.updateById(suborder) < 0) {
throw new ServiceException("操作失败,子订单异常");
}
if (totalOrderMapper.updateById(totalOrder) < 0) {
throw new ServiceException("操作失败,主订单异常");
}
return true;
}
} }
...@@ -16,6 +16,7 @@ import com.pz.merchant.service.ISonOrderService; ...@@ -16,6 +16,7 @@ import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.DbwzOrder; import com.pz.system.domain.DbwzOrder;
import com.pz.system.domain.TotalOrder; import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.YypzOrder; import com.pz.system.domain.YypzOrder;
import com.pz.system.domain.bo.OrderFinishedBo;
import com.pz.system.mapper.TotalOrderMapper; import com.pz.system.mapper.TotalOrderMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -285,4 +286,38 @@ public class ZyphOrderServiceImpl implements IZyphOrderService, ISonOrderService ...@@ -285,4 +286,38 @@ public class ZyphOrderServiceImpl implements IZyphOrderService, ISonOrderService
} }
return true; return true;
} }
/**
* 陪诊员完成服务 住院陪护
*
* @param orderData 主订单ID
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean finishedService(OrderFinishedBo orderData) {
TotalOrder totalOrder = totalOrderMapper.selectById(orderData.getOrderId());
Objects.requireNonNull(totalOrder, "主订单不存在");
if (totalOrder.getStatus() != 1 || totalOrder.getEmId() == 0) { // 用户已付款
throw new ServiceException("主订单不符合开始服务要求");
}
ZyphOrder suborder = baseMapper.selectOne(Wrappers.<ZyphOrder>lambdaQuery().eq(ZyphOrder::getOrderId, totalOrder.getId()));
Objects.requireNonNull(suborder, "子订单不存在");
if (suborder.getStatus() != 6) { // 订单已接单
throw new ServiceException("子订单不符合开始服务要求");
}
// 修改子订单状态为完成服务
suborder.setStatus(2);
suborder.setOverTime(new Date());
suborder.setVoucher(orderData.getVoucher());
suborder.setRemark(orderData.getRemark());
totalOrder.setSuborderStatus(2);
if (baseMapper.updateById(suborder) < 0) {
throw new ServiceException("操作失败,子订单异常");
}
if (totalOrderMapper.updateById(totalOrder) < 0) {
throw new ServiceException("操作失败,主订单异常");
}
return true;
}
} }
...@@ -81,7 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -81,7 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
dbmy_order.prescription_attachment, dbmy_order.prescription_attachment,
dbmy_order.phone, dbmy_order.phone,
dbmy_order.recipient, dbmy_order.recipient,
dbmy_order.adress as address, dbmy_order.address as address,
dbmy_order.address_info, dbmy_order.address_info,
dbmy_order.is_refrigerate, dbmy_order.is_refrigerate,
total_order.remark as description, total_order.remark as description,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment