完善配载

This commit is contained in:
2026-08-11 15:26:09 +08:00
parent 1029bcd209
commit 4e7e354349
3 changed files with 37 additions and 4 deletions
@@ -104,22 +104,29 @@ public class LoadingManageController extends BladeController {
return R.status(loadingManageService.reassign(loadingManage));
}
@PostMapping("/cancel")
@PostMapping("/change-route")
@ApiOperationSupport(order = 9)
@Operation(summary = "变更运输路线", description = "传入配载单路线与变更记录")
public R changeRoute(@RequestBody LoadingManage loadingManage) {
return R.status(loadingManageService.changeRoute(loadingManage));
}
@PostMapping("/cancel")
@ApiOperationSupport(order = 10)
@Operation(summary = "取消", description = "传入id")
public R cancel(@Parameter(description = "主键", required = true) @RequestParam Long id) {
return R.status(loadingManageService.cancel(id));
}
@PostMapping("/complete")
@ApiOperationSupport(order = 10)
@ApiOperationSupport(order = 11)
@Operation(summary = "完成", description = "传入id")
public R complete(@Parameter(description = "主键", required = true) @RequestParam Long id) {
return R.status(loadingManageService.complete(id));
}
@PostMapping("/batch-complete")
@ApiOperationSupport(order = 11)
@ApiOperationSupport(order = 12)
@Operation(summary = "批量完成", description = "传入ids")
public R<BusinessRemoveResultVO> batchComplete(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.data(loadingManageService.batchComplete(ids));
@@ -36,6 +36,8 @@ public interface ILoadingManageService extends BaseService<LoadingManage> {
boolean reassign(LoadingManage loadingManage);
boolean changeRoute(LoadingManage loadingManage);
boolean cancel(Long id);
boolean complete(Long id);
@@ -77,8 +77,10 @@ public class LoadingManageServiceImpl extends BaseServiceImpl<LoadingManageMappe
public boolean saveDraft(LoadingManage loadingManage) {
prepare(loadingManage);
validate(loadingManage, true);
List<Long> oldWaybillIds = new ArrayList<>();
if (Func.isNotEmpty(loadingManage.getId())) {
LoadingManage oldRecord = loadEditable(loadingManage.getId(), true);
oldWaybillIds = waybillIds(oldRecord.getWaybillIdsJson());
loadingManage.setLoadingNo(oldRecord.getLoadingNo());
loadingManage.setDeptId(oldRecord.getDeptId());
loadingManage.setDeptName(oldRecord.getDeptName());
@@ -88,7 +90,10 @@ public class LoadingManageServiceImpl extends BaseServiceImpl<LoadingManageMappe
if (Func.isEmpty(loadingManage.getLoadingNo())) {
loadingManage.setLoadingNo(nextCode());
}
return saveOrUpdate(loadingManage);
validateWaybillsAvailable(loadingManage, waybillIds(loadingManage.getWaybillIdsJson()));
boolean result = saveOrUpdate(loadingManage);
syncAssociatedWaybills(loadingManage, STATUS_DRAFT, oldWaybillIds);
return result;
}
@Override
@@ -124,6 +129,7 @@ public class LoadingManageServiceImpl extends BaseServiceImpl<LoadingManageMappe
}
BusinessRemoveResultVO result = new BusinessRemoveResultVO();
List<Long> deleteIdList = new ArrayList<>();
List<Long> releaseWaybillIds = new ArrayList<>();
for (LoadingManage loadingManage : listByIds(idList)) {
TransportBusinessSupport.assertCurrentDept(loadingManage.getDeptId(), "配载管理");
if (!Objects.equals(loadingManage.getBusinessStatus(), STATUS_DRAFT)) {
@@ -132,9 +138,11 @@ public class LoadingManageServiceImpl extends BaseServiceImpl<LoadingManageMappe
continue;
}
deleteIdList.add(loadingManage.getId());
releaseWaybillIds.addAll(waybillIds(loadingManage.getWaybillIdsJson()));
}
if (Func.isNotEmpty(deleteIdList)) {
deleteLogic(deleteIdList);
releaseAssociatedWaybills(releaseWaybillIds, STATUS_PENDING);
}
result.setSuccessCount(deleteIdList.size());
return result;
@@ -224,6 +232,22 @@ public class LoadingManageServiceImpl extends BaseServiceImpl<LoadingManageMappe
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean changeRoute(LoadingManage loadingManage) {
LoadingManage oldRecord = loadEditable(loadingManage.getId(), true);
if (Objects.equals(oldRecord.getBusinessStatus(), STATUS_COMPLETED)
|| Objects.equals(oldRecord.getBusinessStatus(), STATUS_CANCELLED)) {
throw new ServiceException("当前配载单状态不允许变更运输路线");
}
oldRecord.setRouteJson(TransportBusinessSupport.trimToNull(loadingManage.getRouteJson()));
oldRecord.setDepartureAddress(TransportBusinessSupport.trimToNull(loadingManage.getDepartureAddress()));
oldRecord.setTransitAddress(TransportBusinessSupport.trimToNull(loadingManage.getTransitAddress()));
oldRecord.setArrivalAddress(TransportBusinessSupport.trimToNull(loadingManage.getArrivalAddress()));
oldRecord.setTaskInfoJson(TransportBusinessSupport.trimToNull(loadingManage.getTaskInfoJson()));
return updateById(oldRecord);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean cancel(Long id) {