From 2404281bff0540a090179c7e4fe62933a05ec29e Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Mon, 21 Sep 2026 13:52:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E3=80=81=E5=90=88=E5=90=8C?= =?UTF-8?q?=E3=80=81=E8=BF=90=E5=8D=95=E3=80=81=E9=A2=84=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E3=80=81=E6=AD=A3=E5=BC=8F=E7=BB=93=E7=AE=97=E3=80=81=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E5=AF=B9=E6=8E=A5mk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transport/pojo/vo/ProjectApplyVO.java | 14 +++++ .../transport/mapper/ProjectApplyMapper.java | 28 +++++++++ .../transport/mk/MkProcessBizHandlers.java | 2 +- .../transport/service/IWaybillService.java | 8 +++ .../service/impl/ProjectApplyServiceImpl.java | 59 +++++++++++++++++++ .../service/impl/WaybillServiceImpl.java | 17 ++++++ 6 files changed, 127 insertions(+), 1 deletion(-) diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ProjectApplyVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ProjectApplyVO.java index 0b6fa77..aed01d6 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ProjectApplyVO.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ProjectApplyVO.java @@ -30,6 +30,8 @@ import org.springblade.transport.pojo.entity.ProjectApply; import java.io.Serial; import java.math.BigDecimal; +import java.util.List; +import java.util.Map; /** * 项目立项视图实体类 @@ -104,4 +106,16 @@ public class ProjectApplyVO extends ProjectApply { @Schema(description = "风险计算额度基数") private BigDecimal maxFundLimit; + @TableField(exist = false) + @Schema(description = "货物类型字典,公开页回显使用") + private List> cargoTypeOptions; + + @TableField(exist = false) + @Schema(description = "运输类型字典,公开页回显使用") + private List> transportTypeOptions; + + @TableField(exist = false) + @Schema(description = "结算方式字典,公开页回显使用") + private List> settlementModeOptions; + } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ProjectApplyMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ProjectApplyMapper.java index 8bd6fce..f843051 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ProjectApplyMapper.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ProjectApplyMapper.java @@ -22,9 +22,15 @@ */ package org.springblade.transport.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.springblade.transport.pojo.entity.ProjectApply; +import java.util.List; +import java.util.Map; + /** * 项目立项 Mapper 接口 * @@ -32,4 +38,26 @@ import org.springblade.transport.pojo.entity.ProjectApply; */ public interface ProjectApplyMapper extends BaseMapper { + /** + * 按租户读取业务字典项,供未登录公开页回显下拉文案 + */ + @InterceptorIgnore(tenantLine = "true") + @Select(""" + SELECT dict_key AS dictKey, dict_value AS dictValue + FROM blade_dict_biz + WHERE is_deleted = 0 AND parent_id <> 0 AND tenant_id = #{tenantId} AND code = #{code} + """) + List> selectDictBizItems(@Param("tenantId") String tenantId, @Param("code") String code); + + /** + * 读取系统字典项,供未登录公开页回显下拉文案 + */ + @InterceptorIgnore(tenantLine = "true") + @Select(""" + SELECT dict_key AS dictKey, dict_value AS dictValue + FROM blade_dict + WHERE is_deleted = 0 AND parent_id <> 0 AND code = #{code} + """) + List> selectDictItems(@Param("code") String code); + } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mk/MkProcessBizHandlers.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mk/MkProcessBizHandlers.java index 684f574..b5456cf 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/mk/MkProcessBizHandlers.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mk/MkProcessBizHandlers.java @@ -211,7 +211,7 @@ public final class MkProcessBizHandlers { @Override public Object publicDetail(Long id) { - return service.getById(id); + return service.publicDetail(id); } @Override diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IWaybillService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IWaybillService.java index 3536790..7f3af7d 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IWaybillService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IWaybillService.java @@ -46,6 +46,14 @@ public interface IWaybillService extends BaseService { IPage selectWaybillPage(IPage page, WaybillVO waybill); WaybillVO detail(Long id); + /** + * 公开详情,不校验当前用户所属组织 + * + * @param id 主键 + * @return 运单详情 + */ + WaybillVO publicDetail(Long id); + /** * 管理端:运单打卡记录 + 司机上传凭证图(label=节点-凭证类型) */ diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ProjectApplyServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ProjectApplyServiceImpl.java index 2044eff..c1e759d 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ProjectApplyServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ProjectApplyServiceImpl.java @@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; @@ -71,6 +72,7 @@ import java.util.stream.Collectors; * @author Chill */ @Service +@Slf4j @RequiredArgsConstructor public class ProjectApplyServiceImpl extends BaseServiceImpl implements IProjectApplyService { @@ -116,6 +118,7 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl> loadSystemDictOptions(String code) { + return toDictOptions(baseMapper.selectDictItems(code)); + } + + private List> loadBizDictOptions(String tenantId, String code) { + if (Func.isEmpty(tenantId)) { + return new ArrayList<>(); + } + return toDictOptions(baseMapper.selectDictBizItems(tenantId, code)); + } + + private List> toDictOptions(List> rows) { + List> options = new ArrayList<>(); + if (rows == null) { + return options; + } + for (Map row : rows) { + String dictKey = dictColumn(row, "dictKey", "dictkey", "dict_key"); + if (Func.isEmpty(dictKey) || "-1".equals(dictKey)) { + continue; + } + String dictValue = dictColumn(row, "dictValue", "dictvalue", "dict_value"); + Map option = new LinkedHashMap<>(); + option.put("value", dictKey); + option.put("label", Func.isEmpty(dictValue) ? dictKey : dictValue); + options.add(option); + } + return options; + } + + private String dictColumn(Map row, String... names) { + if (row == null) { + return ""; + } + for (String name : names) { + Object value = row.get(name); + if (value != null && Func.isNotEmpty(String.valueOf(value))) { + return String.valueOf(value); + } + } + return ""; + } + private boolean canCurrentUserOperate(ProjectApply projectApply) { if (AuthUtil.isAdministrator()) { return true; diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/WaybillServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/WaybillServiceImpl.java index 42d9932..9709c23 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/WaybillServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/WaybillServiceImpl.java @@ -28,6 +28,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.fasterxml.jackson.databind.JsonNode; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tenant.annotation.TenantIgnore; import org.springblade.core.tool.jackson.JsonUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; @@ -138,6 +139,22 @@ public class WaybillServiceImpl extends BaseServiceImpl return result; } + @Override + @TenantIgnore + public WaybillVO publicDetail(Long id) { + if (Func.isEmpty(id)) { + throw new ServiceException("主键不能为空"); + } + Waybill waybill = getById(id); + if (Func.isEmpty(waybill) || Objects.equals(waybill.getIsDeleted(), 1)) { + throw new ServiceException("运单管理不存在"); + } + WaybillVO waybillVO = WaybillWrapper.build().entityVO(waybill); + waybillVO.setReadonly(true); + fillCustomerNameFromContract(waybillVO); + return waybillVO; + } + @Override public WaybillLocateVO locateVehicle(Long id) { Waybill waybill = requireWaybillWithVehicleNo(id, "无法实时定位");