费用提交

This commit is contained in:
2026-10-28 11:29:38 +08:00
parent ca61f79b6d
commit 96ffc0925a
10 changed files with 180 additions and 9 deletions
@@ -1055,8 +1055,8 @@ public class DispatchAggregateService implements DispatchExecutionPort,DispatchA
boolean localTruck="LOCAL_TRUCK".equals(row.getTaskType()) && "ACTIVE".equals(row.getStatus());
for(var action:Action.values())if(action!=Action.ARRANGE_DELIVERY && action!=Action.DEPART) {
boolean state=(pickup || localTruck) && switch(action) {
case EDIT -> Set.of("BEFORE_LOADING","LOADING").contains(row.getStage());
case CANCEL -> localTruck ? "BEFORE_LOADING".equals(row.getStage()) : Set.of("BEFORE_LOADING","LOADING").contains(row.getStage());
case EDIT -> pickup ? "BEFORE_LOADING".equals(row.getStage()) && !"APPROVED".equals(row.getReviewState()) : Set.of("BEFORE_LOADING","LOADING").contains(row.getStage());
case CANCEL -> "BEFORE_LOADING".equals(row.getStage()) && !"APPROVED".equals(row.getReviewState());
case SUBMIT_REVIEW -> "BEFORE_LOADING".equals(row.getStage()) && canSubmitReview(row.getReviewState());
case DISPATCH_REVIEW -> "DISPATCH_PENDING".equals(row.getReviewState());
case LOADING_REVIEW -> "LOADING_PENDING".equals(row.getReviewState());
@@ -131,6 +131,7 @@ public class TransportTaskService {
var row=roots.lock(number);
if(!Objects.equals(trip.getRecordVersion(),request.recordVersion()) || request.dispatchRecordVersion()==null
|| !Objects.equals(row.getRecordVersion(),request.dispatchRecordVersion()))throw conflict("排车或审核信息已变化,请刷新后重试");
if("PICKUP".equals(trip.getTripPurpose()) && (!"BEFORE_LOADING".equals(row.getStage()) || "APPROVED".equals(row.getReviewState())))throw conflict("理货审核通过后不能维护车辆");
if(!"PLANNED".equals(trip.getStatus()) || "PICKUP".equals(trip.getTripPurpose()) && pickups.tasks(trip.getTripNo()).stream().anyMatch(task->!"ASSIGNED".equals(task.status())))throw conflict("已开始执行的任务不能更换资源照片");
// 主档照片缺省带入本车;显式本趟照片仍由原归属校验复核。
var supplied=request.reviewPhotos();
@@ -179,10 +180,10 @@ public class TransportTaskService {
@Transactional
public TransportTaskModels.Detail cancel(String number,String operator,FleetTripModels.Cancel request) {
var trip=transport(number,true);
// 本土卡车理货通过即进入装车,后续阶段禁止撤销运输安排。
if("LOCAL_TRUCK".equals(trip.getTripPurpose())) {
// 运输任务理货通过即进入装车,后续阶段禁止撤销运输安排。
if(Set.of("PICKUP","LOCAL_TRUCK").contains(trip.getTripPurpose())) {
var row=roots.lock(number);
if(row==null || !"BEFORE_LOADING".equals(row.getStage()))throw conflict("装车中及后续阶段不能取消排车");
if(row==null || !"BEFORE_LOADING".equals(row.getStage()) || "APPROVED".equals(row.getReviewState()))throw conflict("理货审核通过及后续阶段不能取消排车");
}
trips.cancel(trip.getTripNo(),operator,request);return detail(number);
}
@@ -109,7 +109,7 @@ public final class LastlegOrderRequests {
@Min(1) Long supplierId,
@Size(max = 200) String supplierName,
@Size(max = 32) String supplierCategory,
@Pattern(regexp = "ON_ACCOUNT|DIRECT_PAID") String settlementMode,
@Pattern(regexp = "BILL|WALLET|ON_ACCOUNT|DIRECT_PAID") String settlementMode,
LocalDateTime paidAt,
@Pattern(regexp = "ONLINE|BANK_TRANSFER|CASH|OTHER") String paymentMethod,
@Size(max = 128) String paymentReferenceNo,