浏览代码

维多利亚

24282 2 年之前
父节点
当前提交
3afb77fdff

+ 131 - 0
hx-common/common-tool/src/main/java/com/fjhx/utils/AttributeAssignBuilder.java

@@ -0,0 +1,131 @@
+package com.fjhx.utils;
+
+
+import com.fjhx.base.BaseEntity;
+import com.fjhx.base.BaseService;
+import lombok.AllArgsConstructor;
+
+import java.util.*;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 属性赋值构造器
+ */
+public class AttributeAssignBuilder<T extends BaseEntity, V> {
+
+    /**
+     * 服务
+     */
+    private final BaseService<T> service;
+
+    /**
+     * 原始数据
+     */
+    private final List<V> list;
+
+    /**
+     * 赋值方法集合
+     */
+    private final List<Fun> funList = new ArrayList<>();
+
+    /**
+     * 属性赋值构造器
+     *
+     * @param service 获取属性的表service
+     * @param list    需要赋值的数组
+     */
+    private AttributeAssignBuilder(BaseService<T> service, List<V> list) {
+        this.service = service;
+        this.list = list;
+    }
+
+    /**
+     * 初始化
+     */
+    public static <T extends BaseEntity, V> AttributeAssignBuilder<T, V> init(BaseService<T> service, List<V> list) {
+        return new AttributeAssignBuilder<>(service, list);
+    }
+
+    /**
+     * 添加赋值方法
+     *
+     * @param getIdFun        获取id方法
+     * @param setAttributeFun 赋值属性方法
+     * @return this
+     */
+    public AttributeAssignBuilder<T, V> assignFun(Function<V, Long> getIdFun, BiConsumer<V, T> setAttributeFun) {
+        Fun fun = new Fun(getIdFun, setAttributeFun);
+        funList.add(fun);
+        return this;
+    }
+
+    /**
+     * 执行赋值逻辑
+     */
+    public void build() {
+        // 获取id集合
+        Set<Long> idSet = getIdSet();
+        if (idSet.size() == 0) {
+            return;
+        }
+
+        // 查询Map<id,实体>
+        Map<Long, T> entityMap = service.listByIds(idSet).stream().collect(Collectors.toMap(BaseEntity::getId, item -> item));
+        if (entityMap.size() == 0) {
+            return;
+        }
+
+        // 执行属性赋值方法
+        attributeAssign(entityMap);
+    }
+
+    /**
+     * 获取id集合
+     *
+     * @return id集合
+     */
+    private Set<Long> getIdSet() {
+        Set<Long> idSet = new HashSet<>();
+        for (V v : list) {
+            for (Fun fun : funList) {
+                Long userId = fun.getIdFun.apply(v);
+                if (userId != null) {
+                    idSet.add(userId);
+                }
+            }
+        }
+        return idSet;
+    }
+
+    /**
+     * 属性赋值
+     *
+     * @param entityMap 实体map
+     */
+    private void attributeAssign(Map<Long, T> entityMap) {
+        for (V v : list) {
+            for (Fun fun : funList) {
+                Long userId = fun.getIdFun.apply(v);
+                if (userId == null) {
+                    continue;
+                }
+
+                T t = entityMap.get(userId);
+                if (t == null) {
+                    continue;
+                }
+
+                fun.setAttributeFun.accept(v, t);
+            }
+        }
+    }
+
+    @AllArgsConstructor
+    private class Fun {
+        private Function<V, Long> getIdFun;
+        private BiConsumer<V, T> setAttributeFun;
+    }
+
+}

+ 17 - 13
hx-service/victoriatourist/src/main/java/com/fjhx/service/classify/impl/ClassifyServiceImpl.java

@@ -3,18 +3,17 @@ package com.fjhx.service.classify.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 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.base.BaseEntity;
 import com.fjhx.entity.classify.Classify;
 import com.fjhx.entity.classify.Classify;
-import com.fjhx.entity.product.ProductInfo;
 import com.fjhx.enums.classify.ClassifyTypeEnum;
 import com.fjhx.enums.classify.ClassifyTypeEnum;
 import com.fjhx.mapper.classify.ClassifyMapper;
 import com.fjhx.mapper.classify.ClassifyMapper;
 import com.fjhx.params.classify.ClassifyVo;
 import com.fjhx.params.classify.ClassifyVo;
 import com.fjhx.service.classify.ClassifyService;
 import com.fjhx.service.classify.ClassifyService;
-import com.fjhx.service.product.ProductInfoService;
+import com.fjhx.utils.Assert;
 import com.fjhx.utils.TreeUtil;
 import com.fjhx.utils.TreeUtil;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.Func;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
@@ -32,14 +31,9 @@ import java.util.Map;
 @Service
 @Service
 public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> implements ClassifyService {
 public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> implements ClassifyService {
 
 
-    @Autowired
-    private ProductInfoService productInfoService;
-
     @Override
     @Override
     public Page<Classify> getPage(Map<String, Object> condition) {
     public Page<Classify> getPage(Map<String, Object> condition) {
-
         IWrapper<Classify> wrapper = IWrapper.getWrapper(condition);
         IWrapper<Classify> wrapper = IWrapper.getWrapper(condition);
-
         return page(condition, wrapper);
         return page(condition, wrapper);
     }
     }
 
 
@@ -49,6 +43,10 @@ public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> i
             classifyVo.setParentId(0L);
             classifyVo.setParentId(0L);
             classifyVo.setParentIdSet("0");
             classifyVo.setParentIdSet("0");
         }
         }
+
+        long count = count(q -> q.eq(Classify::getName, classifyVo.getName()).eq(Classify::getType, classifyVo.getType()));
+        Assert.eqZero(count, "分类名称已存在");
+
         save(classifyVo);
         save(classifyVo);
     }
     }
 
 
@@ -58,6 +56,12 @@ public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> i
             classifyVo.setParentId(0L);
             classifyVo.setParentId(0L);
             classifyVo.setParentIdSet("0");
             classifyVo.setParentIdSet("0");
         }
         }
+
+        long count = count(q -> q.ne(BaseEntity::getId, classifyVo.getId())
+                .eq(Classify::getName, classifyVo.getName())
+                .eq(Classify::getType, classifyVo.getType()));
+        Assert.eqZero(count, "分类名称已存在");
+
         updateById(classifyVo);
         updateById(classifyVo);
     }
     }
 
 
@@ -69,11 +73,11 @@ public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> i
             throw new ServiceException("存在子级,无法删除!");
             throw new ServiceException("存在子级,无法删除!");
         } else {
         } else {
             if (classifyVo.getType() == ClassifyTypeEnum.CLASSIFY_TYPE_2.getKey()) {
             if (classifyVo.getType() == ClassifyTypeEnum.CLASSIFY_TYPE_2.getKey()) {
-                //查询是否被物料挂钩
-                List<ProductInfo> materials = productInfoService.lambdaQuery().eq(ProductInfo::getClassifyId, classifyVo.getId()).list();
-                if (Func.isNotEmpty(materials)) {
-                    throw new ServiceException("有物料绑定,无法删除!");
-                }
+                // //查询是否被物料挂钩
+                // List<ProductInfo> materials = productInfoService.lambdaQuery().eq(ProductInfo::getClassifyId, classifyVo.getId()).list();
+                // if (Func.isNotEmpty(materials)) {
+                //     throw new ServiceException("有物料绑定,无法删除!");
+                // }
             } else {
             } else {
                 //查询是否被产品挂钩
                 //查询是否被产品挂钩
             }
             }

+ 1 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/product/impl/ProductSpuServiceImpl.java

@@ -45,7 +45,7 @@ public class ProductSpuServiceImpl extends ServiceImpl<ProductSpuMapper, Product
     @Override
     @Override
     public void add(ProductSpuVo productSpuVo) {
     public void add(ProductSpuVo productSpuVo) {
         synchronized (this) {
         synchronized (this) {
-            productSpuVo.setCode(CodeEnum.SPU.getCode());
+            productSpuVo.setCode(CodeEnum.SPU.getCode(productSpuVo.getCode()));
             save(productSpuVo);
             save(productSpuVo);
         }
         }
         resetBindingProduct(productSpuVo.getId(), productSpuVo.getProductIdList());
         resetBindingProduct(productSpuVo.getId(), productSpuVo.getProductIdList());

+ 3 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/impl/PurchaseFlowServiceImpl.java

@@ -70,7 +70,6 @@ public class PurchaseFlowServiceImpl implements PurchaseFlowService {
 
 
                     /**
                     /**
                      * 结束
                      * 结束
-                     *
                      */
                      */
                     @Transactional(rollbackFor = {Exception.class})
                     @Transactional(rollbackFor = {Exception.class})
                     @Override
                     @Override
@@ -127,6 +126,9 @@ public class PurchaseFlowServiceImpl implements PurchaseFlowService {
         List<ApplyPurchase> goodsList = purchase.getGoodsList();
         List<ApplyPurchase> goodsList = purchase.getGoodsList();
         Assert.notEmpty(goodsList, "采购物品不能为空");
         Assert.notEmpty(goodsList, "采购物品不能为空");
 
 
+        Long supplierId = purchase.getSupplierId();
+        Assert.notEmpty(supplierId, "供应商id不能为空");
+
         if (!redisLockClient.lockFair(REDIS_LOCK_CACHE_KEY, () -> {
         if (!redisLockClient.lockFair(REDIS_LOCK_CACHE_KEY, () -> {
             if (Func.isEmpty(purchase.getId())) {
             if (Func.isEmpty(purchase.getId())) {
                 purchase.setId(IdWorker.getId());
                 purchase.setId(IdWorker.getId());

+ 1 - 37
hx-service/victoriatourist/src/main/java/com/fjhx/service/supplier/impl/SupplierServiceImpl.java

@@ -1,7 +1,6 @@
 package com.fjhx.service.supplier.impl;
 package com.fjhx.service.supplier.impl;
 
 
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.convert.Convert;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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.entity.supplier.Supplier;
 import com.fjhx.entity.supplier.Supplier;
@@ -10,7 +9,6 @@ import com.fjhx.mapper.supplier.SupplierMapper;
 import com.fjhx.params.supplier.SupplierVo;
 import com.fjhx.params.supplier.SupplierVo;
 import com.fjhx.service.supplier.SupplierService;
 import com.fjhx.service.supplier.SupplierService;
 import com.fjhx.uitl.code.CodeEnum;
 import com.fjhx.uitl.code.CodeEnum;
-import com.fjhx.utils.Assert;
 import com.fjhx.utils.FileClientUtil;
 import com.fjhx.utils.FileClientUtil;
 import com.fjhx.utils.RegionClientUtil;
 import com.fjhx.utils.RegionClientUtil;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import com.fjhx.utils.wrapperUtil.IWrapper;
@@ -96,7 +94,7 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
     public void add(SupplierVo supplierVo) {
     public void add(SupplierVo supplierVo) {
 
 
         synchronized (this) {
         synchronized (this) {
-            supplierVo.setCode(CodeEnum.SUPPLIER.getCode());
+            supplierVo.setCode(CodeEnum.SUPPLIER.getCode(supplierVo.getCode()));
             save(supplierVo);
             save(supplierVo);
         }
         }
 
 
@@ -132,38 +130,4 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
         return listMaps(wrapper);
         return listMaps(wrapper);
     }
     }
 
 
-
-    /**
-     * 生成供应商编码
-     */
-    private String createCode() {
-
-        Supplier supplier = getOne(Wrappers.<Supplier>lambdaQuery()
-                .likeRight(Supplier::getCode, codePrefix)
-                .orderByDesc(Supplier::getCode)
-                .last("limit 1"));
-
-        if (supplier == null) {
-            return codePrefix + "00001";
-        }
-
-        String code = supplier.getCode();
-
-        Integer codeNum = Convert.toInt(code.substring(codePrefix.length()));
-        Assert.notEmpty(codeNum, "自定义供应商编码与系统自动生成供应商编码规则冲突,暂时自动生成供应商编码,请联系管理员处理");
-
-        codeNum++;
-
-        if (codeNum < 10) {
-            return codePrefix + "0000" + codeNum;
-        } else if (codeNum < 100) {
-            return codePrefix + "000" + codeNum;
-        } else if (codeNum < 1000) {
-            return codePrefix + "00" + codeNum;
-        } else if (codeNum < 10000) {
-            return codePrefix + "0" + codeNum;
-        }
-        return codePrefix + codeNum;
-    }
-
 }
 }

+ 1 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/uitl/kd100/KD100Util.java

@@ -31,7 +31,7 @@ public class KD100Util {
      * @return
      * @return
      */
      */
     public static JSONObject queryTrack(String com, String num) {
     public static JSONObject queryTrack(String com, String num) {
-        HttpResult result = new HttpResult();
+        HttpResult result;
         try {
         try {
             QueryTrackReq queryTrackReq = new QueryTrackReq();
             QueryTrackReq queryTrackReq = new QueryTrackReq();
             QueryTrackParam queryTrackParam = new QueryTrackParam();
             QueryTrackParam queryTrackParam = new QueryTrackParam();