|
|
|
@ -2669,6 +2669,70 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 保存Excel导入页面的客户模板(与 codelnotify 的 updateCustomerTemplate 独立,避免共用同一方法导致空指针) |
|
|
|
* |
|
|
|
* <p>业务规则与 updateCustomerTemplate 相同,但入口独立,便于后续分别维护: |
|
|
|
* <ul> |
|
|
|
* <li>originalTemplateName 为空 → 新增或覆盖同名模板</li> |
|
|
|
* <li>originalTemplateName 不为空且与 templateName 不同 → 另存为新模板</li> |
|
|
|
* <li>originalTemplateName 不为空且与 templateName 相同 → 更新原模板</li> |
|
|
|
* </ul> |
|
|
|
* |
|
|
|
* @param params 包含模板信息的Map(来自Excel导入预览页面行数据) |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void saveExcelImportTemplate(Map<String, Object> params) { |
|
|
|
String templateName = params.get("templateName") != null ? String.valueOf(params.get("templateName")).trim() : null; |
|
|
|
String originalTemplateName = params.get("originalTemplateName") != null ? String.valueOf(params.get("originalTemplateName")).trim() : null; |
|
|
|
String customerName = params.get("ccusname") != null ? String.valueOf(params.get("ccusname")).trim() : null; |
|
|
|
|
|
|
|
if (templateName == null || templateName.isEmpty()) { |
|
|
|
throw new RuntimeException("模板名称不能为空"); |
|
|
|
} |
|
|
|
if (customerName == null || customerName.isEmpty()) { |
|
|
|
throw new RuntimeException("客户名称不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
boolean hasOriginalTemplate = originalTemplateName != null && !originalTemplateName.isEmpty(); |
|
|
|
|
|
|
|
try { |
|
|
|
if (hasOriginalTemplate) { |
|
|
|
Map<String, Object> originalTemplate = coDelMapper.getCustomerTemplateByName(originalTemplateName); |
|
|
|
boolean nameChanged = !templateName.equals(originalTemplateName); |
|
|
|
|
|
|
|
if (nameChanged) { |
|
|
|
Map<String, Object> targetTemplate = coDelMapper.getCustomerTemplateByName(templateName); |
|
|
|
if (targetTemplate == null) { |
|
|
|
createNewTemplate(params, customerName); |
|
|
|
} else { |
|
|
|
updateExistingTemplate(params, targetTemplate); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (originalTemplate != null) { |
|
|
|
updateExistingTemplate(params, originalTemplate); |
|
|
|
} else { |
|
|
|
log.warn("Excel导入保存模板:原模板[{}]不存在,将创建新模板", originalTemplateName); |
|
|
|
createNewTemplate(params, customerName); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
Map<String, Object> targetTemplate = coDelMapper.getCustomerTemplateByName(templateName); |
|
|
|
if (targetTemplate == null) { |
|
|
|
createNewTemplate(params, customerName); |
|
|
|
} else { |
|
|
|
updateExistingTemplate(params, targetTemplate); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (RuntimeException e) { |
|
|
|
throw e; |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("Excel导入保存模板失败: templateName={}, originalTemplateName={}", templateName, originalTemplateName, e); |
|
|
|
String msg = e.getMessage() != null ? e.getMessage() : "未知错误"; |
|
|
|
throw new RuntimeException("Excel导入保存模板失败: " + msg); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 创建新模板 |
|
|
|
* |
|
|
|
@ -2706,7 +2770,8 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
String existingTemplateNo = (String) existingTemplate.get("template_no"); |
|
|
|
String existingCcuscode = (String) existingTemplate.get("ccuscode"); |
|
|
|
|
|
|
|
params.put("template_no", existingTemplateNo); |
|
|
|
// XML 中 WHERE 条件是 #{templateNo}(camelCase),必须用 templateNo 作为 key |
|
|
|
params.put("templateNo", existingTemplateNo); |
|
|
|
params.put("ccuscode", existingCcuscode != null ? existingCcuscode : ""); |
|
|
|
|
|
|
|
// 更新模板 |
|
|
|
|