Merge remote-tracking branch 'websoft/dev'

This commit is contained in:
2026-11-09 12:44:57 +08:00
@@ -2174,7 +2174,7 @@ public class WaybillServiceImpl extends BaseServiceImpl<WaybillMapper, Waybill>
if (isRoadTransport(waybill.getTransportType())) { if (isRoadTransport(waybill.getTransportType())) {
if ("承运商".equals(waybill.getCarrierType())) { if ("承运商".equals(waybill.getCarrierType())) {
TransportBusinessSupport.validateRequired(waybill.getCarrierName(), "承运商不能为空"); TransportBusinessSupport.validateRequired(waybill.getCarrierName(), "承运商不能为空");
} else if (!isBatchImport(waybill)) { } else if (!isBatchImport(waybill) && !isDriverOptionalSource(waybill)) {
TransportBusinessSupport.validateRequired(waybill.getDriverName(), "司机不能为空"); TransportBusinessSupport.validateRequired(waybill.getDriverName(), "司机不能为空");
} }
} }
@@ -2350,6 +2350,14 @@ public class WaybillServiceImpl extends BaseServiceImpl<WaybillMapper, Waybill>
return waybill != null && TransportBusinessSupport.DATA_SOURCE_BATCH_IMPORT.equals(waybill.getDataSource()); return waybill != null && TransportBusinessSupport.DATA_SOURCE_BATCH_IMPORT.equals(waybill.getDataSource());
} }
/**
* 计划调度生成的运单允许司机为空:调度明细里司机与手机号对全部承运类型都是选填。
* 数据来源已由 prepare 归一,多联总单调度同样归为计划调度。
*/
private boolean isDriverOptionalSource(Waybill waybill) {
return waybill != null && TransportBusinessSupport.DATA_SOURCE_PLAN_DISPATCH.equals(waybill.getDataSource());
}
private void fillJsonFromFlatFields(Waybill waybill) { private void fillJsonFromFlatFields(Waybill waybill) {
if (Func.isEmpty(waybill.getTaskEntryMode())) { if (Func.isEmpty(waybill.getTaskEntryMode())) {
waybill.setTaskEntryMode("simple"); waybill.setTaskEntryMode("simple");