Browse Source

仓库业务->修改bug

caifc 3 years ago
parent
commit
e745dd5af5

+ 23 - 4
ruoyi-warehouse/src/main/java/com/ruoyi/finance/service/impl/TFeeServiceImpl.java

@@ -63,6 +63,7 @@ import com.ruoyi.warehouseBusiness.service.impl.BillnoSerialServiceImpl;
 import org.apache.commons.compress.utils.Lists;
 import org.apache.commons.compress.utils.Lists;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.CellRangeAddress;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
@@ -74,6 +75,7 @@ import java.io.OutputStream;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 财务数据主Service业务层处理
  * 财务数据主Service业务层处理
@@ -2011,10 +2013,27 @@ public class TFeeServiceImpl implements ITFeeService {
         }
         }
         feeDTO.setFeesId(ccf.getfId());
         feeDTO.setFeesId(ccf.getfId());
         List<FeeVO> feeVOList = tFeeMapper.selectFinancialLedgerDetails(feeDTO);
         List<FeeVO> feeVOList = tFeeMapper.selectFinancialLedgerDetails(feeDTO);
-        feeVOList.forEach(vo -> {
-            WarehouseTypeEnum storageType = WarehouseTypeEnum.fromTypeAndBusinessType(vo.getfBilltype(), "storageType");
-            vo.setfBilltype(storageType.getName());
-        });
+
+        if (CollectionUtils.isNotEmpty(feeVOList)) {
+            List<FeeVO> voList = new ArrayList<>();
+            Map<Long, List<FeeVO>> map = feeVOList.stream().collect(Collectors.groupingBy(FeeVO::getFSrcpid));
+            map.forEach((key, value) -> {
+                FeeVO vo = new FeeVO();
+                FeeVO feeVO = value.stream().findFirst().orElseThrow(() ->
+                        new WarehouseException("获取费用异常"));
+                BeanUtils.copyProperties(feeVO, vo);
+                // 仓储费
+                BigDecimal storageFee = value.stream().map(FeeVO::getStorageFee).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
+                // 其他费用
+                BigDecimal otherFee = value.stream().map(FeeVO::getOtherFee).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
+                WarehouseTypeEnum storageType = WarehouseTypeEnum.fromTypeAndBusinessType(vo.getfBilltype(), "storageType");
+                vo.setfBilltype(storageType.getName());
+                vo.setStorageFee(storageFee);
+                vo.setOtherFee(otherFee);
+                voList.add(vo);
+            });
+            return AjaxResult.success(voList);
+        }
         return AjaxResult.success(feeVOList);
         return AjaxResult.success(feeVOList);
     }
     }
 
 

+ 1 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/component/WarehouseBillsfilterService.java

@@ -14,6 +14,6 @@ public interface WarehouseBillsfilterService {
      *  校验仓库信息
      *  校验仓库信息
      * @param warehousebillsDTO
      * @param warehousebillsDTO
      */
      */
-    void filter(WarehousebillsDTO warehousebillsDTO);
+    void filter(WarehousebillsDTO warehousebillsDTO, String criteria);
 
 
 }
 }

+ 13 - 4
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/component/impl/WarehouseBillsfilterServiceImpl.java

@@ -27,12 +27,12 @@ public class WarehouseBillsfilterServiceImpl implements WarehouseBillsfilterServ
 
 
 
 
     @Override
     @Override
-    public void filter(WarehousebillsDTO warehousebillsDTO) {
+    public void filter(WarehousebillsDTO warehousebillsDTO, String criteria) {
         // 校验仓储信息
         // 校验仓储信息
         filterWarehouseBills(warehousebillsDTO);
         filterWarehouseBills(warehousebillsDTO);
         // 校验明细
         // 校验明细
         if (CollectionUtils.isNotEmpty(warehousebillsDTO.getWarehousebillsitemsList())) {
         if (CollectionUtils.isNotEmpty(warehousebillsDTO.getWarehousebillsitemsList())) {
-            filterItem(warehousebillsDTO.getWarehousebillsitemsList());
+            filterItem(warehousebillsDTO.getWarehousebillsitemsList(), criteria);
         }
         }
         // 校验费用明细
         // 校验费用明细
         if (CollectionUtils.isNotEmpty(warehousebillsDTO.getWarehousebillsfeesList())) {
         if (CollectionUtils.isNotEmpty(warehousebillsDTO.getWarehousebillsfeesList())) {
@@ -89,14 +89,17 @@ public class WarehouseBillsfilterServiceImpl implements WarehouseBillsfilterServ
      * 校验明细信息
      * 校验明细信息
      *
      *
      * @param itemList 明细信息
      * @param itemList 明细信息
+     * @param criteria  判断条件
      */
      */
-    private void filterItem(List<TWarehousebillsitems> itemList) {
+    private void filterItem(List<TWarehousebillsitems> itemList, String criteria) {
         int line = 1;
         int line = 1;
+        boolean status = criteria.equals(WarehouseTypeEnum.SAVE.getType());
+
         for (TWarehousebillsitems li : itemList) {
         for (TWarehousebillsitems li : itemList) {
             if (StringUtils.isNull(li.getfGoodsid())) {
             if (StringUtils.isNull(li.getfGoodsid())) {
                 throw new WarehouseException("序号" + line + "明细仓储明细未选择商品");
                 throw new WarehouseException("序号" + line + "明细仓储明细未选择商品");
             }
             }
-            if (StringUtils.isNull(li.getfWarehouselocid())) {
+            if (!status && StringUtils.isNull(li.getfWarehouselocid())) {
                 throw new WarehouseException("序号" + line + "明细仓储明细未选择库区");
                 throw new WarehouseException("序号" + line + "明细仓储明细未选择库区");
             }
             }
             if (StringUtils.isNull(li.getfBsdate())) {
             if (StringUtils.isNull(li.getfBsdate())) {
@@ -111,6 +114,12 @@ public class WarehouseBillsfilterServiceImpl implements WarehouseBillsfilterServ
             if (StringUtils.isNull(li.getfQty()) || Objects.equals(li.getfQty(), 0L)) {
             if (StringUtils.isNull(li.getfQty()) || Objects.equals(li.getfQty(), 0L)) {
                 throw new WarehouseException("序号" + line + "明细仓储明细未选填入数量");
                 throw new WarehouseException("序号" + line + "明细仓储明细未选填入数量");
             }
             }
+            if (!status && (StringUtils.isNull(li.getfGrossweight()) || li.getfGrossweight().compareTo(BigDecimal.ZERO) <= 0)) {
+                throw new WarehouseException("序号" + line + "明细仓储明细未选填入毛重");
+            }
+            if (!status && (StringUtils.isNull(li.getfNetweight()) || li.getfNetweight().compareTo(BigDecimal.ZERO) <= 0)) {
+                throw new WarehouseException("序号" + line + "明细仓储明细未选填入净重");
+            }
             line++;
             line++;
         }
         }
     }
     }

+ 9 - 6
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -6997,7 +6997,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult quickStaging(WarehousebillsDTO warehousebillsDTO, LoginUser loginUser) {
     public AjaxResult quickStaging(WarehousebillsDTO warehousebillsDTO, LoginUser loginUser) {
         // 校验必填项
         // 校验必填项
-        warehouseBillsfilterService.filter(warehousebillsDTO);
+        warehouseBillsfilterService.filter(warehousebillsDTO, WarehouseTypeEnum.SAVE.getType());
         // 定义计算毛重净重的仓库主表
         // 定义计算毛重净重的仓库主表
         TWarehouseBills warehouseBills = new TWarehouseBills();
         TWarehouseBills warehouseBills = new TWarehouseBills();
         // 根据客户、提单号、仓库是否存在已入库数据,若已存在则追加在其上面
         // 根据客户、提单号、仓库是否存在已入库数据,若已存在则追加在其上面
@@ -7042,13 +7042,16 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         // 遍历进行入库、出库确认
         // 遍历进行入库、出库确认
         List<TWarehousebillsitems> itemList = warehousebillsDTO.getWarehousebillsitemsList();
         List<TWarehousebillsitems> itemList = warehousebillsDTO.getWarehousebillsitemsList();
         int line = 1;
         int line = 1;
+        String serialNumber;
+        if (warehousebillsDTO.getfBilltype().equals(WarehouseTypeEnum.SJRK.getType())) {
+            serialNumber = billnoSerialServiceImpl.getSerialNumber(WarehouseTypeEnum.SJRK_NO.getType(), new Date());
+        } else {
+            serialNumber = billnoSerialServiceImpl.getSerialNumber(WarehouseTypeEnum.SJCK_NO.getType(), new Date());
+        }
         for (TWarehousebillsitems li : itemList) {
         for (TWarehousebillsitems li : itemList) {
-            // 如果业务时间超出当前时间则不允许
-            if (li.getfBsdate().after(new Date())) {
-                throw new WarehouseException("第" + line + "行业务日期不得超出当前日期");
-            }
             li.setfPid(warehouseBills.getfId());
             li.setfPid(warehouseBills.getfId());
             li.setfBillstatus(10L);
             li.setfBillstatus(10L);
+            li.setfSerialNumber(serialNumber);
             li.setfBillno(warehouseBills.getfBillno());
             li.setfBillno(warehouseBills.getfBillno());
             li.setfBilltype(warehouseBills.getfBilltype());
             li.setfBilltype(warehouseBills.getfBilltype());
             if (warehouseBills.getfBilltype().equals(WarehouseTypeEnum.SJRK.getType())) {
             if (warehouseBills.getfBilltype().equals(WarehouseTypeEnum.SJRK.getType())) {
@@ -7085,7 +7088,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             throw new WarehouseException("未找到仓储的明细数据");
             throw new WarehouseException("未找到仓储的明细数据");
         }
         }
         // 校验必填项
         // 校验必填项
-        warehouseBillsfilterService.filter(warehousebillsDTO);
+        warehouseBillsfilterService.filter(warehousebillsDTO, WarehouseTypeEnum.SUBMIT.getType());
         // 遍历进行入库、出库确认
         // 遍历进行入库、出库确认
         List<TWarehousebillsitems> itemList = warehousebillsDTO.getWarehousebillsitemsList();
         List<TWarehousebillsitems> itemList = warehousebillsDTO.getWarehousebillsitemsList();
         int line = 1;
         int line = 1;