Explorar el Código

报销流程以及会计所长权限设置功能开发

user5 hace 2 años
padre
commit
4766965652
Se han modificado 26 ficheros con 211 adiciones y 27 borrados
  1. 43 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/CommonUtils.java
  2. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractInfoController.java
  3. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractInfoMapper.java
  4. 3 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/xml/ContractInfoMapper.xml
  5. 15 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/service/ContractInfoService.java
  6. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/mapper/CwFinanceInvoiceMapper.java
  7. 5 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/mapper/xml/CwFinanceInvoiceMapper.xml
  8. 14 2
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/service/CwFinanceInvoiceService.java
  9. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/controller/CwProjectRecordsController.java
  10. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/CwProjectRecordsMapper.java
  11. 3 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/xml/CwProjectRecordsMapper.xml
  12. 17 5
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectRecordsService.java
  13. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectReportMapper.java
  14. 3 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectReportMapper.xml
  15. 15 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportService.java
  16. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReportArchive/mapper/CwProjectReportArchiveMapper.java
  17. 3 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReportArchive/mapper/xml/CwProjectReportArchiveMapper.xml
  18. 15 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReportArchive/service/CwProjectReportArchiveService.java
  19. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java
  20. 3 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml
  21. 15 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java
  22. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/controller/CwWorkClientController.java
  23. 5 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/domain/Office.java
  24. 2 1
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml
  25. 5 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/dto/OfficeDTO.java
  26. 36 1
      jeeplus-plugins/jeeplus-flowable/src/main/java/com/jeeplus/flowable/common/handler/ExtUserTaskActivityBehavior.java

+ 43 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/CommonUtils.java

@@ -43,7 +43,49 @@ public class CommonUtils {
         if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
             roles = userDTO.getRoleDTOList().stream().filter(item -> {
                 // 过滤当前用户是否拥有财务员工角色
-                if ("1579674195583508481".equals(item.getId())) {
+                if ("cwyg".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+    /**
+     * 判断当前用户是否拥有 “ 项目员工 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleXmYg() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有项目员工角色
+                if ("xmyg".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+    /**
+     * 判断当前用户是否拥有 “ 会计所长 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleKjsz() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有会计所长角色
+                if ("kjsz".equals(item.getEnName())) {
                     return true;
                 }
                 return false;

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractInfoController.java

@@ -34,7 +34,7 @@ public class ContractInfoController {
      * @return
      */
     @ApiOperation(value = "列表查询")
-    @PreAuthorize("hasAnyAuthority('cw_work_contract_info:list')")
+    // @PreAuthorize("hasAnyAuthority('cw_work_contract_info:list')")
     @GetMapping("/list")
     public ResponseEntity<IPage<ContractInfo>> list(ContractInfo info, Page<ContractInfo> page) throws Exception {
         QueryWrapper<ContractInfo> wrapper = QueryWrapperGenerator.buildQueryCondition(info, ContractInfo.class);

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractInfoMapper.java

@@ -28,7 +28,7 @@ public interface ContractInfoMapper extends BaseMapper<ContractInfo> {
 
     List<WorkAttachmentDto> findDtos(@Param("id") String id);
 
-    IPage<ContractInfo> findPageList(Page<ContractInfo> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+    IPage<ContractInfo> findPageList(Page<ContractInfo> page, @Param("officeIds") String officeIds, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 
     ContractInfo findById (@Param("id") String id);
 

+ 3 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/xml/ContractInfoMapper.xml

@@ -80,6 +80,9 @@
             LEFT JOIN cw_work_contract_file_paper h on a.id = h.contract_info_id
             LEFT JOIN cw_work_client_base cw_wcb on a.client_contacts = cw_wcb.id and cw_wcb.del_flag = '0'
 		${ew.customSqlSegment}
+        <if test="officeIds !=null and officeIds != ''">
+            and c.office_id in (${officeIds})
+        </if>
 		ORDER BY a.update_date DESC
     </select>
     <select id="findById" resultType="com.jeeplus.test.cw.contractRegistration.domain.ContractInfo">

+ 15 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/service/ContractInfoService.java

@@ -11,6 +11,7 @@ import com.jeeplus.core.domain.BaseEntity;
 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.contractRegistration.domain.ContractFile;
 import com.jeeplus.test.cw.contractRegistration.domain.ContractFilePaper;
 import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
@@ -143,7 +144,20 @@ public class ContractInfoService {
             wrapper.like("a.filed_paper_type", info.getFiledPaperType());
         }
         wrapper.eq("a.del_flag","0");
-        IPage<ContractInfo> pageList = mapper.findPageList(page, wrapper);
+
+
+        String officeIds = "";
+        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() + "'";
+            }
+        }
+
+        IPage<ContractInfo> pageList = mapper.findPageList(page, officeIds, wrapper);
 
         return pageList;
     }

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/mapper/CwFinanceInvoiceMapper.java

@@ -15,7 +15,7 @@ import java.util.List;
 @Mapper
 public interface CwFinanceInvoiceMapper extends BaseMapper<CwFinanceInvoice> {
 
-    public IPage<CwFinanceInvoiceDTO> findList(Page<CwFinanceInvoiceDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwFinanceInvoice> queryWrapper);
+    public IPage<CwFinanceInvoiceDTO> findList(Page<CwFinanceInvoiceDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwFinanceInvoice> queryWrapper, @Param("officeIds") String officeIds);
 
     public CwFinanceInvoiceDTO queryById(@Param("id") String id);
 

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/mapper/xml/CwFinanceInvoiceMapper.xml

@@ -228,6 +228,11 @@
         left join sys_user su on fi.create_by = su.id and su.del_flag = '0'
         left join sys_office so on su.office_id = so.id and so.del_flag = '0'
         ${ew.customSqlSegment}
+        <if test="officeIds !=null and officeIds != ''">
+            and su.office_id in (${officeIds})
+        </if>
+        ORDER BY
+        fi.create_date DESC
     </select>
 
     <select id="queryById" resultMap="BaseResultMap">

+ 14 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/invoice/service/CwFinanceInvoiceService.java

@@ -14,6 +14,7 @@ import com.jeeplus.sys.service.UserService;
 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.invoice.domain.*;
 import com.jeeplus.test.cw.invoice.mapper.*;
 import com.jeeplus.test.cw.invoice.service.dto.CwFinanceInvoiceBaseDTO;
@@ -80,7 +81,6 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
     public IPage<CwFinanceInvoiceDTO> findList(Page<CwFinanceInvoiceDTO> page, CwFinanceInvoiceDTO cwFinanceInvoiceDTO) throws Exception{
         QueryWrapper<CwFinanceInvoice> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( CwFinanceInvoiceWrapper.INSTANCE.toEntity(cwFinanceInvoiceDTO), CwFinanceInvoice.class );
         queryWrapper.eq("fi.del_flag","0");
-        queryWrapper.orderByDesc("fi.create_date");
         ArrayList<String> searchIdList = new ArrayList<>();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         AtomicInteger checkNum = new AtomicInteger();
@@ -251,7 +251,19 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
                 return new Page<CwFinanceInvoiceDTO>();
             }
         }
-        return cwFinanceInvoiceMapper.findList(page,queryWrapper);
+        // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
+        // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
+        String officeIds = "";
+        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() + "'";
+            }
+        }
+        return cwFinanceInvoiceMapper.findList(page,queryWrapper,officeIds);
     }
 
     public CwFinanceInvoiceDTO queryById(String id) {

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/controller/CwProjectRecordsController.java

@@ -48,7 +48,7 @@ public class CwProjectRecordsController {
      * @return
      */
     @ApiLog("查询财务项目信息列表")
-    @PreAuthorize("hasAuthority('cwProjectRecords:list')")
+    // @PreAuthorize("hasAuthority('cwProjectRecords:list')")
     @GetMapping("list")
     public ResponseEntity<IPage<CwProjectRecordsDTO>> data(CwProjectRecordsDTO cwProjectRecordsDTO, Page<CwProjectRecordsDTO> page) throws Exception {
         IPage<CwProjectRecordsDTO> result = new Page<CwProjectRecordsDTO>();

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/CwProjectRecordsMapper.java

@@ -27,7 +27,7 @@ public interface CwProjectRecordsMapper extends BaseMapper<CwProjectRecords> {
      * @param queryWrapper
      * @return
      */
-    IPage<CwProjectRecordsDTO> findList(Page<CwProjectRecordsDTO> page,@Param("currentUser") UserDTO currentUser,@Param("isBmzr") String isBmzr, @Param(Constants.WRAPPER) QueryWrapper<CwProjectRecords> queryWrapper);
+    IPage<CwProjectRecordsDTO> findList(Page<CwProjectRecordsDTO> page,@Param("currentUser") UserDTO currentUser,@Param("isBmzr") String isBmzr,@Param("officeIds") String officeIds, @Param(Constants.WRAPPER) QueryWrapper<CwProjectRecords> queryWrapper);
     /**
      * 根据id查询项目详情
      * @param id

+ 3 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/xml/CwProjectRecordsMapper.xml

@@ -260,6 +260,9 @@
                 where cw_pm.user_id = #{currentUser.id} and cw_pm.del_flag = '0' and cw_pm.status = '0'
                 ))
             </if>
+            <if test="isBmzr == 'one'.toString and officeIds != ''">
+                and su.office_id in (${officeIds})
+            </if>
         </if>
         ORDER BY a.create_date DESC
     </select>

+ 17 - 5
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectRecordsService.java

@@ -113,18 +113,30 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
         // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
         // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
         String isBmzr = "0";
+        String officeIds = "";
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
         if (CommonUtils.haveRoleCwBmzr()) {
             // 财务_部门主任展示自己所属项目、自己创建的项目、自己部门下的项目
             isBmzr = "1";
-        } else if (CommonUtils.haveRoleCwYg()) {
-            // 财务_员工展示自己所属项目、自己创建的项目
+        } else if (CommonUtils.haveRoleCwYg() || CommonUtils.haveRoleXmYg()) {
+            // 财务_员工(或项目员工)展示自己所属项目、自己创建的项目
             isBmzr = "0";
         } else {
-            // 其他人默认展示全部数据
-            isBmzr = "2";
+            //判定是否为会计所长
+            if(CommonUtils.haveRoleKjsz()){
+                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, queryWrapper);
+        IPage<CwProjectRecordsDTO> list = cwProjectRecordsMapper.findList(page,userDTO,isBmzr, officeIds, queryWrapper);
         return list;
     }
 

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectReportMapper.java

@@ -32,7 +32,7 @@ public interface CwProjectReportMapper extends BaseMapper<CwProjectReport> {
      * @param queryWrapper
      * @return
      */
-    IPage<CwProjectReportData> findList(Page<CwProjectReportData> page, @Param("currentUser") UserDTO currentUser, @Param("isBmzr") String isBmzr, @Param(Constants.WRAPPER) QueryWrapper<CwProjectReportData> queryWrapper);
+    IPage<CwProjectReportData> findList(Page<CwProjectReportData> page, @Param("currentUser") UserDTO currentUser, @Param("isBmzr") String isBmzr, @Param("officeIds") String officeIds, @Param(Constants.WRAPPER) QueryWrapper<CwProjectReportData> queryWrapper);
 
     List<WorkAttachment> findFileList(@Param("id") String id);
 

+ 3 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectReportMapper.xml

@@ -113,6 +113,9 @@
             <if test="isBmzr == '3'.toString">
                 and cw_rev.review_by = #{currentUser.id} and cw_rev.review_status != '0' and cw_rev.review_status != '1'
             </if>
+            <if test="isBmzr == 'one'.toString and officeIds != ''">
+                and d.office_id in (${officeIds})
+            </if>
         </if>
         ORDER BY a.create_date DESC
     </select>

+ 15 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/service/CwProjectReportService.java

@@ -468,6 +468,7 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
             queryWrapper.eq("cw_prs1.status", projectReportData.getStatus1());
         }
         String isBmzr = "0";
+        String officeIds = "";
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
         if (CommonUtils.haveRoleCwBmzr()) {
             if (CommonUtils.haveRoleZkbzr()) {
@@ -486,12 +487,23 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                 isBmzr = "0";
             }
         } else {
-            // 其他人默认展示全部数据
-            isBmzr = "2";
+            //判定是否为会计所长
+            if(CommonUtils.haveRoleKjsz()){
+                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<CwProjectReportData> list = reportMapper.findList(page,userDTO,isBmzr, queryWrapper);
+        IPage<CwProjectReportData> list = reportMapper.findList(page,userDTO,isBmzr, officeIds, queryWrapper);
         return list;
 
     }

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReportArchive/mapper/CwProjectReportArchiveMapper.java

@@ -16,7 +16,7 @@ import org.apache.ibatis.annotations.Param;
 @Mapper
 public interface CwProjectReportArchiveMapper extends BaseMapper<CwProjectReportArchive> {
 
-    IPage<CwProjectReportArchiveDTO> findList(Page<CwProjectReportArchiveDTO> page, @Param("currentUser") UserDTO currentUser, @Param("isBmzr") String isBmzr, @Param(Constants.WRAPPER) QueryWrapper<CwProjectReportArchive> queryWrapper,@Param("sta") String sta);
+    IPage<CwProjectReportArchiveDTO> findList(Page<CwProjectReportArchiveDTO> page, @Param("currentUser") UserDTO currentUser, @Param("isBmzr") String isBmzr, @Param("officeIds") String officeIds, @Param(Constants.WRAPPER) QueryWrapper<CwProjectReportArchive> queryWrapper,@Param("sta") String sta);
 
     CwProjectReportArchiveDTO queryById(@Param("id") String id);
 

+ 3 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReportArchive/mapper/xml/CwProjectReportArchiveMapper.xml

@@ -267,6 +267,9 @@
                 where cw_pm.user_id = #{currentUser.id} and cw_pm.del_flag = '0' and cw_pm.status = '0'
                 ))
             </if>
+            <if test="isBmzr == 'one'.toString and officeIds != ''">
+                and su.office_id in (${officeIds})
+            </if>
         </if>
         ORDER BY cw_pa.create_date DESC
     </select>

+ 15 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReportArchive/service/CwProjectReportArchiveService.java

@@ -131,6 +131,7 @@ public class CwProjectReportArchiveService extends ServiceImpl<CwProjectReportAr
             }
         }
         String isBmzr = "0";
+        String officeIds = "";
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
         if (CommonUtils.haveRoleCwBmzr()) {
             // 财务_部门主任展示自己所属项目、自己创建的报告、自己部门下的报告
@@ -139,13 +140,24 @@ public class CwProjectReportArchiveService extends ServiceImpl<CwProjectReportAr
             // 财务_员工展示自己所属项目、自己创建的报告
             isBmzr = "0";
         } else {
-            // 其他人默认展示全部数据
-            isBmzr = "2";
+            //判定是否为会计所长
+            if(CommonUtils.haveRoleKjsz()){
+                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";
+            }
         }
         if (StringUtils.isBlank(cwProjectReportArchiveDTO.getArchiveSta())) {
             cwProjectReportArchiveDTO.setArchiveSta("");
         }
-        IPage<CwProjectReportArchiveDTO> list = cwProjectReportArchiveMapper.findList(page, userDTO, isBmzr, queryWrapper, cwProjectReportArchiveDTO.getArchiveSta());
+        IPage<CwProjectReportArchiveDTO> list = cwProjectReportArchiveMapper.findList(page, userDTO, isBmzr, officeIds, queryWrapper, cwProjectReportArchiveDTO.getArchiveSta());
         List<CwProjectReportArchiveDTO> records = list.getRecords();
         if (null != records && records.size()>0){
             //循环查询出来的数据

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java

@@ -25,7 +25,7 @@ public interface CwReimbursementInfoMapper extends BaseMapper<CwReimbursementInf
 
     String selectInvoiceFlag(@Param("id") String id);
 
-    IPage<RetureListDto> findList (Page<RetureListDto> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+    IPage<RetureListDto> findList (Page<RetureListDto> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("officeIds")String officeIds);
 
     List<WorkAttachmentDto> findFiles(@Param("id") String id);
 

+ 3 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml

@@ -106,6 +106,9 @@
 			LEFT JOIN act_ru_task d ON a.proc_ins_id = d.PROC_INST_ID_
 			left join material_management_pruchase_request_basics pru on pru.id = a.purchase_id and pru.del_flag = '0'
 			${ew.customSqlSegment}
+			<if test="officeIds !=null and officeIds != ''">
+				and c.office_id in (${officeIds})
+			</if>
 		ORDER BY a.update_date DESC
     </select>
 	<select id="findFiles" resultType="com.jeeplus.test.workContract.service.dto.WorkAttachmentDto">

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

@@ -13,6 +13,7 @@ import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.DictUtils;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.cw.common.CommonUtils;
 import com.jeeplus.test.cw.contractRegistration.service.ContractInfoService;
 import com.jeeplus.test.cw.reimbursementApproval.approvalInfo.domain.*;
 import com.jeeplus.test.cw.reimbursementApproval.approvalInfo.mapper.*;
@@ -181,7 +182,20 @@ public class CwReimbursementInfoService {
         if (StringUtils.isNotBlank(dto.getSourceType())) {
             queryWrapper.eq("a.source_type", dto.getSourceType());
         }
-        return infoMapper.findList(page, queryWrapper);
+
+        // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
+        // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
+        String officeIds = "";
+        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() + "'";
+            }
+        }
+        return infoMapper.findList(page, queryWrapper,officeIds);
     }
 
     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/workClientInfo/controller/CwWorkClientController.java

@@ -91,7 +91,7 @@ public class CwWorkClientController {
      * @return
      */
     @ApiLog("查询客户信息数据")
-    @PreAuthorize ("hasAnyAuthority('cw_work_client:info:view','cw_work_client:info:add','cw_work_client:info:edit')")
+    // @PreAuthorize ("hasAnyAuthority('cw_work_client:info:view','cw_work_client:info:add','cw_work_client:info:edit')")
     @GetMapping("queryById")
     public ResponseEntity queryById(@RequestParam("id") String id) {
         CwWorkClientBaseDTO cwWorkClientBaseDTO = cwWorkClientService.queryById ( id );

+ 5 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/domain/Office.java

@@ -87,6 +87,11 @@ public class Office extends TreeEntity<Office> {
     private String isPublic;
 
     /**
+     * 分管领导
+     */
+    private String administrator;
+
+    /**
      * 构造函数
      */
     public Office () {

+ 2 - 1
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml

@@ -27,7 +27,8 @@
 		a.update_date as "updateDate",
         a.remarks as "remarks",
         a.del_flag as "delFlag",
-        a.is_public as "isPublic"
+        a.is_public as "isPublic",
+        a.administrator as "administrator"
     </sql>
 
     <select id="getOfficeByName" resultType="com.jeeplus.sys.service.dto.OfficeDTO">

+ 5 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/dto/OfficeDTO.java

@@ -210,4 +210,9 @@ public class OfficeDTO extends TreeDTO <OfficeDTO> {
 	 */
 	private String isPublic;
 
+	/**
+	 * 分管领导
+	 */
+	private String administrator;
+
 }

+ 36 - 1
jeeplus-plugins/jeeplus-flowable/src/main/java/com/jeeplus/flowable/common/handler/ExtUserTaskActivityBehavior.java

@@ -10,6 +10,7 @@ import com.jeeplus.flowable.utils.FlowableUtils;
 import com.jeeplus.sys.domain.User;
 import com.jeeplus.sys.service.UserService;
 import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.flowable.bpmn.model.FlowElement;
@@ -18,8 +19,12 @@ import org.flowable.bpmn.model.UserTask;
 import org.flowable.common.engine.impl.el.ExpressionManager;
 import org.flowable.engine.HistoryService;
 import org.flowable.engine.RepositoryService;
+import org.flowable.engine.RuntimeService;
 import org.flowable.engine.delegate.DelegateExecution;
+import org.flowable.engine.history.HistoricProcessInstance;
 import org.flowable.engine.impl.bpmn.behavior.UserTaskActivityBehavior;
+import org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl;
+import org.flowable.engine.runtime.ProcessInstance;
 import org.flowable.task.api.history.HistoricTaskInstance;
 import org.flowable.task.service.TaskService;
 import org.flowable.task.service.impl.persistence.entity.TaskEntity;
@@ -155,7 +160,6 @@ public class ExtUserTaskActivityBehavior extends UserTaskActivityBehavior {
                                 candidateUserIds.add(map.get ("id").toString ());
                             }
                         }
-                        //如果字符串中包含 "zsCurrentUserSql:" 则进行如下代码替换和处理
                         if(flowAssignee.getValue ().contains("zsbxCurrentUserSql:")){
                             //对应sql为:select su.* from sys_user_role a left join sys_role sr on sr.id = a.role_id left join sys_user su on su.id = a.user_id left join sys_office so on so.id = su.office_id where sr.en_name= 'bmzr' and so.id = (select office_id from sys_user where id = @currentUser.id)
                             //用于查询当前登录人的部门主任人员信息
@@ -178,6 +182,37 @@ public class ExtUserTaskActivityBehavior extends UserTaskActivityBehavior {
                                 candidateUserIds.add(map.get ("id").toString ());
                             }
                         }
+                        //如果字符串中包含 "gsldbxCurrentUserSql:" 则进行如下代码替换和处理
+                        if(flowAssignee.getValue ().contains("gsldbxCurrentUserSql:")){
+                            String sql = flowAssignee.getValue ();
+                            // 流程发起人
+                            ProcessInstance processInstance = SpringUtil.getBean(RuntimeService.class)
+                                    .createProcessInstanceQuery()
+                                    .processInstanceId(execution.getProcessInstanceId())
+                                    .singleResult();
+                            if(null != processInstance && StringUtils.isNotBlank(processInstance.getStartUserId())){
+                                String startUserId = processInstance.getStartUserId();
+                                //通过查询流程发起人确认发起人所在部门以及部门分管领导信息
+                                if(sql.contains("@currentUser.id")){
+                                    //将标志进行去除
+                                    sql = sql.replaceAll("gsldbxCurrentUserSql:","");
+                                    //将判断条件进行替换
+                                    sql = sql.replaceAll("@currentUser.id","'" + startUserId + "'");
+                                }
+                            } else {
+                                //如果找不到发起人信息 则审核人默认为 角色 总经办人员信息
+                                sql = "SELECT su.* FROM sys_user_role a LEFT JOIN sys_role sr ON sr.id = a.role_id LEFT JOIN sys_user su ON su.id = a.user_id LEFT JOIN sys_office so ON so.id = su.office_id WHERE sr.en_name = 'zjb'";
+                            }
+                            //设定部门分管领导为审核人
+                            List<Map<String, Object>> maps = SpringUtil.getBean(JdbcTemplate.class).queryForList(sql);
+                            if(null == maps || maps.size()==0){
+                                sql = "SELECT su.* FROM sys_user_role a LEFT JOIN sys_role sr ON sr.id = a.role_id LEFT JOIN sys_user su ON su.id = a.user_id LEFT JOIN sys_office so ON so.id = su.office_id WHERE sr.en_name = 'zjb'";
+                                maps = SpringUtil.getBean(JdbcTemplate.class).queryForList(sql);
+                            }
+                            for (Map<String, Object> map : maps) {
+                                candidateUserIds.add(map.get ("id").toString ());
+                            }
+                        }
 
                         break;
                 }