Преглед на файлове

管道检验校核单个检验员需要选择部门主任校核

xy преди 2 седмици
родител
ревизия
1db45cae46

+ 4 - 2
tz-framework/tz-spring-boot-starter-biz-data-permission/src/main/java/cn/start/tz/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java

@@ -16,7 +16,9 @@ import cn.start.tz.module.system.api.permission.dto.DeptDataPermissionRespDTO;
 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import net.sf.jsqlparser.expression.*;
+import net.sf.jsqlparser.expression.Alias;
+import net.sf.jsqlparser.expression.Expression;
+import net.sf.jsqlparser.expression.StringValue;
 import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
 import net.sf.jsqlparser.expression.operators.relational.EqualsTo;
 import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
@@ -57,7 +59,7 @@ public class DeptDataPermissionRule implements DataPermissionRule {
     private static final String DEPT_COLUMN_NAME = "dept_id";
     private static final String USER_COLUMN_NAME = "user_id";
 
-    static final Expression EXPRESSION_NULL = new NullValue();
+    static final Expression EXPRESSION_NULL = new EqualsTo(new StringValue("1"), new StringValue("0"));
 
     private final PermissionApi permissionApi;
 

+ 17 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java

@@ -5362,6 +5362,23 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
         if (!orderUserDOList.isEmpty()) {
 
             List<String> uIds = new ArrayList<>(orderUserDOList.stream().map(PipeTaskOrderUserDO::getUserId).toList());
+
+            // 如果任务单只有一个检验员,将管道主任(角色标识 Pipeline Director)加入校核人列表
+            if (orderUserDOList.size() == 1) {
+                try {
+                    List<AdminUserRespDTO> roleUsers = adminUserApi.getUserListByRoleCode("Pipeline Director").getCheckedData();
+                    if (roleUsers != null) {
+                        for (AdminUserRespDTO roleUser : roleUsers) {
+                            if (!uIds.contains(roleUser.getId())) {
+                                uIds.add(roleUser.getId());
+                            }
+                        }
+                    }
+                } catch (Exception e) {
+                    log.warn("获取管道主任(Pipeline Director)角色用户失败, orderId: {}", pageReqVO.getOrderId(), e);
+                }
+            }
+
             List<AdminUserRespDTO> userList = adminUserApi.getUserList(uIds).getData();
 
             if (pageReqVO.getNickName() != null){

+ 5 - 0
tz-module-system/tz-module-system-api/src/main/java/cn/start/tz/module/system/api/user/AdminUserApi.java

@@ -121,4 +121,9 @@ public interface AdminUserApi extends AutoTransable<AdminUserRespDTO> {
     @Operation(summary = "通过工号查询用户")
     @Parameter(name = "employeeNo", description = "工号", example = "EMP001", required = true)
     CommonResult<AdminUserRespDTO> getUserByEmployeeNo(@RequestParam("employeeNo") String employeeNo);
+
+    @GetMapping(PREFIX + "/get-by-role-code")
+    @Operation(summary = "根据角色标识查询用户列表")
+    @Parameter(name = "roleCode", description = "角色标识", example = "Pipeline Director", required = true)
+    CommonResult<List<AdminUserRespDTO>> getUserListByRoleCode(@RequestParam("roleCode") String roleCode);
 }

+ 10 - 0
tz-module-system/tz-module-system-biz/src/main/java/cn/start/tz/module/system/api/user/AdminUserApiImpl.java

@@ -124,4 +124,14 @@ public class AdminUserApiImpl implements AdminUserApi {
         AdminUserDO user = userService.getUserByEmployeeNo(employeeNo);
         return success(BeanUtils.toBean(user, AdminUserRespDTO.class));
     }
+
+    @Override
+    public CommonResult<List<AdminUserRespDTO>> getUserListByRoleCode(String roleCode) {
+        cn.start.tz.module.system.controller.admin.user.vo.user.UserPageReqVO pageVO =
+                new cn.start.tz.module.system.controller.admin.user.vo.user.UserPageReqVO();
+        pageVO.setRoleCode(roleCode);
+        pageVO.setPageSize(Integer.MAX_VALUE);
+        PageResult<AdminUserDO> userPage = userService.getUserPageByRole(pageVO);
+        return success(BeanUtils.toBean(userPage.getList(), AdminUserRespDTO.class));
+    }
 }

+ 3 - 0
tz-module-system/tz-module-system-biz/src/main/java/cn/start/tz/module/system/service/dept/DeptServiceImpl.java

@@ -168,6 +168,9 @@ public class DeptServiceImpl implements DeptService {
 
     @Override
     public List<DeptDO> getDeptList(Collection<String> ids) {
+        if (CollUtil.isEmpty(ids)) {
+            return new ArrayList<>();
+        }
         return deptMapper.selectByIds(ids);
     }