浏览代码

物料开放接口

yzc 1 年之前
父节点
当前提交
e1a32a2999

+ 44 - 0
hx-item/src/main/java/com/fjhx/item/controller/product/OpenProductInfoController.java

@@ -0,0 +1,44 @@
+package com.fjhx.item.controller.product;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.item.entity.product.vo.ProductInfoVo;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+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;
+
+/**
+ * <p>
+ * 开放 产品库 前端控制器
+ * </p>
+ *
+ * @since 2023-11-27
+ */
+@DS(SourceConstant.ITEM)
+@RestController
+@RequestMapping("/open/productInfo")
+public class OpenProductInfoController {
+
+    @Autowired
+    private ProductInfoService productInfoService;
+
+    @Value("${tenant.tenantId}")
+    private String tenantId;
+
+    /**
+     * 产品库明细
+     */
+    @PostMapping("/detail")
+    public ProductInfoVo detail(@RequestBody BaseSelectDto dto) {
+        SecurityUtils.setTenantId(tenantId);
+        ProductInfoVo detail = productInfoService.detail(dto.getId());
+        SecurityUtils.clearTenantId();
+        return detail;
+    }
+}

+ 20 - 0
hx-item/src/main/java/com/fjhx/item/entity/product/vo/ProductInfoVo.java

@@ -1,5 +1,6 @@
 package com.fjhx.item.entity.product.vo;
 
+import com.fjhx.file.entity.FileInfoVo;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import lombok.Getter;
 import lombok.Setter;
@@ -56,8 +57,27 @@ public class ProductInfoVo extends ProductInfo {
      */
     private String productClassifyNames;
 
+
     /**
      * 产品父id列表
      */
     private String parentIdSet;
+
+    /**
+     * 产品分类名称
+     */
+    private String productClassifyName;
+
+    /**
+     * 产品单位名称
+     */
+    private String unitName;
+    /**
+     * 产品类型名称
+     */
+    private String typeName;
+    /**
+     * 附件列表
+     */
+    List<FileInfoVo> fileList;
 }

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

@@ -16,6 +16,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
+import com.fjhx.file.entity.FileInfo;
+import com.fjhx.file.entity.FileInfoSelectDto;
+import com.fjhx.file.entity.FileInfoVo;
+import com.fjhx.file.mapper.FileInfoMapper;
+import com.fjhx.file.service.FileInfoService;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.item.entity.product.dto.ProductInfoDto;
 import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
@@ -33,6 +38,7 @@ import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
 import com.fjhx.tenant.entity.dict.po.DictTenantData;
 import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
 import com.fjhx.tenant.service.dict.DictTenantDataService;
+import com.fjhx.tenant.utils.DictUtils;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.exception.ServiceException;
@@ -76,6 +82,8 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
 
     @Autowired
     private DictTenantDataService dictTenantDataService;
+    @Autowired
+    private FileInfoService fileInfoService;
 
     @Override
     public Page<ProductInfoVo> getPage(ProductInfoSelectDto dto) {
@@ -112,10 +120,10 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         wrapper.orderByAsc("pi", ProductInfo::getSpec);
 
         //是否绑定工艺过滤
-        if(ObjectUtil.isNotEmpty(dto.getIsTechnology())){
-            if(Objects.equals(0,dto.getIsTechnology())){
+        if (ObjectUtil.isNotEmpty(dto.getIsTechnology())) {
+            if (Objects.equals(0, dto.getIsTechnology())) {
                 wrapper.isNull("aps.id");
-            }else{
+            } else {
                 wrapper.isNotNull("aps.id");
             }
         }
@@ -266,6 +274,24 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
     public ProductInfoVo detail(Long id) {
         ProductInfo productInfo = this.getById(id);
         ProductInfoVo result = BeanUtil.toBean(productInfo, ProductInfoVo.class);
+        //赋值分类名称
+        ProductClassify productClassify = productClassifyService.getById(result.getProductClassifyId());
+        if (ObjectUtil.isNotEmpty(productClassify)) {
+            result.setProductClassifyName(productClassify.getName());
+        }
+        //赋值 单位,物料类型 字典
+        Integer definition = result.getDefinition();
+        Map<String, String> materialUnitMap = DictUtils.getDictMap(definition == 1 ? "unit" : "material_unit");
+        Map<String, String> materialTypeMap = DictUtils.getDictMap(definition == 1 ? "product_type" : "material_type");
+        result.setTypeName(materialTypeMap.get(result.getType()));
+        result.setUnitName(materialUnitMap.get(result.getUnit()));
+        //赋值产品图片
+        FileInfoSelectDto dto = new FileInfoSelectDto();
+        dto.setBusinessIdList(Arrays.asList(result.getId()));
+        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+        Map<Long, List<FileInfoVo>> fileInfoMap = fileInfoService.getList(dto);
+        DynamicDataSourceContextHolder.poll();
+        result.setFileList(fileInfoMap.get(result.getId()));
         return result;
     }