bug-1525 物料图片版本和钢构包信息版本逻辑优化
This commit is contained in:
parent
a64278010a
commit
8b75fb3a27
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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系统同步钢构包数据完成");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -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, ",");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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("添加图纸");
|
||||||
// 计算新版本号
|
// 计算新版本号
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue