Browse Source

添加权限过滤

yzc 1 year ago
parent
commit
1e2fc4f84c

+ 38 - 38
hx-item/src/main/java/com/fjhx/item/controller/product/ProductInfoController.java

@@ -63,37 +63,37 @@ public class ProductInfoController {
         return productInfoService.getConditionProductList(dto);
         return productInfoService.getConditionProductList(dto);
     }
     }
 
 
-    /**
-     * 产品库新增 尔泓扩展
-     */
-    @PostMapping("/addByEhsd")
-    public void addByEhsd(@RequestBody ProductInfoDto productInfoDto) {
-        productInfoService.addByEhsd(productInfoDto);
-    }
-
-    /**
-     * 产品库编辑 尔泓扩展
-     */
-    @PostMapping("/editByEhsd")
-    public void editByEhsd(@RequestBody ProductInfoDto productInfoDto) {
-        productInfoService.editByEhsd(productInfoDto);
-    }
-
-    /**
-     * 产品库明细 尔泓扩展
-     */
-    @PostMapping("/detailByEhsd")
-    public ProductInfoVo detailByEhsd(@RequestBody BaseSelectDto dto) {
-        return productInfoService.detailByEhsd(dto.getId());
-    }
-
-    /**
-     * 产品库Excel导入 尔泓扩展
-     */
-    @PostMapping("/excelImportByEhsd")
-    public void excelImportByEhsd(@RequestParam("file") MultipartFile file) {
-        productInfoService.excelImportByEhsd(file);
-    }
+//    /**
+//     * 产品库新增 尔泓扩展
+//     */
+//    @PostMapping("/addByEhsd")
+//    public void addByEhsd(@RequestBody ProductInfoDto productInfoDto) {
+//        productInfoService.addByEhsd(productInfoDto);
+//    }
+//
+//    /**
+//     * 产品库编辑 尔泓扩展
+//     */
+//    @PostMapping("/editByEhsd")
+//    public void editByEhsd(@RequestBody ProductInfoDto productInfoDto) {
+//        productInfoService.editByEhsd(productInfoDto);
+//    }
+//
+//    /**
+//     * 产品库明细 尔泓扩展
+//     */
+//    @PostMapping("/detailByEhsd")
+//    public ProductInfoVo detailByEhsd(@RequestBody BaseSelectDto dto) {
+//        return productInfoService.detailByEhsd(dto.getId());
+//    }
+//
+//    /**
+//     * 产品库Excel导入 尔泓扩展
+//     */
+//    @PostMapping("/excelImportByEhsd")
+//    public void excelImportByEhsd(@RequestParam("file") MultipartFile file) {
+//        productInfoService.excelImportByEhsd(file);
+//    }
 
 
     /**
     /**
      * 产品库明细
      * 产品库明细
@@ -132,13 +132,13 @@ public class ProductInfoController {
         productInfoService.excelImport(file);
         productInfoService.excelImport(file);
     }
     }
 
 
-    /**
-     * 产品部门移交 维多利亚
-     */
-    @PostMapping("/transfer")
-    public void transfer(@RequestBody ProductInfoDto productInfoDto) {
-        productInfoService.transfer(productInfoDto);
-    }
+//    /**
+//     * 产品部门移交 维多利亚
+//     */
+//    @PostMapping("/transfer")
+//    public void transfer(@RequestBody ProductInfoDto productInfoDto) {
+//        productInfoService.transfer(productInfoDto);
+//    }
 
 
 
 
     /**
     /**

+ 5 - 0
hx-item/src/main/java/com/fjhx/item/entity/product/po/ProductInfo.java

@@ -175,4 +175,9 @@ public class ProductInfo extends BasePo {
      */
      */
     private BigDecimal unitPrice;
     private BigDecimal unitPrice;
 
 
+    /**
+     * 归属公司Id
+     */
+    private Long companyId;
+
 }
 }

+ 21 - 1
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java

@@ -79,7 +79,6 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
     @Override
     @Override
     public Page<ProductInfoVo> getPage(ProductInfoSelectDto dto) {
     public Page<ProductInfoVo> getPage(ProductInfoSelectDto dto) {
         IWrapper<ProductInfo> wrapper = getWrapper();
         IWrapper<ProductInfo> wrapper = getWrapper();
-        wrapper.orderByDesc("pi", ProductInfo::getId);
         wrapper.eq("pi", ProductInfo::getType, dto.getType());
         wrapper.eq("pi", ProductInfo::getType, dto.getType());
         wrapper.eq("pi", ProductInfo::getDefinition, dto.getDefinition());
         wrapper.eq("pi", ProductInfo::getDefinition, dto.getDefinition());
 
 
@@ -110,6 +109,15 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
             }
             }
         }
         }
 
 
+        //权限过滤:产品-子公司看自己的产品,总公司看全部,物料没有限制
+        if (Objects.equals(dto.getDefinition(), 1)) {
+            Long companyId = SecurityUtils.getCompanyId();
+            if (!Objects.equals(companyId, 100)) {
+                wrapper.eq(ProductInfo::getCompanyId, companyId);
+            }
+        }
+
+        wrapper.orderByDesc("pi", ProductInfo::getId);
         Page<ProductInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<ProductInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
 
 
         List<ProductInfoVo> records = page.getRecords();
         List<ProductInfoVo> records = page.getRecords();
@@ -232,6 +240,12 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         //操作ftp文件
         //操作ftp文件
         editFtpFile(productInfoDto);
         editFtpFile(productInfoDto);
 
 
+        //赋值产品归属公司
+        Long companyId = productInfoDto.getCompanyId();
+        if (ObjectUtil.isEmpty(companyId)) {
+            productInfoDto.setCountryId(SecurityUtils.getCompanyId());
+        }
+
         this.save(productInfoDto);
         this.save(productInfoDto);
         ObsFileUtil.saveFile(productInfoDto.getFileList(), productInfoDto.getId());
         ObsFileUtil.saveFile(productInfoDto.getFileList(), productInfoDto.getId());
     }
     }
@@ -440,6 +454,12 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         //操作ftp文件
         //操作ftp文件
         editFtpFile(productInfoDto);
         editFtpFile(productInfoDto);
 
 
+        //赋值产品归属公司
+        Long companyId = productInfoDto.getCompanyId();
+        if (ObjectUtil.isEmpty(companyId)) {
+            productInfoDto.setCountryId(SecurityUtils.getCompanyId());
+        }
+
         this.updateById(productInfoDto);
         this.updateById(productInfoDto);
         ObsFileUtil.editFile(productInfoDto.getFileList(), productInfoDto.getId());
         ObsFileUtil.editFile(productInfoDto.getFileList(), productInfoDto.getId());
     }
     }

+ 1 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -122,6 +122,7 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
         wrapper.ge("P", Purchase::getCreateTime, dto.getBeginTime());// 采购开始时间
         wrapper.ge("P", Purchase::getCreateTime, dto.getBeginTime());// 采购开始时间
         wrapper.le("p", Purchase::getCreateTime, dto.getEndTime());// 采购结束时间
         wrapper.le("p", Purchase::getCreateTime, dto.getEndTime());// 采购结束时间
 
 
+
         wrapper.orderByDesc("p", Purchase::getCreateTime);
         wrapper.orderByDesc("p", Purchase::getCreateTime);
 
 
         Page<PurchaseVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<PurchaseVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/purchase/po/EhsdPurchase.java

@@ -281,4 +281,10 @@ public class EhsdPurchase extends BasePo {
      */
      */
     @TableField(exist = false)
     @TableField(exist = false)
     private String supplyName;
     private String supplyName;
+
+    /**
+     * 归属公司id
+     */
+    private Long companyId;
+
 }
 }

+ 7 - 0
hx-sale/src/main/java/com/fjhx/sale/flow/EhsdPurchaseFlow.java

@@ -1,5 +1,6 @@
 package com.fjhx.sale.flow;
 package com.fjhx.sale.flow;
 
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -108,6 +109,12 @@ public class EhsdPurchaseFlow extends FlowDelegate {
 		purchase.setFlowId(flowId);//赋值流程id
 		purchase.setFlowId(flowId);//赋值流程id
 		purchase.setProcessInstanceId(getFlowKey());//赋值流程key
 		purchase.setProcessInstanceId(getFlowKey());//赋值流程key
 
 
+		//赋值产品归属公司
+		Long companyId = purchase.getCompanyId();
+		if (ObjectUtil.isEmpty(companyId)) {
+			purchase.setCountryId(SecurityUtils.getCompanyId());
+		}
+
 		Integer dataResource = purchase.getDataResource();
 		Integer dataResource = purchase.getDataResource();
 		if (ObjectUtils.isEmpty(dataResource)) {
 		if (ObjectUtils.isEmpty(dataResource)) {
 			throw new ServiceException("数据来源类型不能为空!");
 			throw new ServiceException("数据来源类型不能为空!");

+ 1 - 2
hx-sale/src/main/java/com/fjhx/sale/service/purchase/impl/EhsdPurchaseProductServiceImpl.java

@@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.item.service.product.ProductClassifyService;
 import com.fjhx.item.service.product.ProductClassifyService;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.item.service.product.ProductInfoService;
-import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
-import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseProductDto;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseProductDto;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseProductSelectDto;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseProductSelectDto;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProduct;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProduct;
@@ -40,6 +38,7 @@ public class EhsdPurchaseProductServiceImpl extends ServiceImpl<EhsdPurchaseProd
     @Override
     @Override
     public Page<EhsdPurchaseProductVo> getPage(EhsdPurchaseProductSelectDto dto) {
     public Page<EhsdPurchaseProductVo> getPage(EhsdPurchaseProductSelectDto dto) {
         IWrapper<EhsdPurchaseProduct> wrapper = getWrapper();
         IWrapper<EhsdPurchaseProduct> wrapper = getWrapper();
+
         wrapper.orderByDesc("epp", EhsdPurchaseProduct::getId);
         wrapper.orderByDesc("epp", EhsdPurchaseProduct::getId);
         Page<EhsdPurchaseProductVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<EhsdPurchaseProductVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;
         return page;

+ 5 - 1
hx-sale/src/main/java/com/fjhx/sale/service/purchase/impl/EhsdPurchaseServiceImpl.java

@@ -144,7 +144,6 @@ public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, Ehs
     @Override
     @Override
     public Page<EhsdPurchaseVo> getPage(EhsdPurchaseSelectDto dto) {
     public Page<EhsdPurchaseVo> getPage(EhsdPurchaseSelectDto dto) {
         IWrapper<EhsdPurchase> wrapper = getWrapper();
         IWrapper<EhsdPurchase> wrapper = getWrapper();
-        wrapper.orderByDesc("t1", EhsdPurchase::getCreateTime);
         if (ObjectUtils.isNotEmpty(dto.getStatus())) {
         if (ObjectUtils.isNotEmpty(dto.getStatus())) {
             wrapper.eq("t1", EhsdPurchase::getStatus, dto.getStatus());
             wrapper.eq("t1", EhsdPurchase::getStatus, dto.getStatus());
         }
         }
@@ -166,6 +165,11 @@ public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, Ehs
 //                .isNotNull("t1.old_purchase_id")
 //                .isNotNull("t1.old_purchase_id")
 //        );
 //        );
 
 
+        //权限过滤:采购自己看自己
+        wrapper.eq("p", EhsdPurchase::getCompanyId, SecurityUtils.getCompanyId());
+
+        wrapper.orderByDesc("t1", EhsdPurchase::getCreateTime);
+
         Page<EhsdPurchaseVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<EhsdPurchaseVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<EhsdPurchaseVo> records = page.getRecords();
         List<EhsdPurchaseVo> records = page.getRecords();
         if (ObjectUtils.isEmpty(records)) {
         if (ObjectUtils.isEmpty(records)) {

+ 4 - 1
hx-supply/src/main/java/com/fjhx/supply/entity/supplier/po/SupplierInfo.java

@@ -108,6 +108,9 @@ public class SupplierInfo extends BasePo {
      */
      */
     private Integer count;
     private Integer count;
 
 
-
+    /**
+     * 归属公司id
+     */
+    private Long companyId;
 
 
 }
 }

+ 37 - 17
hx-supply/src/main/java/com/fjhx/supply/service/supplier/impl/SupplierInfoServiceImpl.java

@@ -23,6 +23,7 @@ import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
 import com.fjhx.tenant.service.dict.DictTenantDataService;
 import com.fjhx.tenant.service.dict.DictTenantDataService;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
 import com.ruoyi.common.utils.wrapper.SqlField;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,17 +54,22 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
     @Override
     @Override
     public Page<SupplierInfoVo> getPage(SupplierInfoSelectDto dto) {
     public Page<SupplierInfoVo> getPage(SupplierInfoSelectDto dto) {
         IWrapper<SupplierInfo> wrapper = getWrapper();
         IWrapper<SupplierInfo> wrapper = getWrapper();
-        wrapper.orderByDesc("si", SupplierInfo::getId);
         wrapper.eq("si", SupplierInfo::getType, dto.getType());
         wrapper.eq("si", SupplierInfo::getType, dto.getType());
-        wrapper.like("si",SupplierInfo::getCode,dto.getCode());
-        wrapper.like("si",SupplierInfo::getName,dto.getName());
-        wrapper.eq("si",SupplierInfo::getCountryId,dto.getCountryId());
-        wrapper.eq("si",SupplierInfo::getProvinceId,dto.getProvinceId());
-        wrapper.eq("si",SupplierInfo::getCityId,dto.getCityId());
+        wrapper.like("si", SupplierInfo::getCode, dto.getCode());
+        wrapper.like("si", SupplierInfo::getName, dto.getName());
+        wrapper.eq("si", SupplierInfo::getCountryId, dto.getCountryId());
+        wrapper.eq("si", SupplierInfo::getProvinceId, dto.getProvinceId());
+        wrapper.eq("si", SupplierInfo::getCityId, dto.getCityId());
         wrapper.keyword(dto,
         wrapper.keyword(dto,
                 new SqlField("si", SupplierInfo::getName),
                 new SqlField("si", SupplierInfo::getName),
                 new SqlField("si", SupplierInfo::getCode)
                 new SqlField("si", SupplierInfo::getCode)
         );
         );
+
+        //权限过滤:供应商自己看自己
+        wrapper.eq("si", SupplierInfo::getCompanyId, SecurityUtils.getCompanyId());
+
+        wrapper.orderByDesc("si", SupplierInfo::getId);
+
         Page<SupplierInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<SupplierInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
 
 
         List<SupplierInfoVo> records = page.getRecords();
         List<SupplierInfoVo> records = page.getRecords();
@@ -136,6 +142,13 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
     public void add(SupplierInfoDto supplierInfoDto) {
     public void add(SupplierInfoDto supplierInfoDto) {
         CustomizeAreaUtil.setAreaId(supplierInfoDto);
         CustomizeAreaUtil.setAreaId(supplierInfoDto);
         supplierInfoDto.setCode(CodeEnum.SUPPLIER_INFO.getCode());
         supplierInfoDto.setCode(CodeEnum.SUPPLIER_INFO.getCode());
+
+        //赋值产品归属公司
+        Long companyId = supplierInfoDto.getCompanyId();
+        if (ObjectUtil.isEmpty(companyId)) {
+            supplierInfoDto.setCountryId(SecurityUtils.getCompanyId());
+        }
+
         this.save(supplierInfoDto);
         this.save(supplierInfoDto);
         ObsFileUtil.saveFile(supplierInfoDto.getFileList(), supplierInfoDto.getId());
         ObsFileUtil.saveFile(supplierInfoDto.getFileList(), supplierInfoDto.getId());
     }
     }
@@ -145,6 +158,13 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
     public void edit(SupplierInfoDto supplierInfoDto) {
     public void edit(SupplierInfoDto supplierInfoDto) {
         CustomizeAreaUtil.setAreaId(supplierInfoDto);
         CustomizeAreaUtil.setAreaId(supplierInfoDto);
         supplierInfoDto.setCode(null);
         supplierInfoDto.setCode(null);
+
+        //赋值产品归属公司
+        Long companyId = supplierInfoDto.getCompanyId();
+        if (ObjectUtil.isEmpty(companyId)) {
+            supplierInfoDto.setCountryId(SecurityUtils.getCompanyId());
+        }
+
         this.updateById(supplierInfoDto);
         this.updateById(supplierInfoDto);
         ObsFileUtil.editFile(supplierInfoDto.getFileList(), supplierInfoDto.getId());
         ObsFileUtil.editFile(supplierInfoDto.getFileList(), supplierInfoDto.getId());
     }
     }
@@ -162,9 +182,9 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
     @Override
     @Override
     public Map<String, Object> supplierStatistics(BaseSelectDto dto) {
     public Map<String, Object> supplierStatistics(BaseSelectDto dto) {
         //存放供应商统计数据
         //存放供应商统计数据
-        Map<String,Object> map = new HashMap<>();
+        Map<String, Object> map = new HashMap<>();
         //存放供应商类型数据列表
         //存放供应商类型数据列表
-        List<Map<String,Object>> list = new ArrayList<>();
+        List<Map<String, Object>> list = new ArrayList<>();
 
 
         QueryWrapper<SupplierInfo> query = Wrappers.query();
         QueryWrapper<SupplierInfo> query = Wrappers.query();
         //为-1则说明没有查到供应商的数据(如果为null的话后面list转map报错)
         //为-1则说明没有查到供应商的数据(如果为null的话后面list转map报错)
@@ -176,7 +196,7 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
 
 
         //赋值合计数据
         //赋值合计数据
         Integer amount = supplierInfoList.stream().map(SupplierInfo::getCount).reduce(Integer::sum).orElse(0);
         Integer amount = supplierInfoList.stream().map(SupplierInfo::getCount).reduce(Integer::sum).orElse(0);
-        map.put("amount",amount);
+        map.put("amount", amount);
 
 
         //切换数据源
         //切换数据源
         DynamicDataSourceContextHolder.push(SourceConstant.BASE);
         DynamicDataSourceContextHolder.push(SourceConstant.BASE);
@@ -184,30 +204,30 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
         List<DictTenantDataVo> dictTenantDataVoList = getDict("supplier_type");
         List<DictTenantDataVo> dictTenantDataVoList = getDict("supplier_type");
         DynamicDataSourceContextHolder.poll();
         DynamicDataSourceContextHolder.poll();
 
 
-        if (ObjectUtil.isEmpty(dictTenantDataVoList)){
+        if (ObjectUtil.isEmpty(dictTenantDataVoList)) {
             throw new ServiceException("数据有误:没有配置供应商类型字典,请先配置");
             throw new ServiceException("数据有误:没有配置供应商类型字典,请先配置");
         }
         }
 
 
         //赋值
         //赋值
         for (DictTenantDataVo dictTenantDataVo : dictTenantDataVoList) {
         for (DictTenantDataVo dictTenantDataVo : dictTenantDataVoList) {
             //设置初始值
             //设置初始值
-            Map<String,Object> supplierMap = new HashMap<>();
-            supplierMap.put("type",dictTenantDataVo.getDictValue());
-            supplierMap.put("count",0);
+            Map<String, Object> supplierMap = new HashMap<>();
+            supplierMap.put("type", dictTenantDataVo.getDictValue());
+            supplierMap.put("count", 0);
 
 
             //赋值数量
             //赋值数量
             List<SupplierInfo> supplierInfos = supplierInfoMap.get(dictTenantDataVo.getDictKey());
             List<SupplierInfo> supplierInfos = supplierInfoMap.get(dictTenantDataVo.getDictKey());
-            if (ObjectUtil.isNotEmpty(supplierInfos)){
-                supplierMap.put("count",supplierInfos.get(0).getCount());
+            if (ObjectUtil.isNotEmpty(supplierInfos)) {
+                supplierMap.put("count", supplierInfos.get(0).getCount());
             }
             }
             list.add(supplierMap);
             list.add(supplierMap);
         }
         }
-        map.put("supplierInfoList",list);
+        map.put("supplierInfoList", list);
         return map;
         return map;
     }
     }
 
 
     //根据字典编码获取字典的数据
     //根据字典编码获取字典的数据
-    private List<DictTenantDataVo> getDict(String code){
+    private List<DictTenantDataVo> getDict(String code) {
         DictTenantDataSelectDto dto = new DictTenantDataSelectDto();
         DictTenantDataSelectDto dto = new DictTenantDataSelectDto();
         dto.setDictCode(code);
         dto.setDictCode(code);
         return dictTenantDataService.getList(dto);
         return dictTenantDataService.getList(dto);

+ 49 - 48
hx-wms/src/main/java/com/fjhx/wms/controller/stock/StockController.java

@@ -1,16 +1,17 @@
 package com.fjhx.wms.controller.stock;
 package com.fjhx.wms.controller.stock;
 
 
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.fjhx.common.constant.SourceConstant;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.wms.entity.stock.dto.StockDto;
 import com.fjhx.wms.entity.stock.dto.StockSelectDto;
 import com.fjhx.wms.entity.stock.dto.StockSelectDto;
 import com.fjhx.wms.entity.stock.po.Stock;
 import com.fjhx.wms.entity.stock.po.Stock;
-import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.wms.entity.stock.vo.StockVo;
 import com.fjhx.wms.entity.stock.vo.StockVo;
-import com.fjhx.wms.entity.stock.dto.StockDto;
-import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.fjhx.wms.service.stock.StockService;
 import com.fjhx.wms.service.stock.StockService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 
 
 
 /**
 /**
@@ -37,29 +38,29 @@ public class StockController {
         return stockService.getPage(dto);
         return stockService.getPage(dto);
     }
     }
 
 
-    /**
-     * 维多利亚 按仓库查询
-     */
-    @PostMapping("/pageByWarehouse")
-    public Page<StockVo> pageByWarehouse(@RequestBody StockSelectDto dto) {
-        return stockService.pageByWarehouse(dto);
-    }
-
-    /**
-     * 维多利亚 按产品查询
-     */
-    @PostMapping("/pageByProduct")
-    public Page<StockVo> pageByProduct(@RequestBody StockSelectDto dto) {
-        return stockService.pageByProduct(dto);
-    }
-
-    /**
-     * 维多利亚 按产品spu查询
-     */
-    @PostMapping("/pageByProductSpu")
-    public Page<StockVo> pageByProductSpu(@RequestBody StockSelectDto dto) {
-        return stockService.pageByProductSpu(dto);
-    }
+//    /**
+//     * 维多利亚 按仓库查询
+//     */
+//    @PostMapping("/pageByWarehouse")
+//    public Page<StockVo> pageByWarehouse(@RequestBody StockSelectDto dto) {
+//        return stockService.pageByWarehouse(dto);
+//    }
+//
+//    /**
+//     * 维多利亚 按产品查询
+//     */
+//    @PostMapping("/pageByProduct")
+//    public Page<StockVo> pageByProduct(@RequestBody StockSelectDto dto) {
+//        return stockService.pageByProduct(dto);
+//    }
+//
+//    /**
+//     * 维多利亚 按产品spu查询
+//     */
+//    @PostMapping("/pageByProductSpu")
+//    public Page<StockVo> pageByProductSpu(@RequestBody StockSelectDto dto) {
+//        return stockService.pageByProductSpu(dto);
+//    }
 
 
     /**
     /**
      * 库存明细
      * 库存明细
@@ -93,25 +94,25 @@ public class StockController {
         stockService.delete(dto.getId());
         stockService.delete(dto.getId());
     }
     }
 
 
-    /**
-     * 次品转良品
-     *
-     * @return
-     */
-    @PostMapping("/defectiveToQualified")
-    public void defectiveToQualified(@RequestBody Stock stock){
-        stockService.defectiveToQualified(stock);
-    }
-
-    /**
-     * 良品转次品
-     *
-     * @return
-     */
-    @PostMapping("/qualifiedToDefective")
-    public void qualifiedToDefective(@RequestBody Stock stock){
-        stockService.qualifiedToDefective(stock);
-    }
+//    /**
+//     * 次品转良品
+//     *
+//     * @return
+//     */
+//    @PostMapping("/defectiveToQualified")
+//    public void defectiveToQualified(@RequestBody Stock stock){
+//        stockService.defectiveToQualified(stock);
+//    }
+//
+//    /**
+//     * 良品转次品
+//     *
+//     * @return
+//     */
+//    @PostMapping("/qualifiedToDefective")
+//    public void qualifiedToDefective(@RequestBody Stock stock){
+//        stockService.qualifiedToDefective(stock);
+//    }
 
 
 
 
 }
 }

+ 0 - 2
hx-wms/src/main/java/com/fjhx/wms/entity/stock/emums/JournalType.java

@@ -9,8 +9,6 @@ public enum JournalType {
     MANUAL_IN(InOutType.IN, 1, "手动入库", ""),
     MANUAL_IN(InOutType.IN, 1, "手动入库", ""),
     MANUAL_OUT(InOutType.OUT, 2, "手动出库", ""),
     MANUAL_OUT(InOutType.OUT, 2, "手动出库", ""),
     ADJUSTING_IN(InOutType.IN, 3, "调仓入库", ""),
     ADJUSTING_IN(InOutType.IN, 3, "调仓入库", ""),
-//    STOCK_WAIT_IN(InOutType.IN, 4, "待入库入库", "stock_wait"),
-//    STOCK_WAIT_OUT(InOutType.OUT, 5, "待出库出库", "stock_wait"),
     COMBINATION_IN(InOutType.IN, 6, "组合入库", "group_record_details"),
     COMBINATION_IN(InOutType.IN, 6, "组合入库", "group_record_details"),
     COMBINATION_OUT(InOutType.OUT, 7, "组合出库", "group_record_details"),
     COMBINATION_OUT(InOutType.OUT, 7, "组合出库", "group_record_details"),
     SPLIT_IN(InOutType.IN, 8, "组合拆分入库", "group_record_details"),
     SPLIT_IN(InOutType.IN, 8, "组合拆分入库", "group_record_details"),

+ 5 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/warehouse/po/Warehouse.java

@@ -38,4 +38,9 @@ public class Warehouse extends BasePo {
      */
      */
     private Long keeperId;
     private Long keeperId;
 
 
+    /**
+     * 归属公司id
+     */
+    private Long companyId;
+
 }
 }

+ 9 - 32
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockServiceImpl.java

@@ -32,6 +32,7 @@ import com.fjhx.wms.service.warehouse.WarehouseService;
 import com.fjhx.wms.utils.CodeEnum;
 import com.fjhx.wms.utils.CodeEnum;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -69,9 +70,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     @Override
     @Override
     public Page<StockVo> getPage(StockSelectDto dto) {
     public Page<StockVo> getPage(StockSelectDto dto) {
         IWrapper<Stock> wrapper = getWrapper();
         IWrapper<Stock> wrapper = getWrapper();
-        wrapper.orderByDesc("s", Stock::getId);
         wrapper.eq(Stock::getWarehouseId, dto.getId());
         wrapper.eq(Stock::getWarehouseId, dto.getId());
-//        wrapper.like(Stock::getQuantity, dto.getKeyword());
         String keyword = dto.getKeyword();
         String keyword = dto.getKeyword();
         if (ObjectUtil.isNotEmpty(keyword)) {
         if (ObjectUtil.isNotEmpty(keyword)) {
             //根据 库存数量 产品自定义编码 产品名称 过滤
             //根据 库存数量 产品自定义编码 产品名称 过滤
@@ -82,6 +81,13 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
         wrapper.in(Stock::getProductId, dto.getProductIds());
         wrapper.in(Stock::getProductId, dto.getProductIds());
         wrapper.eq("pi.definition", dto.getDefinition());
         wrapper.eq("pi.definition", dto.getDefinition());
 
 
+        //权限过滤:库存-子公司看自己的,总公司看全部
+        Long companyId = SecurityUtils.getCompanyId();
+        if (!Objects.equals(companyId, 100)) {
+            wrapper.eq("w.company_id", companyId);
+        }
+
+        wrapper.orderByDesc("s", Stock::getId);
         Page<StockVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<StockVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<StockVo> stockVos = page.getRecords();
         List<StockVo> stockVos = page.getRecords();
         //赋值产品信息
         //赋值产品信息
@@ -94,8 +100,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             item.setProductClassifyId(productInfo.getProductClassifyId());
             item.setProductClassifyId(productInfo.getProductClassifyId());
             item.setProductDefinition(productInfo.getDefinition());
             item.setProductDefinition(productInfo.getDefinition());
             item.setProductCustomCode(productInfo.getCustomCode());
             item.setProductCustomCode(productInfo.getCustomCode());
-            //赋值结存单价
-//            item.setUnitPrice(productInfo.getUnitPrice());
         });
         });
         //赋值产品分类
         //赋值产品分类
         productClassifyService.attributeAssign(stockVos, StockVo::getProductClassifyId, (item, productClassify) -> {
         productClassifyService.attributeAssign(stockVos, StockVo::getProductClassifyId, (item, productClassify) -> {
@@ -427,9 +431,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
 
         //获取现有库存
         //获取现有库存
         List<Long> productIds = list.stream().map(Stock::getProductId).collect(Collectors.toList());
         List<Long> productIds = list.stream().map(Stock::getProductId).collect(Collectors.toList());
-        List<Stock> stockList = list(q -> q.in(Stock::getProductId, productIds).eq(Stock::getWarehouseId, warehouseId));
-        Map<Long, Stock> stockMap = stockList.stream().collect(Collectors.groupingBy(Stock::getProductId,
-                Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
+        Map<Long, Stock> stockMap = this.mapKEntity(Stock::getProductId, q -> q.in(Stock::getProductId, productIds).eq(Stock::getWarehouseId, warehouseId));
 
 
         for (Stock stock : list) {
         for (Stock stock : list) {
             //忽略操作数量为0的记录 避免出现出入库记录为0的条目
             //忽略操作数量为0的记录 避免出现出入库记录为0的条目
@@ -461,31 +463,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
                     throw new ServiceException("以下商品库存不足,无法出库:" + productInfo.getName());
                     throw new ServiceException("以下商品库存不足,无法出库:" + productInfo.getName());
                 }
                 }
                 oldStocks.setQuantity(quantity);
                 oldStocks.setQuantity(quantity);
-            } else if (type == 3) {
-                //维多利亚待入库增加冻结库存
-                String victoriatouristJson = oldStocks.getVictoriatouristJson();
-                JSONObject json = ObjectUtil.isEmpty(victoriatouristJson) ? new JSONObject() : JSONObject.parseObject(victoriatouristJson);
-                BigDecimal frozenQuantity = json.getBigDecimal("frozenQuantity");
-                frozenQuantity = frozenQuantity == null ? BigDecimal.ZERO : frozenQuantity;
-                frozenQuantity = frozenQuantity.add(stock.getQuantity());
-                json.put("frozenQuantity", frozenQuantity);
-                oldStocks.setVictoriatouristJson(JSONObject.toJSONString(json, JSONWriter.Feature.WriteLongAsString));
-            } else if (type == 4) {
-                //维多利亚待出库操作次品库存
-                String victoriatouristJson = oldStocks.getVictoriatouristJson();
-                JSONObject json = ObjectUtil.isEmpty(victoriatouristJson) ? new JSONObject() : JSONObject.parseObject(victoriatouristJson);
-                BigDecimal defectiveQuantity = json.getBigDecimal("defectiveQuantity");
-                defectiveQuantity = defectiveQuantity == null ? BigDecimal.ZERO : defectiveQuantity;
-                defectiveQuantity = defectiveQuantity.subtract(stock.getQuantity());
-                if (defectiveQuantity.compareTo(BigDecimal.ZERO) < 0) {
-                    ProductInfo productInfo = productInfoService.getById(stock.getProductId());
-                    if (productInfo == null) {
-                        throw new ServiceException("产品id:" + stock.getProductId() + "不存在");
-                    }
-                    throw new ServiceException("以下商品次品库存不足,无法出库:" + productInfo.getName());
-                }
-                json.put("defectiveQuantity", defectiveQuantity);
-                oldStocks.setVictoriatouristJson(JSONObject.toJSONString(json, JSONWriter.Feature.WriteLongAsString));
             } else {
             } else {
                 throw new ServiceException("未知库存操作类型");
                 throw new ServiceException("未知库存操作类型");
             }
             }

+ 25 - 1
hx-wms/src/main/java/com/fjhx/wms/service/warehouse/impl/WarehouseServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fjhx.wms.service.warehouse.impl;
 package com.fjhx.wms.service.warehouse.impl;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.wms.entity.warehouse.dto.WarehouseDto;
 import com.fjhx.wms.entity.warehouse.dto.WarehouseDto;
@@ -9,12 +10,14 @@ import com.fjhx.wms.entity.warehouse.po.Warehouse;
 import com.fjhx.wms.entity.warehouse.vo.WarehouseVo;
 import com.fjhx.wms.entity.warehouse.vo.WarehouseVo;
 import com.fjhx.wms.mapper.warehouse.WarehouseMapper;
 import com.fjhx.wms.mapper.warehouse.WarehouseMapper;
 import com.fjhx.wms.service.warehouse.WarehouseService;
 import com.fjhx.wms.service.warehouse.WarehouseService;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.utils.UserUtil;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.Map;
 import java.util.Map;
+import java.util.Objects;
 
 
 
 
 /**
 /**
@@ -31,9 +34,16 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse
     @Override
     @Override
     public Page<WarehouseVo> getPage(WarehouseSelectDto dto) {
     public Page<WarehouseVo> getPage(WarehouseSelectDto dto) {
         IWrapper<Warehouse> wrapper = getWrapper();
         IWrapper<Warehouse> wrapper = getWrapper();
-        wrapper.orderByDesc("w", Warehouse::getId);
         wrapper.like("w", Warehouse::getName, dto.getKeyword());
         wrapper.like("w", Warehouse::getName, dto.getKeyword());
         wrapper.eq("w", Warehouse::getType, dto.getType());
         wrapper.eq("w", Warehouse::getType, dto.getType());
+
+        //权限过滤:仓库-子公司看自己的,总公司看全部
+        Long companyId = SecurityUtils.getCompanyId();
+        if (!Objects.equals(companyId, 100)) {
+            wrapper.eq(Warehouse::getCompanyId, companyId);
+        }
+
+        wrapper.orderByDesc("w", Warehouse::getId);
         Page<WarehouseVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<WarehouseVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         //赋值仓管员名称
         //赋值仓管员名称
         UserUtil.assignmentNickName(page.getRecords(), Warehouse::getKeeperId, WarehouseVo::setKeeperName);
         UserUtil.assignmentNickName(page.getRecords(), Warehouse::getKeeperId, WarehouseVo::setKeeperName);
@@ -53,12 +63,26 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse
     @Override
     @Override
     public void add(WarehouseDto warehouseDto) {
     public void add(WarehouseDto warehouseDto) {
         this.nameDuplication(Warehouse::getName, warehouseDto.getName(), "仓库名称重复");
         this.nameDuplication(Warehouse::getName, warehouseDto.getName(), "仓库名称重复");
+
+        //赋值产品归属公司
+        Long companyId = warehouseDto.getCompanyId();
+        if (ObjectUtil.isEmpty(companyId)) {
+            warehouseDto.setCompanyId(SecurityUtils.getCompanyId());
+        }
+
         this.save(warehouseDto);
         this.save(warehouseDto);
     }
     }
 
 
     @Override
     @Override
     public void edit(WarehouseDto warehouseDto) {
     public void edit(WarehouseDto warehouseDto) {
         this.nameDuplication(Warehouse::getName, warehouseDto.getName(), warehouseDto.getId(), "仓库名称重复");
         this.nameDuplication(Warehouse::getName, warehouseDto.getName(), warehouseDto.getId(), "仓库名称重复");
+
+        //赋值产品归属公司
+        Long companyId = warehouseDto.getCompanyId();
+        if (ObjectUtil.isEmpty(companyId)) {
+            warehouseDto.setCompanyId(SecurityUtils.getCompanyId());
+        }
+
         this.updateById(warehouseDto);
         this.updateById(warehouseDto);
     }
     }
 
 

+ 1 - 0
hx-wms/src/main/resources/mapper/stock/StockMapper.xml

@@ -14,6 +14,7 @@
                s.victoriatourist_json,
                s.victoriatourist_json,
                s.unit_price
                s.unit_price
         FROM stock s
         FROM stock s
+                 LEFT JOIN warehouse w on s.warehouse_id = w.id
                  LEFT JOIN product_info pi ON s.product_id = pi.id
                  LEFT JOIN product_info pi ON s.product_id = pi.id
             ${ew.customSqlSegment}
             ${ew.customSqlSegment}
     </select>
     </select>