Просмотр исходного кода

添加权限管理 申购明细接口修改

yzc 1 год назад
Родитель
Сommit
3c4e4ccf94

+ 35 - 0
hx-common/src/main/java/com/fjhx/common/utils/AuthorityUtils.java

@@ -0,0 +1,35 @@
+package com.fjhx.common.utils;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.mybatis.holder.TenantHolder;
+
+import java.util.List;
+import java.util.Objects;
+
+public class AuthorityUtils {
+
+    /**
+     * 是000000租户且角色是高级权限的可看所有数据
+     */
+    private static boolean authorityFilter() {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        String tenantId = user.getTenantId();
+        List<SysRole> sysRoleList = user.getRoles();
+        for (SysRole sysRole : sysRoleList) {
+            if (Objects.equals(sysRole.getAuthorityLv(), 99) && Objects.equals(tenantId, "000000")) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public static void filterSta() {
+        if (authorityFilter()) {
+            TenantHolder.setIgnore(true);
+        } else {
+            TenantHolder.clear();
+        }
+    }
+}

+ 3 - 0
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java

@@ -269,6 +269,9 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
     @Override
     public synchronized void editAvailableQuantity(List<InOutBo> inOutList, InOutType inOutType, Long businessId, ProductAvailableRecordType businessType) {
         List<Long> pIds = inOutList.stream().map(InOutBo::getProductId).collect(Collectors.toList());
+        if (ObjectUtil.isEmpty(pIds)) {
+            return;
+        }
         Map<Long, ProductInfo> productInfoMap = this.mapKEntity(ProductInfo::getId, q -> q.in(ProductInfo::getId, pIds));
 
         List<ProductAvailableRecord> availableRecordList = new ArrayList<>();

+ 1 - 1
hx-purchase/src/main/java/com/fjhx/purchase/controller/subscribe/SubscribeController.java

@@ -64,7 +64,7 @@ public class SubscribeController {
      * 申购单新增
      */
     @PostMapping("/add")
-    public void add(@RequestBody Subscribe subscribe) {
+    public void add(@RequestBody SubscribeDto subscribe) {
         subscribeService.add(subscribe);
     }
 

+ 9 - 1
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDto.java

@@ -1,17 +1,25 @@
 package com.fjhx.purchase.entity.subscribe.dto;
 
 import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 申购单新增编辑入参实体
  *
- * @author 
+ * @author
  * @since 2023-04-03
  */
 @Getter
 @Setter
 public class SubscribeDto extends Subscribe {
 
+    /**
+     * 申购明细列表
+     */
+    private List<SubscribeDetail> subscribeDetailList;
+
 }

+ 0 - 7
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/po/Subscribe.java

@@ -1,13 +1,11 @@
 package com.fjhx.purchase.entity.subscribe.po;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.util.Date;
-import java.util.List;
 
 /**
  * <p>
@@ -92,10 +90,5 @@ public class Subscribe extends BasePo {
      */
     private Long corporationId;
 
-    /**
-     * 申购明细列表
-     */
-    @TableField(exist = false)
-    private List<SubscribeDetail> subscribeDetailList;
 
 }

+ 7 - 2
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/vo/SubscribeVo.java

@@ -4,15 +4,20 @@ import com.fjhx.purchase.entity.subscribe.po.Subscribe;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 申购单列表查询返回值实体
  *
- * @author 
+ * @author
  * @since 2023-04-03
  */
 @Getter
 @Setter
 public class SubscribeVo extends Subscribe {
 
-
+    /**
+     * 申购明细列表
+     */
+    private List<SubscribeDetailVo> subscribeDetailList;
 }

+ 2 - 1
hx-purchase/src/main/java/com/fjhx/purchase/flow/SubscribeFlow.java

@@ -8,6 +8,7 @@ import com.fjhx.common.enums.FlowStatusEnum1;
 import com.fjhx.common.service.coding.CodingRuleService;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.flow.enums.FlowStatusEnum;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
 import com.fjhx.purchase.entity.subscribe.enums.SubscribeDetailStatusEnum;
 import com.fjhx.purchase.entity.subscribe.enums.SubscribeStatusEnum;
 import com.fjhx.purchase.entity.subscribe.po.Subscribe;
@@ -55,7 +56,7 @@ public class SubscribeFlow extends FlowDelegate {
     @Override
     public Long start(Long flowId, JSONObject submitData) {
 
-        Subscribe subscribe = submitData.toJavaObject(Subscribe.class);
+        SubscribeDto subscribe = submitData.toJavaObject(SubscribeDto.class);
         subscribe.setCode(codingRuleService.createCode(CodingRuleEnum.SUBSCRIBE.getKey(),null));
         subscribe.setSubcribeStatus(SubscribeStatusEnum.UNDER_REVIEW.getKey());
         subscribe.setFlowId(flowId);

+ 1 - 5
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeService.java

@@ -33,15 +33,11 @@ public interface SubscribeService extends BaseService<Subscribe> {
      * 申购单明细
      */
     Subscribe detail(Long id);
-//    /**
-//     * 申购单明细 维多利亚
-//     */
-//    Subscribe detailByWdly(Long id);
 
     /**
      * 申购单新增
      */
-    void add(Subscribe subscribe);
+    void add(SubscribeDto subscribe);
 
     /**
      * 申购单编辑

+ 13 - 5
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fjhx.purchase.service.subscribe.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
@@ -24,6 +25,7 @@ import com.fjhx.purchase.entity.subscribe.dto.SubscribeSelectDto;
 import com.fjhx.purchase.entity.subscribe.po.Subscribe;
 import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
 import com.fjhx.purchase.entity.subscribe.vo.DecisionAidVo;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeDetailVo;
 import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
 import com.fjhx.purchase.mapper.subscribe.SubscribeMapper;
 import com.fjhx.purchase.service.purchase.PurchaseDetailService;
@@ -105,28 +107,35 @@ public class SubscribeServiceImpl extends ServiceImpl<SubscribeMapper, Subscribe
         if (ObjectUtils.isEmpty(subscribe)) {
             throw new ServiceException("数据不存在");
         }
+        SubscribeVo subscribeVo = BeanUtil.copyProperties(subscribe, SubscribeVo.class);
+
         //处理申购产品
         List<SubscribeDetail> subscribeDetailList = subscribeDetailService.list(
                 Wrappers.<SubscribeDetail>query().lambda()
                         .eq(SubscribeDetail::getSubscribeId, id));
+        List<SubscribeDetailVo> subscribeDetailVos = BeanUtil.copyToList(subscribeDetailList, SubscribeDetailVo.class);
         if (CollectionUtils.isNotEmpty(subscribeDetailList)) {
             //根据申购businessId取出所有产品
             List<Long> productIds = subscribeDetailList.stream().map(SubscribeDetail::getProductId).collect(Collectors.toList());
             List<ProductInfoVo> productInfoVos = productInfoService.getListByProductIds(productIds);
             Map<Long, List<ProductInfoVo>> productMap = productInfoVos.stream().collect(Collectors.groupingBy(ProductInfoVo::getId));
-            for (SubscribeDetail s : subscribeDetailList) {
+            for (SubscribeDetailVo s : subscribeDetailVos) {
                 if (MapUtils.isNotEmpty(productMap)) {
                     ProductInfoVo p = productMap.get(s.getProductId()).get(0);
                     s.setProductCategory(p.getClassifyName());
-                    s.setProductCode(p.getCode());
+                    s.setProductCode(p.getCustomCode());
                     s.setProductUnit(p.getUnit());
                     s.setProductType(p.getType());
                     s.setProductName(p.getName());
                     s.setProductDefinition(p.getDefinition());
+
+                    s.setProductLength(p.getLength());
+                    s.setProductWidth(p.getWidth());
+                    s.setProductHeight(p.getHeight());
                 }
             }
         }
-        subscribe.setSubscribeDetailList(subscribeDetailList);
+        subscribeVo.setSubscribeDetailList(subscribeDetailVos);
         return subscribe;
     }
 
@@ -149,10 +158,9 @@ public class SubscribeServiceImpl extends ServiceImpl<SubscribeMapper, Subscribe
 
     @DSTransactional
     @Override
-    public void add(Subscribe subscribe) {
+    public void add(SubscribeDto subscribe) {
         SubscribeService subscribeService = SpringUtil.getBean(SubscribeService.class);
         SubscribeDetailService subscribeDetailService = SpringUtil.getBean(SubscribeDetailService.class);
-//        subscribe.setCode(CodeEnum.SUBSCRIBE.getCode());
         subscribe.setCode(codingRuleService.createCode(CodingRuleEnum.SUBSCRIBE.getKey(), null));
         subscribeService.save(subscribe);
         List<SubscribeDetail> SubscribeDetails = subscribe.getSubscribeDetailList();

+ 27 - 0
hx-sale/src/main/java/com/fjhx/sale/flow/ContractFlow.java

@@ -31,10 +31,13 @@ import com.fjhx.sale.service.contract.ContractProjectService;
 import com.fjhx.sale.service.contract.ContractService;
 import com.ruoyi.common.annotation.LogicIgnore;
 import com.ruoyi.common.core.domain.BasePo;
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.mybatis.holder.TenantHolder;
+import com.ruoyi.system.service.ISysDeptService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -71,6 +74,8 @@ public class ContractFlow extends FlowDelegate {
     private SubscribeDetailService subscribeDetailService;
     @Autowired
     private ProductBomDetailService productBomDetailService;
+    @Autowired
+    private ISysDeptService deptService;
 
     @Override
     public String getFlowKey() {
@@ -140,7 +145,18 @@ public class ContractFlow extends FlowDelegate {
         contract.setBuyCountryId(contract.getCountryId());
         contract.setBuyProvinceId(contract.getProvinceId());
         contract.setStatus(FlowStatusEnum1.UNDER_REVIEW.getKey());
+
+        //根据归属公司将数据赋值给指定公司
+        Long countryId = contract.getCountryId();
+        TenantHolder.setIgnore(true);
+        SysDept country = deptService.getById(countryId);
+        TenantHolder.clear();
+        if (ObjectUtil.isEmpty(country)) {
+            throw new ServiceException("归属公司不存在");
+        }
+        SecurityUtils.setTenantId(country.getTenantId());
         contractService.saveOrUpdate(contract);
+        SecurityUtils.clearTenantId();
 
         // 保存合同产品
         List<ContractProduct> contractProductList = contract.getContractProductList();
@@ -300,8 +316,19 @@ public class ContractFlow extends FlowDelegate {
             }
         }
 
+        //根据归属公司将数据赋值给指定公司
+        Long countryId = contract.getCompanyId();
+        TenantHolder.setIgnore(true);
+        SysDept country = deptService.getById(countryId);
+        TenantHolder.clear();
+        if (ObjectUtil.isEmpty(country)) {
+            throw new ServiceException("归属公司不存在");
+        }
+        SecurityUtils.setTenantId(country.getTenantId());
         //保存待采购明细
         subscribeDetailService.saveBatch(subscribeDetailList);
+        SecurityUtils.clearTenantId();
+
     }
 
 

+ 10 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -31,6 +31,7 @@ import com.fjhx.common.service.contract.ContractTemplateService;
 import com.fjhx.common.service.corporation.CorporationService;
 import com.fjhx.common.service.documentary.GetDocumentaryBusinessTemplate;
 import com.fjhx.common.utils.Assert;
+import com.fjhx.common.utils.AuthorityUtils;
 import com.fjhx.customer.entity.customer.dto.CustomerDto;
 import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
@@ -76,6 +77,7 @@ import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
 import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
 import com.fjhx.tenant.service.dict.DictTenantDataService;
+import com.ruoyi.common.annotation.TenantIgnore;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.BaseSelectDto;
@@ -249,6 +251,9 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
      */
     @Override
     public Map<String, Object> getHeadStatistic(ContractSelectDto dto) {
+        //权限过滤开始
+        AuthorityUtils.filterSta();
+
         IWrapper<Contract> wrapper = getWrapper();
         setContractParam(dto, wrapper);
         SysUser sysUser = UserUtil.getUserInfo();
@@ -278,6 +283,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         return map;
     }
 
+
     /**
      * 分页
      *
@@ -285,7 +291,11 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
      * @return
      */
     @Override
+    @TenantIgnore
     public Page<ContractVo> getPage(ContractSelectDto dto) {
+        //权限过滤开始
+        AuthorityUtils.filterSta();
+
         IWrapper<Contract> wrapper = getWrapper();
         setContractParam(dto, wrapper);
         SysUser sysUser = UserUtil.getUserInfo();