This commit is contained in:
lijiaqi 2024-09-10 13:39:56 +08:00
parent c685cd320a
commit 3dc6c5390b
3 changed files with 128 additions and 4 deletions

View File

@ -5,9 +5,11 @@ import cn.hutool.core.util.StrUtil;
import cn.workde.core.constant.GrapeConst;
import cn.workde.core.data.dto.OptionResult;
import cn.workde.core.data.dto.Result;
import cn.workde.module.drone.coding.dto.AttributeValueDto;
import cn.workde.module.drone.coding.entity.Batches;
import cn.workde.module.drone.coding.service.BatchesService;
import cn.workde.module.drone.coding.vo.AttributeValueVo;
import cn.workde.module.drone.coding.vo.AttributeValueVo2;
import cn.workde.module.drone.coding.vo.BatchesVo;
import cn.workde.module.upms.controller._BaseController;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -82,5 +84,23 @@ public class BatchesController extends _BaseController {
return batchesService.getBatchesPageList(getPage(), vo);
}
@GetMapping("/attributeValueDetail")
@Operation(summary = "获取属性值详情")
@Parameters({
@Parameter(name = "batchesId", description = "批次ID", required = true)
})
public Result<AttributeValueDto> getAttributeValueDetail(String batchesId) {
if (StrUtil.isBlank(batchesId)) {
return Result.fail("批次ID不能为空");
}
return batchesService.getAttributeValueDetail(batchesId);
}
@PostMapping("/editAttributeValueBatch")
@Operation(summary = "批量设置属性值")
public Result editAttributeValueBatch(@RequestBody @Validated AttributeValueVo2 vo) {
return batchesService.editAttributeValueBatch(vo);
}
}

View File

@ -7,12 +7,11 @@ import cn.hutool.core.util.StrUtil;
import cn.workde.core.base.BaseService;
import cn.workde.core.data.dto.OptionResult;
import cn.workde.core.data.dto.Result;
import cn.workde.module.drone.coding.entity.Attribute;
import cn.workde.module.drone.coding.entity.AttributeClassification;
import cn.workde.module.drone.coding.entity.AttributeValue;
import cn.workde.module.drone.coding.entity.Batches;
import cn.workde.module.drone.coding.dto.AttributeValueDto;
import cn.workde.module.drone.coding.entity.*;
import cn.workde.module.drone.coding.mapper.BatchesMapper;
import cn.workde.module.drone.coding.vo.AttributeValueVo;
import cn.workde.module.drone.coding.vo.AttributeValueVo2;
import cn.workde.module.drone.coding.vo.BatchesVo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -48,6 +47,10 @@ public class BatchesService extends BaseService<BatchesMapper, Batches> {
@Lazy
private AttributeValueService attributeValueService;
@Resource
@Lazy
private AttributeValueBackupService attributeValueBackupService;
public Result addBatches(BatchesVo vo) {
Long count = this.getBaseMapper().selectCount(new QueryWrapper<Batches>()
.lambda()
@ -103,7 +106,104 @@ public class BatchesService extends BaseService<BatchesMapper, Batches> {
return Result.data(paged);
}
public Result<AttributeValueDto> getAttributeValueDetail(String batchesId) {
if (StrUtil.isBlank(batchesId)) return Result.fail("批次ID不能为空");
AttributeValueDto attributeValueDto = new AttributeValueDto();
// 获取MFC ID
Batches batches = this.getById(batchesId);
if (ObjUtil.isNull(batches)) return Result.fail("批次不存在");
String mfcId = batches.getMfcId();
//获取分类
List<AttributeClassification> attributeClassifications = attributeClassificationService.list(
new QueryWrapper<AttributeClassification>()
.lambda()
.inSql(AttributeClassification::getId, "select distinct attribute_classification_id from dss_drone_coding_attribute_value where mfc_id = '" + mfcId + "'")
);
if (CollUtil.isNotEmpty(attributeClassifications)) {
List<AttributeValueDto.AttributeClassificationDTO> attributeClassificationDtoList = new ArrayList<AttributeValueDto.AttributeClassificationDTO>();
attributeClassifications.forEach(attributeClassification -> {
AttributeValueDto.AttributeClassificationDTO attributeClassificationDTO = new AttributeValueDto.AttributeClassificationDTO();
attributeClassificationDTO.setAttributeClassificationId(attributeClassification.getId());
attributeClassificationDTO.setAttributeClassificationName(attributeClassification.getAttributeClassificationName());
//获取属性值
List<AttributeValue> attributeValues = attributeValueService.list(
new QueryWrapper<AttributeValue>()
.lambda()
.eq(AttributeValue::getMfcId, mfcId)
.eq(AttributeValue::getAttributeClassificationId, attributeClassification.getId())
);
if (CollUtil.isNotEmpty(attributeValues)) {
List<AttributeValueDto.AttributeDTO> attributeDtoList = new ArrayList<AttributeValueDto.AttributeDTO>();
for (AttributeValue attributeValue : attributeValues) {
AttributeValueDto.AttributeDTO attributeDTO = new AttributeValueDto.AttributeDTO();
// 获取属性具体信息
Attribute attribute = attributeService.getById(attributeValue.getAttributeId());
if (ObjUtil.isNotNull(attribute)) {
attributeDTO.setAttributeDescription(attribute.getAttributeDescription());
attributeDTO.setAttributeName(attribute.getAttributeName());
attributeDTO.setAttributeRemarks(attribute.getAttributeRemarks());
attributeDTO.setLocked(attribute.getLocked());
} else {
continue;
}
attributeDTO.setMfcId(attributeValue.getMfcId());
attributeDTO.setBatchesId(null);
attributeDTO.setAttributeId(attributeValue.getAttributeId());
attributeDTO.setAttributeValue(attributeValue.getAttributeValue());
//不是锁定的属性 看备份表是否有该属性 有则覆盖
if (!attribute.getLocked()){
AttributeValueBackup value = attributeValueBackupService.getOne(new QueryWrapper<AttributeValueBackup>()
.lambda()
.eq(AttributeValueBackup::getBatchesId, batchesId)
.eq(AttributeValueBackup::getAttributeId, attributeValue.getAttributeId())
.eq(AttributeValueBackup::getAttributeClassificationId, attributeValue.getAttributeClassificationId())
);
if (ObjUtil.isNotNull(value)) {
attributeValue.setAttributeValue(value.getAttributeValue());
}
}
attributeDtoList.add(attributeDTO);
}
attributeClassificationDTO.setAttributeList(attributeDtoList);
}
attributeClassificationDtoList.add(attributeClassificationDTO);
});
attributeValueDto.setAttributeClassificationList(attributeClassificationDtoList);
}
return Result.data(attributeValueDto);
}
public Result editAttributeValueBatch(AttributeValueVo2 vo) {
ArrayList<AttributeValueBackup> attributeValues = new ArrayList<>();
for (AttributeValueVo2.AttributeValueDto attributeValue : vo.getAttributeValueList()) {
// 检查属性是否被锁定
Attribute attribute = attributeService.getById(attributeValue.getAttributeId());
if (ObjUtil.isNull(attribute)) {
continue;
}
if (attribute.getLocked()) {
continue;
}
AttributeValueBackup value = attributeValueBackupService.getOne(new QueryWrapper<AttributeValueBackup>()
.lambda()
.eq(AttributeValueBackup::getBatchesId, attributeValue.getBatchesId())
.eq(AttributeValueBackup::getAttributeId, attributeValue.getAttributeId())
.eq(AttributeValueBackup::getAttributeClassificationId, attributeValue.getAttributeClassificationId())
);
if (ObjUtil.isNotNull(value)) {
value.setAttributeValue(attributeValue.getAttributeValue());
}else {
value = new AttributeValueBackup();
value.setBatchesId(attributeValue.getBatchesId());
value.setAttributeId(attributeValue.getAttributeId());
value.setAttributeClassificationId(attributeValue.getAttributeClassificationId());
value.setAttributeValue(attributeValue.getAttributeValue());
}
attributeValues.add(value);
}
boolean flag = attributeValueBackupService.saveOrUpdateBatch(attributeValues);
return flag ? Result.success("操作成功") : Result.fail("操作失败");
}
}

View File

@ -275,6 +275,10 @@ public class MfcService extends BaseService<MfcMapper, Mfc> {
public Result editAttributeValueBatch(AttributeValueVo2 vo) {
ArrayList<AttributeValue> attributeValues = new ArrayList<>();
for (AttributeValueVo2.AttributeValueDto attributeValue : vo.getAttributeValueList()) {
Attribute attribute = attributeService.getById(attributeValue.getAttributeId());
if (ObjUtil.isNull(attribute)) {
continue;
}
AttributeValue value = attributeValueService.getOne(new QueryWrapper<AttributeValue>()
.lambda()
.eq(AttributeValue::getMfcId, attributeValue.getMfcId())