From 445c00bc1c91156db03abebdaf52a6d422c756b5 Mon Sep 17 00:00:00 2001 From: yinq Date: Mon, 2 Feb 2026 16:57:55 +0800 Subject: [PATCH] =?UTF-8?q?1.0.65=20=E5=90=88=E5=90=8C=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=B1=BB=E5=9E=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/enums/FormatsType.java | 5 ++ .../ITemplateVariableAssignService.java | 2 +- .../TemplateVariableAssignServiceImpl.java | 57 +++++++------------ 3 files changed, 28 insertions(+), 36 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/FormatsType.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/FormatsType.java index 8d4b6d91..29ea44d6 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/FormatsType.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/FormatsType.java @@ -95,6 +95,11 @@ public enum FormatsType { */ YYYY_MM_DD_DOT("yyyy.MM.dd"), + /** + * 例如,日期 "2023年7月22日" 可以表示为 "2023年7月22日" + */ + YYYY_MM_DD_CAN("yyyy年MM月dd日"), + /** * 例如,当前时间如果是 "2023年7月22日下午3点30分",则可以表示为 "2023.07.22 15:30" */ diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/ITemplateVariableAssignService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/ITemplateVariableAssignService.java index 37f48b7b..2de1ebd3 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/ITemplateVariableAssignService.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/ITemplateVariableAssignService.java @@ -15,7 +15,7 @@ public interface ITemplateVariableAssignService { /** * 根据模板类型为模板变量赋值 - * 模板类型:1=合同,2=发货单 + * 模板类型:1=合同,2=发货单,3=项目变更,4=报价单 * * @param request 赋值请求(包含变量名称数组、模板类型、业务ID等) * @return 赋值后的模板变量列表 diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/TemplateVariableAssignServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/TemplateVariableAssignServiceImpl.java index 272e77ef..aa28992f 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/TemplateVariableAssignServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/TemplateVariableAssignServiceImpl.java @@ -46,7 +46,7 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig /** * 根据模板类型为模板变量赋值 - * 模板类型:1=合同,2=发货单 + * 模板类型:1=合同,2=发货单,3=项目变更,4=报价单 * * @param request 赋值请求(包含变量名称数组、模板类型、业务ID等) * @return 赋值后的模板变量列表 @@ -61,6 +61,12 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig } else if ("2".equals(templateType)) { // 发货单类型 return assignDeliveryTemplateVariables(request); + } else if ("3".equals(templateType)) { + // 项目变更类型 + return assignDeliveryTemplateVariables(request); + } else if ("4".equals(templateType)) { + // 报价单类型 + return assignDeliveryTemplateVariables(request); } else { throw new ServiceException("不支持的模板类型:" + templateType); } @@ -87,18 +93,8 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig throw new ServiceException("合同信息不存在,合同ID:" + request.getContractId()); } - // 3. 查询合同物料列表(如果存在需要物料数据的变量) - List contractMaterials = null; - boolean needMaterialData = allTemplateVariables.stream() - .anyMatch(var -> "erp_contract_material".equalsIgnoreCase(var.getDataSource())); - if (needMaterialData) { - ErpContractMaterialBo materialBo = new ErpContractMaterialBo(); - materialBo.setContractId(request.getContractId()); - contractMaterials = erpContractMaterialService.queryList(materialBo); - for (int i = 0; i < contractMaterials.size(); i++) { - contractMaterials.get(i).setSeq(i + 1L); - } - } + // 3. 合同物料列表 + List contractMaterials = contractInfo.getContractMaterialList(); // 4. 为所有模板变量赋值 return buildAssignResultList(allTemplateVariables, variableMap, contractInfo, contractMaterials); @@ -125,10 +121,10 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig * @return 赋值结果列表 */ private List buildAssignResultList( - List allTemplateVariables, - Map variableMap, - ErpContractInfoVo contractInfo, - List contractMaterials) { + List allTemplateVariables, + Map variableMap, + ErpContractInfoVo contractInfo, + List contractMaterials) { List resultList = new ArrayList<>(); for (BaseTemplateVariableVo variable : allTemplateVariables) { @@ -217,7 +213,7 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig * @return 变量名到配置的映射 */ private Map buildVariableMap( - List templateVariables) { + List templateVariables) { Map variableMap = new HashMap<>(); for (BaseTemplateVariableVo variable : templateVariables) { @@ -276,9 +272,10 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig if ("erp_contract_material".equalsIgnoreCase(dataSource)) { // 从合同物料列表中提取字段值 return getFieldValueFromMaterialList(contractMaterials, variable.getDataField()); - } else { - // 默认从合同信息中获取 + } else if ("erp_contract_info".equalsIgnoreCase(dataSource)){ return getFieldValueFromContract(contractInfo, variable.getDataField()); + } else { + return null; } } @@ -348,7 +345,7 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig /** * 将值转换为目标类型 * - * @param value 原始值 + * @param value 原始值 * @return 转换后的值 */ private Object convertValueToTargetType(Object value, BaseTemplateVariableVo variable) { @@ -384,8 +381,7 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig * @return 字符串表示 */ private String convertScalarValueToString(Object value) { - if (value instanceof Collection) { - Collection collection = (Collection) value; + if (value instanceof Collection collection) { if (!collection.isEmpty()) { Object first = collection.iterator().next(); return first != null ? first.toString() : ""; @@ -409,8 +405,7 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig return ""; } - if (value instanceof Collection) { - Collection collection = (Collection) value; + if (value instanceof Collection collection) { if (collection.isEmpty()) { return ""; } @@ -435,20 +430,12 @@ public class TemplateVariableAssignServiceImpl implements ITemplateVariableAssig } if (date != null) { - return DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_DOT, date); + return DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_CAN, date); } return value.toString(); } - /** - * 根据类型获取默认值 - * - * @param isArrayType 是否为数组类型 - * @return 默认值 - */ - private Object getDefaultValueByType(boolean isArrayType) { - return isArrayType ? new ArrayList<>() : ""; - } + }