hsf
ljw 2026-04-03 15:08:07 +08:00
parent db8d2479a6
commit 20222eff99
8 changed files with 173 additions and 7 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@
/**/.DS_Store /**/.DS_Store
/**/.back* /**/.back*
db-model/*/ db-model/*/
/njzscloud-svr/docs

View File

@ -151,6 +151,15 @@ public class OrderInfoController {
return R.success(); return R.success();
} }
/**
*
*/
@PostMapping("/batch_audit")
public R<?> batchAudit(@RequestBody BatchAuditOrderParam param) {
orderInfoService.batchAudit(param);
return R.success();
}
/** /**
* *
*/ */
@ -169,6 +178,28 @@ public class OrderInfoController {
return R.success(); return R.success();
} }
/**
*
*
* @param param
*/
@PostMapping("/batch_assignment")
public R<?> batchAssignment(@RequestBody BatchAssignmentOrderParam param) {
orderInfoService.batchAssignment(param);
return R.success();
}
/**
*
*
* @param param
*/
@PostMapping("/batch_confirm")
public R<?> batchConfirm(@RequestBody BatchConfirmOrderParam param) {
orderInfoService.batchConfirm(param);
return R.success();
}
/** /**
* *
* *

View File

@ -60,4 +60,6 @@ public interface OrderInfoMapper extends BaseMapper<OrderInfoEntity> {
Boolean driverIsBusy(@Param("driverId") Long driverId); Boolean driverIsBusy(@Param("driverId") Long driverId);
Boolean truckIsBusy(@Param("truckId") Long truckId); Boolean truckIsBusy(@Param("truckId") Long truckId);
Boolean hasInProgressOrder(@Param("driverId") Long driverId, @Param("orderStatuses") List<String> orderStatuses);
} }

View File

@ -0,0 +1,23 @@
package com.njzscloud.supervisory.order.pojo.param;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.util.List;
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class BatchAssignmentOrderParam {
/**
* Id
*/
private List<Long> orderIds;
/**
* Id
*/
private Long driverId;
}

View File

@ -0,0 +1,35 @@
package com.njzscloud.supervisory.order.pojo.param;
import com.njzscloud.supervisory.biz.constant.AuditStatus;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.util.List;
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class BatchAuditOrderParam {
/**
* Id
*/
private List<Long> orderIds;
/**
* ; audit_status
*/
private AuditStatus auditStatus;
/**
*
*/
private String auditMemo;
/**
*
*/
private String auditPicture;
}

View File

@ -0,0 +1,23 @@
package com.njzscloud.supervisory.order.pojo.param;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.util.List;
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class BatchConfirmOrderParam {
/**
* Id
*/
private List<Long> orderIds;
/**
* Id
*/
private Long truckId;
}

View File

@ -1,5 +1,11 @@
package com.njzscloud.supervisory.order.service; package com.njzscloud.supervisory.order.service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
@ -80,10 +86,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -599,6 +602,20 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
return PageResult.of(baseMapper.paging(page, ew)); return PageResult.of(baseMapper.paging(page, ew));
} }
@Transactional(rollbackFor = Exception.class)
public void batchAudit(BatchAuditOrderParam param) {
List<Long> orderIds = param.getOrderIds();
Assert.notEmpty(orderIds, () -> Exceptions.clierr("订单ID列表不能为空"));
for (Long orderId : orderIds) {
AuditOrderParam auditOrderParam = new AuditOrderParam()
.setId(orderId)
.setAuditStatus(param.getAuditStatus())
.setAuditMemo(param.getAuditMemo())
.setAuditPicture(param.getAuditPicture());
audit(auditOrderParam);
}
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void audit(AuditOrderParam auditOrderParam) { public void audit(AuditOrderParam auditOrderParam) {
OrderPagingResult detail = detail(auditOrderParam.getId()); OrderPagingResult detail = detail(auditOrderParam.getId());
@ -755,6 +772,31 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
// truckLeaving(new TruckLeavingOrderParam().setOrderId(orderId), 0); // truckLeaving(new TruckLeavingOrderParam().setOrderId(orderId), 0);
} }
@Transactional(rollbackFor = Exception.class)
public void batchAssignment(BatchAssignmentOrderParam param) {
List<Long> orderIds = param.getOrderIds();
Assert.notEmpty(orderIds, () -> Exceptions.clierr("订单ID列表不能为空"));
Assert.notNull(param.getDriverId(), () -> Exceptions.clierr("司机ID不能为空"));
for (Long orderId : orderIds) {
AssignmentOrderParam assignmentOrderParam = new AssignmentOrderParam()
.setOrderId(orderId)
.setDriverId(param.getDriverId());
OrderInfoEntity oldOrder = this.getById(orderId);
Assert.notNull(oldOrder, () -> Exceptions.clierr("订单不存在, orderId: " + orderId));
assignmentDriver(assignmentOrderParam, oldOrder);
}
}
@Transactional(rollbackFor = Exception.class)
public void batchConfirm(BatchConfirmOrderParam param) {
List<Long> orderIds = param.getOrderIds();
Assert.notEmpty(orderIds, () -> Exceptions.clierr("订单ID列表不能为空"));
Assert.notNull(param.getTruckId(), () -> Exceptions.clierr("车辆ID不能为空"));
for (Long orderId : orderIds) {
confirm(orderId, param.getTruckId());
}
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void assignment(AssignmentOrderParam assignmentOrderParam) { public void assignment(AssignmentOrderParam assignmentOrderParam) {
OrderInfoEntity oldOrder = this.getById(assignmentOrderParam.getOrderId()); OrderInfoEntity oldOrder = this.getById(assignmentOrderParam.getOrderId());
@ -939,10 +981,9 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
Assert.isTrue(orderInfo.getAuditStatus() == AuditStatus.TongGuo, () -> Exceptions.clierr("当前订单未审核完成,无法开始运输")); Assert.isTrue(orderInfo.getAuditStatus() == AuditStatus.TongGuo, () -> Exceptions.clierr("当前订单未审核完成,无法开始运输"));
Long truckId = orderInfo.getTruckId(); Long truckId = orderInfo.getTruckId();
Long driverId = orderInfo.getDriverId(); Long driverId = orderInfo.getDriverId();
Boolean driverIsBusy = baseMapper.driverIsBusy(driverId); Boolean driverHasInProgress = baseMapper.hasInProgressOrder(driverId,
Assert.isFalse(driverIsBusy, () -> Exceptions.exception("有未完成的订单,不能清运")); Arrays.asList(OrderStatus.QingYunZhong.getVal(), OrderStatus.YiJinChang.getVal(), OrderStatus.YiChuChang.getVal()));
Boolean truckIsBusy = baseMapper.truckIsBusy(truckId); Assert.isFalse(driverHasInProgress, () -> Exceptions.clierr("您有正在进行中的订单,不能清运"));
Assert.isFalse(truckIsBusy, () -> Exceptions.exception("有未完成的订单,不能清运"));
Long orderInfoId = orderInfo.getId(); Long orderInfoId = orderInfo.getId();
OrderGoodsEntity entity = orderGoodsService.getById(orderInfo.getGoodsId()); OrderGoodsEntity entity = orderGoodsService.getById(orderInfo.getGoodsId());

View File

@ -412,4 +412,14 @@
WHERE busy = 0 WHERE busy = 0
AND id = #{truckId} AND id = #{truckId}
</select> </select>
<select id="hasInProgressOrder" resultType="java.lang.Boolean">
SELECT COUNT(*) > 0
FROM order_info
WHERE driver_id = #{driverId}
AND order_status IN
<foreach collection="orderStatuses" item="status" open="(" separator="," close=")">
#{status}
</foreach>
AND deleted = 0
</select>
</mapper> </mapper>