Procházet zdrojové kódy

解决因架构升级产生的兼容性问题

home před 2 roky
rodič
revize
e1dde0d5ee
46 změnil soubory, kde provedl 537 přidání a 359 odebrání
  1. 207 183
      bladex-tool/blade-core-tool/src/main/java/org/springblade/core/tool/api/R.java
  2. 66 55
      bladex-tool/blade-starter-redis/src/main/java/org/springblade/core/redis/lock/RedisLockClient.java
  3. 1 1
      bladex/blade-auth/src/main/java/org/springblade/auth/utils/WxAppletUtil.java
  4. 2 2
      bladex/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  5. 61 38
      bladex/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserSearchClient.java
  6. 14 0
      bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserSearchClient.java
  7. 4 0
      bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.java
  8. 11 0
      bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
  9. 17 0
      bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserSearchService.java
  10. 26 0
      bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserSearchServiceImpl.java
  11. 7 7
      hx-common/common-client-util/src/main/java/com/fjhx/utils/UserClientUtil.java
  12. 12 0
      hx-common/common-tool/src/main/java/com/fjhx/utils/Assert.java
  13. 4 4
      hx-common/library-product/src/main/java/com/fjhx/service/impl/ClassifyServiceImpl.java
  14. 2 2
      hx-common/library-product/src/main/java/com/fjhx/service/impl/MaterialServiceImpl.java
  15. 1 1
      hx-common/library-product/src/main/java/com/fjhx/service/impl/ProductServiceImpl.java
  16. 1 1
      hx-common/library-storage/src/main/java/com/fjhx/service/impl/WarehouseServiceImpl.java
  17. 2 2
      hx-common/library-supply/src/main/java/com/fjhx/service/impl/ApplyPurchaseServiceImpl.java
  18. 1 1
      hx-common/library-supply/src/main/java/com/fjhx/service/impl/BackGoodsServiceImpl.java
  19. 1 1
      hx-common/library-supply/src/main/java/com/fjhx/service/impl/OrderServiceImpl.java
  20. 1 1
      hx-common/service-flow/src/main/java/com/fjhx/feign/FlowClient.java
  21. 1 1
      hx-common/service-flow/src/main/java/com/fjhx/service/example/impl/ExampleInfoServiceImpl.java
  22. 1 1
      hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessInfoServiceImpl.java
  23. 1 1
      hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessTenantServiceImpl.java
  24. 2 2
      hx-common/service-video/src/main/java/com/fjhx/service/video/impl/VideoClassifyServiceImpl.java
  25. 12 5
      hx-service-api/service-flow-api/src/main/java/com/fjhx/utils/FlowConstructor.java
  26. 1 1
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/base/StorageBaseService.java
  27. 0 3
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/apply/ApplyPurchaseController.java
  28. 2 2
      hx-service/storage-restructure/src/main/java/com/fjhx/service/apply/impl/ApplyPurchaseServiceImpl.java
  29. 2 1
      hx-service/storage-restructure/src/main/java/com/fjhx/service/contract/impl/ContractServiceImpl.java
  30. 1 1
      hx-service/storage-restructure/src/main/java/com/fjhx/service/material/impl/MaterialClassifyServiceImpl.java
  31. 3 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/impl/QualityTestingServiceImpl.java
  32. 2 1
      hx-service/storage-restructure/src/main/java/com/fjhx/service/supplier/impl/SupplierPriceServiceImpl.java
  33. 3 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterBatchServiceImpl.java
  34. 2 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterServiceImpl.java
  35. 16 12
      hx-service/storage/src/main/java/com/fjhx/purchase/controller/PurchaseContractController.java
  36. 1 1
      hx-service/storage/src/main/java/com/fjhx/purchase/service/PurchaseContractService.java
  37. 2 2
      hx-service/storage/src/main/java/com/fjhx/purchase/service/impl/PurchaseContractServiceImpl.java
  38. 1 1
      hx-service/storage/src/main/java/com/fjhx/supplier/controller/SupplierController.java
  39. 1 1
      hx-service/storage/src/main/java/com/fjhx/supplier/controller/SupplierPricechangeController.java
  40. 1 1
      hx-service/storage/src/main/java/com/fjhx/supplier/controller/SupplierProblemController.java
  41. 1 1
      hx-service/storage/src/main/java/com/fjhx/supplier/service/SupplierProblemService.java
  42. 27 17
      hx-service/storage/src/main/java/com/fjhx/supplier/service/impl/SupplierProblemServiceImpl.java
  43. 10 2
      hx-service/storage/src/main/java/com/fjhx/supplier/service/impl/SupplierServiceImpl.java
  44. 1 1
      hx-service/syringe-management/src/main/java/com/fjhx/service/bom/impl/BomServiceImpl.java
  45. 1 1
      hx-service/syringe-production/src/main/java/com/fjhx/service/tda/impl/TdaApplicationServiceImpl.java
  46. 1 1
      hx-service/syringe-production/src/main/java/com/fjhx/service/tda/impl/TdaProductServiceImpl.java

+ 207 - 183
bladex-tool/blade-core-tool/src/main/java/org/springblade/core/tool/api/R.java

@@ -18,7 +18,10 @@ package org.springblade.core.tool.api;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.*;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springframework.lang.Nullable;
@@ -39,187 +42,208 @@ import java.util.Optional;
 @NoArgsConstructor
 public class R<T> implements Serializable {
 
-	private static final long serialVersionUID = 1L;
-
-	@ApiModelProperty(value = "状态码", required = true)
-	private int code;
-	@ApiModelProperty(value = "是否成功", required = true)
-	private boolean success;
-	@ApiModelProperty(value = "承载数据")
-	private T data;
-	@ApiModelProperty(value = "返回消息", required = true)
-	private String msg;
-
-	private R(IResultCode resultCode) {
-		this(resultCode, null, resultCode.getMessage());
-	}
-
-	private R(IResultCode resultCode, String msg) {
-		this(resultCode, null, msg);
-	}
-
-	private R(IResultCode resultCode, T data) {
-		this(resultCode, data, resultCode.getMessage());
-	}
-
-	private R(IResultCode resultCode, T data, String msg) {
-		this(resultCode.getCode(), data, msg);
-	}
-
-	private R(int code, T data, String msg) {
-		this.code = code;
-		this.data = data;
-		this.msg = msg;
-		this.success = ResultCode.SUCCESS.code == code;
-	}
-
-	/**
-	 * 判断返回是否为成功
-	 *
-	 * @param result Result
-	 * @return 是否成功
-	 */
-	public static boolean isSuccess(@Nullable R<?> result) {
-		return Optional.ofNullable(result)
-			.map(x -> ObjectUtil.nullSafeEquals(ResultCode.SUCCESS.code, x.code))
-			.orElse(Boolean.FALSE);
-	}
-
-	/**
-	 * 判断返回是否为成功
-	 *
-	 * @param result Result
-	 * @return 是否成功
-	 */
-	public static boolean isNotSuccess(@Nullable R<?> result) {
-		return !R.isSuccess(result);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param data 数据
-	 * @param <T>  T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> data(T data) {
-		return data(data, BladeConstant.DEFAULT_SUCCESS_MESSAGE);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param data 数据
-	 * @param msg  消息
-	 * @param <T>  T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> data(T data, String msg) {
-		return data(HttpServletResponse.SC_OK, data, msg);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param code 状态码
-	 * @param data 数据
-	 * @param msg  消息
-	 * @param <T>  T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> data(int code, T data, String msg) {
-		return new R<>(code, data, data == null ? BladeConstant.DEFAULT_NULL_MESSAGE : msg);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param msg 消息
-	 * @param <T> T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> success(String msg) {
-		return new R<>(ResultCode.SUCCESS, msg);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param resultCode 业务代码
-	 * @param <T>        T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> success(IResultCode resultCode) {
-		return new R<>(resultCode);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param resultCode 业务代码
-	 * @param msg        消息
-	 * @param <T>        T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> success(IResultCode resultCode, String msg) {
-		return new R<>(resultCode, msg);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param msg 消息
-	 * @param <T> T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> fail(String msg) {
-		return new R<>(ResultCode.FAILURE, msg);
-	}
-
-
-	/**
-	 * 返回R
-	 *
-	 * @param code 状态码
-	 * @param msg  消息
-	 * @param <T>  T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> fail(int code, String msg) {
-		return new R<>(code, null, msg);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param resultCode 业务代码
-	 * @param <T>        T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> fail(IResultCode resultCode) {
-		return new R<>(resultCode);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param resultCode 业务代码
-	 * @param msg        消息
-	 * @param <T>        T 泛型标记
-	 * @return R
-	 */
-	public static <T> R<T> fail(IResultCode resultCode, String msg) {
-		return new R<>(resultCode, msg);
-	}
-
-	/**
-	 * 返回R
-	 *
-	 * @param flag 成功状态
-	 * @return R
-	 */
-	public static <T> R<T> status(boolean flag) {
-		return flag ? success(BladeConstant.DEFAULT_SUCCESS_MESSAGE) : fail(BladeConstant.DEFAULT_FAILURE_MESSAGE);
-	}
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "状态码", required = true)
+    private int code;
+    @ApiModelProperty(value = "是否成功", required = true)
+    private boolean success;
+    @ApiModelProperty(value = "承载数据")
+    private T data;
+    @ApiModelProperty(value = "返回消息", required = true)
+    private String msg;
+
+    private R(IResultCode resultCode) {
+        this(resultCode, null, resultCode.getMessage());
+    }
+
+    private R(IResultCode resultCode, String msg) {
+        this(resultCode, null, msg);
+    }
+
+    private R(IResultCode resultCode, T data) {
+        this(resultCode, data, resultCode.getMessage());
+    }
+
+    private R(IResultCode resultCode, T data, String msg) {
+        this(resultCode.getCode(), data, msg);
+    }
+
+    private R(int code, T data, String msg) {
+        this.code = code;
+        this.data = data;
+        this.msg = msg;
+        this.success = ResultCode.SUCCESS.code == code;
+    }
+
+    /**
+     * 判断返回是否为成功
+     *
+     * @param result Result
+     * @return 是否成功
+     */
+    public static boolean isSuccess(@Nullable R<?> result) {
+        return Optional.ofNullable(result)
+                .map(x -> ObjectUtil.nullSafeEquals(ResultCode.SUCCESS.code, x.code))
+                .orElse(Boolean.FALSE);
+    }
+
+    /**
+     * 判断返回是否为成功
+     *
+     * @param result Result
+     * @return 是否成功
+     */
+    public static boolean isNotSuccess(@Nullable R<?> result) {
+        return !R.isSuccess(result);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param data 数据
+     * @param <T>  T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> data(T data) {
+        return data(data, BladeConstant.DEFAULT_SUCCESS_MESSAGE);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param data 数据
+     * @param msg  消息
+     * @param <T>  T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> data(T data, String msg) {
+        return data(HttpServletResponse.SC_OK, data, msg);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param code 状态码
+     * @param data 数据
+     * @param msg  消息
+     * @param <T>  T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> data(int code, T data, String msg) {
+        return new R<>(code, data, data == null ? BladeConstant.DEFAULT_NULL_MESSAGE : msg);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param msg 消息
+     * @param <T> T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> success(String msg) {
+        return new R<>(ResultCode.SUCCESS, msg);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param obj 返回值
+     * @param <T> T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> success(T obj) {
+        return data(obj);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param <T> T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> success() {
+        return success(BladeConstant.DEFAULT_SUCCESS_MESSAGE);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param resultCode 业务代码
+     * @param <T>        T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> success(IResultCode resultCode) {
+        return new R<>(resultCode);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param resultCode 业务代码
+     * @param msg        消息
+     * @param <T>        T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> success(IResultCode resultCode, String msg) {
+        return new R<>(resultCode, msg);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param msg 消息
+     * @param <T> T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> fail(String msg) {
+        return new R<>(ResultCode.FAILURE, msg);
+    }
+
+
+    /**
+     * 返回R
+     *
+     * @param code 状态码
+     * @param msg  消息
+     * @param <T>  T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> fail(int code, String msg) {
+        return new R<>(code, null, msg);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param resultCode 业务代码
+     * @param <T>        T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> fail(IResultCode resultCode) {
+        return new R<>(resultCode);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param resultCode 业务代码
+     * @param msg        消息
+     * @param <T>        T 泛型标记
+     * @return R
+     */
+    public static <T> R<T> fail(IResultCode resultCode, String msg) {
+        return new R<>(resultCode, msg);
+    }
+
+    /**
+     * 返回R
+     *
+     * @param flag 成功状态
+     * @return R
+     */
+    public static <T> R<T> status(boolean flag) {
+        return flag ? success(BladeConstant.DEFAULT_SUCCESS_MESSAGE) : fail(BladeConstant.DEFAULT_FAILURE_MESSAGE);
+    }
 
 }

+ 66 - 55
bladex-tool/blade-starter-redis/src/main/java/org/springblade/core/redis/lock/RedisLockClient.java

@@ -28,64 +28,75 @@ import java.util.concurrent.TimeUnit;
  */
 public interface RedisLockClient {
 
-	/**
-	 * 尝试获取锁
-	 *
-	 * @param lockName  锁名
-	 * @param lockType  锁类型
-	 * @param waitTime  等待时间
-	 * @param leaseTime 自动解锁时间,自动解锁时间一定得大于方法执行时间
-	 * @param timeUnit  时间参数
-	 * @return 是否成功
-	 * @throws InterruptedException InterruptedException
-	 */
-	boolean tryLock(String lockName, LockType lockType, long waitTime, long leaseTime, TimeUnit timeUnit) throws InterruptedException;
+    /**
+     * 尝试获取锁
+     *
+     * @param lockName  锁名
+     * @param lockType  锁类型
+     * @param waitTime  等待时间
+     * @param leaseTime 自动解锁时间,自动解锁时间一定得大于方法执行时间
+     * @param timeUnit  时间参数
+     * @return 是否成功
+     * @throws InterruptedException InterruptedException
+     */
+    boolean tryLock(String lockName, LockType lockType, long waitTime, long leaseTime, TimeUnit timeUnit) throws InterruptedException;
 
-	/**
-	 * 解锁
-	 *
-	 * @param lockName 锁名
-	 * @param lockType 锁类型
-	 */
-	void unLock(String lockName, LockType lockType);
+    /**
+     * 解锁
+     *
+     * @param lockName 锁名
+     * @param lockType 锁类型
+     */
+    void unLock(String lockName, LockType lockType);
 
-	/**
-	 * 自定获取锁后执行方法
-	 *
-	 * @param lockName  锁名
-	 * @param lockType  锁类型
-	 * @param waitTime  等待锁超时时间
-	 * @param leaseTime 自动解锁时间,自动解锁时间一定得大于方法执行时间,否则会导致锁提前释放,默认100
-	 * @param timeUnit  时间单位
-	 * @param supplier  获取锁后的回调
-	 * @return 返回的数据
-	 */
-	<T> T lock(String lockName, LockType lockType, long waitTime, long leaseTime, TimeUnit timeUnit, CheckedSupplier<T> supplier);
+    /**
+     * 自定获取锁后执行方法
+     *
+     * @param lockName  锁名
+     * @param lockType  锁类型
+     * @param waitTime  等待锁超时时间
+     * @param leaseTime 自动解锁时间,自动解锁时间一定得大于方法执行时间,否则会导致锁提前释放,默认100
+     * @param timeUnit  时间单位
+     * @param supplier  获取锁后的回调
+     * @return 返回的数据
+     */
+    <T> T lock(String lockName, LockType lockType, long waitTime, long leaseTime, TimeUnit timeUnit, CheckedSupplier<T> supplier);
 
-	/**
-	 * 公平锁
-	 *
-	 * @param lockName  锁名
-	 * @param waitTime  等待锁超时时间
-	 * @param leaseTime 自动解锁时间,自动解锁时间一定得大于方法执行时间,否则会导致锁提前释放,默认100
-	 * @param supplier  获取锁后的回调
-	 * @return 返回的数据
-	 */
-	default <T> T lockFair(String lockName, long waitTime, long leaseTime, CheckedSupplier<T> supplier) {
-		return lock(lockName, LockType.FAIR, waitTime, leaseTime, TimeUnit.SECONDS, supplier);
-	}
+    /**
+     * 公平锁
+     *
+     * @param lockName  锁名
+     * @param waitTime  等待锁超时时间
+     * @param leaseTime 自动解锁时间,自动解锁时间一定得大于方法执行时间,否则会导致锁提前释放,默认100
+     * @param supplier  获取锁后的回调
+     * @return 返回的数据
+     */
+    default <T> T lockFair(String lockName, long waitTime, long leaseTime, CheckedSupplier<T> supplier) {
+        return lock(lockName, LockType.FAIR, waitTime, leaseTime, TimeUnit.SECONDS, supplier);
+    }
 
-	/**
-	 * 可重入锁
-	 *
-	 * @param lockName  锁名
-	 * @param waitTime  等待锁超时时间
-	 * @param leaseTime 自动解锁时间,自动解锁时间一定得大于方法执行时间,否则会导致锁提前释放,默认100
-	 * @param supplier  获取锁后的回调
-	 * @return 返回的数据
-	 */
-	default <T> T lockReentrant(String lockName, long waitTime, long leaseTime, CheckedSupplier<T> supplier) {
-		return lock(lockName, LockType.REENTRANT, waitTime, leaseTime, TimeUnit.SECONDS, supplier);
-	}
+    /**
+     * 公平锁
+     *
+     * @param lockName 锁名
+     * @param supplier 获取锁后的回调
+     * @return 返回的数据
+     */
+    default <T> T lockFair(String lockName, CheckedSupplier<T> supplier) {
+        return lock(lockName, LockType.FAIR, 8, 120, TimeUnit.SECONDS, supplier);
+    }
+
+    /**
+     * 可重入锁
+     *
+     * @param lockName  锁名
+     * @param waitTime  等待锁超时时间
+     * @param leaseTime 自动解锁时间,自动解锁时间一定得大于方法执行时间,否则会导致锁提前释放,默认100
+     * @param supplier  获取锁后的回调
+     * @return 返回的数据
+     */
+    default <T> T lockReentrant(String lockName, long waitTime, long leaseTime, CheckedSupplier<T> supplier) {
+        return lock(lockName, LockType.REENTRANT, waitTime, leaseTime, TimeUnit.SECONDS, supplier);
+    }
 
 }

+ 1 - 1
bladex/blade-auth/src/main/java/org/springblade/auth/utils/WxAppletUtil.java

@@ -8,7 +8,7 @@ public class WxAppletUtil {
     private static final RestTemplate restTemplate = new RestTemplate();
 
     /**
-     * 获取无需小程序openId
+     * 获取微信小程序openId
      *
      * @param appid  小程序appid
      * @param secret 小程序secret

+ 2 - 2
bladex/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java

@@ -45,12 +45,12 @@ public interface LauncherConstant {
 	/**
 	 * nacos prod 地址
 	 */
-	String NACOS_PROD_ADDR = "172.30.0.48:8848";
+	String NACOS_PROD_ADDR = "139.9.76.154:8848";
 
 	/**
 	 * nacos test 地址
 	 */
-	String NACOS_TEST_ADDR = "172.30.0.48:8848";
+	String NACOS_TEST_ADDR = "127.0.0.1:8848";
 
 	/**
 	 * sentinel dev 地址

+ 61 - 38
bladex/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserSearchClient.java

@@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * User Search Feign接口类
@@ -32,50 +33,72 @@ import java.util.List;
  * @author Chill
  */
 @FeignClient(
-	value = AppConstant.APPLICATION_USER_NAME
+        value = AppConstant.APPLICATION_USER_NAME
 )
 public interface IUserSearchClient {
 
-	String API_PREFIX = "/client";
-	String LIST_BY_USER = API_PREFIX + "/user/list-by-user";
-	String LIST_BY_DEPT = API_PREFIX + "/user/list-by-dept";
-	String LIST_BY_POST = API_PREFIX + "/user/list-by-post";
-	String LIST_BY_ROLE = API_PREFIX + "/user/list-by-role";
+    String API_PREFIX = "/client";
+    String LIST_BY_USER = API_PREFIX + "/user/list-by-user";
+    String LIST_BY_DEPT = API_PREFIX + "/user/list-by-dept";
+    String LIST_BY_POST = API_PREFIX + "/user/list-by-post";
+    String LIST_BY_ROLE = API_PREFIX + "/user/list-by-role";
 
-	/**
-	 * 根据用户ID查询用户列表
-	 *
-	 * @param userId 用户ID
-	 * @return 用户列表
-	 */
-	@GetMapping(LIST_BY_USER)
-	R<List<User>> listByUser(@RequestParam("userId") String userId);
+    String MAP_BY_USER = API_PREFIX + "/user/map-by-role";
+    String GET_NAME_BY_USER_ID = API_PREFIX + "/user/get-user-name-and-post-by-user-id";
 
-	/**
-	 * 根据部门ID查询用户列表
-	 *
-	 * @param deptId 部门ID
-	 * @return 用户列表
-	 */
-	@GetMapping(LIST_BY_DEPT)
-	R<List<User>> listByDept(@RequestParam("deptId") String deptId);
+    /**
+     * 根据用户ID查询用户列表
+     *
+     * @param userId 用户ID
+     * @return 用户列表
+     */
+    @GetMapping(LIST_BY_USER)
+    R<List<User>> listByUser(@RequestParam("userId") String userId);
 
-	/**
-	 * 根据岗位ID查询用户列表
-	 *
-	 * @param postId 岗位ID
-	 * @return 用户列表
-	 */
-	@GetMapping(LIST_BY_POST)
-	R<List<User>> listByPost(@RequestParam("postId") String postId);
+    /**
+     * 根据部门ID查询用户列表
+     *
+     * @param deptId 部门ID
+     * @return 用户列表
+     */
+    @GetMapping(LIST_BY_DEPT)
+    R<List<User>> listByDept(@RequestParam("deptId") String deptId);
+
+    /**
+     * 根据岗位ID查询用户列表
+     *
+     * @param postId 岗位ID
+     * @return 用户列表
+     */
+    @GetMapping(LIST_BY_POST)
+    R<List<User>> listByPost(@RequestParam("postId") String postId);
+
+    /**
+     * 根据角色ID查询用户列表
+     *
+     * @param roleId 角色ID
+     * @return 用户列表
+     */
+    @GetMapping(LIST_BY_ROLE)
+    R<List<User>> listByRole(@RequestParam("roleId") String roleId);
+
+    /**
+     * 根据用户id查询用户名称
+     *
+     * @param userIdList 用户id
+     * @return MAP<用户id, 用户名称>
+     */
+    @GetMapping(MAP_BY_USER)
+    R<Map<Long, String>> mapByUser(@RequestParam("userIdList") List<Long> userIdList);
+
+    /**
+     * 通过用户id获取用户名称以及岗位名称
+     *
+     * @param userIdList 用户id
+     * @return MAP<用户id, 用户 、 岗位 、 部门名称>
+     */
+    @GetMapping(GET_NAME_BY_USER_ID)
+    R<Map<Long, Map<String, Object>>> getNameByUserId(@RequestParam("userIdList") List<Long> userIdList);
 
-	/**
-	 * 根据角色ID查询用户列表
-	 *
-	 * @param roleId 角色ID
-	 * @return 用户列表
-	 */
-	@GetMapping(LIST_BY_ROLE)
-	R<List<User>> listByRole(@RequestParam("roleId") String roleId);
 
 }

+ 14 - 0
bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserSearchClient.java

@@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户查询服务Feign实现类
@@ -62,4 +63,17 @@ public class UserSearchClient implements IUserSearchClient {
 	public R<List<User>> listByRole(String roleId) {
 		return R.data(service.listByRole(Func.toLongList(roleId)));
 	}
+
+	@Override
+	@GetMapping(MAP_BY_USER)
+	public R<Map<Long, String>> mapByUser(List<Long> userIdList) {
+		return R.data(service.mapByUser(userIdList));
+	}
+
+	@Override
+	@GetMapping(GET_NAME_BY_USER_ID)
+	public R<Map<Long, Map<String, Object>>> getNameByUserId(List<Long> userIdList) {
+		return R.data(service.getUserNameAndPostByUserId(userIdList));
+	}
+
 }

+ 4 - 0
bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.java

@@ -17,6 +17,7 @@
 package org.springblade.system.user.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
@@ -24,6 +25,7 @@ import org.springblade.system.user.entity.User;
 import org.springblade.system.user.excel.UserExcel;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * Mapper 接口
@@ -60,4 +62,6 @@ public interface UserMapper extends BaseMapper<User> {
 	 */
 	List<UserExcel> exportUser(@Param("ew") Wrapper<User> queryWrapper);
 
+	List<Map<String, Object>> getUserNameAndPostByUserId(@Param("ew") QueryWrapper<Object> wrapper);
+
 }

+ 11 - 0
bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml

@@ -73,4 +73,15 @@
         SELECT id, tenant_id, user_type, account, name, real_name, email, phone, birthday, role_id, dept_id, post_id FROM blade_user ${ew.customSqlSegment}
     </select>
 
+    <select id="getUserNameAndPostByUserId" resultType="java.util.Map">
+        select bu.id                      userId,
+               bu.real_name               userName,
+               group_concat(bp.post_name) postName,
+               group_concat(bd.dept_name) deptName
+        from blade_user bu
+                 left join blade_post bp on bu.post_id like bp.id
+                 left join blade_dept bd on bu.dept_id like bd.id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 17 - 0
bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserSearchService.java

@@ -21,6 +21,7 @@ import org.springblade.core.mp.base.BaseService;
 import org.springblade.system.user.entity.User;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户查询服务类
@@ -61,4 +62,20 @@ public interface IUserSearchService extends BaseService<User> {
 	 */
 	List<User> listByRole(List<Long> roleId);
 
+	/**
+	 * 根据用户id查询用户名称
+	 *
+	 * @param idList 用户id列表
+	 * @return MAP<用户id, 用户名称>
+	 */
+	Map<Long, String> mapByUser(List<Long> idList);
+
+	/**
+	 * 通过用户id获取用户名称以及岗位名称
+	 *
+	 * @param userIdList 用户id
+	 * @return MAP<用户id, 用户名称和岗位Map>
+	 */
+	Map<Long, Map<String, Object>> getUserNameAndPostByUserId(List<Long> userIdList);
+
 }

+ 26 - 0
bladex/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserSearchServiceImpl.java

@@ -20,13 +20,17 @@ package org.springblade.system.user.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseEntity;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.mapper.UserMapper;
 import org.springblade.system.user.service.IUserSearchService;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 用户查询服务实现类
@@ -62,4 +66,26 @@ public class UserSearchServiceImpl extends BaseServiceImpl<UserMapper, User> imp
 		roleId.forEach(id -> queryWrapper.like(User::getRoleId, id).or());
 		return this.list(queryWrapper);
 	}
+
+	@Override
+	public Map<Long, String> mapByUser(List<Long> idList) {
+		if (idList == null || idList.size() == 0) {
+			return new HashMap<>();
+		}
+
+		List<User> list = lambdaQuery().select(BaseEntity::getId, User::getName).in(User::getId, idList).list();
+		return list.stream().collect(Collectors.toMap(User::getId, User::getName));
+	}
+
+	@Override
+	public Map<Long, Map<String, Object>> getUserNameAndPostByUserId(List<Long> userIdList) {
+		List<Map<String, Object>> list = baseMapper.getUserNameAndPostByUserId(
+				Wrappers.query().in("bu.id", userIdList).groupBy("bu.id"));
+
+		return list.stream().collect(Collectors.toMap(
+				item -> (Long) item.get("userId"),
+				item -> item
+		));
+	}
+
 }

+ 7 - 7
hx-common/common-client-util/src/main/java/com/fjhx/utils/UserClientUtil.java

@@ -61,25 +61,25 @@ public class UserClientUtil {
     }
 
     /**
-     * 通过用户id获取用户名称以及岗位名称
+     * 通过用户id获取用户、岗位、部门名称
      */
-    public static Map<Long, Map<String, Object>> getUserNameAndPostByUserId(List<Long> userIdList) {
-        R<Map<Long, Map<String, Object>>> r = getUserSearchClient().getUserNameAndPostByUserId(userIdList);
+    public static Map<Long, Map<String, Object>> getNameByUserId(List<Long> userIdList) {
+        R<Map<Long, Map<String, Object>>> r = getUserSearchClient().getNameByUserId(userIdList);
         if (r.getCode() == ResultCode.SUCCESS.getCode()) {
             return r.getData();
         }
         return new HashMap<>();
     }
 
-    public static <T> Map<Long, Map<String, Object>> getUserNameAndPostFunctionLong(List<T> list, Function<T, Long> mapper) {
+    public static <T> Map<Long, Map<String, Object>> getNameFunctionLong(List<T> list, Function<T, Long> mapper) {
         List<Long> userIdList = list.stream().map(mapper)
                 .distinct().filter(Objects::nonNull)
                 .collect(Collectors.toList());
-        return getUserNameAndPostByUserId(userIdList);
+        return getNameByUserId(userIdList);
     }
 
-    public static Map<String, Object> getUserNameAndPostByUserId(Long userId) {
-        Map<Long, Map<String, Object>> userNameAndPostMap = getUserNameAndPostByUserId(Collections.singletonList(userId));
+    public static Map<String, Object> getNameByUserId(Long userId) {
+        Map<Long, Map<String, Object>> userNameAndPostMap = getNameByUserId(Collections.singletonList(userId));
         return userNameAndPostMap.get(userId);
     }
 

+ 12 - 0
hx-common/common-tool/src/main/java/com/fjhx/utils/Assert.java

@@ -55,6 +55,18 @@ public class Assert {
     }
 
     /**
+     * 断言为0
+     *
+     * @param integer 参数
+     * @param errStr  异常提示
+     */
+    public static void eqZero(Long integer, String errStr) {
+        if (integer != 0) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+    /**
      * 断言为真
      *
      * @param flag   参数

+ 4 - 4
hx-common/library-product/src/main/java/com/fjhx/service/impl/ClassifyServiceImpl.java

@@ -102,14 +102,14 @@ public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> i
         Assert.notEmpty(id, "分类id不能为空");
         Assert.notEmpty(type, "分类类型不能为空");
 
-        Integer childrenCount = lambdaQuery().eq(Classify::getParentId, id).count();
+        Long childrenCount = lambdaQuery().eq(Classify::getParentId, id).count();
         Assert.eqZero(childrenCount, "该分类下存在子级分类,无法删除");
 
         if (type.equals(ClassifyTypeEnum.PRODUCT_TYPE.getCode())) {
-            Integer relationCount = productService.lambdaQuery().eq(Product::getClassifyId, id).count();
+            Long relationCount = productService.lambdaQuery().eq(Product::getClassifyId, id).count();
             Assert.eqZero(relationCount, "该分类下存在产品,无法删除");
         } else {
-            Integer relationCount = materialService.lambdaQuery().eq(Material::getClassifyId, id).count();
+            Long relationCount = materialService.lambdaQuery().eq(Material::getClassifyId, id).count();
             Assert.eqZero(relationCount, "该分类下存在物料,无法删除");
         }
 
@@ -139,7 +139,7 @@ public class ClassifyServiceImpl extends ServiceImpl<ClassifyMapper, Classify> i
      */
     private void peerNameOnly(Long parentId, String classifyName, Long excludeId) {
 
-        Integer count = lambdaQuery()
+        Long count = lambdaQuery()
                 .eq(BaseEntity::getTenantId, AuthUtil.getTenantId())
                 .eq(Classify::getParentId, parentId)
                 .eq(Classify::getName, classifyName)

+ 2 - 2
hx-common/library-product/src/main/java/com/fjhx/service/impl/MaterialServiceImpl.java

@@ -3,8 +3,8 @@ package com.fjhx.service.impl;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.base.BaseEntity;
-import com.fjhx.constants.LibraryProductLockConstant;
 import com.fjhx.constants.ErrorMsgConstant;
+import com.fjhx.constants.LibraryProductLockConstant;
 import com.fjhx.entity.Material;
 import com.fjhx.mapper.MaterialMapper;
 import com.fjhx.service.MaterialService;
@@ -83,7 +83,7 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
      * @param excludeId    排除物料id(编辑时不判断自己)
      */
     private void materialCodeOnly(String tenantId, String materialCode, Long excludeId) {
-        Integer count = lambdaQuery()
+        Long count = lambdaQuery()
                 .eq(BaseEntity::getTenantId, tenantId)
                 .eq(Material::getCode, materialCode)
                 .ne(ObjectUtil.isNotEmpty(excludeId), BaseEntity::getId, excludeId)

+ 1 - 1
hx-common/library-product/src/main/java/com/fjhx/service/impl/ProductServiceImpl.java

@@ -74,7 +74,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
      * @param excludeId   排除产品id(编辑时不判断自己)
      */
     private void productCodeOnly(String tenantId, String productCode, Long excludeId) {
-        Integer count = lambdaQuery()
+        Long count = lambdaQuery()
                 .eq(BaseEntity::getTenantId, tenantId)
                 .eq(Product::getCode, productCode)
                 .ne(ObjectUtil.isNotEmpty(excludeId), BaseEntity::getId, excludeId)

+ 1 - 1
hx-common/library-storage/src/main/java/com/fjhx/service/impl/WarehouseServiceImpl.java

@@ -33,7 +33,7 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse
         Long id = warehouse.getId();
 
         // 验证仓库名称是否重复
-        int count = count(Wrappers.<Warehouse>lambdaQuery()
+        Long count = count(Wrappers.<Warehouse>lambdaQuery()
                 .eq(Warehouse::getName, name)
                 .eq(BaseEntity::getTenantId, AuthUtil.getTenantId())
                 .ne(ObjectUtil.isNotEmpty(id), BaseEntity::getId, id)

+ 2 - 2
hx-common/library-supply/src/main/java/com/fjhx/service/impl/ApplyPurchaseServiceImpl.java

@@ -72,7 +72,7 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
     @Override
     public void initiateSubscription(List<ApplyPurchase> applyPurchaseList, Long flowLinkNo, String code) {
         initiateSubscriptionFun(applyPurchaseList, flowLinkNo, () -> {
-            int count = count(Wrappers.<ApplyPurchase>lambdaQuery()
+            Long count = count(Wrappers.<ApplyPurchase>lambdaQuery()
                     .eq(ApplyPurchase::getCode, code)
                     .eq(BaseEntity::getTenantId, AuthUtil.getTenantId()));
             Assert.eqZero(count, "申购单号已存在");
@@ -227,7 +227,7 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
     @Override
     public boolean orderIsComplete(Long orderId) {
 
-        int count = count(Wrappers.<ApplyPurchase>lambdaQuery()
+        Long count = count(Wrappers.<ApplyPurchase>lambdaQuery()
                 .eq(ApplyPurchase::getOrderId, orderId)
                 .eq(ApplyPurchase::getCompleteStatus, StatusConstant.NO)
         );

+ 1 - 1
hx-common/library-supply/src/main/java/com/fjhx/service/impl/BackGoodsServiceImpl.java

@@ -41,7 +41,7 @@ public class BackGoodsServiceImpl extends ServiceImpl<BackGoodsMapper, BackGoods
             String code = backGoods.getCode();
             Assert.notEmpty(code, "退货单号不能为空");
 
-            int count = count(Wrappers.<BackGoods>lambdaQuery()
+            Long count = count(Wrappers.<BackGoods>lambdaQuery()
                     .eq(BackGoods::getCode, code)
                     .eq(BaseEntity::getTenantId, AuthUtil.getTenantId()));
             Assert.eqZero(count, "退货单号已存在");

+ 1 - 1
hx-common/library-supply/src/main/java/com/fjhx/service/impl/OrderServiceImpl.java

@@ -49,7 +49,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Override
     public void createOrder(Long supplierId, List<ApplyPurchase> applyPurchaseList, String code) {
         createOrderFun(supplierId, applyPurchaseList, () -> {
-            int count = count(Wrappers.<Order>lambdaQuery()
+            Long count = count(Wrappers.<Order>lambdaQuery()
                     .eq(Order::getCode, code)
                     .eq(BaseEntity::getTenantId, AuthUtil.getTenantId()));
             Assert.eqZero(count, "订号已存在");

+ 1 - 1
hx-common/service-flow/src/main/java/com/fjhx/feign/FlowClient.java

@@ -64,7 +64,7 @@ public class FlowClient implements IFlowClient {
 
         ExampleResult exampleResult = new ExampleResult();
 
-        int count = exampleInfoService.count(Wrappers.<ExampleInfo>lambdaQuery()
+        Long count = exampleInfoService.count(Wrappers.<ExampleInfo>lambdaQuery()
                 .eq(ExampleInfo::getFlowLinkNo, flowLinkNo)
                 .eq(ExampleInfo::getComplete, StatusConstant.NO));
 

+ 1 - 1
hx-common/service-flow/src/main/java/com/fjhx/service/example/impl/ExampleInfoServiceImpl.java

@@ -127,7 +127,7 @@ public class ExampleInfoServiceImpl extends ServiceImpl<ExampleInfoMapper, Examp
 
         // 查询用户名称与岗位
         List<Long> userId = result.stream().map(item -> (Long) item.get("userId")).collect(Collectors.toList());
-        Map<Long, Map<String, Object>> userNameAndPost = UserClientUtil.getUserNameAndPostByUserId(userId);
+        Map<Long, Map<String, Object>> userNameAndPost = UserClientUtil.getNameByUserId(userId);
 
         // 查询所有节点
         List<ProcessNode> processNodeList = processNodeService.list(ProcessNode::getProcessTenantId, exampleInfo.getProcessTenantId());

+ 1 - 1
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessInfoServiceImpl.java

@@ -67,7 +67,7 @@ public class ProcessInfoServiceImpl extends ServiceImpl<ProcessInfoMapper, Proce
         Assert.notEmpty(moduleName, FlowExplainConstant.MODULE_NAME_EMPTY);
 
         // 验证编码唯一性
-        Integer count = count(ProcessInfo::getCode, processInfo.getCode());
+        Long count = count(ProcessInfo::getCode, processInfo.getCode());
         Assert.eqZero(count, FlowExplainConstant.PROCESS_EXIST);
 
         // 创建流程

+ 1 - 1
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessTenantServiceImpl.java

@@ -74,7 +74,7 @@ public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, P
         }
 
         // 判断流程是否存在
-        int count = count(Wrappers.<ProcessTenant>lambdaQuery()
+        Long count = count(Wrappers.<ProcessTenant>lambdaQuery()
                 .eq(ProcessTenant::getBindingTenantId, processTenant.getBindingTenantId())
                 .eq(ProcessTenant::getProcessInfoId, processInfoId));
         Assert.eqZero(count, FlowExplainConstant.PROCESS_EXIST);

+ 2 - 2
hx-common/service-video/src/main/java/com/fjhx/service/video/impl/VideoClassifyServiceImpl.java

@@ -89,7 +89,7 @@ public class VideoClassifyServiceImpl extends ServiceImpl<VideoClassifyMapper, V
 
         Assert.notEmpty(id, "分类id不能为空");
 
-        Integer childrenCount = lambdaQuery().eq(VideoClassify::getParentId, id).count();
+        Long childrenCount = lambdaQuery().eq(VideoClassify::getParentId, id).count();
         Assert.eqZero(childrenCount, "该分类下存在子级分类,无法删除");
 
         removeById(classifyVo.getId());
@@ -167,7 +167,7 @@ public class VideoClassifyServiceImpl extends ServiceImpl<VideoClassifyMapper, V
      */
     private void peerNameOnly(Long parentId, String classifyName, Long excludeId) {
 
-        Integer count = lambdaQuery()
+        Long count = lambdaQuery()
                 .eq(BaseEntity::getTenantId, AuthUtil.getTenantId())
                 .eq(VideoClassify::getParentId, parentId)
                 .eq(VideoClassify::getName, classifyName)

+ 12 - 5
hx-service-api/service-flow-api/src/main/java/com/fjhx/utils/FlowConstructor.java

@@ -12,7 +12,14 @@ import org.springblade.core.tool.api.R;
 
 public class FlowConstructor {
 
-    private static final IFlowClient flowClient = SpringUtil.getBean(IFlowClient.class);
+    private static IFlowClient flowClient;
+
+    private synchronized static IFlowClient getFlowClient() {
+        if (flowClient == null) {
+            flowClient = SpringUtil.getBean(IFlowClient.class);
+        }
+        return flowClient;
+    }
 
     private final ExampleAbstract exampleAbstract;
 
@@ -33,7 +40,7 @@ public class FlowConstructor {
      * @param result 流程返回值
      */
     public static void rollBack(ExampleResult result) {
-        flowClient.rollBack(result);
+        getFlowClient().rollBack(result);
     }
 
     /**
@@ -70,7 +77,7 @@ public class FlowConstructor {
         String nodeCode = exampleAbstract.circulation();
 
         // 执行流程
-        R<ExampleResult> exampleResultR = flowClient.create(flowLinkNo, code, nodeCode, title, remarks, cacheDataStr);
+        R<ExampleResult> exampleResultR = getFlowClient().create(flowLinkNo, code, nodeCode, title, remarks, cacheDataStr);
         ExampleResult result = Assert.result(exampleResultR);
 
         // 默认流程,直接执行结束方法
@@ -121,7 +128,7 @@ public class FlowConstructor {
         String nodeCode = exampleAbstract.circulation();
 
         // 获取按钮
-        JumpVo jumpVo = Assert.result(flowClient.getJumpVo(buttonId, nodeCode));
+        JumpVo jumpVo = Assert.result(getFlowClient().getJumpVo(buttonId, nodeCode));
         jumpVo.setFlowLinkNo(flowLinkNo);
         jumpVo.setRemarks(remarks);
         jumpVo.setCacheDataStr(cacheDataStr);
@@ -136,7 +143,7 @@ public class FlowConstructor {
      */
     private ExampleResult flowJump(JumpVo jumpVo) {
 
-        R<ExampleResult> exampleResultR = flowClient.jump(jumpVo);
+        R<ExampleResult> exampleResultR = getFlowClient().jump(jumpVo);
         ExampleResult result = Assert.result(exampleResultR);
 
         exampleAbstract.setCacheData(result.getCacheDataStr());

+ 1 - 1
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/base/StorageBaseService.java

@@ -85,7 +85,7 @@ public interface StorageBaseService<T> extends IService<T> {
     /**
      * 条件查询
      */
-    default Integer count(SFunction<T, ?> column, Object val) {
+    default Long count(SFunction<T, ?> column, Object val) {
         return lambdaQuery().eq(column, val).count();
     }
 

+ 0 - 3
hx-service/storage-restructure/src/main/java/com/fjhx/controller/apply/ApplyPurchaseController.java

@@ -1,13 +1,11 @@
 package com.fjhx.controller.apply;
 
-import cn.hutool.http.HttpUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.Condition;
 import com.fjhx.params.JumpVo;
 import com.fjhx.params.apply.ApplyPurchaseVo;
 import com.fjhx.service.apply.ApplyPurchaseService;
 import com.fjhx.service.flow.InitiateApplyFlowService;
-import lombok.SneakyThrows;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -15,7 +13,6 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.io.FileOutputStream;
 import java.util.List;
 import java.util.Map;
 

+ 2 - 2
hx-service/storage-restructure/src/main/java/com/fjhx/service/apply/impl/ApplyPurchaseServiceImpl.java

@@ -230,7 +230,7 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
         }
 
         Map<Long, Map<String, Object>> createUser = UserClientUtil
-                .getUserNameAndPostFunctionLong(records, item -> Convert.toLong(item.get("createUser")));
+                .getNameFunctionLong(records, item -> Convert.toLong(item.get("createUser")));
 
         for (Map<String, Object> record : records) {
             Long createUserId = Convert.toLong(record.get("createUser"));
@@ -253,7 +253,7 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
         result.put("purchaseDept", "采购部");
 
         // 获取申购部门和申购人
-        Map<String, Object> userNameAndPostMap = UserClientUtil.getUserNameAndPostByUserId(applyPurchase.getCreateUser());
+        Map<String, Object> userNameAndPostMap = UserClientUtil.getNameByUserId(applyPurchase.getCreateUser());
         if (userNameAndPostMap != null) {
             result.putAll(userNameAndPostMap);
         }

+ 2 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/service/contract/impl/ContractServiceImpl.java

@@ -28,6 +28,7 @@ import com.fjhx.service.contract.ContractService;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.ThreadUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -46,13 +47,13 @@ import java.util.stream.Collectors;
 public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> implements ContractService {
 
     private static final Object UPDATE_ADJUST_BY_QUALITY_TESTING_ID_OBJ = new Object();
-    private static final Object UPDATE_BACK_AMOUNT_AND_QUANTITY_OBJ = new Object();
     private static final Object CREATE_OBJ = new Object();
 
     @Autowired
     private CommonConfigService commonConfigService;
 
     @Autowired
+    @Lazy
     private ContractDetailsService contractDetailsService;
 
     @Override

+ 1 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/service/material/impl/MaterialClassifyServiceImpl.java

@@ -67,7 +67,7 @@ public class MaterialClassifyServiceImpl extends ServiceImpl<MaterialClassifyMap
      */
     private void peerNameAndCodeOnly(Long parentId, String name, String code, Long excludeId) {
 
-        Integer count = lambdaQuery()
+        Long count = lambdaQuery()
                 .eq(MaterialClassify::getParentId, parentId)
                 .and(q -> q.eq(MaterialClassify::getName, name).or().eq(MaterialClassify::getCode, code))
                 .ne(ObjectUtil.isNotEmpty(excludeId), MaterialClassify::getId, excludeId)

+ 3 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/impl/QualityTestingServiceImpl.java

@@ -31,6 +31,7 @@ import com.fjhx.utils.BigDecimalUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.ThreadUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -58,12 +59,14 @@ public class QualityTestingServiceImpl extends ServiceImpl<QualityTestingMapper,
     private WaterBatchService waterBatchService;
 
     @Autowired
+    @Lazy
     private QualityTestingDetailsService qualityTestingDetailsService;
 
     @Autowired
     private WaterTagService waterTagService;
 
     @Autowired
+    @Lazy
     private CheckQuantityCorrectFlowService checkQuantityCorrectFlowService;
 
     @Autowired

+ 2 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/service/supplier/impl/SupplierPriceServiceImpl.java

@@ -40,7 +40,8 @@ public class SupplierPriceServiceImpl extends ServiceImpl<SupplierPriceMapper, S
 
     @Override
     public void add(SupplierPriceVo supplierPriceVo) {
-        int count = count(Wrappers.<SupplierPrice>lambdaQuery()
+        Long count = count(
+                Wrappers.<SupplierPrice>lambdaQuery()
                 .eq(SupplierPrice::getSupplierId, supplierPriceVo.getSupplierId())
                 .eq(SupplierPrice::getMaterialId, supplierPriceVo.getMaterialId()));
 

+ 3 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterBatchServiceImpl.java

@@ -15,6 +15,7 @@ import com.fjhx.service.water.WaterTagService;
 import com.fjhx.utils.Assert;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -38,9 +39,11 @@ public class WaterBatchServiceImpl extends ServiceImpl<WaterBatchMapper, WaterBa
     private static final Object ADD_OBJ = new Object();
 
     @Autowired
+    @Lazy // 解决依赖循环问题
     private WaterTagService waterTagService;
 
     @Autowired
+    @Lazy
     private ContractDetailsService contractDetailsService;
 
     @Override

+ 2 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterServiceImpl.java

@@ -21,6 +21,7 @@ import com.fjhx.service.water.WaterTagService;
 import com.fjhx.utils.Assert;
 import org.springblade.core.log.exception.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -55,6 +56,7 @@ public class WaterServiceImpl extends ServiceImpl<WaterMapper, Water> implements
     private QualityTestingService qualityTestingService;
 
     @Autowired
+    @Lazy
     private ReturnOrScrapIssueFlowService returnOrScrapIssueFlowService;
 
     @Autowired

+ 16 - 12
hx-service/storage/src/main/java/com/fjhx/purchase/controller/PurchaseContractController.java

@@ -2,10 +2,8 @@ package com.fjhx.purchase.controller;
 
 import com.fjhx.base.ListPageMap;
 import com.fjhx.entity.purchase.PurchaseContract;
-import com.fjhx.entity.supplier.Supplier;
-import oracle.jdbc.proxy.annotation.Post;
-import org.springblade.core.tool.api.R;
 import com.fjhx.purchase.service.PurchaseContractService;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -30,40 +28,44 @@ public class PurchaseContractController {
 
     /**
      * 校验是否为新供应商
+     *
      * @param supplierId
      * @param materialCode
      * @return
      */
     @GetMapping("/check/isNewSu")
-    public R monthGetSum(@RequestParam("supplierId")String supplierId,
-                         @RequestParam("materialCode")String materialCode){
-        int count = purchaseContractService.checkNewSupplier(supplierId,materialCode);
+    public R monthGetSum(@RequestParam("supplierId") String supplierId,
+                         @RequestParam("materialCode") String materialCode) {
+        Long count = purchaseContractService.checkNewSupplier(supplierId, materialCode);
         return R.success(count);
     }
 
     /**
      * 上次面料采购
+     *
      * @param materialCode
      * @return
      */
     @GetMapping("last/newPur")
-    public R newPur(@RequestParam("materialCode")String materialCode){
+    public R newPur(@RequestParam("materialCode") String materialCode) {
         PurchaseContract data = purchaseContractService.newPur(materialCode);
         return R.success(data);
     }
 
     /**
      * 合同历史付款记录
+     *
      * @return
      */
     @GetMapping("history/list")
-    public R newPur(){
-        List<Map<String,Object>> data = purchaseContractService.historyPayList();
+    public R newPur() {
+        List<Map<String, Object>> data = purchaseContractService.historyPayList();
         return R.success(data);
     }
 
     /**
      * 列表
+     *
      * @param condition
      * @return
      */
@@ -76,11 +78,12 @@ public class PurchaseContractController {
 
     /**
      * 列表条数
+     *
      * @param condition
      * @return
      */
     @PostMapping("/pay/list/count")
-    public R listCount(@RequestBody Map<String, Object> condition){
+    public R listCount(@RequestBody Map<String, Object> condition) {
         ListPageMap.getListPageMap(condition);
         Integer count = purchaseContractService.getPayListCount(condition);
         return R.success(count);
@@ -88,12 +91,13 @@ public class PurchaseContractController {
 
     /**
      * 统计
+     *
      * @param condition
      * @return
      */
     @PostMapping("/pay/statistics")
-    public R statistics(@RequestBody Map<String, Object> condition){
-        List<Map<String,Object>> list = purchaseContractService.getPayGroupBySu(condition);
+    public R statistics(@RequestBody Map<String, Object> condition) {
+        List<Map<String, Object>> list = purchaseContractService.getPayGroupBySu(condition);
         return R.success(list);
     }
 

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/purchase/service/PurchaseContractService.java

@@ -24,7 +24,7 @@ public interface PurchaseContractService extends BaseService<PurchaseContract> {
      * @param materialCode
      * @return
      */
-    int checkNewSupplier(String supplierId,String materialCode);
+    Long checkNewSupplier(String supplierId,String materialCode);
 
     /**
      * 上次面料采购

+ 2 - 2
hx-service/storage/src/main/java/com/fjhx/purchase/service/impl/PurchaseContractServiceImpl.java

@@ -35,8 +35,8 @@ public class PurchaseContractServiceImpl extends ServiceImpl<PurchaseContractMap
      * @return
      */
     @Override
-    public int checkNewSupplier(String supplierId, String materialCode) {
-        int count = baseMapper.selectCount(Wrappers.<PurchaseContract>query().lambda().
+    public Long checkNewSupplier(String supplierId, String materialCode) {
+        Long count = baseMapper.selectCount(Wrappers.<PurchaseContract>query().lambda().
                 eq(PurchaseContract::getSupplierId, supplierId).
                 eq(PurchaseContract::getMaterialCode, materialCode));
         return count;

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/supplier/controller/SupplierController.java

@@ -1,9 +1,9 @@
 package com.fjhx.supplier.controller;
 
+import com.fjhx.base.ListPageMap;
 import com.fjhx.entity.supplier.Supplier;
 import com.fjhx.supplier.service.SupplierService;
 import com.fjhx.utils.BigDecimalUtil;
-import org.springblade.common.utils.ListPageMap;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/supplier/controller/SupplierPricechangeController.java

@@ -1,8 +1,8 @@
 package com.fjhx.supplier.controller;
 
+import com.fjhx.base.ListPageMap;
 import com.fjhx.entity.supplier.SupplierPricechange;
 import com.fjhx.supplier.service.SupplierPricechangeService;
-import org.springblade.common.utils.ListPageMap;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/supplier/controller/SupplierProblemController.java

@@ -93,7 +93,7 @@ public class SupplierProblemController {
      */
     @GetMapping("/statisticsProblemCount")
     public R statisticsProblemCount(@RequestParam("id")String id){
-        Integer count = supplierProblemService.statisticsProblemCount(id);
+        Long count = supplierProblemService.statisticsProblemCount(id);
         return R.success(count);
     }
 

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/supplier/service/SupplierProblemService.java

@@ -39,5 +39,5 @@ public interface SupplierProblemService extends BaseService<SupplierProblem> {
      * @param supplierId
      * @return
      */
-    Integer statisticsProblemCount(String supplierId);
+    Long statisticsProblemCount(String supplierId);
 }

+ 27 - 17
hx-service/storage/src/main/java/com/fjhx/supplier/service/impl/SupplierProblemServiceImpl.java

@@ -12,8 +12,6 @@ import com.fjhx.params.supplier.SupplierProblemVo;
 import com.fjhx.supplier.mapper.SupplierProblemMapper;
 import com.fjhx.supplier.service.SupplierProblemService;
 import com.fjhx.utils.WrapperUtil;
-import org.apache.commons.lang.StringUtils;
-import org.springblade.common.utils.ListUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
@@ -54,12 +52,13 @@ public class SupplierProblemServiceImpl extends ServiceImpl<SupplierProblemMappe
 
     /**
      * 保存
+     *
      * @param supplierProblemVo
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void add(SupplierProblemVo supplierProblemVo) {
-        if(StringUtil.isEmpty(supplierProblemVo.getProblemType())){
+        if (StringUtil.isEmpty(supplierProblemVo.getProblemType())) {
             throw new ServiceException("参数异常");
         }
         //保存数据
@@ -67,8 +66,8 @@ public class SupplierProblemServiceImpl extends ServiceImpl<SupplierProblemMappe
         supplierProblemVo.setProblemTypeCount(String.valueOf(Arrays.asList(supplierProblemVo.getProblemType().split(",")).size()));
         save(supplierProblemVo);
         List<StockAttachment> attr = supplierProblemVo.getAttr();
-        if(CollectionUtil.isNotEmpty(attr)){
-            for(StockAttachment s:attr){
+        if (CollectionUtil.isNotEmpty(attr)) {
+            for (StockAttachment s : attr) {
                 s.setBusiId(supplierProblemVo.getId());
                 s.setBusiType(AttachmentTypeEnum.TYPE_ONE.getKey());
                 s.setCreatedTime(new Date());
@@ -79,21 +78,22 @@ public class SupplierProblemServiceImpl extends ServiceImpl<SupplierProblemMappe
 
     /**
      * 修改
+     *
      * @param supplierProblemVo
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void edit(SupplierProblemVo supplierProblemVo) {
-        if(StringUtil.isEmpty(supplierProblemVo.getId())){
+        if (StringUtil.isEmpty(supplierProblemVo.getId())) {
             throw new ServiceException("参数异常");
         }
         supplierProblemVo.setUpdatedTime(new Date());
         updateById(supplierProblemVo);
         List<StockAttachment> attr = supplierProblemVo.getAttr();
-        if(CollectionUtil.isNotEmpty(attr)){
+        if (CollectionUtil.isNotEmpty(attr)) {
             //清空文件重新添加
-            stockAttachmentService.remove(Wrappers.<StockAttachment>query().lambda().eq(StockAttachment::getBusiId,supplierProblemVo.getId()));
-            for(StockAttachment s:attr){
+            stockAttachmentService.remove(Wrappers.<StockAttachment>query().lambda().eq(StockAttachment::getBusiId, supplierProblemVo.getId()));
+            for (StockAttachment s : attr) {
                 s.setBusiId(supplierProblemVo.getId());
                 s.setBusiType(AttachmentTypeEnum.TYPE_ONE.getKey());
             }
@@ -103,24 +103,26 @@ public class SupplierProblemServiceImpl extends ServiceImpl<SupplierProblemMappe
 
     /**
      * 删除
+     *
      * @param supplierProblemVo
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void delete(SupplierProblemVo supplierProblemVo) {
         removeById(supplierProblemVo.getId());
-        stockAttachmentService.remove(Wrappers.<StockAttachment>query().lambda().eq(StockAttachment::getBusiId,supplierProblemVo.getId()));
+        stockAttachmentService.remove(Wrappers.<StockAttachment>query().lambda().eq(StockAttachment::getBusiId, supplierProblemVo.getId()));
     }
 
     /**
      * 详情
+     *
      * @param id
      * @return
      */
     @Override
     public SupplierProblem detail(String id) {
         SupplierProblem vo = getById(id);
-        if(ObjectUtil.isNotEmpty(vo)){
+        if (ObjectUtil.isNotEmpty(vo)) {
             vo.setAttr(stockAttachmentService.getListByBusi(id));
         }
         return vo;
@@ -128,27 +130,35 @@ public class SupplierProblemServiceImpl extends ServiceImpl<SupplierProblemMappe
 
     /**
      * 面料问题反馈
+     *
      * @param supplierId
      * @return
      */
     @Override
     public Map<String, Integer> statisticsProblem(String supplierId) {
         String count = baseMapper.getGroupConcatType(supplierId);
-        Map<String,Integer> map = new HashMap<>();
-        if(StringUtils.isNotEmpty(count)){
-            List<String> list = Arrays.asList(count.split(","));
-            map = ListUtil.duplicateCheckingCount(list);
+        Map<String, Integer> map = new HashMap<>();
+        if (ObjectUtil.isNotEmpty(count)) {
+            String[] list = count.split(",");
+            for (String string : list) {
+                if (map.containsKey(string)) {
+                    map.put(string, map.get(string) + 1);
+                } else {
+                    map.put(string, 1);
+                }
+            }
         }
         return map;
     }
 
     /**
      * 面料问题反馈条数
+     *
      * @param supplierId
      * @return
      */
     @Override
-    public Integer statisticsProblemCount(String supplierId) {
-        return baseMapper.selectCount(Wrappers.<SupplierProblem>query().lambda().eq(SupplierProblem::getSupplierId,supplierId));
+    public Long statisticsProblemCount(String supplierId) {
+        return baseMapper.selectCount(Wrappers.<SupplierProblem>query().lambda().eq(SupplierProblem::getSupplierId, supplierId));
     }
 }

+ 10 - 2
hx-service/storage/src/main/java/com/fjhx/supplier/service/impl/SupplierServiceImpl.java

@@ -9,7 +9,6 @@ import com.fjhx.entity.supplier.Supplier;
 import com.fjhx.purchase.service.PurchaseContractService;
 import com.fjhx.supplier.mapper.SupplierMapper;
 import com.fjhx.supplier.service.SupplierService;
-import org.springblade.common.utils.CodeUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
@@ -19,6 +18,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -133,7 +133,15 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
             if (ObjectUtil.isEmpty(sCode)) {
                 supplier.setCode("C001");
             } else {
-                supplier.setCode(sCode.getCode() == null ? "c001" : CodeUtil.generateWmsCode(sCode.getCode()));
+                String code = sCode.getCode();
+                if (code == null) {
+                    supplier.setCode("c001");
+                } else {
+                    DecimalFormat decimalFormat = new DecimalFormat("0000");
+                    int i = Integer.parseInt(code.substring(1)) + 1;
+                    String k = decimalFormat.format(i);
+                    supplier.setCode("C" + k);
+                }
             }
         }
         save(supplier);

+ 1 - 1
hx-service/syringe-management/src/main/java/com/fjhx/service/bom/impl/BomServiceImpl.java

@@ -85,7 +85,7 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
         // 保证每个租户物料编码唯一
         Boolean flag = redisLockClient.lockFair(IotManagementLockConstant.BOM_EDITION_LOCK + productId,
                 () -> {
-                    Integer count = count(Bom::getProductId, productId);
+                    Long count = count(Bom::getProductId, productId);
                     bomVo.setCurrentEdition(count == 0 ? StatusConstant.YES : StatusConstant.NO);
                     save(bomVo);
                     return true;

+ 1 - 1
hx-service/syringe-production/src/main/java/com/fjhx/service/tda/impl/TdaApplicationServiceImpl.java

@@ -72,7 +72,7 @@ public class TdaApplicationServiceImpl extends ServiceImpl<TdaApplicationMapper,
         Assert.notEmpty(id, "行业表id不能为空");
 
         // 查询行业是否已添加产品,已添加产品则不可删除
-        Integer count = tdaProductService.count(TdaProduct::getTdaApplicationId, id);
+        Long count = tdaProductService.count(TdaProduct::getTdaApplicationId, id);
         Assert.eqZero(count, "行业已添加产品,无法删除");
 
         // 华为ioDta删除资源空间

+ 1 - 1
hx-service/syringe-production/src/main/java/com/fjhx/service/tda/impl/TdaProductServiceImpl.java

@@ -87,7 +87,7 @@ public class TdaProductServiceImpl extends ServiceImpl<TdaProductMapper, TdaProd
         Assert.notEmpty(id, "产品表id不能为空");
 
         // 查询产品是否已添加设备,已添加设备则不可删除
-        Integer count = tdaDeviceService.count(TdaDevice::getTdaProductId, id);
+        Long count = tdaDeviceService.count(TdaDevice::getTdaProductId, id);
         Assert.eqZero(count, "产品已添加设备,无法删除");
 
         // 华为ioDta删除产品