123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package com.ruoyi.warehouseBusiness.component.impl;
- import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
- import com.ruoyi.warehouseBusiness.component.CalculationWarehouseService;
- import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
- import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
- import com.ruoyi.warehouseBusiness.domain.enums.WarehouseTypeEnum;
- import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsitemsMapper;
- import lombok.AllArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Component;
- import java.math.BigDecimal;
- import java.util.List;
- import java.util.Objects;
- /**
- * @author caifc
- * @date 2021-11-23 18:52
- */
- @Slf4j
- @Component
- @AllArgsConstructor
- public class CalculationWarehouseServiceImpl implements CalculationWarehouseService {
- private final TWarehousebillsitemsMapper warehousebillsitemsMapper;
- /**
- * 仓库查询库存总帐
- *
- * @param warehouseBills 主表数据
- * @return 状态
- */
- @Override
- public void calculationBillStatus(TWarehouseBills warehouseBills) {
- List<TWarehousebillsitems> warehousebillsitems = warehousebillsitemsMapper.selectItemsStatusByPid(warehouseBills.getfId());
- // 如果没有明细则是未xxx
- if (CollectionUtils.isEmpty(warehousebillsitems)) {
- warehouseBills.setfItemsStatus(1L);
- } else {
- // 代表有明细数据
- long count;
- // 判断是否货权转移
- if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype())) {
- count = warehousebillsitems.stream().filter(item ->
- !Objects.equals(item.getfBillstatus(), 6L)
- ).count();
- } else {
- count = warehousebillsitems.stream().filter(item ->
- Objects.equals(item.getfBillstatus(), 40L))
- .count();
- }
- // 如果明细中不存在已经操作库存总帐的则判定xx中
- if (Objects.equals((long) warehousebillsitems.size(), count)) {
- warehouseBills.setfItemsStatus(4L);
- } else {
- // 最终判定 已经xxx
- warehouseBills.setfItemsStatus(2L);
- }
- }
- }
- /**
- * 仓库计算明细件数、毛重、净重总和
- *
- * @param warehouseBills 仓库数据
- */
- @Override
- public void calculationWarehouseQuantity(TWarehouseBills warehouseBills) {
- TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
- warehousebillsitems.setfPid(warehouseBills.getfId());
- List<TWarehousebillsitems> warehousebillsitemsList = warehousebillsitemsMapper.selectTWarehousebillsitemsList(warehousebillsitems);
- // 存在明细数据
- if (CollectionUtils.isNotEmpty(warehousebillsitemsList)) {
- Long qty = 0L;
- BigDecimal netweight = BigDecimal.ZERO;
- BigDecimal grossweight = BigDecimal.ZERO;
- Long planQty = 0L;
- BigDecimal planNetweight = BigDecimal.ZERO;
- BigDecimal planGrossweight = BigDecimal.ZERO;
- for (TWarehousebillsitems li : warehousebillsitemsList) {
- qty += li.getfQty();
- planQty += li.getfPlanqty();
- netweight = netweight.add(li.getfNetweight());
- planNetweight = planNetweight.add(li.getfPlannetweight());
- planGrossweight = planGrossweight.add(li.getfPlangrossweight());
- }
- warehouseBills.setfPlanqty(planQty);
- warehouseBills.setfPlannetweight(planNetweight);
- warehouseBills.setfPlangrossweight(planGrossweight);
- warehouseBills.setfQty(qty);
- warehouseBills.setfNetweight(netweight);
- warehouseBills.setfGrossweight(grossweight);
- }
- }
- }
|