|
@@ -1,20 +1,14 @@
|
|
|
package com.sd.business.service.bom.impl;
|
|
|
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.fjhx.file.entity.FileInfo;
|
|
|
-import com.fjhx.file.entity.ObsFile;
|
|
|
-import com.fjhx.file.service.FileInfoService;
|
|
|
-import com.fjhx.file.utils.ObsFileUtil;
|
|
|
import com.ruoyi.common.core.domain.BaseIdPo;
|
|
|
import com.sd.business.entity.bom.dto.BomDto;
|
|
|
import com.sd.business.entity.bom.dto.BomSelectDto;
|
|
|
-import com.sd.business.entity.bom.dto.BomSpecDto;
|
|
|
import com.sd.business.entity.bom.po.Bom;
|
|
|
import com.sd.business.entity.bom.po.BomSpec;
|
|
|
import com.sd.business.entity.bom.vo.BomVo;
|
|
@@ -27,12 +21,10 @@ import com.sd.framework.util.sql.Sql;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -54,9 +46,6 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
|
|
|
@Autowired
|
|
|
private BomSpecService bomSpecService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private FileInfoService fileInfoService;
|
|
|
-
|
|
|
@Override
|
|
|
public Page<BomVo> getPage(BomSelectDto dto) {
|
|
|
|
|
@@ -128,122 +117,41 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
|
|
|
@DSTransactional
|
|
|
@Override
|
|
|
public void add(BomDto dto) {
|
|
|
- List<FileInfo> fileInfoList = new ArrayList<>();
|
|
|
|
|
|
dto.setId(IdWorker.getId());
|
|
|
|
|
|
- ObsFile mainImgFile = dto.getMainImgFile();
|
|
|
- if (mainImgFile == null) {
|
|
|
- dto.setMainImgUrl("");
|
|
|
- } else {
|
|
|
- FileInfo fileInfo = new FileInfo();
|
|
|
- fileInfo.setId(mainImgFile.getId());
|
|
|
- fileInfo.setBusinessId(dto.getId());
|
|
|
- fileInfo.setBusinessType(ObsFileUtil.defaultFileType);
|
|
|
- fileInfoList.add(fileInfo);
|
|
|
- dto.setMainImgUrl(mainImgFile.getFileUrl());
|
|
|
- }
|
|
|
-
|
|
|
- List<BomSpecDto> bomSpecDtoList = dto.getBomSpecList();
|
|
|
- List<BomSpec> bomSpecList = bomSpecDtoList.stream()
|
|
|
- .peek(item -> {
|
|
|
- item.setId(ObjectUtil.defaultIfNull(item.getId(), IdWorker.getId()));
|
|
|
- item.setBomId(dto.getId());
|
|
|
-
|
|
|
- ObsFile imgFile = item.getImgFile();
|
|
|
- if (imgFile == null) {
|
|
|
- item.setMainImgUrl("");
|
|
|
- } else {
|
|
|
- FileInfo fileInfo = new FileInfo();
|
|
|
- fileInfo.setId(imgFile.getId());
|
|
|
- fileInfo.setBusinessId(item.getId());
|
|
|
- fileInfo.setBusinessType(ObsFileUtil.defaultFileType);
|
|
|
- fileInfoList.add(fileInfo);
|
|
|
- item.setMainImgUrl(imgFile.getFileUrl());
|
|
|
- }
|
|
|
- })
|
|
|
- .map(item -> BeanUtil.toBean(item, BomSpec.class))
|
|
|
+ List<BomSpec> bomSpecList = dto.getBomSpecList().stream()
|
|
|
+ .peek(item -> item.setBomId(dto.getId()))
|
|
|
+ .map(item -> (BomSpec) item)
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
+ // 新增bom
|
|
|
save(dto);
|
|
|
+
|
|
|
+ // 新增bom明细
|
|
|
bomSpecService.saveBatch(bomSpecList);
|
|
|
- if (!fileInfoList.isEmpty()) {
|
|
|
- fileInfoService.updateBatchById(fileInfoList);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
@DSTransactional
|
|
|
@Override
|
|
|
public void edit(BomDto dto) {
|
|
|
- List<FileInfo> fileInfoList = new ArrayList<>();
|
|
|
-
|
|
|
- ObsFile mainImgFile = dto.getMainImgFile();
|
|
|
- if (mainImgFile == null) {
|
|
|
- dto.setMainImgUrl("");
|
|
|
- } else {
|
|
|
- FileInfo fileInfo = new FileInfo();
|
|
|
- fileInfo.setId(mainImgFile.getId());
|
|
|
- fileInfo.setBusinessId(dto.getId());
|
|
|
- fileInfo.setBusinessType(ObsFileUtil.defaultFileType);
|
|
|
- fileInfoList.add(fileInfo);
|
|
|
- dto.setMainImgUrl(mainImgFile.getFileUrl());
|
|
|
- }
|
|
|
|
|
|
- List<BomSpecDto> bomSpecDtoList = dto.getBomSpecList();
|
|
|
- List<BomSpec> bomSpecList = bomSpecDtoList.stream()
|
|
|
- .peek(item -> {
|
|
|
- item.setId(ObjectUtil.defaultIfNull(item.getId(), IdWorker.getId()));
|
|
|
- item.setBomId(dto.getId());
|
|
|
-
|
|
|
- ObsFile imgFile = item.getImgFile();
|
|
|
- if (imgFile == null) {
|
|
|
- item.setMainImgUrl("");
|
|
|
- } else {
|
|
|
- FileInfo fileInfo = new FileInfo();
|
|
|
- fileInfo.setId(imgFile.getId());
|
|
|
- fileInfo.setBusinessId(item.getId());
|
|
|
- fileInfo.setBusinessType(ObsFileUtil.defaultFileType);
|
|
|
- fileInfoList.add(fileInfo);
|
|
|
- item.setMainImgUrl(imgFile.getFileUrl());
|
|
|
- }
|
|
|
- })
|
|
|
- .map(item -> BeanUtil.toBean(item, BomSpec.class))
|
|
|
+ List<BomSpec> bomSpecList = dto.getBomSpecList().stream()
|
|
|
+ .peek(item -> item.setBomId(dto.getId()))
|
|
|
+ .map(item -> (BomSpec) item)
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
// 修改bom
|
|
|
this.updateById(dto);
|
|
|
|
|
|
// 修改bom明细
|
|
|
- List<Long> bomSpecIdList = bomSpecList.stream().map(BomSpec::getId)
|
|
|
- .filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
- bomSpecService.remove(q -> q
|
|
|
- .eq(BomSpec::getBomId, dto.getId())
|
|
|
- .notIn(ObjectUtil.isNotEmpty(bomSpecIdList), BaseIdPo::getId, bomSpecIdList));
|
|
|
- bomSpecService.saveOrUpdateBatch(bomSpecList);
|
|
|
-
|
|
|
- // 修改文件
|
|
|
- List<Long> businessIdList = bomSpecList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
- businessIdList.add(dto.getId());
|
|
|
- List<Long> fileInfoIdList = fileInfoList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
-
|
|
|
- fileInfoService.remove(q -> q
|
|
|
- .in(FileInfo::getBusinessId, businessIdList)
|
|
|
- .notIn(ObjectUtil.isNotEmpty(fileInfoIdList), BaseIdPo::getId, fileInfoIdList));
|
|
|
- if (!fileInfoList.isEmpty()) {
|
|
|
- fileInfoService.updateBatchById(fileInfoList);
|
|
|
- }
|
|
|
+ bomSpecService.editLinked(bomSpecList, BomSpec::getBomId, dto.getId());
|
|
|
}
|
|
|
|
|
|
@DSTransactional
|
|
|
@Override
|
|
|
public void delete(Long id) {
|
|
|
removeById(id);
|
|
|
-
|
|
|
- List<Long> businessIdList = bomSpecService.listObject(BaseIdPo::getId, q -> q.eq(BomSpec::getBomId, id));
|
|
|
- businessIdList.add(id);
|
|
|
- fileInfoService.remove(q -> q.in(FileInfo::getBusinessId, businessIdList));
|
|
|
-
|
|
|
- removeById(id);
|
|
|
bomSpecService.remove(q -> q.eq(BomSpec::getBomId, id));
|
|
|
}
|
|
|
|