Browse Source

供应商、产品相关文件保存为正式文件

wanyuan 10 months ago
parent
commit
5759613bfe

+ 2 - 2
src/main/java/com/kingtom/shengtai/api/controller/ProductDirController.java

@@ -13,8 +13,8 @@ import com.kingtom.kirin.core.common.utils.JsonUtils;
 import com.kingtom.shengtai.api.mapper.ProductDirMapper;
 import com.kingtom.shengtai.api.model.ProductDirDTO;
 import com.kingtom.shengtai.api.model.ProductDirTreeDTO;
-import com.kingtom.shengtai.app.product.model.ProductDir;
-import com.kingtom.shengtai.app.product.service.IProductDirService;
+import com.kingtom.shengtai.app.srm.model.ProductDir;
+import com.kingtom.shengtai.app.srm.service.IProductDirService;
 import com.mybatisflex.core.paginate.Page;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;

+ 7 - 2
src/main/java/com/kingtom/shengtai/api/controller/SrmSupplierController.java

@@ -18,8 +18,8 @@ import com.kingtom.kirin.core.common.utils.CollectionUtils;
 import com.kingtom.kirin.core.common.utils.JsonUtils;
 import com.kingtom.shengtai.api.mapper.SrmMapper;
 import com.kingtom.shengtai.api.model.SrmSupplierDTO;
-import com.kingtom.shengtai.app.product.model.ProductDir;
-import com.kingtom.shengtai.app.product.service.IProductDirService;
+import com.kingtom.shengtai.app.srm.model.ProductDir;
+import com.kingtom.shengtai.app.srm.service.IProductDirService;
 import com.kingtom.shengtai.app.srm.model.SrmSupplier;
 import com.kingtom.shengtai.app.srm.model.SrmSupplierDO;
 import com.kingtom.shengtai.app.srm.service.ISrmSupplierService;
@@ -113,6 +113,11 @@ public class SrmSupplierController{
         update.setId(id);
         update.setMark(dto.getMark());
         update.setType(dto.getType());
+        List<String> list = dto.getProduct();
+        if(list == null){
+            list = new ArrayList<>();
+        }
+        update.setProduct(JsonUtils.toJson(list));
         SrmSupplierDO supplierDO = iSrmSupplierService.update(update);
         return Result.ok(SrmSupplierDTO.convert(supplierDO));
     }

+ 1 - 1
src/main/java/com/kingtom/shengtai/api/mapper/ProductDirMapper.java

@@ -8,7 +8,7 @@ import java.util.Map;
 import com.kingtom.kirin.core.common.utils.JsonUtils;
 import com.kingtom.shengtai.api.model.ProductDirDTO;
 import com.kingtom.shengtai.api.model.ProductDirTreeDTO;
-import com.kingtom.shengtai.app.product.model.ProductDir;
+import com.kingtom.shengtai.app.srm.model.ProductDir;
 import org.apache.commons.lang3.StringUtils;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;

+ 19 - 0
src/main/java/com/kingtom/shengtai/app/affair/service/SupplierJoinHandler.java

@@ -20,6 +20,7 @@ import com.kingtom.kirin.app.org.model.OrgUnit;
 import com.kingtom.kirin.app.org.service.IOrgIdentityService;
 import com.kingtom.kirin.app.org.service.IOrgMemberService;
 import com.kingtom.kirin.app.org.service.IOrgService;
+import com.kingtom.kirin.app.space.service.ISpaceFileService;
 import com.kingtom.kirin.app.system.model.SystemUser;
 import com.kingtom.kirin.app.system.service.ISystemService;
 import com.kingtom.kirin.app.system.utils.SystemUtils;
@@ -53,6 +54,10 @@ import org.springframework.stereotype.Component;
 @Component
 public class SupplierJoinHandler extends AbstractAffairOneHandler{
 
+    private static final String SUPPLIER_JOIN_IMAGES           = "SupplierJoinImages";
+    private static final String SUPPLIER_JOIN_BUSINESS_LICENSE = "SupplierJoinBusinessLicense";
+    private static final String SUPPLIER_JOIN_CERTIFICATES     = "SupplierJoinCertificates";
+
     public static final String NAME = "SupplierJoin";
 
     @Autowired
@@ -82,6 +87,9 @@ public class SupplierJoinHandler extends AbstractAffairOneHandler{
     @Autowired
     private IMsgSummaryService msgSummaryService;
 
+    @Autowired
+    private ISpaceFileService spaceFileService;
+
     @Autowired
     private WsSendService wsSendService;
 
@@ -117,6 +125,17 @@ public class SupplierJoinHandler extends AbstractAffairOneHandler{
         info.setEffectModel(AffairConst.AffairEffectModelEnum.GenerateNow.getKey());
         info.setActionModel(AffairConst.AffairActionModelEnum.One.getKey());
         info.setEffectCondition(CommonConst.EMPTY_OBJECT_STRING);
+        //文件存储为正式文件
+        List<String> imageFileIds = StringUtils.isEmpty(data.getImage()) ? null :
+                List.of(data.getImage().split(CommonConst.COMMA_STRING));
+        spaceFileService.doFormalOfReplace(imageFileIds,
+                ResourceConst.ResourceTypeEnum.AffairInfo.getKey(), info.getId(), SUPPLIER_JOIN_IMAGES);
+        spaceFileService.doFormalOfReplace(data.getBusinessLicense(),
+                ResourceConst.ResourceTypeEnum.AffairInfo.getKey(), info.getId(), SUPPLIER_JOIN_BUSINESS_LICENSE);
+        List<String> certificateFileIds = StringUtils.isEmpty(data.getCertificates()) ? null :
+                List.of(data.getCertificates().split(CommonConst.COMMA_STRING));
+        spaceFileService.doFormalOfReplace(certificateFileIds,
+                ResourceConst.ResourceTypeEnum.AffairInfo.getKey(), info.getId(), SUPPLIER_JOIN_CERTIFICATES);
     }
 
     @Override

+ 20 - 0
src/main/java/com/kingtom/shengtai/app/srm/SrmConst.java

@@ -0,0 +1,20 @@
+package com.kingtom.shengtai.app.srm;
+
+/**
+ * 应用模块名称<p>
+ * 代码描述<p>
+ * Copyright: Copyright (C) 2024 KingTom
+ * , Inc. All rights reserved. <p>
+ * Company: 成都诚唐科技有限责任公司<p>
+ *
+ * @author wany
+ * @since 2024/5/6
+ */
+public final class SrmConst{
+    public static final String SRM_SUPPLIER_RESOURCE_KEY = "SrmSupplier";
+    public static final String SRM_SUPPLIER_IMAGES       = "SrmSupplierImages";
+    public static final String SUPPLIER_BUSINESS_LICENSE = "SupplierBusinessLicense";
+    public static final String SUPPLIER_CERTIFICATES     = "SupplierCertificates";
+    public static final String PRODUCT_DIR_RESOURCE_KEY  = "ProductDir";
+    public static final String PRODUCT_DIR_IMAGE         = "ProductDirImage";
+}

+ 2 - 2
src/main/java/com/kingtom/shengtai/app/product/dao/IProductDirDao.java → src/main/java/com/kingtom/shengtai/app/srm/dao/IProductDirDao.java

@@ -1,7 +1,7 @@
-package com.kingtom.shengtai.app.product.dao;
+package com.kingtom.shengtai.app.srm.dao;
 
 import com.kingtom.kirin.core.common.base.dao.IBaseDao;
-import com.kingtom.shengtai.app.product.model.ProductDir;
+import com.kingtom.shengtai.app.srm.model.ProductDir;
 
 /**
  * 应用模块名称</p>

+ 1 - 1
src/main/java/com/kingtom/shengtai/app/product/model/ProductDir.java → src/main/java/com/kingtom/shengtai/app/srm/model/ProductDir.java

@@ -1,4 +1,4 @@
-package com.kingtom.shengtai.app.product.model;
+package com.kingtom.shengtai.app.srm.model;
 
 import com.mybatisflex.annotation.Id;
 import com.mybatisflex.annotation.Table;

+ 1 - 1
src/main/java/com/kingtom/shengtai/app/product/model/table/ProductDirTableDef.java → src/main/java/com/kingtom/shengtai/app/srm/model/table/ProductDirTableDef.java

@@ -1,4 +1,4 @@
-package com.kingtom.shengtai.app.product.model.table;
+package com.kingtom.shengtai.app.srm.model.table;
 
 import com.mybatisflex.core.query.QueryColumn;
 import com.mybatisflex.core.table.TableDef;

+ 2 - 2
src/main/java/com/kingtom/shengtai/app/product/service/IProductDirService.java → src/main/java/com/kingtom/shengtai/app/srm/service/IProductDirService.java

@@ -1,10 +1,10 @@
-package com.kingtom.shengtai.app.product.service;
+package com.kingtom.shengtai.app.srm.service;
 
 import java.util.List;
 import java.util.Map;
 
 import com.kingtom.kirin.core.common.base.service.IBaseService;
-import com.kingtom.shengtai.app.product.model.ProductDir;
+import com.kingtom.shengtai.app.srm.model.ProductDir;
 import com.mybatisflex.core.paginate.Page;
 
 /**

+ 19 - 5
src/main/java/com/kingtom/shengtai/app/product/service/impl/ProductDirServiceImpl.java → src/main/java/com/kingtom/shengtai/app/srm/service/impl/ProductDirServiceImpl.java

@@ -1,8 +1,9 @@
-package com.kingtom.shengtai.app.product.service.impl;
+package com.kingtom.shengtai.app.srm.service.impl;
 
 import java.util.*;
 import java.util.stream.Collectors;
 
+import com.kingtom.kirin.app.space.service.ISpaceFileService;
 import com.kingtom.kirin.app.system.utils.SystemUtils;
 import com.kingtom.kirin.core.common.CommonConst;
 import com.kingtom.kirin.core.common.base.service.impl.BaseServiceImpl;
@@ -10,17 +11,20 @@ import com.kingtom.kirin.core.common.exception.AppException;
 import com.kingtom.kirin.core.common.utils.CollectionUtils;
 import com.kingtom.kirin.core.common.utils.IDUtils;
 import com.kingtom.kirin.core.common.utils.JsonUtils;
-import com.kingtom.shengtai.app.product.dao.IProductDirDao;
-import com.kingtom.shengtai.app.product.model.ProductDir;
-import com.kingtom.shengtai.app.product.service.IProductDirService;
+import com.kingtom.shengtai.app.srm.dao.IProductDirDao;
+import com.kingtom.shengtai.app.srm.model.ProductDir;
+import com.kingtom.shengtai.app.srm.service.IProductDirService;
+import com.kingtom.shengtai.app.srm.SrmConst;
 import com.mybatisflex.core.paginate.Page;
 import com.mybatisflex.core.query.QueryCondition;
 import com.mybatisflex.core.query.QueryWrapper;
 import com.mybatisflex.core.row.Row;
+import com.mybatisflex.core.service.IService;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import static com.kingtom.shengtai.app.product.model.table.ProductDirTableDef.PRODUCT_DIR;
+import static com.kingtom.shengtai.app.srm.model.table.ProductDirTableDef.PRODUCT_DIR;
 
 /**
  * 应用模块名称</p>
@@ -34,6 +38,9 @@ import static com.kingtom.shengtai.app.product.model.table.ProductDirTableDef.PR
 @Service
 public class ProductDirServiceImpl extends BaseServiceImpl<IProductDirDao, ProductDir> implements IProductDirService{
 
+    @Autowired
+    private ISpaceFileService spaceFileService;
+
     @Override
     public ProductDir create(ProductDir productDir){
         checkBeforeCreate(productDir);
@@ -42,9 +49,15 @@ public class ProductDirServiceImpl extends BaseServiceImpl<IProductDirDao, Produ
         if(!f){
             throw new AppException("落库出错,新建产品目录失败!");
         }
+        saveFileFormal(productDir);
         return findById(productDir.getId());
     }
 
+    private void saveFileFormal(ProductDir entity){
+        spaceFileService.doFormalOfReplace(entity.getImage(), SrmConst.PRODUCT_DIR_RESOURCE_KEY,
+                entity.getId(), SrmConst.PRODUCT_DIR_IMAGE);
+    }
+
     private void checkBeforeCreate(ProductDir productDir){
         if(productDir == null){
             throw new AppException("产品目录表为空,新建失败!");
@@ -114,6 +127,7 @@ public class ProductDirServiceImpl extends BaseServiceImpl<IProductDirDao, Produ
         if(!f){
             throw new AppException("落库出错,更新产品目录表失败!");
         }
+        saveFileFormal(productDir);
         return findById(productDir.getId());
     }
 

+ 25 - 0
src/main/java/com/kingtom/shengtai/app/srm/service/impl/SrmSupplierServiceImpl.java

@@ -11,18 +11,22 @@ import com.kingtom.kirin.app.org.model.OrgUnit;
 import com.kingtom.kirin.app.org.service.IOrgMemberService;
 import com.kingtom.kirin.app.org.service.IOrgPersonService;
 import com.kingtom.kirin.app.org.service.IOrgService;
+import com.kingtom.kirin.app.space.service.ISpaceFileService;
 import com.kingtom.kirin.app.system.model.SystemUser;
 import com.kingtom.kirin.app.system.model.SystemUserBO;
 import com.kingtom.kirin.app.system.service.ISystemService;
 import com.kingtom.kirin.app.system.utils.SystemUtils;
+import com.kingtom.kirin.core.common.CommonConst;
 import com.kingtom.kirin.core.common.base.service.impl.BaseServiceImpl;
 import com.kingtom.kirin.core.common.exception.AppException;
 import com.kingtom.kirin.core.common.utils.CollectionUtils;
 import com.kingtom.kirin.core.common.utils.IDUtils;
 import com.kingtom.kirin.core.common.utils.JsonUtils;
+import com.kingtom.kirin.core.resource.ResourceConst;
 import com.kingtom.shengtai.app.message.model.MsgSummary;
 import com.kingtom.shengtai.app.message.service.IMsgSummaryService;
 import com.kingtom.shengtai.app.message.ws.WsSendService;
+import com.kingtom.shengtai.app.srm.SrmConst;
 import com.kingtom.shengtai.app.srm.dao.ISrmSupplierDao;
 import com.kingtom.shengtai.app.srm.model.SrmSupplier;
 import com.kingtom.shengtai.app.srm.model.SrmSupplierDO;
@@ -64,6 +68,9 @@ public class SrmSupplierServiceImpl extends BaseServiceImpl<ISrmSupplierDao, Srm
     @Autowired
     private IOrgPersonService orgPersonService;
 
+    @Autowired
+    private ISpaceFileService spaceFileService;
+
     @Override
     public SrmSupplierDO create(SrmSupplier entity){
         if(entity.getId() == null){
@@ -89,9 +96,25 @@ public class SrmSupplierServiceImpl extends BaseServiceImpl<ISrmSupplierDao, Srm
         if(!f){
             throw new AppException("落库出错,新建供应商失败!");
         }
+        //文件存储为正式文件
+        saveFileFormal(entity);
         return findById(entity.getId());
     }
 
+    private void saveFileFormal(SrmSupplier entity){
+        List<String> imageFileIds =
+                StringUtils.isEmpty(entity.getImage()) ? null : JsonUtils.toObjectList(entity.getImage(), String.class);
+        spaceFileService.doFormalOfReplace(imageFileIds, SrmConst.SRM_SUPPLIER_RESOURCE_KEY, entity.getId(),
+                SrmConst.SRM_SUPPLIER_IMAGES);
+        spaceFileService.doFormalOfReplace(entity.getBusinessLicense(), SrmConst.SRM_SUPPLIER_RESOURCE_KEY,
+                entity.getId(),
+                SrmConst.SUPPLIER_BUSINESS_LICENSE);
+        List<String> certificateFileIds = StringUtils.isEmpty(entity.getCertificates()) ? null :
+                JsonUtils.toObjectList(entity.getCertificates(), String.class);
+        spaceFileService.doFormalOfReplace(certificateFileIds, SrmConst.SRM_SUPPLIER_RESOURCE_KEY, entity.getId(),
+                SrmConst.SUPPLIER_CERTIFICATES);
+    }
+
     @Override
     public void deleteById(String id){
         if(StringUtils.isEmpty(id)){
@@ -132,6 +155,8 @@ public class SrmSupplierServiceImpl extends BaseServiceImpl<ISrmSupplierDao, Srm
         if(!f){
             throw new AppException("落库出错,更新供应商失败!");
         }
+        //文件存储为正式文件
+        saveFileFormal(entity);
         return findById(entity.getId());
     }