bug-1525 物料图片版本和钢构包信息版本逻辑优化

This commit is contained in:
曹鹏飞 2026-05-29 14:06:52 +08:00
parent a64278010a
commit 8b75fb3a27
8 changed files with 96 additions and 117 deletions

View File

@ -50,7 +50,6 @@ import tech.powerjob.common.request.query.JobInfoQuery;
import tech.powerjob.common.response.JobInfoDTO; import tech.powerjob.common.response.JobInfoDTO;
import tech.powerjob.common.response.ResultDTO; import tech.powerjob.common.response.ResultDTO;
import javax.print.attribute.standard.PrinterURI;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
@ -95,19 +94,16 @@ public class MaterialControllerService {
private String mpmDownloadUrl; private String mpmDownloadUrl;
public void add(@Valid MaterialAddQO request) { public void add(@Valid MaterialAddQO request) {
WmsMaterial old = materialService.getCurrent(request.getNo()); WmsMaterial old = materialService.getLatest(request.getNo());
VUtil.trueThrowBusinessError(Objects.nonNull(old) && !old.getComplete()) VUtil.trueThrowBusinessError(Objects.nonNull(old) && StrUtil.isBlank(old.getImage()))
.throwMessage("该物料存在草稿版本"); .throwMessage("该物料存在草稿版本");
WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request); WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request);
// 根据fromMpm字段决定版本号设置逻辑 if (StrUtil.isBlank(wmsMaterial.getVersion())) {
if (Boolean.TRUE.equals(wmsMaterial.getFromMpm())) { if (Objects.isNull(old)) {
// 来自MPM使用传入的版本号如果未传则默认为"1"
if (StrUtil.isBlank(wmsMaterial.getVersion())) {
wmsMaterial.setVersion("1"); wmsMaterial.setVersion("1");
} else {
wmsMaterial.setVersion(incrementVersion(old.getVersion()));
} }
} else {
// 非MPM来源版本号初始化为"1"
wmsMaterial.setVersion("1");
} }
wmsMaterial.setCreateBy(UserUtil.getUserName()); wmsMaterial.setCreateBy(UserUtil.getUserName());
wmsMaterial.setCreateTime(LocalDateTime.now()); wmsMaterial.setCreateTime(LocalDateTime.now());
@ -118,26 +114,10 @@ public class MaterialControllerService {
WmsMaterial old = materialService.getById(request.getId()); WmsMaterial old = materialService.getById(request.getId());
VUtil.trueThrowBusinessError(Objects.isNull(old)).throwMessage("数据不存在!"); VUtil.trueThrowBusinessError(Objects.isNull(old)).throwMessage("数据不存在!");
WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request); WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request);
if (old.getComplete()) { wmsMaterial.setVersion(old.getVersion());
// 根据fromMpm字段决定版本号设置逻辑 wmsMaterial.setUpdateBy(UserUtil.getUserName());
if (Boolean.TRUE.equals(wmsMaterial.getFromMpm())) { wmsMaterial.setUpdateTime(LocalDateTime.now());
// 来自MPM使用传入的版本号如果未传则递增 materialService.add(wmsMaterial);
if (StrUtil.isBlank(wmsMaterial.getVersion())) {
wmsMaterial.setVersion(incrementVersion(old.getVersion()));
}
} else {
// 非MPM来源版本号递增
wmsMaterial.setVersion(incrementVersion(old.getVersion()));
}
wmsMaterial.setCreateBy(UserUtil.getUserName());
wmsMaterial.setCreateTime(LocalDateTime.now());
wmsMaterial.setId(null);
materialService.add(wmsMaterial);
} else {
wmsMaterial.setUpdateBy(UserUtil.getUserName());
wmsMaterial.setUpdateTime(LocalDateTime.now());
materialService.update(wmsMaterial);
}
} }
public IPage<MaterialVO> search(@Valid MaterialSearchQO request) { public IPage<MaterialVO> search(@Valid MaterialSearchQO request) {
@ -205,7 +185,7 @@ public class MaterialControllerService {
pics.add(name); pics.add(name);
} else { } else {
String url = fileUploadService.upload(buildFilePath(name), file); String url = fileUploadService.upload(buildFilePath(name), file);
WmsMaterial old = materialService.getCurrent(materialNo); WmsMaterial old = materialService.getLatest(materialNo);
if (Objects.equals(UserUtil.getType(), UserType.Supplier) && Objects.nonNull(old) && !Objects.equals(old.getSupplierId(), UserUtil.getUserId())) { if (Objects.equals(UserUtil.getType(), UserType.Supplier) && Objects.nonNull(old) && !Objects.equals(old.getSupplierId(), UserUtil.getUserId())) {
pics.add(name); pics.add(name);
} else { } else {
@ -291,7 +271,6 @@ public class MaterialControllerService {
@Transactional @Transactional
public boolean checkAndImport(List<MaterialExcelImportDTO> data) { public boolean checkAndImport(List<MaterialExcelImportDTO> data) {
List<WmsMaterial> forAdd = new ArrayList<>(); List<WmsMaterial> forAdd = new ArrayList<>();
List<WmsMaterial> forupdate = new ArrayList<>();
MaterialSearchQO qo = new MaterialSearchQO(); MaterialSearchQO qo = new MaterialSearchQO();
qo.setPageSize(Integer.MAX_VALUE); qo.setPageSize(Integer.MAX_VALUE);
List<MaterialVO> dbMaterials = materialService.search(qo).getRecords(); List<MaterialVO> dbMaterials = materialService.search(qo).getRecords();
@ -327,30 +306,22 @@ public class MaterialControllerService {
sb.append("SAP料号无效;"); sb.append("SAP料号无效;");
} else { } else {
MaterialVO currentMaterial = dbMaterials.stream().filter(m -> StrUtil.equals(m.getNo(), dto.getNo())).findFirst().orElse(null); MaterialVO currentMaterial = dbMaterials.stream().filter(m -> StrUtil.equals(m.getNo(), dto.getNo())).findFirst().orElse(null);
if (Objects.isNull(currentMaterial) || currentMaterial.getComplete()) { if (Objects.isNull(currentMaterial)) {
material.setCreateBy(UserUtil.getUserName()); material.setCreateBy(UserUtil.getUserName());
material.setCreateTime(LocalDateTime.now()); material.setCreateTime(LocalDateTime.now());
if (Objects.isNull(currentMaterial)) { material.setVersion("1");
material.setVersion("1"); forAdd.add(material);
forAdd.add(material);
} else {
if (Objects.equals(UserUtil.getType(), UserType.Supplier)
&& !Objects.equals(currentMaterial.getSupplierId(), UserUtil.getUserId())) {
sb.append("无权限修改此物料;");
} else {
material.setVersion(incrementVersion(String.valueOf(currentMaterial.getVersion())));
forAdd.add(material);
}
}
} else { } else {
if (Objects.equals(UserUtil.getType(), UserType.Supplier) if (Objects.equals(UserUtil.getType(), UserType.Supplier)
&& !Objects.equals(currentMaterial.getSupplierId(), UserUtil.getUserId())) { && !Objects.equals(currentMaterial.getSupplierId(), UserUtil.getUserId())) {
sb.append("无权限修改此物料;"); sb.append("无权限修改此物料;");
} else { } else {
material.setId(currentMaterial.getId()); material.setVersion(currentMaterial.getVersion());
material.setCreateBy(currentMaterial.getCreateBy());
material.setCreateTime(currentMaterial.getCreateTime());
material.setUpdateBy(UserUtil.getUserName()); material.setUpdateBy(UserUtil.getUserName());
material.setUpdateTime(LocalDateTime.now()); material.setUpdateTime(LocalDateTime.now());
forupdate.add(material); forAdd.add(material);
} }
} }
material.setNo(dto.getNo()); material.setNo(dto.getNo());
@ -391,10 +362,7 @@ public class MaterialControllerService {
} }
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) { if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
if (CollectionUtil.isNotEmpty(forAdd)) { if (CollectionUtil.isNotEmpty(forAdd)) {
materialService.saveBatch(forAdd, 1000); materialService.saveBatch(forAdd);
}
if (CollectionUtil.isNotEmpty(forupdate)) {
materialService.updateBatchById(forupdate, 1000);
} }
return true; return true;
} }

View File

@ -173,7 +173,17 @@ public class StructuralPackageControllerService {
} }
public PackageVO getInfo(@Valid @NotNull Long id) { public PackageVO getInfo(@Valid @NotNull Long id) {
return packageService.getInfo(id); PackageVO vo = packageService.getInfo(id);
vo.setMaterialList(JSONUtil.toList(vo.getMaterials(), PackageMaterialDTO.class));
vo.getMaterialList().forEach(it -> {
WmsMaterial material = materialService.getCurrent(it.getNo());
it.setVersion(material.getVersion());
it.setName(material.getDescribe());
it.setDrawingNo(material.getDrawingNo());
it.setImage(material.getImage());
it.setWeight(material.getWeight());
});
return vo;
} }
public PageData<PackageMaterialDTO> getMaterials(@Valid PackageMaterialSearchQO request) { public PageData<PackageMaterialDTO> getMaterials(@Valid PackageMaterialSearchQO request) {
@ -255,12 +265,12 @@ public class StructuralPackageControllerService {
/*if (StrUtil.isBlank(dto.getStation())) { /*if (StrUtil.isBlank(dto.getStation())) {
sb.append("工位序号不能为空;"); sb.append("工位序号不能为空;");
} else {*/ } else {*/
materialDTO.setStation(dto.getStation()); materialDTO.setStation(dto.getStation());
/*} /*}
if (StrUtil.isBlank(dto.getTray())) { if (StrUtil.isBlank(dto.getTray())) {
sb.append("托盘序号不能为空;"); sb.append("托盘序号不能为空;");
} else {*/ } else {*/
materialDTO.setTray(dto.getTray()); materialDTO.setTray(dto.getTray());
// } // }
if (StrUtil.isBlank(dto.getNum())) { if (StrUtil.isBlank(dto.getNum())) {
sb.append("数量不能为空;"); sb.append("数量不能为空;");
@ -465,7 +475,8 @@ public class StructuralPackageControllerService {
// @Transactional // @Transactional
// public void materialStorage(List<WmsInTaskItem> list, List<MaterialStorageItemQO> items) { // public void materialStorage(List<WmsInTaskItem> list, List<MaterialStorageItemQO> items) {
//// items.forEach(this::syncStorage);
/// / items.forEach(this::syncStorage);
// inventoryService.in(list.stream().map(it -> new InventoryDTO() // inventoryService.in(list.stream().map(it -> new InventoryDTO()
// .setMaterialNo(it.getItemCode()) // .setMaterialNo(it.getItemCode())
// .setBatchNo(it.getBatchNumber()) // .setBatchNo(it.getBatchNumber())
@ -484,7 +495,6 @@ public class StructuralPackageControllerService {
// }); // });
// inTaskItemService.updateBatchById(list); // inTaskItemService.updateBatchById(list);
// } // }
@Transactional(propagation = Propagation.REQUIRES_NEW) @Transactional(propagation = Propagation.REQUIRES_NEW)
public void saveSapError(List<WmsInTaskItem> list, String msg) { public void saveSapError(List<WmsInTaskItem> list, String msg) {
list.forEach(it -> { list.forEach(it -> {
@ -571,12 +581,12 @@ public class StructuralPackageControllerService {
@Transactional @Transactional
public void syncFromMpm(@Valid PackageAddQO request) { public void syncFromMpm(@Valid PackageAddQO request) {
log.info("开始从MPM系统同步钢构包数据: {}, 版本: {}", request.getNo(), request.getVersion()); log.info("开始从MPM系统同步钢构包数据: {}, 版本: {}", request.getNo(), request.getVersion());
WmsStructuralPackage structuralPackage = Convert.convert(WmsStructuralPackage.class, request); WmsStructuralPackage structuralPackage = Convert.convert(WmsStructuralPackage.class, request);
structuralPackage.setOrderNo(getOrderNo()); structuralPackage.setOrderNo(getOrderNo());
structuralPackage.setCreateBy("MPM_SYNC"); structuralPackage.setCreateBy("MPM_SYNC");
structuralPackage.setCreateTime(LocalDateTime.now()); structuralPackage.setCreateTime(LocalDateTime.now());
String modelNo = request.getModelNos(); String modelNo = request.getModelNos();
if (StrUtil.isNotBlank(modelNo)) { if (StrUtil.isNotBlank(modelNo)) {
List<String> modelNos = StrUtil.split(modelNo, ","); List<String> modelNos = StrUtil.split(modelNo, ",");
@ -587,51 +597,51 @@ public class StructuralPackageControllerService {
structuralPackage.setModelIds(StrUtil.join(",", models.stream().map(WmsModel::getId).toList())); structuralPackage.setModelIds(StrUtil.join(",", models.stream().map(WmsModel::getId).toList()));
} }
} }
structuralPackage.setFromMpm(true); // 标记为来自MPM structuralPackage.setFromMpm(true); // 标记为来自MPM
structuralPackage.setLatest(true); // 设置为最新版本 structuralPackage.setLatest(true); // 设置为最新版本
// 将同编号的其他版本设置为非最新 // 将同编号的其他版本设置为非最新
packageService.lambdaUpdate() packageService.lambdaUpdate()
.set(WmsStructuralPackage::getLatest, false) .set(WmsStructuralPackage::getLatest, false)
.eq(WmsStructuralPackage::getNo, request.getNo()) .eq(WmsStructuralPackage::getNo, request.getNo())
.update(); .update();
// 处理零件清单补充完整的物料信息 // 处理零件清单补充完整的物料信息
List<PackageMaterialDTO> materials = new ArrayList<>(); List<PackageMaterialDTO> materials = new ArrayList<>();
for (PackageMaterialDTO dto : request.getMaterials()) { for (PackageMaterialDTO dto : request.getMaterials()) {
// 从物料服务获取当前最新的物料信息 // 从物料服务获取当前最新的物料信息
WmsMaterial material = materialService.getCurrent(dto.getNo()); WmsMaterial material = materialService.getLatest(dto.getNo());
if (Objects.isNull(material)) { if (Objects.isNull(material)) {
log.warn("零件编码{}不存在,跳过", dto.getNo()); log.warn("零件编码{}不存在,跳过", dto.getNo());
continue; continue;
} }
// 补充完整的物料信息 // 补充完整的物料信息
dto.setName(material.getDescribe()); dto.setName(material.getDescribe());
dto.setDrawingNo(material.getDrawingNo()); dto.setDrawingNo(material.getDrawingNo());
dto.setImage(material.getImage()); dto.setImage(material.getImage());
// 如果MPM推送的版本号为空使用物料当前版本 // 如果MPM推送的版本号为空使用物料当前版本
if (Objects.isNull(dto.getVersion())) { if (Objects.isNull(dto.getVersion())) {
dto.setVersion(material.getVersion()); dto.setVersion(material.getVersion());
} }
dto.setCreateBy("MPM_SYNC"); dto.setCreateBy("MPM_SYNC");
dto.setCreateTime(DateTimeUtil.format(LocalDateTime.now())); dto.setCreateTime(DateTimeUtil.format(LocalDateTime.now()));
materials.add(dto); materials.add(dto);
} }
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(materials)).throwMessage("有效的零件不能为空"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(materials)).throwMessage("有效的零件不能为空");
// 计算总重 // 计算总重
structuralPackage.setWeight(materials.stream() structuralPackage.setWeight(materials.stream()
.map(m -> m.getWeight().multiply(m.getNum())) .map(m -> m.getWeight().multiply(m.getNum()))
.reduce(BigDecimal.ZERO, BigDecimal::add)); .reduce(BigDecimal.ZERO, BigDecimal::add));
structuralPackage.setMaterials(JSONUtil.toJsonStr(materials)); structuralPackage.setMaterials(JSONUtil.toJsonStr(materials));
packageService.add(structuralPackage); packageService.add(structuralPackage);
log.info("成功从MPM系统同步钢构包数据: {}, 版本: {}, 零件数: {}", request.getNo(), request.getVersion(), materials.size()); log.info("成功从MPM系统同步钢构包数据: {}, 版本: {}, 零件数: {}", request.getNo(), request.getVersion(), materials.size());
} }
@ -641,7 +651,7 @@ public class StructuralPackageControllerService {
@Transactional @Transactional
public void syncFromMpmBatch(@Valid @NotEmpty List<PackageAddQO> requests) { public void syncFromMpmBatch(@Valid @NotEmpty List<PackageAddQO> requests) {
log.info("开始批量从MPM系统同步钢构包数据共{}条", requests.size()); log.info("开始批量从MPM系统同步钢构包数据共{}条", requests.size());
for (PackageAddQO request : requests) { for (PackageAddQO request : requests) {
try { try {
syncFromMpm(request); syncFromMpm(request);
@ -650,7 +660,7 @@ public class StructuralPackageControllerService {
// 继续处理下一条不中断整个批量同步 // 继续处理下一条不中断整个批量同步
} }
} }
log.info("批量从MPM系统同步钢构包数据完成"); log.info("批量从MPM系统同步钢构包数据完成");
} }
} }

View File

@ -88,15 +88,6 @@ public class MaterialVO {
return image.substring(image.lastIndexOf(".")); return image.substring(image.lastIndexOf("."));
} }
/**
* 是否完成
*/
private Boolean complete;
public Boolean getComplete() {
return StrUtil.isNotBlank(getImage()) && Objects.nonNull(getWeight());
}
/** /**
* 供应商id * 供应商id
*/ */

View File

@ -124,12 +124,12 @@ public class PackageVO {
*/ */
private List<PackageMaterialDTO> materialList; private List<PackageMaterialDTO> materialList;
public List<PackageMaterialDTO> getMaterialList() { // public List<PackageMaterialDTO> getMaterialList() {
if (StrUtil.isBlank( materials)){ // if (StrUtil.isBlank(materials)) {
return Collections.emptyList(); // return Collections.emptyList();
} // }
return JSONUtil.toList(materials, PackageMaterialDTO.class); // return JSONUtil.toList(materials, PackageMaterialDTO.class);
} // }
/** /**
* 供应商名称 * 供应商名称
@ -158,6 +158,6 @@ public class PackageVO {
private List<String> modelIdList; private List<String> modelIdList;
public List<String> getModelIdList() { public List<String> getModelIdList() {
return StrUtil.split(modelIds, ","); return StrUtil.split(modelIds, ",");
} }
} }

View File

@ -113,16 +113,6 @@ public class WmsMaterial implements Serializable {
*/ */
private Long supplierId; private Long supplierId;
/**
* 是否完成
*/
@TableField(exist = false)
private Boolean complete;
public Boolean getComplete() {
return StrUtil.isNotBlank(getImage()) && Objects.nonNull(getWeight());
}
/** /**
* 是否来自MPM * 是否来自MPM
*/ */

View File

@ -7,7 +7,6 @@ import com.nflg.wms.common.pojo.vo.MaterialVO;
import com.nflg.wms.repository.entity.WmsMaterial; import com.nflg.wms.repository.entity.WmsMaterial;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -24,7 +23,7 @@ public interface IWmsMaterialService extends IService<WmsMaterial> {
void add(WmsMaterial wmsMaterial); void add(WmsMaterial wmsMaterial);
void update(WmsMaterial wmsMaterial); // void update(WmsMaterial wmsMaterial);
IPage<MaterialVO> search(@Valid MaterialSearchQO request); IPage<MaterialVO> search(@Valid MaterialSearchQO request);
@ -32,11 +31,13 @@ public interface IWmsMaterialService extends IService<WmsMaterial> {
List<MaterialVO> getNotSet(); List<MaterialVO> getNotSet();
WmsMaterial getCurrent(String no); WmsMaterial getLatest(String no);
List<MaterialVO> searchNonPage(@Valid MaterialSearchQO request); List<MaterialVO> searchNonPage(@Valid MaterialSearchQO request);
List<MaterialVO> getMaterials(Set<String> nos); List<MaterialVO> getMaterials(Set<String> nos);
List<MaterialVO> getMaterials(List<Long> ids); List<MaterialVO> getMaterials(List<Long> ids);
WmsMaterial getCurrent(String no);
} }

View File

@ -1,5 +1,7 @@
package com.nflg.wms.repository.service.impl; package com.nflg.wms.repository.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -18,9 +20,8 @@ import java.util.Set;
/** /**
* <p> * <p>
* 服务实现类 * 服务实现类
* </p> * </p>
*
* @author 代码生成器生成 * @author 代码生成器生成
* @since 2025 * @since 2025
*/ */
@ -32,25 +33,22 @@ public class WmsMaterialServiceImpl extends ServiceImpl<WmsMaterialMapper, WmsMa
@Override @Override
public void add(WmsMaterial wmsMaterial) { public void add(WmsMaterial wmsMaterial) {
VUtil.trueThrowBusinessError("1".equals(wmsMaterial.getVersion())
&& lambdaQuery().eq(WmsMaterial::getNo, wmsMaterial.getNo()).exists())
.throwMessage("SAP料号已存在");
save(wmsMaterial); save(wmsMaterial);
auditLogService.addInsert(WmsMaterial.class, wmsMaterial, wmsMaterial.getCreateBy()); auditLogService.addInsert(WmsMaterial.class, wmsMaterial, wmsMaterial.getCreateBy());
} }
@Override // @Override
public void update(WmsMaterial wmsMaterial) { // public void update(WmsMaterial wmsMaterial) {
WmsMaterial old = getById(wmsMaterial.getId()); // WmsMaterial old = getById(wmsMaterial.getId());
wmsMaterial.setNo(null); // wmsMaterial.setNo(null);
updateById(wmsMaterial); // updateById(wmsMaterial);
WmsMaterial newWmsMaterial = getById(wmsMaterial.getId()); // WmsMaterial newWmsMaterial = getById(wmsMaterial.getId());
auditLogService.addUpdate(WmsMaterial.class, old, newWmsMaterial, wmsMaterial.getUpdateBy()); // auditLogService.addUpdate(WmsMaterial.class, old, newWmsMaterial, wmsMaterial.getUpdateBy());
} // }
@Override @Override
public IPage<MaterialVO> search(MaterialSearchQO request) { public IPage<MaterialVO> search(MaterialSearchQO request) {
return baseMapper.search(request,new Page<>(request.getPage(),request.getPageSize())); return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
} }
@Override @Override
@ -64,7 +62,7 @@ public class WmsMaterialServiceImpl extends ServiceImpl<WmsMaterialMapper, WmsMa
} }
@Override @Override
public WmsMaterial getCurrent(String no) { public WmsMaterial getLatest(String no) {
return lambdaQuery().eq(WmsMaterial::getNo, no).orderByDesc(WmsMaterial::getId).last("limit 1").one(); return lambdaQuery().eq(WmsMaterial::getNo, no).orderByDesc(WmsMaterial::getId).last("limit 1").one();
} }
@ -82,4 +80,26 @@ public class WmsMaterialServiceImpl extends ServiceImpl<WmsMaterialMapper, WmsMa
public List<MaterialVO> getMaterials(List<Long> ids) { public List<MaterialVO> getMaterials(List<Long> ids) {
return baseMapper.getMaterialsByIds(ids); return baseMapper.getMaterialsByIds(ids);
} }
@Override
public WmsMaterial getCurrent(String no) {
List<WmsMaterial> datas = lambdaQuery()
.eq(WmsMaterial::getNo, no)
.orderByDesc(WmsMaterial::getId)
.last("limit 2")
.list();
if (CollectionUtil.isEmpty(datas)) {
return null;
}
if (datas.size() == 1) {
return datas.get(0);
}
if (StrUtil.isNotBlank(datas.get(0).getImage())) {
return datas.get(0);
}
if (StrUtil.isNotBlank(datas.get(1).getImage())) {
return datas.get(1);
}
return datas.get(0);
}
} }

View File

@ -27,7 +27,6 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream; import java.util.zip.ZipInputStream;
@ -80,7 +79,7 @@ public class MaterialZipImportProcessor implements BasicProcessor {
} catch (Exception ex) { } catch (Exception ex) {
omsLogger.error("上传图片失败:{}", ex.getMessage()); omsLogger.error("上传图片失败:{}", ex.getMessage());
} }
WmsMaterial old = materialService.getCurrent(materialNo); WmsMaterial old = materialService.getLatest(materialNo);
if (Objects.isNull(old) || StrUtil.isNotBlank(old.getImage())) { if (Objects.isNull(old) || StrUtil.isNotBlank(old.getImage())) {
omsLogger.info("添加图纸"); omsLogger.info("添加图纸");
// 计算新版本号 // 计算新版本号