소스 검색

物资-移动端审批功能开发

huangguoce 2 주 전
부모
커밋
90b3269f02

+ 1 - 0
jeeplus-common/jeeplus-common-mybatis-plus/src/main/java/com/jeeplus/config/TenantLineHandlerImpl.java

@@ -69,6 +69,7 @@ public class TenantLineHandlerImpl implements TenantLineHandler {
                 || (tableName.startsWith ( "knowledge_" ))
                 || (tableName.startsWith ( "lucky_" ))
                 || (tableName.startsWith ( "material_" ))
+                || (tableName.startsWith ( "psi_" ))
                 || (tableName.startsWith ( "position_" ))
                 || (tableName.startsWith ( "project_" ))
                 || (tableName.startsWith ( "proofread_" ))

+ 27 - 1
jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/flowable/service/FlowProcessService.java

@@ -21,9 +21,12 @@ import com.jeeplus.flowable.vo.ProcessStatus;
 import com.jeeplus.flowable.vo.ProcessVo;
 import com.jeeplus.flowable.vo.TaskVo;
 import com.jeeplus.sys.feign.IOfficeApi;
+import com.jeeplus.sys.feign.IRoleApi;
 import com.jeeplus.sys.feign.ITenantApi;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.RoleDTO;
+import com.jeeplus.sys.service.dto.TenantDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
@@ -148,8 +151,31 @@ public class FlowProcessService {
 
         if (StringUtils.isNotBlank(type)) {
             if (type.equals("ydd")) {
+                IUserApi userApi = SpringUtil.getBean(IUserApi.class);
+                UserDTO currentUser = userApi.getByToken(TokenProvider.getCurrentToken());
+                List<String> requiredNames;
+                if(currentUser != null){
+                    TenantDTO tenantDTO = currentUser.getTenantDTO();
+                    if(tenantDTO != null && tenantDTO.getId().equals("10009")){
+                        IRoleApi roleApi = SpringUtil.getBean(IRoleApi.class);
+                        // 只要有一个角色是“老板”,就返回true
+                        boolean isBoss = currentUser.getRoleDTOList().stream()
+                                .map(RoleDTO::getId)
+                                .map(roleApi::getRoleDTOByIdForApp)
+                                .filter(Objects::nonNull) // 过滤查询失败的null角色
+                                .anyMatch(role -> "老板".equals(role.getName())); // 防空指针
+                        if (isBoss) {
+                            requiredNames = Arrays.asList("进销存-领用申请");
+                        }else{
+                            requiredNames = Arrays.asList("");
+                        }
+                    }else{
+                        requiredNames = Arrays.asList("物资管理-领用申请", "物资管理-采购申请", "日常办公-请假申请", "离职申请", "离职交接申请", "会计-报销审批", "会计-报销审批-电子发票", "会计-发票申请", "报销申请", "发票申请","会议室预约");
+                    }
+                }else{
+                    requiredNames = Arrays.asList("物资管理-领用申请", "物资管理-采购申请", "日常办公-请假申请", "离职申请", "离职交接申请", "会计-报销审批", "会计-报销审批-电子发票", "会计-发票申请", "报销申请", "发票申请","会议室预约");
+                }
                 // 创建一个包含需要保留的流程定义名称的集合
-                List<String> requiredNames = Arrays.asList("物资管理-领用申请", "物资管理-采购申请", "日常办公-请假申请", "离职申请", "离职交接申请", "会计-报销审批", "会计-报销审批-电子发票", "会计-发票申请", "报销申请", "发票申请","会议室预约");
                 /**
                  * 移动端工作台数据处理
                  */

+ 17 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/app/AppUserController.java

@@ -13,6 +13,7 @@ import com.jeeplus.sys.domain.User;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.service.OfficeService;
 import com.jeeplus.sys.service.UserService;
+import com.jeeplus.sys.service.dto.TenantDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,7 +51,23 @@ public class AppUserController extends UserController {
     @GetMapping("treeData")
     public ResponseEntity treeData() {
         List <Office> list = officeService.list ( );
+        // 通过用户名从数据库获取用户信息
+        IUserApi userApi = SpringUtil.getBean(IUserApi.class);
+        UserDTO userDTO = userApi.getByToken(TokenProvider.getCurrentToken());
         List rootTree = getRootTree ( list );
+        TenantDTO tenantDTO = userDTO.getTenantDTO();
+        if(tenantDTO != null){
+            String tenantId = tenantDTO.getId();
+            if(tenantId.equals("10009")){
+                rootTree = (List) rootTree.stream()
+                        .filter(item -> {
+                            Map map = (Map) item;
+                            Object label = map.get("label");
+                            return label != null && label.toString().equals("景聚庭");
+                        })
+                        .collect(Collectors.toList());
+            }
+        }
         return ResponseEntity.ok ( rootTree );
     }