init
This commit is contained in:
parent
efed6f6583
commit
c685cd320a
|
@ -7,9 +7,11 @@ 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.AttributeClassificationDto;
|
||||
import cn.workde.module.drone.coding.dto.AttributeValueDto;
|
||||
import cn.workde.module.drone.coding.entity.Mfc;
|
||||
import cn.workde.module.drone.coding.service.MfcService;
|
||||
import cn.workde.module.drone.coding.vo.AttributeValueVo;
|
||||
import cn.workde.module.drone.coding.vo.AttributeValueVo2;
|
||||
import cn.workde.module.drone.coding.vo.MfcVo;
|
||||
import cn.workde.module.upms.controller._BaseController;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
|
@ -115,5 +117,23 @@ public class MfcController extends _BaseController {
|
|||
return mfcService.editBatchesAttribute(vo);
|
||||
}
|
||||
|
||||
@GetMapping("/attributeValueDetail")
|
||||
@Operation(summary = "获取属性值详情")
|
||||
@Parameters({
|
||||
@Parameter(name = "mfcId", description = "MFC ID", required = true)
|
||||
})
|
||||
public Result<AttributeValueDto> getAttributeValueDetail(String mfcId) {
|
||||
if (StrUtil.isBlank(mfcId)) {
|
||||
return Result.fail("MFC ID不能为空");
|
||||
}
|
||||
return mfcService.getAttributeValueDetail(mfcId);
|
||||
}
|
||||
|
||||
@PostMapping("/editAttributeValueBatch")
|
||||
@Operation(summary = "批量设置属性值")
|
||||
public Result editAttributeValueBatch(@RequestBody @Validated AttributeValueVo2 vo) {
|
||||
return mfcService.editAttributeValueBatch(vo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ public class AttributeValueDto {
|
|||
private List<AttributeClassificationDTO> attributeClassificationList;
|
||||
|
||||
@Data
|
||||
static class AttributeClassificationDTO {
|
||||
public static class AttributeClassificationDTO {
|
||||
@Schema(description = "属性分类Id")
|
||||
private String attributeClassificationId;
|
||||
@Schema(description = "属性分类名称")
|
||||
|
@ -22,7 +22,7 @@ public class AttributeValueDto {
|
|||
}
|
||||
|
||||
@Data
|
||||
static class AttributeDTO {
|
||||
public static class AttributeDTO {
|
||||
@Schema(description = "MFC ID")
|
||||
private String mfcId;
|
||||
@Schema(description = "批次ID")
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package cn.workde.module.drone.coding.mapper;
|
||||
|
||||
import cn.workde.module.drone.coding.entity.AttributeValueBackup;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface AttributeValueBackupMapper extends MPJBaseMapper<AttributeValueBackup> {
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package cn.workde.module.drone.coding.service;
|
||||
|
||||
import cn.workde.core.base.BaseService;
|
||||
import cn.workde.module.drone.coding.entity.AttributeValueBackup;
|
||||
import cn.workde.module.drone.coding.mapper.AttributeValueBackupMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service("attributeValueBackupService")
|
||||
public class AttributeValueBackupService extends BaseService<AttributeValueBackupMapper, AttributeValueBackup> {
|
||||
}
|
|
@ -7,12 +7,14 @@ import cn.hutool.core.util.StrUtil;
|
|||
import cn.workde.core.base.BaseService;
|
||||
import cn.workde.core.data.dto.Result;
|
||||
import cn.workde.module.drone.coding.dto.AttributeClassificationDto;
|
||||
import cn.workde.module.drone.coding.dto.AttributeValueDto;
|
||||
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.Mfc;
|
||||
import cn.workde.module.drone.coding.mapper.MfcMapper;
|
||||
import cn.workde.module.drone.coding.vo.AttributeValueVo;
|
||||
import cn.workde.module.drone.coding.vo.AttributeValueVo2;
|
||||
import cn.workde.module.drone.coding.vo.MfcVo;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
@ -156,10 +158,9 @@ public class MfcService extends BaseService<MfcMapper, Mfc> {
|
|||
|
||||
public Result editBatchesAttribute(AttributeValueVo vo) {
|
||||
String mfcId = vo.getMfcId();
|
||||
List<String> attributeIdList = vo.getAttributeIdList();
|
||||
|
||||
// attributeIdList为空的话全部删除
|
||||
if (CollUtil.isEmpty(attributeIdList)) {
|
||||
if (CollUtil.isEmpty(vo.getAttributeIdList())) {
|
||||
boolean flag = attributeValueService.remove(new QueryWrapper<AttributeValue>()
|
||||
.lambda()
|
||||
.eq(AttributeValue::getMfcId, mfcId)
|
||||
|
@ -167,6 +168,9 @@ public class MfcService extends BaseService<MfcMapper, Mfc> {
|
|||
return flag ? Result.success("操作成功") : Result.fail("操作失败");
|
||||
}
|
||||
|
||||
// 去除重复Id
|
||||
List<String> attributeIdList = vo.getAttributeIdList().stream().distinct().toList();
|
||||
|
||||
List<AttributeValue> attributeValueList = attributeValueService.list(new QueryWrapper<AttributeValue>()
|
||||
.lambda()
|
||||
.eq(AttributeValue::getMfcId, mfcId)
|
||||
|
@ -178,34 +182,111 @@ public class MfcService extends BaseService<MfcMapper, Mfc> {
|
|||
List<String> attributeValueListStr = attributeValueList.stream().map(AttributeValue::getAttributeId).toList();
|
||||
//找到数据库attributeValueListStr中不存在于前端传输的attributeIdList的属性
|
||||
List<String> removeAttributeIdList = attributeValueListStr.stream().filter(attributeId -> !attributeIdList.contains(attributeId)).toList();
|
||||
boolean flag = attributeValueService.remove(new QueryWrapper<AttributeValue>()
|
||||
.lambda()
|
||||
.eq(AttributeValue::getMfcId, mfcId)
|
||||
.in(AttributeValue::getAttributeId, removeAttributeIdList)
|
||||
);
|
||||
if (!flag) return Result.fail("操作失败");
|
||||
|
||||
// 判断是否有删除的元素
|
||||
if (CollUtil.isNotEmpty(removeAttributeIdList)) {
|
||||
boolean flag = attributeValueService.remove(new QueryWrapper<AttributeValue>()
|
||||
.lambda()
|
||||
.eq(AttributeValue::getMfcId, mfcId)
|
||||
.in(AttributeValue::getAttributeId, removeAttributeIdList)
|
||||
);
|
||||
if (!flag) return Result.fail("操作失败");
|
||||
}
|
||||
//找到前端传输的attributeIdList中不存在于数据库attributeValueListStr的属性
|
||||
addAttributeIdList = attributeIdList.stream().filter(attributeId -> !attributeValueListStr.contains(attributeId)).toList();
|
||||
}
|
||||
|
||||
if (CollUtil.isEmpty(addAttributeIdList)) {
|
||||
} else {
|
||||
addAttributeIdList = attributeIdList;
|
||||
}
|
||||
|
||||
|
||||
//新增
|
||||
List<AttributeValue> attributeValueListNew = addAttributeIdList.stream().map(attributeId -> {
|
||||
AttributeValue attributeValue = new AttributeValue();
|
||||
attributeValue.setMfcId(mfcId);
|
||||
Attribute attribute = attributeService.getById(attributeId);
|
||||
attributeValue.setAttributeClassificationId(ObjUtil.isNotNull(attribute) ? attribute.getAttributeClassificationId() : null);
|
||||
attributeValue.setAttributeId(attributeId);
|
||||
return attributeValue;
|
||||
}).toList();
|
||||
//判断是否有新增的元素
|
||||
if (CollUtil.isNotEmpty(addAttributeIdList)) {
|
||||
//新增
|
||||
List<AttributeValue> attributeValueListNew = new ArrayList<>(addAttributeIdList.stream().map(attributeId -> {
|
||||
AttributeValue attributeValue = new AttributeValue();
|
||||
attributeValue.setMfcId(mfcId);
|
||||
Attribute attribute = attributeService.getById(attributeId);
|
||||
if (ObjUtil.isNull(attribute)) {
|
||||
return null;
|
||||
}
|
||||
attributeValue.setAttributeClassificationId(ObjUtil.isNotNull(attribute) ? attribute.getAttributeClassificationId() : null);
|
||||
attributeValue.setAttributeId(attributeId);
|
||||
return attributeValue;
|
||||
}).toList());
|
||||
// 移除null
|
||||
attributeValueListNew.removeIf(ObjUtil::isNull);
|
||||
|
||||
boolean flag = attributeValueService.saveBatch(attributeValueListNew);
|
||||
boolean flag = attributeValueService.saveBatch(attributeValueListNew);
|
||||
|
||||
return flag ? Result.success("操作成功") : Result.fail("操作失败");
|
||||
}
|
||||
return Result.success("操作成功");
|
||||
}
|
||||
|
||||
public Result<AttributeValueDto> getAttributeValueDetail(String mfcId) {
|
||||
AttributeValueDto attributeValueDto = new AttributeValueDto();
|
||||
//获取分类
|
||||
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());
|
||||
attributeDtoList.add(attributeDTO);
|
||||
}
|
||||
attributeClassificationDTO.setAttributeList(attributeDtoList);
|
||||
}
|
||||
attributeClassificationDtoList.add(attributeClassificationDTO);
|
||||
});
|
||||
attributeValueDto.setAttributeClassificationList(attributeClassificationDtoList);
|
||||
}
|
||||
return Result.data(attributeValueDto);
|
||||
}
|
||||
|
||||
public Result editAttributeValueBatch(AttributeValueVo2 vo) {
|
||||
ArrayList<AttributeValue> attributeValues = new ArrayList<>();
|
||||
for (AttributeValueVo2.AttributeValueDto attributeValue : vo.getAttributeValueList()) {
|
||||
AttributeValue value = attributeValueService.getOne(new QueryWrapper<AttributeValue>()
|
||||
.lambda()
|
||||
.eq(AttributeValue::getMfcId, attributeValue.getMfcId())
|
||||
.eq(AttributeValue::getAttributeId, attributeValue.getAttributeId())
|
||||
.eq(AttributeValue::getAttributeClassificationId, attributeValue.getAttributeClassificationId())
|
||||
);
|
||||
if (ObjUtil.isNotNull(value)) {
|
||||
value.setAttributeValue(attributeValue.getAttributeValue());
|
||||
attributeValues.add(value);
|
||||
}
|
||||
}
|
||||
boolean flag = attributeValueService.updateBatchById(attributeValues);
|
||||
return flag ? Result.success("操作成功") : Result.fail("操作失败");
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package cn.workde.module.drone.coding.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AttributeValueVo2 {
|
||||
@Schema(description = "属性值集合 MFC ID与批次ID示具体情况二选一")
|
||||
private List<AttributeValueDto> attributeValueList;
|
||||
|
||||
@Data
|
||||
public static class AttributeValueDto {
|
||||
@Schema(description = "MFC ID")
|
||||
private String mfcId;
|
||||
@Schema(description = "批次ID ")
|
||||
private String batchesId;
|
||||
@Schema(description = "属性分类ID")
|
||||
private String attributeClassificationId;
|
||||
@Schema(description = "属性ID")
|
||||
private String attributeId;
|
||||
@Schema(description = "属性数值")
|
||||
private String attributeValue;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue