Browse Source

重构客户模版另存为

master
han\hanst 20 hours ago
parent
commit
14ad8ac7a6
  1. 21
      src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java
  2. 7
      src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java
  3. 67
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

21
src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java

@ -685,7 +685,26 @@ public class CoDelController {
coDelService.updateCustomerTemplate(params);
return R.ok("客户模板更新成功");
} catch (Exception e) {
return R.error("客户模板更新失败:" + e.getMessage());
String msg = e.getMessage() != null ? e.getMessage() : "未知错误";
return R.error("客户模板更新失败:" + msg);
}
}
/**
* @Author AI
* @Description 保存Excel导入页面的客户模板 codelnotify updateCustomerTemplate 独立避免共用
* @Param [params]
* @return R
*/
@PostMapping("/saveExcelImportTemplate")
@ResponseBody
public R saveExcelImportTemplate(@RequestBody Map<String, Object> params) {
try {
coDelService.saveExcelImportTemplate(params);
return R.ok("客户模板保存成功");
} catch (Exception e) {
String msg = e.getMessage() != null ? e.getMessage() : "未知错误";
return R.error("客户模板保存失败:" + msg);
}
}

7
src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java

@ -165,6 +165,13 @@ public interface CoDelService {
void updateCustomerTemplate(Map<String, Object> params);
/**
* 保存Excel导入页面的客户模板独立于 codelnotify updateCustomerTemplate
*
* @param params 包含模板信息的Map
*/
void saveExcelImportTemplate(Map<String, Object> params);
/**
* @Description 根据sitebuNopartNo获取物料包装属性每卷数量每箱卷数箱重量
* @param site 站点

67
src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

@ -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 : "");
// 更新模板

Loading…
Cancel
Save