|
|
@@ -0,0 +1,100 @@
|
|
|
+package cn.start.tz.module.pressure2.service.dynamicOFData.util;
|
|
|
+
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderuser.BoilerTaskOrderUserDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
|
|
|
+import cn.start.tz.module.system.api.user.AdminUserApi;
|
|
|
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
+import com.alibaba.fastjson2.JSONObject;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 检验员信息处理工具类 -- 管道
|
|
|
+ */
|
|
|
+public class InspectorInfoPipeUtil {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 填充检验员签名信息到结果对象中
|
|
|
+ *
|
|
|
+ * @param result 结果JSONObject
|
|
|
+ * @param checkUserList 检验员用户列表
|
|
|
+ * @param mainCheckerId 主检验员ID
|
|
|
+ * @param adminUserApi 用户API
|
|
|
+ * @param maxCount 最大检验员数量(默认7)
|
|
|
+ */
|
|
|
+ public static void fillInspectorSignatures(JSONObject result,
|
|
|
+ List<PipeTaskOrderUserDO> checkUserList,
|
|
|
+ String mainCheckerId,
|
|
|
+ AdminUserApi adminUserApi,
|
|
|
+ int maxCount) {
|
|
|
+ if (checkUserList == null || checkUserList.isEmpty() || adminUserApi == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果mainChecker不为空且不在checkUserList中,则添加
|
|
|
+ if (mainCheckerId != null) {
|
|
|
+ boolean hasMainChecker = checkUserList.stream()
|
|
|
+ .anyMatch(user -> mainCheckerId.equals(user.getUserId()));
|
|
|
+ if (!hasMainChecker) {
|
|
|
+ PipeTaskOrderUserDO mainCheckerUser = new PipeTaskOrderUserDO();
|
|
|
+ mainCheckerUser.setUserId(mainCheckerId);
|
|
|
+ checkUserList.add(mainCheckerUser);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取用户信息
|
|
|
+ List<String> userIds = checkUserList.stream()
|
|
|
+ .map(PipeTaskOrderUserDO::getUserId)
|
|
|
+ .toList();
|
|
|
+
|
|
|
+ List<AdminUserRespDTO> userList = adminUserApi.getUserList(userIds).getData();
|
|
|
+
|
|
|
+ if (userList == null || userList.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 将mainChecker对应的用户排在第一个
|
|
|
+ if (mainCheckerId != null) {
|
|
|
+ userList.sort((u1, u2) -> {
|
|
|
+ if (mainCheckerId.equals(u1.getId())) {
|
|
|
+ return -1;
|
|
|
+ } else if (mainCheckerId.equals(u2.getId())) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 填充签名信息
|
|
|
+ AtomicInteger number = new AtomicInteger(1);
|
|
|
+ for (AdminUserRespDTO adminUserRespDTO : userList) {
|
|
|
+ if (adminUserRespDTO.getSignUrl() != null && !adminUserRespDTO.getSignUrl().isEmpty()) {
|
|
|
+ result.put("checkName_" + number.get(), adminUserRespDTO.getSignUrl());
|
|
|
+ number.getAndIncrement();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果个数小于maxCount,将后面的checkName都改成空白
|
|
|
+ if (number.get() < maxCount) {
|
|
|
+ for (int i = number.get(); i <= maxCount; i++) {
|
|
|
+ result.put("checkName_" + i, " ");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 填充检验员签名信息到结果对象中(默认最大数量为7)
|
|
|
+ *
|
|
|
+ * @param result 结果JSONObject
|
|
|
+ * @param checkUserList 检验员用户列表
|
|
|
+ * @param mainCheckerId 主检验员ID
|
|
|
+ * @param adminUserApi 用户API
|
|
|
+ */
|
|
|
+ public static void fillInspectorSignatures(JSONObject result,
|
|
|
+ List<PipeTaskOrderUserDO> checkUserList,
|
|
|
+ String mainCheckerId,
|
|
|
+ AdminUserApi adminUserApi) {
|
|
|
+ fillInspectorSignatures(result, checkUserList, mainCheckerId, adminUserApi, 7);
|
|
|
+ }
|
|
|
+}
|