仓库管理修改

liweidong
wusiyu 2 days ago
parent 442e00cc01
commit 972159475b
  1. 2
      blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/dto/StGlassCakeOutDTO.java
  2. 2
      blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StGlassCakeOut.java
  3. 2
      blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StOtherReceiptRecord.java
  4. 2
      blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StRealtimeStock.java
  5. 2
      blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StStockInoutRecord.java
  6. 2
      blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StGlassCakeOutVO.java
  7. 2
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java
  8. 47
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StOtherReceiptRecordServiceImpl.java

@ -26,7 +26,7 @@ public class StGlassCakeOutDTO extends StGlassCakeOut {
* 是否印字库存查询条件
*/
@Schema(description = "是否印字")
private Boolean printMark;
private String printMark;
/**
* 粉重库存查询条件

@ -133,7 +133,7 @@ public class StGlassCakeOut extends TenantEntity {
*/
@TableField(exist = false)
@Schema(description = "是否印字")
private Boolean printMark;
private String printMark;
/**
* 粉重
*/

@ -82,7 +82,7 @@ public class StOtherReceiptRecord extends TenantEntity {
*/
public static final Short REASON_STUB = 5;
/**
* 生产入库
* 玻璃饼入库
*/
public static final Short REASON_PRODUCE = 7;

@ -162,7 +162,7 @@ public class StRealtimeStock extends TenantEntity {
* 是否印字
*/
@Schema(description = "是否印字")
private Boolean printMark;
private String printMark;
/**
* 粉重
*/

@ -186,7 +186,7 @@ public class StStockInoutRecord extends TenantEntity {
*/
@TableField(exist = false)
@Schema(description = "是否印字")
private Boolean printMark;
private String printMark;
/**
* 粉重
*/

@ -33,7 +33,7 @@ public class StGlassCakeOutVO extends StGlassCakeOut {
private String goodsName;
@Schema(description = "是否印字")
@TableField(exist = false)
private Boolean printMark;
private String printMark;
@Schema(description = "粉重")
@TableField(exist = false)
private String powderWeight;

@ -1935,7 +1935,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
public void test() {
List<StGlassCakeOutDTO> list = new ArrayList<>();
StGlassCakeOutDTO glassDto = new StGlassCakeOutDTO();
glassDto.setPrintMark(false);
glassDto.setPrintMark("1");
glassDto.setPowderWeight("1");
glassDto.setMaterialNo("2");
glassDto.setThickness("3");

@ -12,7 +12,6 @@ import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
import org.springblade.desk.dashboard.feign.IPartClient;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
import org.springblade.desk.dashboard.pojo.entity.DsPartRelationEntity;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.wms.excel.StOtherReceiptRecordExcel;
@ -21,12 +20,10 @@ import org.springblade.wms.pojo.dto.InitStockDTO;
import org.springblade.wms.pojo.entity.*;
import org.springblade.wms.pojo.vo.StOtherReceiptRecordVO;
import org.springblade.wms.service.*;
import org.springblade.wms.wrapper.StOtherReceiptRecordWrapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -289,7 +286,6 @@ public class StOtherReceiptRecordServiceImpl extends BaseServiceImpl<StOtherRece
@Override
public StStockInoutRecord getGlassCakeByWoCode(String woCode, String goodsCode) {
List<StOtherReceiptRecord> list = baseMapper.selectByWoCode(woCode);
WorkOrder workOrder = baseMapper.getByWoCode(woCode);
if (workOrder == null) {
@ -310,42 +306,17 @@ public class StOtherReceiptRecordServiceImpl extends BaseServiceImpl<StOtherRece
if (partOne == null) {
throw new RuntimeException("根据零件编号【" + workOrder.getPartCode() + "】未查询到零件信息");
}
List<DsPartRelationEntity> partRelationEntityList = partClient.getSubPart(partOne.getId());
List<DsPartEntity> glassCakePartList = new ArrayList<>();
if (!CollectionUtils.isEmpty(partRelationEntityList)) {
// 步骤1:提取所有非空的childPartId并去重(避免null和重复ID,减少查询压力)
List<Long> childPartIdList = partRelationEntityList.stream()
.map(DsPartRelationEntity::getChildPartId) // 提取子件ID
.filter(Objects::nonNull) // 过滤null的ID
.distinct() // 去重,避免重复查询
.collect(Collectors.toList());
// 步骤2:批量查询DS_PART表(一次SQL,性能最优)
if (!CollectionUtils.isEmpty(childPartIdList)) {
// 调用dsPartService的批量查询方法(根据ID列表查DS_PART)
List<DsPartEntity> allChildPartList = partClient.batchParts(childPartIdList);
// 步骤3:筛选出IS_CLASS_CAKE为"玻璃饼"的记录(核心过滤)
if (!CollectionUtils.isEmpty(allChildPartList)) {
glassCakePartList = allChildPartList.stream()
.filter(part -> Boolean.TRUE.equals(part.getIsGlassCake()))
.collect(Collectors.toList());
}
}
}
StStockInoutRecord inoutRecord = new StStockInoutRecord();
if (!CollectionUtils.isEmpty(glassCakePartList)) {
DsPartEntity targetPart = glassCakePartList.stream()
.filter(part -> goodsCode.equals(part.getPartCode()))
.findFirst()
.orElse(null);
inoutRecord.setPrintMark(Boolean.valueOf(targetPart.getIsPrint()));
inoutRecord.setPowderWeight(String.valueOf(targetPart.getPowderWeight()));
inoutRecord.setMaterialNo(targetPart.getMaterial());
inoutRecord.setThickness(String.valueOf(targetPart.getFormingThickness()));
if ("1".equals(partOne.getIsGlassCake())) {
if (goodsCode.equals(partOne.getPartCode())) {
inoutRecord.setPrintMark(partOne.getIsPrint());
inoutRecord.setPowderWeight(String.valueOf(partOne.getPowderWeight()));
inoutRecord.setMaterialNo(partOne.getMaterial());
inoutRecord.setThickness(String.valueOf(partOne.getFormingThickness()));
}
} else {
throw new RuntimeException("零件编号【" + workOrder.getPartCode() + "】不是玻璃饼,不允许操作");
}
if (ObjectUtil.isEmpty(inoutRecord)) {

Loading…
Cancel
Save