Browse Source

客户模板名称有修改,点"保存模板"会另存为新模板

java8
han\hanst 3 weeks ago
parent
commit
216e802287
  1. 19
      src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java
  2. 64
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

19
src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java

@ -12,6 +12,8 @@ import com.xujie.sys.modules.sys.entity.SysUserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Insert;
import java.util.List;
import java.util.Map;
@ -273,7 +275,22 @@ public interface CoDelMapper {
// 获取客户模板列表
List<Map<String, Object>> getCustomerTemplateList(Map<String, Object> params);
// 更新客户模板
// 根据模板名称获取客户模板信息
@Select("SELECT * FROM ecss_Customer_template WHERE template_name = #{templateName}")
Map<String, Object> getCustomerTemplateByName(@Param("templateName") String templateName);
// 获取最大的template_no用于生成新的template_no
@Select("SELECT TOP 1 template_no FROM ecss_Customer_template ORDER BY template_no DESC")
String getMaxTemplateNo();
// 插入新的客户模板模板名称变化时使用
@Insert("INSERT INTO ecss_Customer_template (template_no, template_name,ccuscode, ccusname, localShipAddress, " +
"overseasShipper, overseasAddress, cnative, salesArea) " +
"VALUES (#{template_no}, #{templateName},#{ccuscode}, #{ccusname}, #{localShipAddress}, " +
"#{overseasShipper}, #{overseasAddress}, #{cnative}, #{salesArea})")
void insertCustomerTemplate(Map<String, Object> params);
// 更新客户模板保留原方法签名以兼容
void updateCustomerTemplate(Map<String, Object> params);
// ========== 物料包装属性导入相关方法 ==========

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

@ -2338,7 +2338,69 @@ public class CoDelServiceImpl implements CoDelService {
@Override
public void updateCustomerTemplate(Map<String, Object> params) {
coDelMapper.updateCustomerTemplate(params);
String templateName = (String) params.get("templateName");
String originalTemplateName = (String) params.get("originalTemplateName");
// 如果没有传入原始模板名称则认为是更新当前模板
if (originalTemplateName == null || originalTemplateName.trim().isEmpty()) {
originalTemplateName = templateName;
}
// 获取原始模板信息
Map<String, Object> originalTemplate = coDelMapper.getCustomerTemplateByName(originalTemplateName);
if (originalTemplate == null) {
throw new RuntimeException("原始模板不存在:" + originalTemplateName);
}
// 判断模板名称是否发生变化
boolean nameChanged = !templateName.equals(originalTemplateName);
if (nameChanged) {
// 模板名称变化创建新模板
// 1. 生成新的template_no
String maxTemplateNo = coDelMapper.getMaxTemplateNo();
String newTemplateNo = generateNextTemplateNo(maxTemplateNo);
// 2. 设置新的template_no
params.put("template_no", newTemplateNo);
// 3. 插入新模板
coDelMapper.insertCustomerTemplate(params);
} else {
// 模板名称未变化直接更新
coDelMapper.updateCustomerTemplate(params);
}
}
/**
* 生成下一个template_no
* 例如TP0036 -> TP0037
*
* @param currentMaxNo 当前最大的template_no
* @return 新的template_no
*/
private String generateNextTemplateNo(String currentMaxNo) {
if (currentMaxNo == null || currentMaxNo.trim().isEmpty()) {
// 如果没有现有记录从TP0001开始
return "TP0001";
}
try {
// 提取数字部分假设格式为 TP0036
String prefix = currentMaxNo.substring(0, 2); // "TP"
String numberPart = currentMaxNo.substring(2); // "0036"
// 转换为整数并加1
int nextNumber = Integer.parseInt(numberPart) + 1;
// 格式化为固定长度保持前导零
String newNumberPart = String.format("%0" + numberPart.length() + "d", nextNumber);
return prefix + newNumberPart;
} catch (Exception e) {
throw new RuntimeException("生成新的template_no失败,当前最大值:" + currentMaxNo, e);
}
}
/**

Loading…
Cancel
Save