From 45af8ccd9a38f403b686431faefad5733f900209 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 08 九月 2025 18:07:58 +0800
Subject: [PATCH] 供应商erp

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java |   96 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 89 insertions(+), 7 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java
index 2bd5f36..5d68c0a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java
@@ -3,21 +3,24 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.system.dto.WarehousingGoodsDto;
+import com.ruoyi.system.dto.WarehousingGoodsNextDto;
 import com.ruoyi.system.mapper.*;
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.TErpGoodsQuery;
 import com.ruoyi.system.query.TErpGoodsWarehouseQuery;
+import com.ruoyi.system.query.ValidityPeriodWarningQuery;
 import com.ruoyi.system.service.TErpSupplierWarehousingService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.system.vo.TErpGoodsVO;
-import com.ruoyi.system.vo.TErpGoodsWarehouseLastVO;
-import com.ruoyi.system.vo.TErpGoodsWarehouseRecordLastVO;
-import com.ruoyi.system.vo.TErpGoodsWarehouseVO;
+import com.ruoyi.system.vo.*;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -123,7 +126,7 @@
                     tErpGoodsWarehouseVO.setNowNum(tErpSupplierWarehousingBatch.getWarehousingNumber());
                 }
 
-                tErpGoodsWarehouseVO.setUnitAmount(new BigDecimal(tErpSupplierWarehousing.getUnitAmount()*tErpGoodsWarehouseVO.getNowNum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                tErpGoodsWarehouseVO.setUnitAmount(tErpSupplierWarehousing.getUnitAmount().multiply(new BigDecimal(tErpGoodsWarehouseVO.getNowNum())).setScale(2, RoundingMode.HALF_UP).doubleValue());
                 tErpGoodsWarehouseVOS.add(tErpGoodsWarehouseVO);
             }
             tErpGoodsWarehouseLastVO.setAllNum(tErpGoodsWarehouseVOS.stream().mapToInt(TErpGoodsWarehouseVO::getNowNum).sum());
@@ -138,10 +141,89 @@
 
     @Override
     public PageInfo<TErpGoodsWarehouseRecordLastVO> pageWarehouseList(TErpGoodsWarehouseQuery query, SysUser user) {
+        TErpGoods goods = erpGoodsMapper.selectById(query.getGoodsId());
 
         PageInfo<TErpGoodsWarehouseRecordLastVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
-        List<TErpGoodsWarehouseRecordLastVO> list = this.baseMapper.pageWarehouseList(query,pageInfo,user);
+        String sTime=null;
+        String eTime =null;
+        if(query.getTime()!=null && !query.getTime().isEmpty()){
+            String[] split = query.getTime().split(" - ");
+            sTime = split[0] + " 00:00:00";
+            eTime = split[1] + " 23:59:59";
+        }
+        List<TErpGoodsWarehouseRecordLastVO> list = this.baseMapper.pageWarehouseList(query,pageInfo,user,sTime,eTime);
+        for (TErpGoodsWarehouseRecordLastVO tErpGoodsWarehouseRecordLastVO : list) {
+            ArrayList<TErpGoodsWarehouseVO> tErpGoodsWarehouseVOS = new ArrayList<>();
+            if(tErpGoodsWarehouseRecordLastVO.getCategory()==1){
+                List<TErpSupplierWarehousingBatch> tErpSupplierWarehousingBatches = erpSupplierWarehousingBatchMapper.selectList(new LambdaQueryWrapper<TErpSupplierWarehousingBatch>().eq(TErpSupplierWarehousingBatch::getWarehousingId, tErpGoodsWarehouseRecordLastVO.getId()));
+                for (TErpSupplierWarehousingBatch tErpSupplierWarehousingBatch : tErpSupplierWarehousingBatches) {
+                    TErpGoodsWarehouseVO tErpGoodsWarehouseVO = new TErpGoodsWarehouseVO();
+                    tErpGoodsWarehouseVO.setBatchNumber(tErpSupplierWarehousingBatch.getBatchNumber());
+                    tErpGoodsWarehouseVO.setProductionDate(tErpSupplierWarehousingBatch.getProductionDate());
+                    tErpGoodsWarehouseVO.setExpiryDate(tErpSupplierWarehousingBatch.getExpiryDate());
+                    tErpGoodsWarehouseVO.setNowNum(tErpSupplierWarehousingBatch.getWarehousingNumber());
+                    tErpGoodsWarehouseVOS.add(tErpGoodsWarehouseVO);
+                }
+            }else {
+                List<TErpSupplierOutboundGoods> tErpSupplierOutboundGoods = erpSupplierOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpSupplierOutboundGoods>().eq(TErpSupplierOutboundGoods::getOutboundId, tErpGoodsWarehouseRecordLastVO.getId()));
+                for (TErpSupplierOutboundGoods tErpSupplierOutboundGoods1 : tErpSupplierOutboundGoods) {
+                    TErpGoodsWarehouseVO tErpGoodsWarehouseVO = new TErpGoodsWarehouseVO();
+                    String warehousingBatchId = tErpSupplierOutboundGoods1.getWarehousingBatchId();
+                    TErpSupplierWarehousingBatch tErpSupplierWarehousingBatch = erpSupplierWarehousingBatchMapper.selectById(warehousingBatchId);
+                    tErpGoodsWarehouseVO.setBatchNumber(tErpSupplierWarehousingBatch.getBatchNumber());
+                    tErpGoodsWarehouseVO.setExpiryDate(tErpSupplierWarehousingBatch.getExpiryDate());
+                    tErpGoodsWarehouseVO.setProductionDate(tErpSupplierWarehousingBatch.getProductionDate());
+                    tErpGoodsWarehouseVO.setNowNum(tErpSupplierOutboundGoods1.getOutboundCount());
+                    tErpGoodsWarehouseVOS.add(tErpGoodsWarehouseVO);
+                }
+            }
+            tErpGoodsWarehouseRecordLastVO.setAllNum(tErpGoodsWarehouseVOS.stream().mapToInt(TErpGoodsWarehouseVO::getNowNum).sum());
+            tErpGoodsWarehouseRecordLastVO.setWarningInventory(goods.getWarningInventory());
+            tErpGoodsWarehouseRecordLastVO.setList(tErpGoodsWarehouseVOS);
 
-        return null;
+        }
+        pageInfo.setRecords( list);
+        return pageInfo;
+    }
+
+    @Override
+    public void warehousingGoods(List<WarehousingGoodsDto> dtos, SysUser user) {
+        for (WarehousingGoodsDto dto : dtos) {
+            TErpSupplierWarehousing tErpSupplierWarehousing = new TErpSupplierWarehousing();
+            // 当前年月日时分秒
+            String time = DateUtils.dateTimeNow();
+            tErpSupplierWarehousing.setWarehousingNo("G"+time);
+            tErpSupplierWarehousing.setSupplierId(user.getUserId().toString());
+            tErpSupplierWarehousing.setWarehouseId(dto.getWarehouseId());
+            tErpSupplierWarehousing.setGoodsId(dto.getGoodsId());
+            TErpGoods goods = erpGoodsMapper.selectById(dto.getGoodsId());
+            tErpSupplierWarehousing.setGoodsName(goods.getGoodsName());
+            tErpSupplierWarehousing.setGoodsCount(tErpSupplierWarehousing.getGoodsCount());
+            tErpSupplierWarehousing.setUnitAmount(tErpSupplierWarehousing.getUnitAmount());
+            tErpSupplierWarehousing.setTotalPrice(tErpSupplierWarehousing.getTotalPrice());
+            erpSupplierWarehousingMapper.insert(tErpSupplierWarehousing);
+            List<WarehousingGoodsNextDto> warehousingGoodsNextDtos = dto.getWarehousingGoodsNextDtos();
+            for (WarehousingGoodsNextDto warehousingGoodsNextDto : warehousingGoodsNextDtos) {
+                TErpSupplierWarehousingBatch tErpSupplierWarehousingBatch = new TErpSupplierWarehousingBatch();
+                tErpSupplierWarehousingBatch.setWarehousingId(tErpSupplierWarehousing.getId());
+                tErpSupplierWarehousingBatch.setWarehousingNumber(warehousingGoodsNextDto.getWarehousingNum());
+                tErpSupplierWarehousingBatch.setBatchNumber(warehousingGoodsNextDto.getBatchNumber());
+                tErpSupplierWarehousingBatch.setProductionDate(warehousingGoodsNextDto.getProductionDate().atStartOfDay());
+                tErpSupplierWarehousingBatch.setExpiryDate(warehousingGoodsNextDto.getExpiryDate().atStartOfDay());
+                erpSupplierWarehousingBatchMapper.insert(tErpSupplierWarehousingBatch);
+            }
+        }
+
+    }
+
+    @Override
+    public PageInfo<ValidityPeriodWarningVo> validityPeriodWarning(ValidityPeriodWarningQuery query, SysUser user) {
+        // 获取当前时间后9个月的时间
+        LocalDateTime nineMonthLater = LocalDateTime.now().plusMonths(9);
+
+        PageInfo<ValidityPeriodWarningVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        return this.baseMapper.validityPeriodWarning(pageInfo,query,user,nineMonthLater);
+
+
     }
 }

--
Gitblit v1.7.1