修改标签、标签模板的更新接口逻辑

This commit is contained in:
yangsb
2024-03-26 10:49:16 +08:00
parent f99d5ea714
commit 8e1c685d8a
3 changed files with 91 additions and 10 deletions
@@ -96,11 +96,49 @@ public class LabelTemplateServiceImpl implements LabelTemplateService {
LabelTemplateDO updateObj = BeanUtils.toBean(updateReqVO, LabelTemplateDO.class);
labelTemplateMapper.updateById(updateObj);
// 更新子表
List<LabelElementTemplateSaveReqVO> elements = updateReqVO.getElements();
List<LabelElementTemplateDO> labelElementTemplateDOS = labelElementTemplateMapper.selectList(new LambdaQueryWrapperX<LabelElementTemplateDO>()
.select(LabelElementTemplateDO::getId)
.eq(LabelElementTemplateDO::getLabelTemplateId, updateReqVO.getId()));
//删除旧的元素
DeleteByQueryRequest.Builder builder = null;
if(CollectionUtil.isNotEmpty(labelElementTemplateDOS)) {
List<Long> templateIds = labelElementTemplateDOS.stream()
.map(LabelElementTemplateDO::getId)
.toList();
labelElementTemplateMapper.deleteBatchIds(templateIds);
List<FieldValue> fieldValues = templateIds.stream().map(FieldValue::of).collect(Collectors.toList());
builder = new DeleteByQueryRequest.Builder()
.index(LABEL_TEMPLATE_ELEMENT_PROPERTY_INX)
.query(TermsQuery.of(e -> e.field("elementId").terms(b -> b.value(fieldValues)))._toQuery());
}
//新增新的元素
List<LabelElementTemplateSaveReqVO> createReqVOElements = updateReqVO.getElements();
List<LabelElementPropertyDO> labelElementPropertyDOS = new ArrayList<>();
createReqVOElements.forEach(e -> {
e.setLabelTemplateId(updateObj.getId());
LabelElementTemplateDO elementTemplateDO = Convert.convert(LabelElementTemplateDO.class, e);
labelElementTemplateMapper.insert(elementTemplateDO);
LabelElementPropertyDO propertyDO = e.getPropertyDO();
propertyDO.setElementId(elementTemplateDO.getId());
labelElementPropertyDOS.add(propertyDO);
});
//插入索引
try {
esDocumentService.bulkCreate(LABEL_TEMPLATE_ELEMENT_PROPERTY_INX, labelElementPropertyDOS);
if(!Objects.isNull(builder)) {
elasticsearchClient.deleteByQuery(builder.build());
}
} catch (Exception e) {
log.error(e.getMessage());
throw exception(INTERNAL_SERVER_ERROR);
}
/*updateLabelElementTemplateList(updateReqVO.getId(), Convert.convert(new TypeReference<List<LabelElementTemplateDO>>() {
}, elements));*/
labelElementTemplateMapper.updateBatch(Convert.convert(new TypeReference<List<LabelElementTemplateDO>>() {
/* labelElementTemplateMapper.updateBatch(Convert.convert(new TypeReference<List<LabelElementTemplateDO>>() {
}, elements));
List<LabelElementPropertyDO> labelElementPropertyDOS = elements.stream().map(e -> e.getPropertyDO()).collect(Collectors.toList());
try {
@@ -108,7 +146,7 @@ public class LabelTemplateServiceImpl implements LabelTemplateService {
} catch (Exception e) {
log.error(e.getMessage());
throw exception(INTERNAL_SERVER_ERROR);
}
}*/
}
@@ -15,7 +15,9 @@ import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.es.core.service.ESDocumentService;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.system.controller.admin.label.vo.*;
import com.cf.imes.module.system.controller.admin.labeltemplate.vo.LabelElementTemplateSaveReqVO;
import com.cf.imes.module.system.dal.dataobject.labelelementproperty.LabelElementPropertyDO;
import com.cf.imes.module.system.dal.dataobject.labeltemplate.LabelElementTemplateDO;
import com.cf.imes.module.system.dal.dataobject.lable.LabelDO;
import com.cf.imes.module.system.dal.dataobject.lable.LabelElementDO;
import com.cf.imes.module.system.dal.dataobject.machine.CuttingSettingDO;
@@ -94,10 +96,48 @@ public class LabelServiceImpl implements LabelService {
LabelDO updateObj = BeanUtils.toBean(updateReqVO, LabelDO.class);
LabelMapper.updateById(updateObj);
// 更新子表
List<LabelElementSaveReqVO> elements = updateReqVO.getElements();
/*updateLabelElementList(updateReqVO.getId(), Convert.convert(new TypeReference<List<LabelElementDO>>() {
}, elements));*/
List<LabelElementDO> labelElementDOS = labelElementMapper.selectList(new LambdaQueryWrapperX<LabelElementDO>()
.select(LabelElementDO::getId)
.eq(LabelElementDO::getLabelId, updateReqVO.getId()));
//删除旧的元素
DeleteByQueryRequest.Builder builder = null;
if(CollectionUtil.isNotEmpty(labelElementDOS)) {
List<Long> templateIds = labelElementDOS.stream()
.map(LabelElementDO::getId)
.toList();
labelElementMapper.deleteBatchIds(templateIds);
List<FieldValue> fieldValues = templateIds.stream().map(FieldValue::of).collect(Collectors.toList());
builder = new DeleteByQueryRequest.Builder()
.index(LABEL_ELEMENT_PROPERTY_INX)
.query(TermsQuery.of(e -> e.field("elementId").terms(b -> b.value(fieldValues)))._toQuery());
}
//新增新的元素
List<LabelElementSaveReqVO> createReqVOElements = updateReqVO.getElements();
List<LabelElementPropertyDO> labelElementPropertyDOS = new ArrayList<>();
createReqVOElements.forEach(e -> {
e.setLabelId(updateObj.getId());
LabelElementDO labelElementDO = Convert.convert(LabelElementDO.class, e);
labelElementMapper.insert(labelElementDO);
LabelElementPropertyDO propertyDO = e.getPropertyDO();
propertyDO.setElementId(labelElementDO.getId());
labelElementPropertyDOS.add(propertyDO);
});
//插入索引
try {
esDocumentService.bulkCreate(LABEL_ELEMENT_PROPERTY_INX, labelElementPropertyDOS);
if(!Objects.isNull(builder)) {
elasticsearchClient.deleteByQuery(builder.build());
}
} catch (Exception e) {
log.error(e.getMessage());
throw exception(INTERNAL_SERVER_ERROR);
}
/* List<LabelElementSaveReqVO> elements = updateReqVO.getElements();
*//*updateLabelElementList(updateReqVO.getId(), Convert.convert(new TypeReference<List<LabelElementDO>>() {
}, elements));*//*
labelElementMapper.updateBatch(Convert.convert(new TypeReference<List<LabelElementDO>>() {
}, elements));
List<LabelElementPropertyDO> labelElementPropertyDOS = elements.stream().map(e -> e.getPropertyDO()).collect(Collectors.toList());
@@ -106,7 +146,7 @@ public class LabelServiceImpl implements LabelService {
} catch (Exception e) {
log.error(e.getMessage());
throw exception(INTERNAL_SERVER_ERROR);
}
}*/
}