|
|
|
|
@ -77,20 +77,15 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
return ApiResult.success(Collections.emptyList());
|
|
|
|
|
}
|
|
|
|
|
vos.stream().filter(vo -> vo.getItemParentId() == 0L)
|
|
|
|
|
.sorted(Comparator.comparing(ModelConfigItemLanguageVO::getId))
|
|
|
|
|
.forEach(vo -> vo.setChildren(vos.stream()
|
|
|
|
|
.filter(i -> i.getItemParentId().equals(vo.getId()))
|
|
|
|
|
.map(i -> new ModelConfigItemLanguageVO()
|
|
|
|
|
.setId(i.getId())
|
|
|
|
|
.setPartName(i.getPartName())
|
|
|
|
|
.setPartRemark(i.getPartRemark())
|
|
|
|
|
.setImageUrl(i.getImageUrl())
|
|
|
|
|
.setEnable(i.getEnable())
|
|
|
|
|
.setType(i.getType())
|
|
|
|
|
.setOptionalType(i.getOptionalType())
|
|
|
|
|
).sorted(Comparator.comparing(ModelConfigItemLanguageVO::getId))
|
|
|
|
|
.collect(Collectors.toList())
|
|
|
|
|
));
|
|
|
|
|
.sorted(Comparator.comparing(ModelConfigItemLanguageVO::getItemId))
|
|
|
|
|
.forEach(vo ->
|
|
|
|
|
vo.setChildren(vos.stream()
|
|
|
|
|
.filter(i -> i.getItemParentId().equals(vo.getItemId()))
|
|
|
|
|
.sorted(Comparator.comparing(ModelConfigItemLanguageVO::getItemId))
|
|
|
|
|
.collect(Collectors.toList())
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
vos.removeIf(it -> it.getItemParentId() != 0L);
|
|
|
|
|
return ApiResult.success(vos);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -112,6 +107,9 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
List<QuotationModelConfigItemLanguage> itemLanguages = modelConfigItemLanguageService.lambdaQuery()
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getConfigId, request.getConfigId())
|
|
|
|
|
.list();
|
|
|
|
|
config.setConfigStatus(0);
|
|
|
|
|
config.setConfigYear(null);
|
|
|
|
|
config.setConfigVersion(null);
|
|
|
|
|
config.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
request.setConfigId(config.getId());
|
|
|
|
|
config.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
@ -120,19 +118,26 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
modelConfigService.save(config);
|
|
|
|
|
if (CollectionUtil.isNotEmpty(items)) {
|
|
|
|
|
items.forEach(it -> {
|
|
|
|
|
it.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
Long id = IdUtil.getSnowflakeNextId();
|
|
|
|
|
if (Objects.equals(request.getParentId(), it.getId())){
|
|
|
|
|
request.setParentId(id);
|
|
|
|
|
}
|
|
|
|
|
itemLanguages.stream()
|
|
|
|
|
.filter(i -> i.getConfigItemId().equals(it.getId()))
|
|
|
|
|
.forEach(i -> {
|
|
|
|
|
i.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
i.setConfigId(config.getId());
|
|
|
|
|
i.setConfigItemId(id);
|
|
|
|
|
i.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
i.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
i.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
});
|
|
|
|
|
items.stream().filter(i -> i.getParentId().equals(it.getId()))
|
|
|
|
|
.forEach(i -> i.setParentId(id));
|
|
|
|
|
it.setId(id);
|
|
|
|
|
it.setConfigId(config.getId());
|
|
|
|
|
});
|
|
|
|
|
modelConfigItemService.saveBatch(items);
|
|
|
|
|
}
|
|
|
|
|
if (CollectionUtil.isNotEmpty(itemLanguages)) {
|
|
|
|
|
itemLanguages.forEach(it -> {
|
|
|
|
|
it.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
it.setConfigId(config.getId());
|
|
|
|
|
it.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
it.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
it.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
});
|
|
|
|
|
modelConfigItemLanguageService.saveBatch(itemLanguages);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -208,6 +213,9 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
List<QuotationModelConfigItemLanguage> itemLanguages = modelConfigItemLanguageService.lambdaQuery()
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getConfigId, languageItem.getConfigId())
|
|
|
|
|
.list();
|
|
|
|
|
config.setConfigStatus(0);
|
|
|
|
|
config.setConfigYear(null);
|
|
|
|
|
config.setConfigVersion(null);
|
|
|
|
|
config.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
config.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
config.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
@ -215,7 +223,32 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
modelConfigService.save(config);
|
|
|
|
|
if (CollectionUtil.isNotEmpty(items)) {
|
|
|
|
|
items.forEach(it -> {
|
|
|
|
|
it.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
Long id = IdUtil.getSnowflakeNextId();
|
|
|
|
|
if (Objects.equals(request.getParentId(), it.getId())){
|
|
|
|
|
request.setParentId(id);
|
|
|
|
|
}
|
|
|
|
|
itemLanguages.stream()
|
|
|
|
|
.filter(i -> i.getConfigItemId().equals(it.getId()))
|
|
|
|
|
.forEach(i -> {
|
|
|
|
|
VUtils.trueThrowBusinessError(modelConfigItemLanguageService.lambdaQuery()
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getConfigId, languageItem.getConfigId())
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getLanguageId, languageItem.getLanguageId())
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getPartName, request.getPartName())
|
|
|
|
|
.exists())
|
|
|
|
|
.throwMessage("已存在该名称的部件或系统");
|
|
|
|
|
if (i.getId().equals(request.getId())) {
|
|
|
|
|
i.setPartName(request.getPartName());
|
|
|
|
|
i.setPartRemark(request.getPartRemark());
|
|
|
|
|
}
|
|
|
|
|
i.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
i.setConfigId(config.getId());
|
|
|
|
|
i.setConfigItemId(id);
|
|
|
|
|
i.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
i.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
i.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
});
|
|
|
|
|
items.stream().filter(i -> i.getParentId().equals(it.getId()))
|
|
|
|
|
.forEach(i -> i.setParentId(id));
|
|
|
|
|
it.setConfigId(config.getId());
|
|
|
|
|
if (StrUtil.equals(request.getLanguageCode(), Constant.DEFAULT_LANGUAGE_CODE)
|
|
|
|
|
&& it.getId().equals(languageItem.getConfigItemId())) {
|
|
|
|
|
@ -226,29 +259,29 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
it.setPartRemark(request.getPartRemark());
|
|
|
|
|
it.setImageUrl(request.getImageUrl());
|
|
|
|
|
}
|
|
|
|
|
it.setId(id);
|
|
|
|
|
});
|
|
|
|
|
modelConfigItemService.saveBatch(items);
|
|
|
|
|
}
|
|
|
|
|
if (CollectionUtil.isNotEmpty(itemLanguages)) {
|
|
|
|
|
itemLanguages.forEach(it -> {
|
|
|
|
|
VUtils.trueThrowBusinessError(modelConfigItemLanguageService.lambdaQuery()
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getConfigId, languageItem.getConfigId())
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getLanguageId, languageItem.getLanguageId())
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getPartName, request.getPartName())
|
|
|
|
|
.exists())
|
|
|
|
|
.throwMessage("已存在该名称的部件或系统");
|
|
|
|
|
if (it.getId().equals(request.getId())) {
|
|
|
|
|
it.setPartName(request.getPartName());
|
|
|
|
|
it.setPartRemark(request.getPartRemark());
|
|
|
|
|
}
|
|
|
|
|
it.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
it.setConfigId(config.getId());
|
|
|
|
|
it.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
it.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
it.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
});
|
|
|
|
|
modelConfigItemLanguageService.saveBatch(itemLanguages);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
languageItem.setPartName(request.getPartName());
|
|
|
|
|
languageItem.setPartRemark(request.getPartRemark());
|
|
|
|
|
languageItem.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
languageItem.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
languageItem.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
if (StrUtil.equals(request.getLanguageCode(), Constant.DEFAULT_LANGUAGE_CODE)) {
|
|
|
|
|
modelConfigItemService.lambdaUpdate()
|
|
|
|
|
.set(QuotationModelConfigItem::getType, request.getType())
|
|
|
|
|
.set(QuotationModelConfigItem::getOptionalType, request.getOptionalType())
|
|
|
|
|
.set(QuotationModelConfigItem::getParentId, request.getParentId())
|
|
|
|
|
.set(QuotationModelConfigItem::getPartName, request.getPartName())
|
|
|
|
|
.set(QuotationModelConfigItem::getPartRemark, request.getPartRemark())
|
|
|
|
|
.set(QuotationModelConfigItem::getImageUrl, request.getImageUrl())
|
|
|
|
|
.eq(QuotationModelConfigItem::getId, request.getItemId())
|
|
|
|
|
.update();
|
|
|
|
|
}
|
|
|
|
|
modelConfigItemLanguageService.updateById(languageItem);
|
|
|
|
|
}
|
|
|
|
|
return ApiResult.success(config.getId());
|
|
|
|
|
}
|
|
|
|
|
@ -263,7 +296,8 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
List<QuotationModelConfigItem> items = modelConfigItemService.lambdaQuery()
|
|
|
|
|
.in(QuotationModelConfigItem::getId, ids)
|
|
|
|
|
.list();
|
|
|
|
|
VUtils.trueThrowBusinessError(items.size() > 1).throwMessage("数据错误");
|
|
|
|
|
VUtils.trueThrowBusinessError(items.stream().map(QuotationModelConfigItem::getConfigId).distinct().count() > 1)
|
|
|
|
|
.throwMessage("数据错误");
|
|
|
|
|
QuotationModelConfig config = modelConfigService.getById(items.get(0).getConfigId());
|
|
|
|
|
VUtils.trueThrowBusinessError(Objects.isNull(config)).throwMessage("无效的机型配置");
|
|
|
|
|
if (config.getConfigStatus() != 0) {
|
|
|
|
|
@ -273,34 +307,61 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
List<QuotationModelConfigItemLanguage> itemLanguages = modelConfigItemLanguageService.lambdaQuery()
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getConfigId, config.getId())
|
|
|
|
|
.list();
|
|
|
|
|
config.setConfigStatus(0);
|
|
|
|
|
config.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
config.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
config.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
config.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
modelConfigService.save(config);
|
|
|
|
|
List<Long> childrenIds = modelConfigItemService.lambdaQuery()
|
|
|
|
|
.select(QuotationModelConfigItem::getId)
|
|
|
|
|
.in(QuotationModelConfigItem::getParentId, ids)
|
|
|
|
|
.list()
|
|
|
|
|
.stream()
|
|
|
|
|
.map(QuotationModelConfigItem::getId)
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
Collection<Long> allIds = CollectionUtil.union(childrenIds, ids);
|
|
|
|
|
if (CollectionUtil.isNotEmpty(items)) {
|
|
|
|
|
items.removeIf(it -> ids.contains(it.getId()));
|
|
|
|
|
items.removeIf(it -> allIds.contains(it.getId()));
|
|
|
|
|
itemLanguages.removeIf(it -> allIds.contains(it.getConfigItemId()));
|
|
|
|
|
List<QuotationModelConfigItem> finalItems = items;
|
|
|
|
|
items.forEach(it -> {
|
|
|
|
|
it.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
Long id = IdUtil.getSnowflakeNextId();
|
|
|
|
|
itemLanguages.forEach(i -> {
|
|
|
|
|
i.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
i.setConfigId(config.getId());
|
|
|
|
|
i.setConfigItemId(id);
|
|
|
|
|
i.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
i.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
i.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
});
|
|
|
|
|
finalItems.stream().filter(i -> i.getParentId().equals(it.getId()))
|
|
|
|
|
.forEach(i -> i.setParentId(id));
|
|
|
|
|
it.setId(id);
|
|
|
|
|
it.setConfigId(config.getId());
|
|
|
|
|
});
|
|
|
|
|
if (CollectionUtil.isNotEmpty(items)) {
|
|
|
|
|
modelConfigItemService.saveBatch(items);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (CollectionUtil.isNotEmpty(itemLanguages)) {
|
|
|
|
|
itemLanguages.removeIf(it -> ids.contains(it.getConfigItemId()));
|
|
|
|
|
itemLanguages.forEach(it -> {
|
|
|
|
|
it.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
it.setConfigId(config.getId());
|
|
|
|
|
it.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
it.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
it.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
});
|
|
|
|
|
if (CollectionUtil.isNotEmpty(itemLanguages)) {
|
|
|
|
|
modelConfigItemLanguageService.saveBatch(itemLanguages);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
List<Long> childrenIds = modelConfigItemService.lambdaQuery()
|
|
|
|
|
.select(QuotationModelConfigItem::getId)
|
|
|
|
|
.in(QuotationModelConfigItem::getParentId, ids)
|
|
|
|
|
.list()
|
|
|
|
|
.stream()
|
|
|
|
|
.map(QuotationModelConfigItem::getId)
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
Collection<Long> allIds = CollectionUtil.union(childrenIds, ids);
|
|
|
|
|
modelConfigItemService.lambdaUpdate()
|
|
|
|
|
.in(QuotationModelConfigItem::getId, allIds)
|
|
|
|
|
.remove();
|
|
|
|
|
modelConfigItemLanguageService.lambdaUpdate()
|
|
|
|
|
.in(QuotationModelConfigItemLanguage::getConfigItemId, allIds)
|
|
|
|
|
.remove();
|
|
|
|
|
}
|
|
|
|
|
return ApiResult.success(config.getId());
|
|
|
|
|
}
|
|
|
|
|
@ -324,6 +385,9 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
List<QuotationModelConfigItemLanguage> itemLanguages = modelConfigItemLanguageService.lambdaQuery()
|
|
|
|
|
.eq(QuotationModelConfigItemLanguage::getConfigId, config.getId())
|
|
|
|
|
.list();
|
|
|
|
|
config.setConfigStatus(0);
|
|
|
|
|
config.setConfigYear(null);
|
|
|
|
|
config.setConfigVersion(null);
|
|
|
|
|
config.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
config.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
config.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
@ -331,24 +395,48 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
modelConfigService.save(config);
|
|
|
|
|
if (CollectionUtil.isNotEmpty(items)) {
|
|
|
|
|
items.forEach(it -> {
|
|
|
|
|
it.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
Long id = IdUtil.getSnowflakeNextId();
|
|
|
|
|
itemLanguages.stream()
|
|
|
|
|
.filter(i -> i.getConfigItemId().equals(it.getId()))
|
|
|
|
|
.forEach(i -> {
|
|
|
|
|
i.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
i.setConfigId(config.getId());
|
|
|
|
|
i.setConfigItemId(id);
|
|
|
|
|
i.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
i.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
i.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
});
|
|
|
|
|
it.setId(id);
|
|
|
|
|
it.setConfigId(config.getId());
|
|
|
|
|
if (it.getId().equals(request.getId())) {
|
|
|
|
|
VUtils.trueThrowBusinessError(
|
|
|
|
|
request.getEnable() && modelConfigItemService.lambdaQuery()
|
|
|
|
|
.eq(QuotationModelConfigItem::getId, it.getParentId())
|
|
|
|
|
.eq(QuotationModelConfigItem::getEnable, false)
|
|
|
|
|
.exists()
|
|
|
|
|
).throwMessage("父级部件或系统已禁用");
|
|
|
|
|
it.setEnable(request.getEnable());
|
|
|
|
|
}
|
|
|
|
|
if (it.getParentId().equals(request.getId())) {
|
|
|
|
|
it.setEnable(request.getEnable());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
modelConfigItemService.saveBatch(items);
|
|
|
|
|
}
|
|
|
|
|
if (CollectionUtil.isNotEmpty(itemLanguages)) {
|
|
|
|
|
itemLanguages.forEach(it -> {
|
|
|
|
|
it.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
it.setConfigId(config.getId());
|
|
|
|
|
it.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
it.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
it.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
});
|
|
|
|
|
modelConfigItemLanguageService.saveBatch(itemLanguages);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
VUtils.trueThrowBusinessError(
|
|
|
|
|
request.getEnable() && modelConfigItemService.lambdaQuery()
|
|
|
|
|
.eq(QuotationModelConfigItem::getId, item.getParentId())
|
|
|
|
|
.eq(QuotationModelConfigItem::getEnable, false)
|
|
|
|
|
.exists()
|
|
|
|
|
).throwMessage("父级部件或系统已禁用");
|
|
|
|
|
item.setEnable(request.getEnable());
|
|
|
|
|
modelConfigItemService.updateById(item);
|
|
|
|
|
modelConfigItemService.lambdaUpdate()
|
|
|
|
|
.set(QuotationModelConfigItem::getEnable, request.getEnable())
|
|
|
|
|
.eq(QuotationModelConfigItem::getParentId, item.getId())
|
|
|
|
|
.update();
|
|
|
|
|
}
|
|
|
|
|
return ApiResult.success(config.getId());
|
|
|
|
|
}
|
|
|
|
|
@ -372,6 +460,7 @@ public class ModelConfigController extends ControllerBase {
|
|
|
|
|
.update();
|
|
|
|
|
config.setConfigStatus(1);
|
|
|
|
|
config.setConfigVersion("MC" + DateTimeUtil.format(LocalDateTime.now(), "yyMMddHHmm"));
|
|
|
|
|
config.setConfigYear(String.valueOf(LocalDateTime.now().getYear()));
|
|
|
|
|
config.setUpdateById(AdminUserUtil.getUserId());
|
|
|
|
|
config.setUpdateBy(AdminUserUtil.getUserName());
|
|
|
|
|
config.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
|