|
@@ -13,6 +13,7 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
import com.sd.business.entity.bom.bo.BomSpecOrderConsumptionBo;
|
|
import com.sd.business.entity.bom.bo.BomSpecOrderConsumptionBo;
|
|
import com.sd.business.entity.bom.dto.BomSpecSelectDto;
|
|
import com.sd.business.entity.bom.dto.BomSpecSelectDto;
|
|
import com.sd.business.entity.bom.po.Bom;
|
|
import com.sd.business.entity.bom.po.Bom;
|
|
|
|
+import com.sd.business.entity.bom.po.BomClassify;
|
|
import com.sd.business.entity.bom.po.BomSpec;
|
|
import com.sd.business.entity.bom.po.BomSpec;
|
|
import com.sd.business.entity.bom.vo.BomSpecVo;
|
|
import com.sd.business.entity.bom.vo.BomSpecVo;
|
|
import com.sd.business.entity.department.constant.DepartmentConstant;
|
|
import com.sd.business.entity.department.constant.DepartmentConstant;
|
|
@@ -138,15 +139,28 @@ public class PurchaseBomServiceImpl extends ServiceImpl<PurchaseBomMapper, Purch
|
|
public Page<PurchaseInTransitBomVo> getPurchaseInTransitBomPage(PurchaseInTransitBomSelectDto dto) {
|
|
public Page<PurchaseInTransitBomVo> getPurchaseInTransitBomPage(PurchaseInTransitBomSelectDto dto) {
|
|
IWrapper<PurchaseInTransitBomVo> wrapper = IWrapper.getWrapper();
|
|
IWrapper<PurchaseInTransitBomVo> wrapper = IWrapper.getWrapper();
|
|
wrapper.eq("p", Purchase::getStatus, PurchaseStatusEnum.UNDER_PURCHASE.getKey());
|
|
wrapper.eq("p", Purchase::getStatus, PurchaseStatusEnum.UNDER_PURCHASE.getKey());
|
|
|
|
+ wrapper.eq("bc", BomClassify::getParentId, 1);
|
|
wrapper.like("p", Purchase::getCode, dto.getPurchaseCode());
|
|
wrapper.like("p", Purchase::getCode, dto.getPurchaseCode());
|
|
wrapper.like("bs", BomSpec::getCode, dto.getBomSpecCode());
|
|
wrapper.like("bs", BomSpec::getCode, dto.getBomSpecCode());
|
|
wrapper.like("bs", BomSpec::getName, dto.getBomSpecName());
|
|
wrapper.like("bs", BomSpec::getName, dto.getBomSpecName());
|
|
wrapper.apply("(pb.purchase_quantity + pb.return_quantity) > pb.arrival_quantity");
|
|
wrapper.apply("(pb.purchase_quantity + pb.return_quantity) > pb.arrival_quantity");
|
|
- wrapper.orderByAsc("bs", BomSpec::getCode)
|
|
|
|
- .orderByDesc("bs", BomSpec::getLength)
|
|
|
|
- .orderByAsc("bs", BomSpec::getWidth)
|
|
|
|
- .orderByDesc("bs", BomSpec::getHeight);
|
|
|
|
- return this.baseMapper.getPurchaseInTransitBomPage(dto.getPage(), wrapper);
|
|
|
|
|
|
+ wrapper.orderByAsc("turnoverRate");
|
|
|
|
+ Page<PurchaseInTransitBomVo> page = this.baseMapper.getPurchaseInTransitBomPage(dto.getPage(), wrapper);
|
|
|
|
+ List<PurchaseInTransitBomVo> records = page.getRecords();
|
|
|
|
+ List<Long> bomSpecIds = records.stream().map(PurchaseInTransitBomVo::getBomSpecId).collect(Collectors.toList());
|
|
|
|
+ Map<Long, Inventory> inventoryMap = inventoryService.mapKEntity(Inventory::getBomSpecId, q -> q.in(Inventory::getBomSpecId, bomSpecIds).eq(Inventory::getWarehouseId, WarehouseConstant.SEMI_FINISHED_PRODUCT)
|
|
|
|
+ .eq(Inventory::getDepartmentId, DepartmentConstant.SD_SPORTS));
|
|
|
|
+ for (PurchaseInTransitBomVo record : records) {
|
|
|
|
+ Inventory inventory = inventoryMap.get(record.getBomSpecId());
|
|
|
|
+ if (inventory == null) {
|
|
|
|
+ record.setInventoryQuantity(BigDecimal.ZERO);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ BigDecimal lockQuantity = inventory.getLockQuantity() == null ? BigDecimal.ZERO : inventory.getLockQuantity();
|
|
|
|
+ record.setInventoryQuantity(inventory.getQuantity().add(lockQuantity));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return page;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|