提交 835ffa7b authored 作者: aiqingguo's avatar aiqingguo

接单限制

上级 9568b75c
...@@ -50,6 +50,7 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -50,6 +50,7 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_CHILD_TRUCK_MODEL_ERROR(1323, "请选择合适的车型"), ORDER_CHILD_TRUCK_MODEL_ERROR(1323, "请选择合适的车型"),
ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR(1324, "请选择定向车辆"), ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR(1324, "请选择定向车辆"),
ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR1(1325, "请选择非定向车辆"), ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR1(1325, "请选择非定向车辆"),
ORDER_CHILD_DRIVER_TAKE_ORDER_TIME_LIMIT(1326, "你已因违约行为被限制接单,限制时间至"),
ORDER_CHILD_LOAD_TIME_ERROR(1341, "非装车时间段"), ORDER_CHILD_LOAD_TIME_ERROR(1341, "非装车时间段"),
ORDER_CHILD_UNLOAD_TIME_ERROR(1342, "非卸车时间段"), ORDER_CHILD_UNLOAD_TIME_ERROR(1342, "非卸车时间段"),
......
...@@ -8,6 +8,7 @@ import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriver ...@@ -8,6 +8,7 @@ import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriver
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractDriverRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractDriverRecordParam;
import com.clx.performance.vo.app.breakcontract.DriverBreakContractDriverRecordVO; import com.clx.performance.vo.app.breakcontract.DriverBreakContractDriverRecordVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractDriverRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractDriverRecordVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
/** /**
...@@ -17,6 +18,8 @@ import com.msl.common.dao.BaseDao; ...@@ -17,6 +18,8 @@ import com.msl.common.dao.BaseDao;
*/ */
public interface BreakContractDriverRecordDao extends BaseDao<BreakContractDriverRecordMapper, BreakContractDriverRecord, Integer> { public interface BreakContractDriverRecordDao extends BaseDao<BreakContractDriverRecordMapper, BreakContractDriverRecord, Integer> {
Optional<BreakContractDriverRecord> selectLastLimitTimeByDriverUserNo(Long driverUserNo);
IPage<BreakContractDriverRecordVO> pageByParam(PageBreakContractDriverRecordParam param); IPage<BreakContractDriverRecordVO> pageByParam(PageBreakContractDriverRecordParam param);
IPage<DriverBreakContractDriverRecordVO> driverPageByParam(DriverPageBreakContractDriverRecordParam param); IPage<DriverBreakContractDriverRecordVO> driverPageByParam(DriverPageBreakContractDriverRecordParam param);
......
...@@ -10,6 +10,7 @@ import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriver ...@@ -10,6 +10,7 @@ import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriver
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractDriverRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractDriverRecordParam;
import com.clx.performance.vo.app.breakcontract.DriverBreakContractDriverRecordVO; import com.clx.performance.vo.app.breakcontract.DriverBreakContractDriverRecordVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractDriverRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractDriverRecordVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -20,6 +21,17 @@ import org.springframework.stereotype.Repository; ...@@ -20,6 +21,17 @@ import org.springframework.stereotype.Repository;
*/ */
@Repository @Repository
public class BreakContractDriverRecordDaoImpl extends BaseDaoImpl<BreakContractDriverRecordMapper, BreakContractDriverRecord, Integer> implements BreakContractDriverRecordDao { public class BreakContractDriverRecordDaoImpl extends BaseDaoImpl<BreakContractDriverRecordMapper, BreakContractDriverRecord, Integer> implements BreakContractDriverRecordDao {
@Override
public Optional<BreakContractDriverRecord> selectLastLimitTimeByDriverUserNo(Long driverUserNo) {
return Optional.of(driverUserNo)
.map(item -> lQrWrapper()
.eq(BreakContractDriverRecord::getDriverUserNo, item)
.orderByDesc(BreakContractDriverRecord::getLimitTime)
.last("limit 1")
)
.map(super::getOne);
}
@Override @Override
public IPage<BreakContractDriverRecordVO> pageByParam(PageBreakContractDriverRecordParam param) { public IPage<BreakContractDriverRecordVO> pageByParam(PageBreakContractDriverRecordParam param) {
Page<BreakContractDriverRecordVO> page = Page.of(param.getPage(), param.getPageSize()); Page<BreakContractDriverRecordVO> page = Page.of(param.getPage(), param.getPageSize());
......
...@@ -10,6 +10,8 @@ import com.clx.performance.constant.RedisConstants; ...@@ -10,6 +10,8 @@ import com.clx.performance.constant.RedisConstants;
import com.clx.performance.component.GoodsOrderTruckRecordComponent; import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.constant.RedissonConstants; import com.clx.performance.constant.RedissonConstants;
import com.clx.performance.dao.*; import com.clx.performance.dao.*;
import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao;
import com.clx.performance.dao.breakcontract.BreakContractOwnerRuleDao;
import com.clx.performance.dto.OrderChildExpectDTO; import com.clx.performance.dto.OrderChildExpectDTO;
import com.clx.performance.dto.gd.GdRouteDTO; import com.clx.performance.dto.gd.GdRouteDTO;
import com.clx.performance.dto.zjxl.TruckTraceDTO; import com.clx.performance.dto.zjxl.TruckTraceDTO;
...@@ -18,6 +20,7 @@ import com.clx.performance.extranal.user.AddressService; ...@@ -18,6 +20,7 @@ import com.clx.performance.extranal.user.AddressService;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OrderService; import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.model.*; import com.clx.performance.model.*;
import com.clx.performance.model.breakcontract.BreakContractDriverRecord;
import com.clx.performance.param.app.*; import com.clx.performance.param.app.*;
import com.clx.performance.param.pc.OrderChildCarrierCancelParam; import com.clx.performance.param.pc.OrderChildCarrierCancelParam;
import com.clx.performance.param.pc.PageCarrierOrderChildParam; import com.clx.performance.param.pc.PageCarrierOrderChildParam;
...@@ -94,6 +97,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -94,6 +97,7 @@ public class OrderChildServiceImpl implements OrderChildService {
private final IntegralMqService integralMqService; private final IntegralMqService integralMqService;
private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent; private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
private final BreakContractDriverRecordDao breakContractDriverRecordDao;
@Override @Override
public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) { public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) {
...@@ -169,6 +173,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -169,6 +173,9 @@ public class OrderChildServiceImpl implements OrderChildService {
BigDecimal truckLoad = driverTruckInfo.getLoad(); BigDecimal truckLoad = driverTruckInfo.getLoad();
String truckNo = driverTruckInfo.getTruckNo(); String truckNo = driverTruckInfo.getTruckNo();
// 司机接单限制
driverTakeOrderLimit(driverTruckInfo.getUserNo());
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).orElseThrow( OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).orElseThrow(
PerformanceResultEnum.ORDER_INVALID); PerformanceResultEnum.ORDER_INVALID);
...@@ -1296,6 +1303,17 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1296,6 +1303,17 @@ public class OrderChildServiceImpl implements OrderChildService {
} }
/**
* 司机接单限制
*/
private void driverTakeOrderLimit(Long driverUserNo){
Optional<BreakContractDriverRecord> limitOptional = breakContractDriverRecordDao.selectLastLimitTimeByDriverUserNo(driverUserNo);
if (limitOptional.isPresent()){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_DRIVER_TAKE_ORDER_TIME_LIMIT,
PerformanceResultEnum.ORDER_CHILD_DRIVER_TAKE_ORDER_TIME_LIMIT.getMsg()+LocalDateTimeUtils.convertLocalDateTimeToString(limitOptional.get().getLimitTime(), "yyyy-MM-dd HH:mm"));
}
}
/** /**
* 拉运吨数检测 * 拉运吨数检测
*/ */
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论