Parcourir la source

出入库流水添加权限过滤

yzc il y a 1 an
Parent
commit
4990333c7d

+ 5 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/dto/StockJournalSelectDto.java

@@ -39,4 +39,9 @@ public class StockJournalSelectDto extends BaseSelectDto {
      */
     private String productId;
 
+    /**
+     * 归属公司id
+     */
+    private Long companyId;
+
 }

+ 6 - 4
hx-wms/src/main/java/com/fjhx/wms/entity/stock/po/StockJournal.java

@@ -1,10 +1,7 @@
 package com.fjhx.wms.entity.stock.po;
 
-import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.util.Date;
-
+import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -51,4 +48,9 @@ public class StockJournal extends BasePo {
      */
     private Long businessId;
 
+    /**
+     * 归属公司id
+     */
+    private Long companyId;
+
 }

+ 4 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/po/StockJournalDetails.java

@@ -53,5 +53,9 @@ public class StockJournalDetails extends BasePo {
      */
     private BigDecimal outStockPrice;
 
+    /**
+     * 归属公司id
+     */
+    private Long companyId;
 
 }

+ 11 - 2
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockCheckServiceImpl.java

@@ -16,11 +16,13 @@ import com.fjhx.wms.entity.stock.po.StockJournal;
 import com.fjhx.wms.entity.stock.po.StockJournalDetails;
 import com.fjhx.wms.entity.stock.vo.StockCheckDetailsVo;
 import com.fjhx.wms.entity.stock.vo.StockCheckVo;
+import com.fjhx.wms.entity.warehouse.po.Warehouse;
 import com.fjhx.wms.mapper.stock.StockCheckMapper;
 import com.fjhx.wms.service.stock.*;
 import com.fjhx.wms.service.warehouse.WarehouseService;
 import com.fjhx.wms.utils.CodeEnum;
 import com.ruoyi.common.constant.StatusConstant;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -110,6 +112,11 @@ public class StockCheckServiceImpl extends ServiceImpl<StockCheckMapper, StockCh
         int totalNum = 0, normalNum = 0, anomalyNum = 0;
 
         Long warehouseId = stockCheckDto.getWarehouseId();
+        Warehouse warehouse = warehouseService.getById(warehouseId);
+        if (ObjectUtil.isEmpty(warehouse)) {
+            throw new ServiceException("查询不到仓库信息!");
+        }
+        Long companyId = warehouse.getCompanyId();
 
         for (StockCheckDetails stockCheckDetails : list) {
 
@@ -132,7 +139,7 @@ public class StockCheckServiceImpl extends ServiceImpl<StockCheckMapper, StockCh
                     stockJournal.setCode(CodeEnum.SOUT_CODE.getCode());
                     stockJournal.setWarehouseId(warehouseId);
                     stockJournal.setBusinessId(stockCheckId);
-                    ;
+                    stockJournal.setCompanyId(companyId);
                     stockJournalService.save(stockJournal);
                     //创建出库明细(并计算结存单价)
                     StockJournalDetails stockJournalDetails = stockService.calculateUnitPrice(InOutType.OUT, stockCheckDetails.getProductId(), warehouseId, subtract, 0, null);
@@ -140,6 +147,7 @@ public class StockCheckServiceImpl extends ServiceImpl<StockCheckMapper, StockCh
                     stockJournalDetails.setProductId(stockCheckDetails.getProductId());
                     stockJournalDetails.setQuantity(subtract);
                     stockJournalDetails.setBusinessDetailsId(stockCheckDetails.getId());
+                    stockJournalDetails.setCompanyId(companyId);
                     stockJournalDetailsService.save(stockJournalDetails);
                     //出库操作
                     InOutBo inOutBo = new InOutBo();
@@ -157,7 +165,7 @@ public class StockCheckServiceImpl extends ServiceImpl<StockCheckMapper, StockCh
                     stockJournal.setCode(CodeEnum.SIN_CODE.getCode());
                     stockJournal.setWarehouseId(warehouseId);
                     stockJournal.setBusinessId(stockCheckId);
-                    ;
+                    stockJournal.setCompanyId(companyId);
                     stockJournalService.save(stockJournal);
                     //创建入库明细(并计算结存单价)
                     StockJournalDetails stockJournalDetails = stockService.calculateUnitPrice(InOutType.IN, stockCheckDetails.getProductId(), warehouseId, subtract, 0, null);
@@ -165,6 +173,7 @@ public class StockCheckServiceImpl extends ServiceImpl<StockCheckMapper, StockCh
                     stockJournalDetails.setProductId(stockCheckDetails.getProductId());
                     stockJournalDetails.setQuantity(subtract);
                     stockJournalDetails.setBusinessDetailsId(stockCheckDetails.getId());
+                    stockJournalDetails.setCompanyId(companyId);
                     stockJournalDetailsService.save(stockJournalDetails);
                     //入库操作
                     InOutBo inOutBo = new InOutBo();

+ 11 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockJournalDetailsServiceImpl.java

@@ -14,12 +14,14 @@ import com.fjhx.wms.mapper.stock.StockJournalDetailsMapper;
 import com.fjhx.wms.service.stock.StockJournalDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.fjhx.wms.service.warehouse.WarehouseService;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Objects;
 
 
 /**
@@ -49,6 +51,15 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
         wrapper.eq("sj.to_warehouse_id", dto.getToWarehouseId());
         wrapper.eq("sjd.product_id", dto.getProductId());
         wrapper.orderByDesc("sj", StockJournal::getCreateTime);
+
+        //权限过滤:出入库流水-子公司看自己,总公司看全部
+        Long companyId = SecurityUtils.getCompanyId();
+        if (!Objects.equals(companyId, 100L)) {
+            wrapper.eq("sjd.company_id", companyId);
+        } else {
+            wrapper.eq("sjd.company_id", dto.getCompanyId());
+        }
+
         Page<StockJournalDetailsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<StockJournalDetailsVo> records = page.getRecords();
         if (ObjectUtil.isEmpty(records)) {

+ 13 - 4
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockServiceImpl.java

@@ -85,9 +85,9 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
         //权限过滤:库存-子公司看自己的,总公司看全部
         Long companyId = SecurityUtils.getCompanyId();
         if (!Objects.equals(companyId, 100L)) {
-            wrapper.eq("w.company_id", companyId);
+            wrapper.eq("s.company_id", companyId);
         } else {
-            wrapper.eq("w.company_id", dto.getCompanyId());
+            wrapper.eq("s.company_id", dto.getCompanyId());
         }
 
         wrapper.orderByDesc("s", Stock::getId);
@@ -145,13 +145,21 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
         JournalType journalType = Objects.equals(stockDto.getType(), 1) ? JournalType.MANUAL_IN : JournalType.MANUAL_OUT;
         InOutType inOutType = journalType.getType();
 
+        Long warehouseId = stockDto.getWarehouseId();
+        Warehouse warehouse = warehouseService.getById(warehouseId);
+        if (ObjectUtil.isEmpty(warehouse)) {
+            throw new ServiceException("查询不到仓库信息!");
+        }
+        Long companyId = warehouse.getCompanyId();
+
         //创建出入库记录
         StockJournal stockJournal = new StockJournal();
         stockJournal.setOpType(stockDto.getType());
         stockJournal.setType(journalType.getDetailType());
         stockJournal.setCode(stockDto.getType() == 1 ? CodeEnum.SIN_CODE.getCode() : CodeEnum.SOUT_CODE.getCode());
-        stockJournal.setWarehouseId(stockDto.getWarehouseId());
+        stockJournal.setWarehouseId(warehouseId);
         stockJournal.setBusinessId(stockDto.getBusinessId());
+        stockJournal.setCompanyId(companyId);
         //保存出入库记录
         stockJournalService.save(stockJournal);
         List<Stock> list = stockDto.getList();
@@ -163,11 +171,12 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             stockJournalDetails.setProductId(stock.getProductId());
             stockJournalDetails.setQuantity(stock.getQuantity());
             stockJournalDetails.setBusinessDetailsId(stock.getId());
+            stockJournalDetails.setCompanyId(companyId);
             stockJournalDetailsList.add(stockJournalDetails);
         }
         //操作库存
         List<InOutBo> inOutBoList = BeanUtil.copyToList(list, InOutBo.class);
-        changeStock(inOutBoList, stockDto.getWarehouseId(), journalType);
+        changeStock(inOutBoList, warehouseId, journalType);
 
         //保存出入库明细
         stockJournalDetailsService.saveBatch(stockJournalDetailsList);

+ 14 - 3
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fjhx.wms.service.stock.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -17,6 +18,7 @@ import com.fjhx.wms.entity.stock.emums.StockWaitType;
 import com.fjhx.wms.entity.stock.po.*;
 import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
 import com.fjhx.wms.entity.stock.vo.StockWaitVo;
+import com.fjhx.wms.entity.warehouse.po.Warehouse;
 import com.fjhx.wms.mapper.stock.StockWaitMapper;
 import com.fjhx.wms.service.MyPurchaseService;
 import com.fjhx.wms.service.arrival.ArrivalStockRecordsDetailsService;
@@ -24,6 +26,7 @@ import com.fjhx.wms.service.arrival.ArrivalStockRecordsService;
 import com.fjhx.wms.service.stock.*;
 import com.fjhx.wms.service.warehouse.WarehouseService;
 import com.fjhx.wms.utils.CodeEnum;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -172,9 +175,15 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         stockWaitDto.setId(stockWaitDetails.getStockWaitId());
         stockWaitDto.setStockWaitDetailsList(Collections.singletonList(BeanUtil.copyProperties(stockWaitDetailsDto, StockWaitDetails.class)));
 
+        Long warehouseId = stockWaitDto.getWarehouseId();
+        Warehouse warehouse = warehouseService.getById(warehouseId);
+        if (ObjectUtil.isEmpty(warehouse)) {
+            throw new ServiceException("查询不到仓库信息!");
+        }
+        Long companyId = warehouse.getCompanyId();
 
         Assert.notEmpty(stockWaitDto.getId(), "待出入库id不能为空");
-        Assert.notEmpty(stockWaitDto.getWarehouseId(), "仓库id不能为空");
+        Assert.notEmpty(warehouseId, "仓库id不能为空");
 
         List<Stock> stockList = new ArrayList<>();
 
@@ -196,8 +205,9 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         stockJournal.setOpType(stockWait.getType());//根据待入库类型赋值操作类型 1入库 2出库
         stockJournal.setType(journalType.getDetailType());
         stockJournal.setCode(stockWait.getType() == 1 ? CodeEnum.SIN_CODE.getCode() : CodeEnum.SOUT_CODE.getCode());
-        stockJournal.setWarehouseId(stockWaitDto.getWarehouseId());
+        stockJournal.setWarehouseId(warehouseId);
         stockJournal.setBusinessId(stockWaitDto.getId());
+        stockJournal.setCompanyId(companyId);
         //保存出入库记录
         stockJournalService.save(stockJournal);
         List<StockJournalDetails> stockJournalDetailsList = new ArrayList<>();
@@ -214,13 +224,14 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
             stockJournalDetails.setProductId(stock.getProductId());
             stockJournalDetails.setQuantity(stock.getQuantity());
             stockJournalDetails.setBusinessDetailsId(waitDetails.getId());
+            stockJournalDetails.setCompanyId(companyId);
             stockJournalDetailsList.add(stockJournalDetails);
 
         }
         List<InOutBo> inOutBoList = BeanUtil.copyToList(stockList, InOutBo.class);
 
         //操作库存根据待出入库类型来1入库2出库
-        stockService.changeStock(inOutBoList, stockWaitDto.getWarehouseId(), journalType);
+        stockService.changeStock(inOutBoList, warehouseId, journalType);
         //保存出入库明细
         stockJournalDetailsService.saveBatch(stockJournalDetailsList);