refactor(params): 重构机型参数相关数据结构与方法

- 注释和禁用旧的ProductModelParamsItemService接口方法
- 将ProductModelParamsItemAddRequest新增字段和校验完善
- 修改ProductModelParamsItemUpdateRequest1继承关系,改为继承更新后的AddRequest
- ProductModelParamsItemVO新增多个字段,支持描述、类型、图片等属性
- ProductModelParamsItemServiceImpl中禁用旧实现代码,统一注释处理
- ProductModelController中调整新增和更新机型参数项的逻辑
- ProductModelParamsDataMapper.xml修正SQL拼接条件,改为使用batchNumber匹配
- QuotationModelPriceServiceImpl中根据batchNumber替换configItemId关联逻辑
- 删除不再使用的ProductModelParamsAddRequest类文件
This commit is contained in:
曹鹏飞 2026-05-19 09:00:25 +08:00
parent 73206d7ca4
commit 25eca66b56
9 changed files with 299 additions and 230 deletions

View File

@ -417,16 +417,12 @@ public class ProductModelController extends ControllerBase {
*/
@Transactional
@PostMapping("/addParamsItem")
public ApiResult<Integer> addParamsItem(@Valid @RequestBody ProductModelParamsItemAddRequest1 request) {
VUtils.trueThrowBusinessError(Objects.isNull(request.getModelParamsId())).throwMessage("机型参数id不能为空");
public ApiResult<Integer> addParamsItem(@Valid @RequestBody ProductModelParamsItemAddRequest request) {
// VUtils.trueThrowBusinessError(Objects.isNull(request.getModelParamsId())).throwMessage("机型参数id不能为空");
ProductModelParams info = productModelParamsService.getById(request.getModelParamsId());
VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据");
// 查找父级指标节点
ProductModelParamsData parentData = productModelParamsDataService.lambdaQuery()
.eq(ProductModelParamsData::getParamsId, request.getModelParamsId())
.eq(ProductModelParamsData::getParentId, 0)
.eq(ProductModelParamsData::getName, request.getIndexName())
.one();
ProductModelParamsData parentData = productModelParamsDataService.getById(request.getParentId());
VUtils.trueThrowBusinessError(Objects.isNull(parentData)).throwMessage("指标不存在");
// 重复校验同一指标下同名参数
VUtils.trueThrowBusinessError(
@ -439,13 +435,13 @@ public class ProductModelController extends ControllerBase {
// 写时复制
if (Objects.equals(info.getState(), PublishState.Published.getState())) {
Integer oldId = request.getModelParamsId();
request.setModelParamsId(productModelParamsService.add(request.getModelId(), info.getBatchNumber()));
request.setModelParamsId(productModelParamsService.add(info.getModelId(), info.getBatchNumber()));
productModelParamsService.copyItems(oldId, request.getModelParamsId());
// 重新查找新版本中的父节点
parentData = productModelParamsDataService.lambdaQuery()
.eq(ProductModelParamsData::getParamsId, request.getModelParamsId())
.eq(ProductModelParamsData::getParentId, 0)
.eq(ProductModelParamsData::getName, request.getIndexName())
.eq(ProductModelParamsData::getName, parentData.getName())
.one();
}
// 保存 ProductModelParamsData 子节点默认语言数据
@ -458,6 +454,13 @@ public class ProductModelController extends ControllerBase {
.setImportant(request.getImportant())
.setCompare(request.getCompare())
.setIco(request.getIco())
.setType(request.getType())
.setOptionalType(request.getOptionalType())
.setRemark(request.getRemark())
.setImageUrl(request.getImageUrl())
.setGroupName(request.getGroupName())
.setShippingDimensions(request.getShippingDimensions())
.setWeight(request.getWeight())
.setCreateBy(AdminUserUtil.getUserName())
.setCreateTime(LocalDateTime.now());
productModelParamsDataService.save(data);
@ -491,7 +494,6 @@ public class ProductModelController extends ControllerBase {
@Transactional
@PostMapping("/updateParamsItem")
public ApiResult<ParamsItemVO> updateParamsItem(@Valid @RequestBody ProductModelParamsItemUpdateRequest1 request) {
VUtils.trueThrowBusinessError(Objects.isNull(request.getModelParamsId())).throwMessage("机型参数id不能为空");
ProductModelParams info = productModelParamsService.getById(request.getModelParamsId());
VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据");
Long dataId = request.getModelParamsItemId();
@ -511,7 +513,7 @@ public class ProductModelController extends ControllerBase {
// 写时复制
if (Objects.equals(info.getState(), PublishState.Published.getState())) {
Integer oldId = request.getModelParamsId();
request.setModelParamsId(productModelParamsService.add(request.getModelId(), info.getBatchNumber()));
request.setModelParamsId(productModelParamsService.add(info.getModelId(), info.getBatchNumber()));
productModelParamsService.copyItems(oldId, request.getModelParamsId());
// 在新版本中找到对应的数据记录
ProductModelParamsData newData = productModelParamsDataService.lambdaQuery()
@ -534,6 +536,13 @@ public class ProductModelController extends ControllerBase {
.set(ProductModelParamsData::getImportant, request.getImportant())
.set(ProductModelParamsData::getCompare, request.getCompare())
.set(ProductModelParamsData::getIco, request.getIco())
.set(ProductModelParamsData::getType, request.getType())
.set(ProductModelParamsData::getOptionalType, request.getOptionalType())
.set(ProductModelParamsData::getRemark, request.getRemark())
.set(ProductModelParamsData::getImageUrl, request.getImageUrl())
.set(ProductModelParamsData::getGroupName, request.getGroupName())
.set(ProductModelParamsData::getShippingDimensions, request.getShippingDimensions())
.set(ProductModelParamsData::getWeight, request.getWeight())
.set(ProductModelParamsData::getUpdateBy, AdminUserUtil.getUserName())
.set(ProductModelParamsData::getUpdateTime, LocalDateTime.now())
.eq(ProductModelParamsData::getId, dataId)

View File

@ -1,22 +0,0 @@
package com.nflg.mobilebroken.common.pojo.request;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class ProductModelParamsAddRequest {
private Integer id;
/**
* 机型ID
*/
@NotNull
private Integer modelId;
@NotEmpty
private List<ProductModelParamsItemAddRequest> items;
}

View File

@ -5,28 +5,36 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class ProductModelParamsItemAddRequest implements Serializable {
/**
* 语言编码
* 父级ID
*/
@NotBlank
private String languageCode;
@NotNull(message = "父级ID不能为空")
private Long parentId;
/**
* 指标名称
* 机型参数id
*/
@NotBlank
private String indexName;
@NotNull(message = "机型参数id不能为空")
private Integer modelParamsId;
/**
* 语言编码
*/
@NotBlank(message = "语言编码不能为空")
private String languageCode;
/**
* 批次号
*/
@JsonIgnore
private String batchNumber= IdUtil.getSnowflakeNextIdStr();
private Long batchNumber = IdUtil.getSnowflakeNextId();
/**
* 参数名称
@ -41,20 +49,56 @@ public class ProductModelParamsItemAddRequest implements Serializable {
/**
* 是否主要参数
*/
private Boolean main=false;
private Boolean main = false;
/**
* 是否重要参数
*/
private Boolean important=false;
private Boolean important = false;
/**
* 是否参与比较
*/
private Boolean compare=true;
private Boolean compare = true;
/**
* 图标
*/
private String ico;
/**
* 描述
*/
private String remark;
/**
* 类别0可选配置1标准配置
*/
@NotNull(message = "类别不能为空")
private Integer type;
/**
* 选配类别0新增可选1替换可选
*/
private Integer optionalType;
/**
* 图片
*/
private String imageUrl;
/**
* 分组名称同组的可选配置替换
*/
private String groupName;
/**
* 运输尺寸
*/
private String shippingDimensions;
/**
* 重量
*/
private BigDecimal weight;
}

View File

@ -5,7 +5,7 @@ import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class ProductModelParamsItemUpdateRequest1 extends ProductModelParamsItemAddRequest1 {
public class ProductModelParamsItemUpdateRequest1 extends ProductModelParamsItemAddRequest {
/**
* 机型参数项id

View File

@ -1,8 +1,11 @@
package com.nflg.mobilebroken.common.pojo.vo;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@ -46,6 +49,41 @@ public class ProductParamsItemVO {
*/
private String ico;
/**
* 描述
*/
private String remark;
/**
* 类别0可选配置1标准配置
*/
private Integer type;
/**
* 选配类别0新增可选1替换可选
*/
private Integer optionalType;
/**
* 图片
*/
private String imageUrl;
/**
* 分组名称同组的可选配置替换
*/
private String groupName;
/**
* 运输尺寸
*/
private String shippingDimensions;
/**
* 重量
*/
private BigDecimal weight;
/**
* 创建人
*/

View File

@ -24,25 +24,25 @@ public interface IProductModelParamsItemService extends IService<ProductModelPar
// void update(Integer paramsId, @NotEmpty List<ProductModelParamsItemAddRequest> items);
void deleteByParamsIds(@NotEmpty List<Integer> ids);
List<ProductModelMainParamsItemVO> getMainList(Integer modelParamsId);
List<ProductModelParamsItemVO> getList(Integer modelParamsId);
void addIndexName(@Valid ProductModelParamsNameAddRequest request);
void addItem(@Valid List<ProductModelParamsItemAddRequest1> request);
void updateIndexName(@Valid ProductModelParamsNameUpdateRequest request);
void deleteParam(@Valid ProductModelParamsItemDeleteRequest request);
// void importModelParamsItem(@Valid @NotNull Integer modelParamsId, List<ProductModelParamsExcelDTO> datas);
void updateItem(@Valid ProductModelParamsItemUpdateRequest1 request);
void deleteIndexName(@Valid ParamsIndexNameDeleteRequest request);
List<ProductModelParamsItem> getForQuotation(Long configId);
// void deleteByParamsIds(@NotEmpty List<Integer> ids);
//
// List<ProductModelMainParamsItemVO> getMainList(Integer modelParamsId);
//
// List<ProductModelParamsItemVO> getList(Integer modelParamsId);
//
// void addIndexName(@Valid ProductModelParamsNameAddRequest request);
//
// void addItem(@Valid List<ProductModelParamsItemAddRequest1> request);
//
// void updateIndexName(@Valid ProductModelParamsNameUpdateRequest request);
//
// void deleteParam(@Valid ProductModelParamsItemDeleteRequest request);
//
//// void importModelParamsItem(@Valid @NotNull Integer modelParamsId, List<ProductModelParamsExcelDTO> datas);
//
// void updateItem(@Valid ProductModelParamsItemUpdateRequest1 request);
//
// void deleteIndexName(@Valid ParamsIndexNameDeleteRequest request);
//
// List<ProductModelParamsItem> getForQuotation(Long configId);
}

View File

@ -91,135 +91,135 @@ public class ProductModelParamsItemServiceImpl extends ServiceImpl<ProductModelP
// }
// }
@Override
public void deleteByParamsIds(List<Integer> ids) {
remove(new LambdaQueryWrapper<ProductModelParamsItem>()
.in(ProductModelParamsItem::getModelParamsId, ids));
}
// @Override
// public void deleteByParamsIds(List<Integer> ids) {
// remove(new LambdaQueryWrapper<ProductModelParamsItem>()
// .in(ProductModelParamsItem::getModelParamsId, ids));
// }
@Override
public List<ProductModelMainParamsItemVO> getMainList(Integer modelParamsId) {
List<ProductModelMainParamsItemVO> vos = new ArrayList<>();
List<DictionaryItemTranslate> translates = dictionaryItemTranslateService.getListByDictionaryCode(Constant.DICTIONARY_PRODUCT_MODEL_MAIN_PARAMS);
Map<String, List<DictionaryItemTranslate>> maps = translates.stream().collect(Collectors.groupingBy(DictionaryItemTranslate::getLanguageCode));
if (Objects.isNull(modelParamsId)) {
maps.forEach((languageCode, data) -> {
ProductModelMainParamsItemVO vo = new ProductModelMainParamsItemVO()
.setLanguageCode(languageCode)
.setItems(data.stream().map(it -> new ProductParamsItemVO()
.setName(it.getValue()))
.collect(Collectors.toList()));
vos.add(vo);
});
return vos;
}else {
List<ProductModelParamsItem> datas = lambdaQuery().eq(ProductModelParamsItem::getModelParamsId, modelParamsId).list();
maps.forEach((languageCode, translates1) -> {
ProductModelMainParamsItemVO vo = new ProductModelMainParamsItemVO()
.setLanguageCode(languageCode)
.setItems(translates1.stream()
.map(it -> {
ProductModelParamsItem item = datas.stream()
.filter(iit -> StrUtil.equals(iit.getLanguageCode(), languageCode)
&& StrUtil.equals(iit.getName(), it.getValue()))
.findFirst()
.orElse(null);
return new ProductParamsItemVO()
.setName(it.getValue())
.setValue(Objects.isNull(item)?"" : item.getValue());
})
.collect(Collectors.toList()));
vos.add(vo);
});
}
return vos;
}
// @Override
// public List<ProductModelMainParamsItemVO> getMainList(Integer modelParamsId) {
// List<ProductModelMainParamsItemVO> vos = new ArrayList<>();
// List<DictionaryItemTranslate> translates = dictionaryItemTranslateService.getListByDictionaryCode(Constant.DICTIONARY_PRODUCT_MODEL_MAIN_PARAMS);
// Map<String, List<DictionaryItemTranslate>> maps = translates.stream().collect(Collectors.groupingBy(DictionaryItemTranslate::getLanguageCode));
// if (Objects.isNull(modelParamsId)) {
// maps.forEach((languageCode, data) -> {
// ProductModelMainParamsItemVO vo = new ProductModelMainParamsItemVO()
// .setLanguageCode(languageCode)
// .setItems(data.stream().map(it -> new ProductParamsItemVO()
// .setName(it.getValue()))
// .collect(Collectors.toList()));
// vos.add(vo);
// });
// return vos;
// }else {
// List<ProductModelParamsItem> datas = lambdaQuery().eq(ProductModelParamsItem::getModelParamsId, modelParamsId).list();
// maps.forEach((languageCode, translates1) -> {
// ProductModelMainParamsItemVO vo = new ProductModelMainParamsItemVO()
// .setLanguageCode(languageCode)
// .setItems(translates1.stream()
// .map(it -> {
// ProductModelParamsItem item = datas.stream()
// .filter(iit -> StrUtil.equals(iit.getLanguageCode(), languageCode)
// && StrUtil.equals(iit.getName(), it.getValue()))
// .findFirst()
// .orElse(null);
// return new ProductParamsItemVO()
// .setName(it.getValue())
// .setValue(Objects.isNull(item)?"" : item.getValue());
// })
// .collect(Collectors.toList()));
// vos.add(vo);
// });
// }
// return vos;
// }
@Override
public List<ProductModelParamsItemVO> getList(Integer modelParamsId) {
List<ProductModelParamsItem> datas = lambdaQuery().eq(ProductModelParamsItem::getModelParamsId, modelParamsId).list();
Map<String, List<ProductModelParamsItem>> maps = datas.stream().collect(Collectors.groupingBy(ProductModelParamsItem::getLanguageCode));
List<ProductModelParamsItemVO> vos = new ArrayList<>();
maps.forEach((languageCode, data) -> {
ProductModelParamsItemVO vo = new ProductModelParamsItemVO()
.setLanguageCode(languageCode);
vos.add(vo);
Map<String, List<ProductModelParamsItem>> itemMap = data.stream().collect(Collectors.groupingBy(ProductModelParamsItem::getIndexName));
itemMap.forEach((indexName, itemData) -> {
ProductModelMainParamsItemChildrenVO ivo=new ProductModelMainParamsItemChildrenVO()
.setIndexName(indexName)
.setBatchNumber(CollectionUtil.isNotEmpty(itemData) ? itemData.get(0).getBatchNumber() : "")
.setItems(itemData.stream()
.sorted(Comparator.comparing(ProductModelParamsItem::getId))
.filter(pi -> StrUtil.isNotBlank(pi.getName()))
.map(pi -> Convert.convert(ProductParamsItemVO.class, pi))
.collect(Collectors.toList()));
ivo.getItems().sort(Comparator.comparing(ProductParamsItemVO::getId));
vo.getItems().add(ivo);
});
vo.getItems().sort(Comparator.comparing(ProductModelMainParamsItemChildrenVO::getBatchNumber));
});
vos.sort(Comparator.comparing(ProductModelParamsItemVO::getLanguageCode));
return vos;
}
// @Override
// public List<ProductModelParamsItemVO> getList(Integer modelParamsId) {
// List<ProductModelParamsItem> datas = lambdaQuery().eq(ProductModelParamsItem::getModelParamsId, modelParamsId).list();
// Map<String, List<ProductModelParamsItem>> maps = datas.stream().collect(Collectors.groupingBy(ProductModelParamsItem::getLanguageCode));
// List<ProductModelParamsItemVO> vos = new ArrayList<>();
// maps.forEach((languageCode, data) -> {
// ProductModelParamsItemVO vo = new ProductModelParamsItemVO()
// .setLanguageCode(languageCode);
// vos.add(vo);
// Map<String, List<ProductModelParamsItem>> itemMap = data.stream().collect(Collectors.groupingBy(ProductModelParamsItem::getIndexName));
// itemMap.forEach((indexName, itemData) -> {
// ProductModelMainParamsItemChildrenVO ivo=new ProductModelMainParamsItemChildrenVO()
// .setIndexName(indexName)
// .setBatchNumber(CollectionUtil.isNotEmpty(itemData) ? itemData.get(0).getBatchNumber() : "")
// .setItems(itemData.stream()
// .sorted(Comparator.comparing(ProductModelParamsItem::getId))
// .filter(pi -> StrUtil.isNotBlank(pi.getName()))
// .map(pi -> Convert.convert(ProductParamsItemVO.class, pi))
// .collect(Collectors.toList()));
// ivo.getItems().sort(Comparator.comparing(ProductParamsItemVO::getId));
// vo.getItems().add(ivo);
// });
// vo.getItems().sort(Comparator.comparing(ProductModelMainParamsItemChildrenVO::getBatchNumber));
// });
// vos.sort(Comparator.comparing(ProductModelParamsItemVO::getLanguageCode));
// return vos;
// }
@Override
public void addIndexName(ProductModelParamsNameAddRequest request) {
// VUtils.trueThrowBusinessError(lambdaQuery()
// @Override
// public void addIndexName(ProductModelParamsNameAddRequest request) {
//// VUtils.trueThrowBusinessError(lambdaQuery()
//// .eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId())
//// .eq(ProductModelParamsItem::getIndexName, request.getIndexName())
//// .eq(ProductModelParamsItem::getLanguageCode, request.getLanguageCode())
//// .exists())
//// .throwMessage("该指标已存在");
//// save(new ProductModelParamsItem()
//// .setModelParamsId(request.getModelParamsId())
//// .setLanguageCode(request.getLanguageCode())
//// .setIndexName(request.getIndexName())
//// .setCreateBy(AdminUserUtil.getUserName())
//// .setCreateTime(LocalDateTime.now()));
// }
// @Transactional
// @Override
// public void addItem(List<ProductModelParamsItemAddRequest1> request) {
// saveBatch(request.stream().map(it -> new ProductModelParamsItem()
// .setModelParamsId(it.getModelParamsId())
// .setLanguageCode(it.getLanguageCode())
// .setBatchNumber(it.getBatchNumber())
// .setIndexName(it.getIndexName())
// .setName(it.getName())
// .setValue(it.getValue())
// .setMain(it.getMain())
// .setImportant(it.getImportant())
// .setCompare(it.getCompare())
// .setIco(it.getIco())
// .setCreateBy(AdminUserUtil.getUserName())
// .setCreateTime(LocalDateTime.now()))
// .collect(Collectors.toList())
// );
// }
// @Override
// public void updateIndexName(ProductModelParamsNameUpdateRequest request) {
// lambdaUpdate()
// .set(ProductModelParamsItem::getIndexName, request.getNewIndexName())
// .set(ProductModelParamsItem::getUpdateBy, AdminUserUtil.getUserName())
// .set(ProductModelParamsItem::getUpdateTime, LocalDateTime.now())
// .eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId())
// .eq(ProductModelParamsItem::getIndexName, request.getIndexName())
// .eq(ProductModelParamsItem::getLanguageCode, request.getLanguageCode())
// .exists())
// .throwMessage("该指标已存在");
// save(new ProductModelParamsItem()
// .setModelParamsId(request.getModelParamsId())
// .setLanguageCode(request.getLanguageCode())
// .setIndexName(request.getIndexName())
// .setCreateBy(AdminUserUtil.getUserName())
// .setCreateTime(LocalDateTime.now()));
}
// .eq(ProductModelParamsItem::getIndexName, request.getIndexName())
// .update();
// }
@Transactional
@Override
public void addItem(List<ProductModelParamsItemAddRequest1> request) {
saveBatch(request.stream().map(it -> new ProductModelParamsItem()
.setModelParamsId(it.getModelParamsId())
.setLanguageCode(it.getLanguageCode())
.setBatchNumber(it.getBatchNumber())
.setIndexName(it.getIndexName())
.setName(it.getName())
.setValue(it.getValue())
.setMain(it.getMain())
.setImportant(it.getImportant())
.setCompare(it.getCompare())
.setIco(it.getIco())
.setCreateBy(AdminUserUtil.getUserName())
.setCreateTime(LocalDateTime.now()))
.collect(Collectors.toList())
);
}
@Override
public void updateIndexName(ProductModelParamsNameUpdateRequest request) {
lambdaUpdate()
.set(ProductModelParamsItem::getIndexName, request.getNewIndexName())
.set(ProductModelParamsItem::getUpdateBy, AdminUserUtil.getUserName())
.set(ProductModelParamsItem::getUpdateTime, LocalDateTime.now())
.eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId())
.eq(ProductModelParamsItem::getLanguageCode, request.getLanguageCode())
.eq(ProductModelParamsItem::getIndexName, request.getIndexName())
.update();
}
@Transactional
@Override
public void deleteParam(ProductModelParamsItemDeleteRequest request) {
ProductModelParamsItem info=getById(request.getModelParamsItemId());
remove(new LambdaQueryWrapper<ProductModelParamsItem>()
.eq(ProductModelParamsItem::getBatchNumber,info.getBatchNumber())
.eq(ProductModelParamsItem::getModelParamsId,request.getModelParamsId())
);
}
// @Transactional
// @Override
// public void deleteParam(ProductModelParamsItemDeleteRequest request) {
// ProductModelParamsItem info=getById(request.getModelParamsItemId());
// remove(new LambdaQueryWrapper<ProductModelParamsItem>()
// .eq(ProductModelParamsItem::getBatchNumber,info.getBatchNumber())
// .eq(ProductModelParamsItem::getModelParamsId,request.getModelParamsId())
// );
// }
// @Transactional
// @Override
@ -259,44 +259,44 @@ public class ProductModelParamsItemServiceImpl extends ServiceImpl<ProductModelP
// }
// }
@Override
public void updateItem(ProductModelParamsItemUpdateRequest1 request) {
lambdaUpdate()
.set(ProductModelParamsItem::getIndexName, request.getIndexName())
.set(ProductModelParamsItem::getName, request.getName())
.set(ProductModelParamsItem::getValue, request.getValue())
.set(ProductModelParamsItem::getMain, request.getMain())
.set(ProductModelParamsItem::getImportant, request.getImportant())
.set(ProductModelParamsItem::getCompare, request.getCompare())
.set(ProductModelParamsItem::getIco, request.getIco())
.set(ProductModelParamsItem::getUpdateBy, AdminUserUtil.getUserName())
.set(ProductModelParamsItem::getUpdateTime, LocalDateTime.now())
.eq(ProductModelParamsItem::getId, request.getModelParamsItemId())
.update();
}
// @Override
// public void updateItem(ProductModelParamsItemUpdateRequest1 request) {
// lambdaUpdate()
// .set(ProductModelParamsItem::getIndexName, request.getIndexName())
// .set(ProductModelParamsItem::getName, request.getName())
// .set(ProductModelParamsItem::getValue, request.getValue())
// .set(ProductModelParamsItem::getMain, request.getMain())
// .set(ProductModelParamsItem::getImportant, request.getImportant())
// .set(ProductModelParamsItem::getCompare, request.getCompare())
// .set(ProductModelParamsItem::getIco, request.getIco())
// .set(ProductModelParamsItem::getUpdateBy, AdminUserUtil.getUserName())
// .set(ProductModelParamsItem::getUpdateTime, LocalDateTime.now())
// .eq(ProductModelParamsItem::getId, request.getModelParamsItemId())
// .update();
// }
@Transactional
@Override
public void deleteIndexName(ParamsIndexNameDeleteRequest request) {
List<Language> languages = languageService.getAllLanguages();
languages.forEach(lang -> {
ProductModelParamsItem item = lambdaQuery()
.eq(ProductModelParamsItem::getBatchNumber, request.getBatchNumber())
.eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId())
.eq(ProductModelParamsItem::getLanguageCode, lang.getCode())
.one();
if (Objects.nonNull(item)) {
remove(new LambdaQueryWrapper<ProductModelParamsItem>()
.eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId())
.eq(ProductModelParamsItem::getLanguageCode, lang.getCode())
.eq(ProductModelParamsItem::getIndexName, item.getIndexName())
);
}
});
}
// @Transactional
// @Override
// public void deleteIndexName(ParamsIndexNameDeleteRequest request) {
// List<Language> languages = languageService.getAllLanguages();
// languages.forEach(lang -> {
// ProductModelParamsItem item = lambdaQuery()
// .eq(ProductModelParamsItem::getBatchNumber, request.getBatchNumber())
// .eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId())
// .eq(ProductModelParamsItem::getLanguageCode, lang.getCode())
// .one();
// if (Objects.nonNull(item)) {
// remove(new LambdaQueryWrapper<ProductModelParamsItem>()
// .eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId())
// .eq(ProductModelParamsItem::getLanguageCode, lang.getCode())
// .eq(ProductModelParamsItem::getIndexName, item.getIndexName())
// );
// }
// });
// }
@Override
public List<ProductModelParamsItem> getForQuotation(Long configId) {
return baseMapper.getForQuotation(configId);
}
// @Override
// public List<ProductModelParamsItem> getForQuotation(Long configId) {
// return baseMapper.getForQuotation(configId);
// }
}

View File

@ -127,10 +127,10 @@ public class QuotationModelPriceServiceImpl extends ServiceImpl<QuotationModelPr
.setParentId(configItem.getParentId())
.setPartName(configItem.getName())
.setType(configItem.getType())
.setConfigItemUniqueId(configItem.getId())
.setConfigItemUniqueId(configItem.getBatchNumber())
.setOptionalType(configItem.getOptionalType());
QuotationModelPriceItem priceItem = priceItems.stream()
.filter(pit -> pit.getConfigItemUniqueId().equals(configItem.getId()))
.filter(pit -> pit.getConfigItemUniqueId().equals(configItem.getBatchNumber()))
.findFirst()
.orElse(null);
if (Objects.nonNull(priceItem)) {

View File

@ -12,9 +12,9 @@
(
SELECT qmpi.config_item_unique_id,qmpia.amount
FROM quotation_model_price_item qmpi
LEFT JOIN quotation_model_price_item_area qmpia ON qmpia.price_item_id=qmpi.id
LEFT JOIN quotation_model_price_item_area qmpia ON qmpia.price_item_id=qmpi.id
WHERE qmpia.price_id=#{priceId} AND qmpia.area_id=#{categoryId}
) pp ON pmpd.id=pp.config_item_unique_id
) pp ON pmpd.batch_number=pp.config_item_unique_id
WHERE pmpd.params_id=#{configId} AND l.`code`=#{language}
ORDER BY pmpd.id
</select>