Ver código fonte

对会计部门的数据权限以及强耦合代码进行调整

user5 2 anos atrás
pai
commit
ef9c69c1da
22 arquivos alterados com 301 adições e 47 exclusões
  1. 24 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/CommonUtils.java
  2. 18 4
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/service/ContractInfoService.java
  3. 17 4
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/service/CwFinanceInvoiceService.java
  4. 18 4
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectRecordsService.java
  5. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/controller/CwProjectReportController.java
  6. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/controller/CwProjectReportReviewController.java
  7. 46 8
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportService.java
  8. 19 4
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReportArchive/service/CwProjectReportArchiveService.java
  9. 23 12
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java
  10. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApply/mapper/ReportCancellApplyMapper.java
  11. 4 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApply/mapper/xml/ReportCancellApplyMapper.xml
  12. 27 2
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApply/service/ReportCancellApplyService.java
  13. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApplyArchived/mapper/ReportCancellApplyArchivedMapper.java
  14. 4 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApplyArchived/mapper/xml/ReportCancellApplyArchivedMapper.xml
  15. 28 2
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApplyArchived/service/ReportCancellApplyArchivedService.java
  16. 20 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java
  17. 2 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/domain/User.java
  18. 4 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/OfficeMapper.java
  19. 26 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml
  20. 2 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml
  21. 8 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/OfficeService.java
  22. 7 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/dto/UserDTO.java

+ 24 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/CommonUtils.java

@@ -22,7 +22,7 @@ public class CommonUtils {
         if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
             roles = userDTO.getRoleDTOList().stream().filter(item -> {
                 // 过滤当前用户是否拥有财务部门主任角色
-                if ("1589893310822690818".equals(item.getId())) {
+                if ("cw_bmzr".equals(item.getEnName())) {
                     return true;
                 }
                 return false;
@@ -55,6 +55,27 @@ public class CommonUtils {
         return false;
     }
     /**
+     * 判断当前用户是否拥有 “ 专家组成员 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleZjzcy() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有专家组成员角色
+                if ("zjzcy".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+    /**
      * 判断当前用户是否拥有 “ 项目员工 ” 的角色
      * @return
      */
@@ -106,7 +127,7 @@ public class CommonUtils {
         if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
             roles = userDTO.getRoleDTOList().stream().filter(item -> {
                 // 过滤当前用户是否拥有质控部主任角色
-                if ("1613707592987267074".equals(item.getId())) {
+                if ("zkbzr".equals(item.getEnName())) {
                     return true;
                 }
                 return false;
@@ -128,7 +149,7 @@ public class CommonUtils {
         if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
             roles = userDTO.getRoleDTOList().stream().filter(item -> {
                 // 过滤当前用户是否拥有质控部员工角色
-                if ("1613786820688674817".equals(item.getId())) {
+                if ("zkbyg".equals(item.getEnName())) {
                     return true;
                 }
                 return false;

+ 18 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/service/ContractInfoService.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
 import com.jeeplus.core.domain.BaseEntity;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
@@ -146,18 +147,31 @@ public class ContractInfoService {
         wrapper.eq("a.del_flag","0");
 
 
-        String officeIds = "";
+        StringBuilder officeIds = new StringBuilder();
+        List<String> manageOfficeIdList= Lists.newArrayList();
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
         //判定是否为会计所长
         if(CommonUtils.haveRoleKjsz()){
-            if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
+            //获取当前人管理的部门id
+            if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+                manageOfficeIdList = Arrays.asList(userDTO.getManageOfficeIds().split(","));
+            }else{
+                manageOfficeIdList.add(userDTO.getOfficeDTO().getId());
+            }
+            for (int i = 0; i <manageOfficeIdList.size(); i++){
+                officeIds.append("'").append(manageOfficeIdList.get(i)).append("'");
+                if(i < manageOfficeIdList.size()-1){
+                    officeIds.append(",");
+                }
+            }
+            /*if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
                 officeIds = "'" + userDTO.getOfficeDTO().getId() + "','1602840212125847554'";   //添加驻外分部部门id信息
             }else if("兴光审计二部".equals(userDTO.getOfficeDTO().getName())){    //兴光审计二部
                 officeIds = "'" + userDTO.getOfficeDTO().getId() + "'";
-            }
+            }*/
         }
 
-        IPage<ContractInfo> pageList = mapper.findPageList(page, officeIds, wrapper);
+        IPage<ContractInfo> pageList = mapper.findPageList(page, officeIds.toString(), wrapper);
 
         return pageList;
     }

+ 17 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/service/CwFinanceInvoiceService.java

@@ -253,17 +253,30 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
         }
         // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
         // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
-        String officeIds = "";
+        StringBuilder officeIds = new StringBuilder();
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<String> manageOfficeIdList= Lists.newArrayList();
         //判定是否为会计所长
         if(CommonUtils.haveRoleKjsz()){
-            if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
+            //获取当前人管理的部门id
+            if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+                manageOfficeIdList = Arrays.asList(userDTO.getManageOfficeIds().split(","));
+            }else{
+                manageOfficeIdList.add(userDTO.getOfficeDTO().getId());
+            }
+            for (int i = 0; i <manageOfficeIdList.size(); i++){
+                officeIds.append("'").append(manageOfficeIdList.get(i)).append("'");
+                if(i < manageOfficeIdList.size()-1){
+                    officeIds.append(",");
+                }
+            }
+            /*if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
                 officeIds = "'" + userDTO.getOfficeDTO().getId() + "','1602840212125847554'";   //添加驻外分部部门id信息
             }else if("兴光审计二部".equals(userDTO.getOfficeDTO().getName())){    //兴光审计二部
                 officeIds = "'" + userDTO.getOfficeDTO().getId() + "'";
-            }
+            }*/
         }
-        return cwFinanceInvoiceMapper.findList(page,queryWrapper,officeIds);
+        return cwFinanceInvoiceMapper.findList(page,queryWrapper,officeIds.toString());
     }
 
     public CwFinanceInvoiceDTO queryById(String id) {

+ 18 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectRecordsService.java

@@ -113,8 +113,9 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
         // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
         // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
         String isBmzr = "0";
-        String officeIds = "";
+        StringBuilder officeIds = new StringBuilder();
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<String> manageOfficeIdList= Lists.newArrayList();
         if (CommonUtils.haveRoleCwBmzr()) {
             // 财务_部门主任展示自己所属项目、自己创建的项目、自己部门下的项目
             isBmzr = "1";
@@ -124,19 +125,32 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
         } else {
             //判定是否为会计所长
             if(CommonUtils.haveRoleKjsz()){
-                if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
+                isBmzr = "one";
+                //获取当前人管理的部门id
+                if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+                    manageOfficeIdList = Arrays.asList(userDTO.getManageOfficeIds().split(","));
+                }else{
+                    manageOfficeIdList.add(userDTO.getOfficeDTO().getId());
+                }
+                for (int i = 0; i <manageOfficeIdList.size(); i++){
+                    officeIds.append("'").append(manageOfficeIdList.get(i)).append("'");
+                    if(i < manageOfficeIdList.size()-1){
+                        officeIds.append(",");
+                    }
+                }
+                /*if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
                     isBmzr = "one";
                     officeIds = "'" + userDTO.getOfficeDTO().getId() + "','1602840212125847554'";   //添加驻外分部部门id信息
                 }else if("兴光审计二部".equals(userDTO.getOfficeDTO().getName())){    //兴光审计二部
                     isBmzr = "one";
                     officeIds = "'" + userDTO.getOfficeDTO().getId() + "'";
-                }
+                }*/
             }else{
                 // 其他人默认展示全部数据
                 isBmzr = "2";
             }
         }
-        IPage<CwProjectRecordsDTO> list = cwProjectRecordsMapper.findList(page,userDTO,isBmzr, officeIds, queryWrapper);
+        IPage<CwProjectRecordsDTO> list = cwProjectRecordsMapper.findList(page,userDTO,isBmzr, officeIds.toString(), queryWrapper);
         return list;
     }
 

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/controller/CwProjectReportController.java

@@ -130,7 +130,7 @@ public class CwProjectReportController {
      * @return
      */
     @ApiLog("查询财务报告数据")
-    @PreAuthorize ("hasAnyAuthority('cwProjectReport:view','cwProjectReport:add','cwProjectReport:edit')")
+    // @PreAuthorize ("hasAnyAuthority('cwProjectReport:view','cwProjectReport:add','cwProjectReport:edit')")
     @GetMapping("queryById")
     public ResponseEntity queryById(@RequestParam("id") String id) {
         CwProjectReportData projectReportData = projectReportService.queryById ( id );

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/controller/CwProjectReportReviewController.java

@@ -72,7 +72,7 @@ public class CwProjectReportReviewController {
      * @return
      */
     @ApiLog("查询财务报告数据")
-    @PreAuthorize ("hasAnyAuthority('cwProjectReport:view','cwProjectReport:add','cwProjectReport:edit')")
+    // @PreAuthorize ("hasAnyAuthority('cwProjectReport:view','cwProjectReport:add','cwProjectReport:edit')")
     @GetMapping("getProcessStatus")
     public ResponseEntity getProcessStatus(@RequestParam("procInsId") String procInsId) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {
         String taskName = service.getProcessStatus(procInsId);

+ 46 - 8
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportService.java

@@ -468,8 +468,9 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
             queryWrapper.eq("cw_prs1.status", projectReportData.getStatus1());
         }
         String isBmzr = "0";
-        String officeIds = "";
+        StringBuilder officeIds = new StringBuilder();
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<String> manageOfficeIdList= Lists.newArrayList();
         if (CommonUtils.haveRoleCwBmzr()) {
             if (CommonUtils.haveRoleZkbzr()) {
                 // 质控部主任展示全部报告
@@ -486,16 +487,32 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 // 财务_员工展示自己所属项目、自己创建的报告
                 isBmzr = "0";
             }
+        } else if (CommonUtils.haveRoleZjzcy()) {
+            // 专家组成员展示自己审核过的报告
+            isBmzr = "3";
         } else {
             //判定是否为会计所长
             if(CommonUtils.haveRoleKjsz()){
-                if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
+                isBmzr = "one";
+                //获取当前人管理的部门id
+                if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+                    manageOfficeIdList = Arrays.asList(userDTO.getManageOfficeIds().split(","));
+                }else{
+                    manageOfficeIdList.add(userDTO.getOfficeDTO().getId());
+                }
+                for (int i = 0; i <manageOfficeIdList.size(); i++){
+                    officeIds.append("'").append(manageOfficeIdList.get(i)).append("'");
+                    if(i < manageOfficeIdList.size()-1){
+                        officeIds.append(",");
+                    }
+                }
+                /*if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
                     isBmzr = "one";
                     officeIds = "'" + userDTO.getOfficeDTO().getId() + "','1602840212125847554'";   //添加驻外分部部门id信息
                 }else if("兴光审计二部".equals(userDTO.getOfficeDTO().getName())){    //兴光审计二部
                     isBmzr = "one";
                     officeIds = "'" + userDTO.getOfficeDTO().getId() + "'";
-                }
+                }*/
             }else{
                 // 其他人默认展示全部数据
                 isBmzr = "2";
@@ -503,7 +520,7 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
         }
 
 
-        IPage<CwProjectReportData> list = reportMapper.findList(page,userDTO,isBmzr, officeIds, queryWrapper);
+        IPage<CwProjectReportData> list = reportMapper.findList(page,userDTO,isBmzr, officeIds.toString(), queryWrapper);
         return list;
 
     }
@@ -813,12 +830,19 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                     List<ReviewUser> stringList = new ArrayList<>();
                     //如果是苏州分部,这里写死
                     String officeId = reportMapper.getOfficeId("苏州分部");
-                    if (reportData.getOfficeId().equals(officeId)){
+                    /*if (reportData.getOfficeId().equals(officeId)){
                         stringList = reportMapper.getReviewByS("13");
                     }else if (reportData.getReportType().equals("1")) {
                         stringList = reportMapper.getReviewByS("1");
                     } else {
-                        stringList = reportMapper.getReviewByS("2");
+                        stringList = reportMapper.getReviewByS("非苏兴会基字");
+                    }*/
+                    if (reportData.getOfficeId().equals(officeId)){
+                        stringList = reportMapper.getReviewByPost("质控-苏州分布");
+                    }else if (reportData.getReportType().equals("1")) {
+                        stringList = reportMapper.getReviewByPost("质控-财务-苏兴会基字");
+                    } else {
+                        stringList = reportMapper.getReviewByPost("质控-财务-非苏兴会基字");
                     }
                     reportData.setReviewBys(stringList);
                     //将新增行数据查询出来放入到cwProjectInfoList中
@@ -990,12 +1014,19 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
             List<ReviewUser> stringList = new ArrayList<>();
             //如果是苏州分部,这里写死
             String officeId = reportMapper.getOfficeId("苏州分部");
-            if (reportData.getOfficeId().equals(officeId)){
+            /*if (reportData.getOfficeId().equals(officeId)){
                 stringList = reportMapper.getReviewByS("13");
             }else if (reportData.getReportType().equals("1")) {
                 stringList = reportMapper.getReviewByS("1");
             } else {
                 stringList = reportMapper.getReviewByS("2");
+            }*/
+            if (reportData.getOfficeId().equals(officeId)){
+                stringList = reportMapper.getReviewByPost("质控-苏州分布");
+            }else if (reportData.getReportType().equals("1")) {
+                stringList = reportMapper.getReviewByPost("质控-财务-苏兴会基字");
+            } else {
+                stringList = reportMapper.getReviewByPost("质控-财务-非苏兴会基字");
             }
             reportData.setReviewBys(stringList);
         } else {
@@ -1133,12 +1164,19 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                     List<ReviewUser> stringList = new ArrayList<>();
                     //如果是苏州分部,这里写死
                     String officeId = reportMapper.getOfficeId("苏州分部");
-                    if (reportData.getOfficeId().equals(officeId)){
+                    /*if (reportData.getOfficeId().equals(officeId)){
                         stringList = reportMapper.getReviewByS("13");
                     }else if (reportData.getReportType().equals("1")) {
                         stringList = reportMapper.getReviewByS("1");
                     } else {
                         stringList = reportMapper.getReviewByS("2");
+                    }*/
+                    if (reportData.getOfficeId().equals(officeId)){
+                        stringList = reportMapper.getReviewByPost("质控-苏州分布");
+                    }else if (reportData.getReportType().equals("1")) {
+                        stringList = reportMapper.getReviewByPost("质控-财务-苏兴会基字");
+                    } else {
+                        stringList = reportMapper.getReviewByPost("质控-财务-非苏兴会基字");
                     }
                     reportData.setReviewBys(stringList);
                     //将新增行数据查询出来放入到cwProjectInfoList中

+ 19 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReportArchive/service/CwProjectReportArchiveService.java

@@ -37,6 +37,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
@@ -131,8 +132,9 @@ public class CwProjectReportArchiveService extends ServiceImpl<CwProjectReportAr
             }
         }
         String isBmzr = "0";
-        String officeIds = "";
+        StringBuilder officeIds = new StringBuilder();
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<String> manageOfficeIdList= Lists.newArrayList();
         if (CommonUtils.haveRoleCwBmzr()) {
             // 财务_部门主任展示自己所属项目、自己创建的报告、自己部门下的报告
             isBmzr = "1";
@@ -142,13 +144,26 @@ public class CwProjectReportArchiveService extends ServiceImpl<CwProjectReportAr
         } else {
             //判定是否为会计所长
             if(CommonUtils.haveRoleKjsz()){
-                if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
+                isBmzr = "one";
+                //获取当前人管理的部门id
+                if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+                    manageOfficeIdList = Arrays.asList(userDTO.getManageOfficeIds().split(","));
+                }else{
+                    manageOfficeIdList.add(userDTO.getOfficeDTO().getId());
+                }
+                for (int i = 0; i <manageOfficeIdList.size(); i++){
+                    officeIds.append("'").append(manageOfficeIdList.get(i)).append("'");
+                    if(i < manageOfficeIdList.size()-1){
+                        officeIds.append(",");
+                    }
+                }
+                /*if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
                     isBmzr = "one";
                     officeIds = "'" + userDTO.getOfficeDTO().getId() + "','1602840212125847554'";   //添加驻外分部部门id信息
                 }else if("兴光审计二部".equals(userDTO.getOfficeDTO().getName())){    //兴光审计二部
                     isBmzr = "one";
                     officeIds = "'" + userDTO.getOfficeDTO().getId() + "'";
-                }
+                }*/
             }else{
                 // 其他人默认展示全部数据
                 isBmzr = "2";
@@ -157,7 +172,7 @@ public class CwProjectReportArchiveService extends ServiceImpl<CwProjectReportAr
         if (StringUtils.isBlank(cwProjectReportArchiveDTO.getArchiveSta())) {
             cwProjectReportArchiveDTO.setArchiveSta("");
         }
-        IPage<CwProjectReportArchiveDTO> list = cwProjectReportArchiveMapper.findList(page, userDTO, isBmzr, officeIds, queryWrapper, cwProjectReportArchiveDTO.getArchiveSta());
+        IPage<CwProjectReportArchiveDTO> list = cwProjectReportArchiveMapper.findList(page, userDTO, isBmzr, officeIds.toString(), queryWrapper, cwProjectReportArchiveDTO.getArchiveSta());
         List<CwProjectReportArchiveDTO> records = list.getRecords();
         if (null != records && records.size()>0){
             //循环查询出来的数据

+ 23 - 12
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java

@@ -24,14 +24,12 @@ import com.jeeplus.test.oss.domain.WorkAttachment;
 import com.jeeplus.test.oss.mapper.OssServiceMapper;
 import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
 import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
+import org.apache.commons.compress.utils.Lists;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * @author: 王强
@@ -185,17 +183,30 @@ public class CwReimbursementInfoService {
 
         // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
         // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
-        String officeIds = "";
+        StringBuilder officeIds = new StringBuilder();
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
-        //判定是否为会计所长
-        if(CommonUtils.haveRoleKjsz()){
-            if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
-                officeIds = "'" + userDTO.getOfficeDTO().getId() + "','1602840212125847554'";   //添加驻外分部部门id信息
-            }else if("兴光审计二部".equals(userDTO.getOfficeDTO().getName())){    //兴光审计二部
-                officeIds = "'" + userDTO.getOfficeDTO().getId() + "'";
+        List<String> manageOfficeIdList= Lists.newArrayList();
+        //判定是否为会计所长 或会计部门主任
+        if(CommonUtils.haveRoleKjsz() || CommonUtils.haveRoleCwBmzr()){
+            //获取当前人管理的部门id
+            if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+                manageOfficeIdList = Arrays.asList(userDTO.getManageOfficeIds().split(","));
+            }else{
+                manageOfficeIdList.add(userDTO.getOfficeDTO().getId());
+            }
+            for (int i = 0; i <manageOfficeIdList.size(); i++){
+                officeIds.append("'").append(manageOfficeIdList.get(i)).append("'");
+                if(i < manageOfficeIdList.size()-1){
+                    officeIds.append(",");
+                }
             }
+            /*if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
+                officeIds = new StringBuilder("'" + userDTO.getOfficeDTO().getId() + "','1602840212125847554'");   //添加驻外分部部门id信息
+            }else if("兴光审计二部".equals(userDTO.getOfficeDTO().getName())){    //兴光审计二部
+                officeIds = new StringBuilder("'" + userDTO.getOfficeDTO().getId() + "'");
+            }*/
         }
-        return infoMapper.findList(page, queryWrapper,officeIds);
+        return infoMapper.findList(page, queryWrapper, officeIds.toString());
     }
 
     public IPage<ProgramProjectListInfo> projectList(Page<ProgramProjectListInfo> page, ProgramProjectListInfo info, String tabType) throws Exception{

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApply/mapper/ReportCancellApplyMapper.java

@@ -25,7 +25,7 @@ public interface ReportCancellApplyMapper extends BaseMapper<ReportCancellApply>
      * @param queryWrapper
      * @return
      */
-    IPage<ReportInfoDto> getList(Page<ReportInfoDto> page, @Param(Constants.WRAPPER) QueryWrapper<ReportInfoDto> queryWrapper);
+    IPage<ReportInfoDto> getList(Page<ReportInfoDto> page, @Param(Constants.WRAPPER) QueryWrapper<ReportInfoDto> queryWrapper, @Param("officeIds") String officeIds);
 
     ReportInfoDto queryById(@Param("id") String id);
 

+ 4 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApply/mapper/xml/ReportCancellApplyMapper.xml

@@ -87,6 +87,10 @@
         left join cw_project_report_cancell_apply_archived cw_ar
         on a.id = cw_ar.archive_id
         ${ew.customSqlSegment}
+        <if test="officeIds !=null and officeIds != ''">
+            and c.office_id in (${officeIds})
+        </if>
+        order by a.create_date desc
     </select>
     <select id="selectByArchivedId"
             resultType="com.jeeplus.test.cw.reportCancellApply.domain.ReportCancellApply">

+ 27 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApply/service/ReportCancellApplyService.java

@@ -13,6 +13,7 @@ import com.jeeplus.sys.domain.User;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.cw.common.CommonUtils;
 import com.jeeplus.test.cw.projectRecords.domain.CwProjectRecords;
 import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
 import com.jeeplus.test.cw.projectRecords.service.mapstruct.CwProjectRecordsWrapper;
@@ -73,7 +74,6 @@ public class ReportCancellApplyService extends ServiceImpl<ReportCancellApplyMap
     public IPage<ReportInfoDto> getList(Page<ReportInfoDto> page, ReportInfoDto projectReportData) throws Exception{
         QueryWrapper<ReportInfoDto> queryWrapper = QueryWrapperGenerator.buildQueryCondition (projectReportData,ReportInfoDto.class);
         queryWrapper.eq("a.del_flag","0");
-        queryWrapper.orderByDesc("a.create_date");
         //条件
         if (StringUtils.isNotEmpty(projectReportData.getProjectNumber())) {
             queryWrapper.like("d.project_number", projectReportData.getProjectNumber());
@@ -93,7 +93,32 @@ public class ReportCancellApplyService extends ServiceImpl<ReportCancellApplyMap
 
             queryWrapper.between("a.create_date", contractDates[0], contractDates[1]);
         }
-        IPage<ReportInfoDto> list = applyMapper.getList(page, queryWrapper);
+        // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
+        // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
+        StringBuilder officeIds = new StringBuilder();
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<String> manageOfficeIdList= Lists.newArrayList();
+        //判定是否为会计所长 或会计部门主任
+        if(CommonUtils.haveRoleKjsz()){
+            //获取当前人管理的部门id
+            if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+                manageOfficeIdList = Arrays.asList(userDTO.getManageOfficeIds().split(","));
+            }else{
+                manageOfficeIdList.add(userDTO.getOfficeDTO().getId());
+            }
+            for (int i = 0; i <manageOfficeIdList.size(); i++){
+                officeIds.append("'").append(manageOfficeIdList.get(i)).append("'");
+                if(i < manageOfficeIdList.size()-1){
+                    officeIds.append(",");
+                }
+            }
+            /*if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
+                officeIds = new StringBuilder("'" + userDTO.getOfficeDTO().getId() + "','1602840212125847554'");   //添加驻外分部部门id信息
+            }else if("兴光审计二部".equals(userDTO.getOfficeDTO().getName())){    //兴光审计二部
+                officeIds = new StringBuilder("'" + userDTO.getOfficeDTO().getId() + "'");
+            }*/
+        }
+        IPage<ReportInfoDto> list = applyMapper.getList(page, queryWrapper,officeIds.toString());
         return list;
     }
 

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApplyArchived/mapper/ReportCancellApplyArchivedMapper.java

@@ -34,7 +34,7 @@ public interface ReportCancellApplyArchivedMapper extends BaseMapper<CwProjectRe
      * @param queryWrapper
      * @return
      */
-    IPage<ArchivedReportInfoDto> getList(Page<ArchivedReportInfoDto> page, @Param(Constants.WRAPPER) QueryWrapper<ArchivedReportInfoDto> queryWrapper);
+    IPage<ArchivedReportInfoDto> getList(Page<ArchivedReportInfoDto> page, @Param(Constants.WRAPPER) QueryWrapper<ArchivedReportInfoDto> queryWrapper, @Param("officeIds") String officeIds);
 
     ApplyArchiveReportDTO queryById(@Param("id") String id);
 

+ 4 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApplyArchived/mapper/xml/ReportCancellApplyArchivedMapper.xml

@@ -95,6 +95,10 @@
         left join cw_project_report_cancell_apply_archived cw_ar
         on a.id = cw_ar.archive_id
         ${ew.customSqlSegment}
+        <if test="officeIds !=null and officeIds != ''">
+            and c.office_id in (${officeIds})
+        </if>
+        order by a.create_date desc
     </select>
     <select id="queryById"
             resultType="com.jeeplus.test.cw.reportCancellApplyArchived.service.dto.ApplyArchiveReportDTO">

+ 28 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApplyArchived/service/ReportCancellApplyArchivedService.java

@@ -6,10 +6,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.cw.common.CommonUtils;
 import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
 import com.jeeplus.test.cw.projectReport.domain.CwProjectInfoData;
 import com.jeeplus.test.cw.projectReport.domain.CwProjectReport;
@@ -80,7 +82,6 @@ public class ReportCancellApplyArchivedService extends ServiceImpl<ReportCancell
         QueryWrapper<ArchivedReportInfoDto> queryWrapper = QueryWrapperGenerator.buildQueryCondition(projectReportData, ArchivedReportInfoDto.class);
         queryWrapper.eq("a.del_flag", "0");
         queryWrapper.eq("a.status", "5");
-        queryWrapper.orderByDesc("a.create_date");
         //条件
         if (StringUtils.isNotEmpty(projectReportData.getProjectNumber())) {
             queryWrapper.like("d.project_number", projectReportData.getProjectNumber());
@@ -100,7 +101,32 @@ public class ReportCancellApplyArchivedService extends ServiceImpl<ReportCancell
 
             queryWrapper.between("a.create_date", contractDates[0], contractDates[1]);
         }
-        IPage<ArchivedReportInfoDto> list = applyMapper.getList(page, queryWrapper);
+        // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
+        // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
+        StringBuilder officeIds = new StringBuilder();
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<String> manageOfficeIdList= Lists.newArrayList();
+        //判定是否为会计所长 或会计部门主任
+        if(CommonUtils.haveRoleKjsz()){
+            //获取当前人管理的部门id
+            if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+                manageOfficeIdList = Arrays.asList(userDTO.getManageOfficeIds().split(","));
+            }else{
+                manageOfficeIdList.add(userDTO.getOfficeDTO().getId());
+            }
+            for (int i = 0; i <manageOfficeIdList.size(); i++){
+                officeIds.append("'").append(manageOfficeIdList.get(i)).append("'");
+                if(i < manageOfficeIdList.size()-1){
+                    officeIds.append(",");
+                }
+            }
+            /*if("兴光审计一部".equals(userDTO.getOfficeDTO().getName())){  //兴光审计一部
+                officeIds = new StringBuilder("'" + userDTO.getOfficeDTO().getId() + "','1602840212125847554'");   //添加驻外分部部门id信息
+            }else if("兴光审计二部".equals(userDTO.getOfficeDTO().getName())){    //兴光审计二部
+                officeIds = new StringBuilder("'" + userDTO.getOfficeDTO().getId() + "'");
+            }*/
+        }
+        IPage<ArchivedReportInfoDto> list = applyMapper.getList(page, queryWrapper,officeIds.toString());
         return list;
     }
 

+ 20 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -97,6 +97,13 @@ public class UserController {
     @ApiOperation(value = "查询用户")
     public ResponseEntity queryById(@RequestParam("id") String id) {
         UserDTO userDTO = userService.get ( id );
+        if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+            //获取当前人管理的部门id
+            List<String> manageOfficeIdList=Arrays.asList(userDTO.getManageOfficeIds().split(","));
+            //查询这些部门信息
+            List<String> officeNameList = officeService.getOfficeNameByIds(manageOfficeIdList);
+            userDTO.setManageOfficeNameList(officeNameList);
+        }
         if(ObjectUtil.isNotEmpty(userDTO)) {
             if(CollectionUtil.isNotEmpty(userDTO.getCertDTOList())){
                 userDTO.getCertDTOList().stream().forEach(item->{
@@ -219,6 +226,19 @@ public class UserController {
         if ( isCheckLoginName ( userDTO.getOldLoginName ( ),userDTO.getId(), userDTO.getLoginName ( ) ) ) {
             return ResponseEntity.badRequest ( ).body ( "保存用户'" + userDTO.getLoginName ( ) + "'失败,登录名已存在!" );
         }
+        //对管理部门做查询操作,根据名称查询部门id信息
+        if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+            //获取当前人管理的部门名称
+            List<String> manageOfficeNameList=Arrays.asList(userDTO.getManageOfficeIds().split(","));
+            if(manageOfficeNameList.size()>0){
+                //查询这些部门信息
+                List<String> officeIdList = officeService.getOfficeIdByNames(manageOfficeNameList);
+                if(officeIdList.size()>0){
+                    String officeIds = String.join(",", officeIdList);
+                    userDTO.setManageOfficeIds(officeIds);
+                }
+            }
+        }
         // 保存用户信息
         userService.saveOrUpdate ( userDTO );
         return ResponseEntity.ok ( "保存用户'" + userDTO.getLoginName ( ) + "'成功!" );

+ 2 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/domain/User.java

@@ -116,6 +116,8 @@ public class User extends BaseEntity {
      */
     private String upPassword;
 
+    private String manageOfficeIds;   //管理的部门id
+
     /**
      * 构造函数
      */

+ 4 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/OfficeMapper.java

@@ -47,4 +47,8 @@ public interface OfficeMapper extends TreeMapper<Office> {
 
     IPage<OfficeDTO> findList(Page<OfficeDTO> page, @Param(Constants.WRAPPER) QueryWrapper<OfficeDTO> queryWrapper);
 
+    List<String> getOfficeNameByIds(List<String> idList);
+
+    List<String> getOfficeIdByNames(List<String> nameList);
+
 }

+ 26 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml

@@ -104,4 +104,30 @@
         from sys_office so
         ${ew.customSqlSegment}
     </select>
+
+    <select id="getOfficeNameByIds" resultType="java.lang.String">
+        select
+            name
+        from sys_office
+        <where>
+            del_flag = 0
+            and id in
+            <foreach collection="idList" open="(" close=")" separator="," item="id">
+                #{id}
+            </foreach>
+        </where>
+    </select>
+
+    <select id="getOfficeIdByNames" resultType="java.lang.String">
+        select
+            id
+        from sys_office
+        <where>
+            del_flag = 0
+            and name in
+            <foreach collection="nameList" open="(" close=")" separator="," item="name">
+                #{name}
+            </foreach>
+        </where>
+    </select>
 </mapper>

+ 2 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -15,6 +15,7 @@
 		<result property="sign" column="sign" />
 		<result property="remarks" column="remarks" />
 		<result property="loginFlag" column="login_flag"/>
+		<result property="manageOfficeIds" column="manage_office_ids"/>
         	<result property="loginIp" column="loginIp"/>
 		<result property="isAdmin" column="isAdmin"/>
         	<result property="loginDate" column="loginDate"/>
@@ -59,6 +60,7 @@
 		a.create_date,
 		a.update_by AS "updateBy.id",
 		a.update_date,
+		a.manage_office_ids,
     	c.name AS "companyDTO.name",
     	c.parent_id AS "companyDTO.parent.id",
     	c.parent_ids AS "companyDTO.parentIds",

+ 8 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/OfficeService.java

@@ -367,4 +367,12 @@ public class OfficeService extends TreeService<OfficeMapper, Office> {
         return officeMapper.findList(page, queryWrapper);
     }
 
+    public List<String> getOfficeNameByIds(List<String> idList){
+       return officeMapper.getOfficeNameByIds(idList);
+    }
+
+    public List<String> getOfficeIdByNames(List<String> nameList){
+       return officeMapper.getOfficeIdByNames(nameList);
+    }
+
 }

+ 7 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/dto/UserDTO.java

@@ -292,4 +292,11 @@ public class  UserDTO extends BaseDTO {
 
     private OfficeDTO corporationDTO;   //公司信息
 
+    private String manageOfficeIds;   //管理的部门id
+
+    /**
+     * 管理的部门名称
+     */
+    private List<String> manageOfficeNameList;
+
 }