Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

user5 1 vuosi sitten
vanhempi
commit
11a267a653

+ 69 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -886,4 +886,73 @@ public class UserController {
         Boolean updatePassword = userService.isUpdatePassword(userDTO.getId());
         return ResponseEntity.ok(updatePassword);
     }
+
+
+    /**
+     * 获取财务机构JSON数据(会计,总经办)。
+     *
+     * @param tenantId 部门id
+     * @param extId 排除的ID
+     * @param type  类型(1:公司;2:部门)
+     * @param showAll 是否显示不可用数据 1 显示 0 隐藏
+     * @return
+     */
+    @ApiLog("获取财务部门用户数据")
+    @GetMapping("treeFinanceOffice")
+    public ResponseEntity treeFinanceOffice(@RequestParam(required = false) String tenantId,@RequestParam(required = false) String extId, @RequestParam(required = false) String type, @RequestParam(required = false, defaultValue = CommonConstants.NO) String showAll) {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        String id = userDTO.getTenantDTO().getId();
+        if (id.equals("10002")){
+            String officeName="兴光会计师事务所";
+            List<OfficeDTO> list = officeService.getOfficeAllByOfficeName (officeName);
+            if(list.size()>0){
+                List<String> officeIds = Lists.newArrayList();
+                for (OfficeDTO info : list) {
+                    info.setTypeFlag(true);
+                    officeIds.add(info.getId());
+                }
+                //根据部门查询对应部门下的所有数据
+                List<OfficeDTO> officeDTOList = userService.getUserByOffice(officeIds,type);
+                list.addAll(officeDTOList);
+            }
+            String officeName1="综合管理公司";
+            List<OfficeDTO> list1 = officeService.getOfficeAllByOfficeName (officeName1);
+            if(list1.size()>0){
+                List<String> officeIds = Lists.newArrayList();
+                for (OfficeDTO info : list1) {
+                    info.setTypeFlag(true);
+                    officeIds.add(info.getId());
+                }
+                //根据部门查询对应部门下的所有数据
+                List<OfficeDTO> officeDTOList = userService.getUserByOffice(officeIds,type);
+                list1.addAll(officeDTOList);
+            }
+            List<OfficeDTO> objects = new ArrayList<>();
+            objects.addAll(list);
+            objects.addAll(list1);
+            List rootTree = officeService.getFinanceTree (objects, extId, type, showAll, "1");
+            return ResponseEntity.ok (rootTree);
+
+        }else {
+            String officeName="兴光会计师事务所";
+            List<OfficeDTO> list = officeService.getOfficeAllByOfficeName (officeName);
+            if(list.size()>0){
+                List<String> officeIds = Lists.newArrayList();
+                for (OfficeDTO info : list) {
+                    info.setTypeFlag(true);
+                    officeIds.add(info.getId());
+                }
+                //根据部门查询对应部门下的所有数据
+                List<OfficeDTO> officeDTOList = userService.getUserByOffice(officeIds,type);
+                list.addAll(officeDTOList);
+            }
+            List rootTree = officeService.getFinanceRootTree (list, extId, type, showAll, "1");
+            return ResponseEntity.ok (rootTree);
+        }
+
+    }
+
+
+
+
 }

+ 2 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/OfficeMapper.java

@@ -116,4 +116,6 @@ public interface OfficeMapper extends TreeMapper <Office> {
      * @return
      */
     List<String> getIds(String id);
+
+    List<Office> getChild(@Param("rootId")String rootId);
 }

+ 32 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml

@@ -333,5 +333,36 @@
     <select id="getIds" resultType="java.lang.String">
         SELECT id FROM sys_office WHERE parent_id = #{id} and del_flag = 0
     </select>
-
+    <select id="getChild" resultType="com.jeeplus.sys.domain.Office">
+        SELECT
+            id,
+            is_public,
+            area,
+            CODE,
+            type,
+            grade,
+            address,
+            zip_code,
+            MASTER,
+            phone,
+            fax,
+            email,
+            useable,
+            remarks,
+            parent_id,
+            parent_ids,
+            NAME,
+            sort,
+            create_time,
+            create_by_id,
+            update_time,
+            update_by_id,
+            del_flag,
+            tenant_id
+        FROM
+            sys_office
+        WHERE
+            del_flag = 0
+            and parent_id = #{rootId}
+    </select>
 </mapper>

+ 50 - 5
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/OfficeService.java

@@ -278,11 +278,13 @@ public class OfficeService extends TreeService <OfficeMapper, Office> {
         List <OfficeDTO> offices = Lists.newArrayList ( );
         parentId = StrUtil.isEmpty ( parentId ) ? OfficeDTO.getRootId ( ) : parentId;
         for (OfficeDTO root : list) {
-            if ( parentId.equals ( root.getParentId ( ) ) ) {
-                if ( this.isUseAble ( extId, type, root, showAll ) ) {
-                    // 不是被排除节点的子节点
-                    List <OfficeDTO> officeList = formatListToTree ( root, list, extId, type, showAll );
-                    offices.addAll ( officeList );
+            if (!root.getName().equals("平台运营")){
+                if ( parentId.equals ( root.getParentId ( ) ) ) {
+                    if ( this.isUseAble ( extId, type, root, showAll ) ) {
+                        // 不是被排除节点的子节点
+                        List <OfficeDTO> officeList = formatListToTree ( root, list, extId, type, showAll );
+                        offices.addAll ( officeList );
+                    }
                 }
             }
         }
@@ -518,4 +520,47 @@ public class OfficeService extends TreeService <OfficeMapper, Office> {
     public List<Office> selectListByIsPublic(String isPublic){
         return officeMapper.selectListByIsPublic(isPublic);
     }
+
+
+    public List getFinanceTree(List<OfficeDTO> objects, String extId, String type, String showAll, String showMyOffice) {
+        List<OfficeDTO> offices = Lists.newArrayList ();
+        // 获取到所有parent_id为‘0’的部门数据
+        List<Office> children = officeMapper.getChild(OfficeDTO.getRootId());
+        List<OfficeDTO> rootTrees = OfficeWrapper.INSTANCE.toDTO (children);
+        for (OfficeDTO root : rootTrees) {
+            if (root.getName().equals("兴光会计师事务所")||root.getName().equals("综合管理公司")){
+                if (this.isUseAble ( extId, type,root, showAll )){
+                    // 不是被排除节点的子节点
+                    List<OfficeDTO> officeList = formatListToTree (root, objects, extId, type, showAll);
+                    offices.addAll (officeList);
+                }
+            }
+        }
+        if (StringUtils.isNotBlank(showMyOffice)) {
+            OfficeDTO officeDTO = UserUtils.getCurrentUserDTO().getOfficeDTO();
+            // 排除管理员
+            if (!UserUtils.getCurrentUserDTO().isAdmin()){
+                if (org.apache.commons.lang.StringUtils.isNotBlank(officeDTO.getParentIds())) {
+                    String[] split = officeDTO.getParentIds().split(",");
+                    if (split.length > 2) {
+                        Office office = officeMapper.selectById(split[2]);
+                        if ("0".equals(office.getIsPublic())) {
+                            // isPublic为“0”,当前用户的公司为私有,查询的部门包含自己所属公司全部部门和其他的公有部门
+                            if(null != officeDTO && org.apache.commons.lang.StringUtils.isNotBlank(officeDTO.getParentIds())){
+                                offices = this.getCompanyFromTree(offices);
+                            }
+                        }
+                    } else {
+                        if ("0".equals(officeDTO.getIsPublic())) {
+                            // isPublic为“0”,当前用户的公司为私有,查询的部门包含自己所属公司全部部门和其他的公有部门
+                            if(null != officeDTO && org.apache.commons.lang.StringUtils.isNotBlank(officeDTO.getParentIds())){
+                                offices = this.getCompanyFromTree(offices);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return offices;
+    }
 }