Kaynağa Gözat

业务提问:评估的和会计的项目分开获取展示

lizhenhao 2 yıl önce
ebeveyn
işleme
1c506fb89b
16 değiştirilmiş dosya ile 293 ekleme ve 9 silme
  1. 10 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/controller/CwProjectRecordsController.java
  2. 4 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/CwProjectRecordsMapper.java
  3. 33 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/xml/CwProjectRecordsMapper.xml
  4. 37 0
      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/klgBase/question/controller/KlgBaseQuestionsController.java
  6. 5 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/klgBase/question/domain/KlgBaseQuestions.java
  7. 13 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/klgBase/question/mapper/xml/KlgBaseQuestionsMapper.xml
  8. 6 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/klgBase/question/service/KlgBaseQuestionsService.java
  9. 5 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/klgBase/question/service/dto/KlgBaseQuestionsDTO.java
  10. 9 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/controller/ProjectListController.java
  11. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListInfo.java
  12. 4 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProjectListMapper.java
  13. 92 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProjectListMapper.xml
  14. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/ProjectListService.java
  15. 15 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/OfficeController.java
  16. 41 2
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/OfficeService.java

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

@@ -55,6 +55,15 @@ public class CwProjectRecordsController {
         result = cwProjectRecordsService.findList (page,cwProjectRecordsDTO);
         return ResponseEntity.ok (result);
     }
+    /**
+     * 查询项目数据集合,和上面list接口是一样的,目的是跳过findList mapper接口的数据规则(比如仅部门可见、仅自己可见之类的)
+     */
+    @GetMapping("list2")
+    public ResponseEntity<IPage<CwProjectRecordsDTO>> data2(CwProjectRecordsDTO cwProjectRecordsDTO, Page<CwProjectRecordsDTO> page) throws Exception {
+        IPage<CwProjectRecordsDTO> result = new Page<CwProjectRecordsDTO>();
+        result = cwProjectRecordsService.findList2 (page,cwProjectRecordsDTO);
+        return ResponseEntity.ok (result);
+    }
 
     /**
      * 查询财务项目详情
@@ -62,7 +71,7 @@ public class CwProjectRecordsController {
      * @return
      */
     @ApiLog("查询财务项目详情")
-    @PreAuthorize ("hasAnyAuthority('cwProjectRecords:view','cwProjectRecords:add','cwProjectRecords:edit')")
+//    @PreAuthorize ("hasAnyAuthority('cwProjectRecords:view','cwProjectRecords:add','cwProjectRecords:edit')")
     @GetMapping("queryById")
     public ResponseEntity queryById(@RequestParam("id") String id) {
         CwProjectRecordsDTO cwProjectRecordsDTO = cwProjectRecordsService.queryById ( id );

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

@@ -29,6 +29,10 @@ public interface CwProjectRecordsMapper extends BaseMapper<CwProjectRecords> {
      */
     IPage<CwProjectRecordsDTO> findList(Page<CwProjectRecordsDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwProjectRecords> queryWrapper);
     /**
+     * 查询项目数据集合,和上面findList是一样的,目的是跳过findList接口的数据规则(比如仅部门可见、仅自己可见之类的)
+     */
+    IPage<CwProjectRecordsDTO> findList2(Page<CwProjectRecordsDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwProjectRecords> queryWrapper);
+    /**
      * 根据id查询项目详情
      * @param id
      * @return

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

@@ -301,6 +301,39 @@
         ${ew.customSqlSegment}
         ORDER BY a.create_date DESC
     </select>
+    <select id="findList2" resultMap="BaseResultMap">
+        select
+        DISTINCT
+        <include refid="Base_Column_List"></include>,
+        su.name as user_name,
+        su2.name as project_master_name,
+        su3.name as real_header_name,
+        cw_wci.contract_name,
+        cw_wci.contract_amount,
+        cw_wci.contract_num,
+        cw_wci.payer_subject,
+        cw_wci.payment_method,
+        cw_wcb.name as client_contacts_name,
+        cw_pbt.name as business_type_name,
+        b.member_count
+        from cw_project_records a
+        left join sys_user su on su.id = a.create_by and su.del_flag = '0'
+        left join sys_user su2 on su2.id = a.project_master_id and su2.del_flag = '0'
+        left join sys_user su3 on su3.id = a.real_header and su3.del_flag = '0'
+        left join cw_work_contract_info cw_wci on cw_wci.id = a.contract_id and cw_wci.del_flag = '0'
+        left join cw_work_client_base cw_wcb on cw_wci.client_contacts = cw_wcb.id and cw_wcb.del_flag = '0'
+        left join cw_project_business_type cw_pbt on cw_pbt.id = a.business_type and cw_pbt.del_flag = '0'
+        left join (select rec.id,count(cw_pm.id) as member_count
+        from cw_project_records rec
+        left join cw_project_members cw_pm on cw_pm.project_id = rec.id and cw_pm.del_flag = '0'
+        group by rec.id
+        ) b on b.id = a.id
+        left join cw_project_members cpm on a.id = cpm.project_id
+        left join sys_user sub on cpm.user_id = sub.id
+        left join sys_user_manage_office sumo on sumo.office_id = sub.office_id
+        ${ew.customSqlSegment}
+        ORDER BY a.create_date DESC
+    </select>
 
     <select id="queryById" resultMap="BaseResultMap">
         select

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectRecordsService.java

@@ -114,6 +114,43 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
         IPage<CwProjectRecordsDTO> list = cwProjectRecordsMapper.findList(page, queryWrapper);
         return list;
     }
+    /**
+     * 查询项目数据集合,和上面findList是一样的,目的是跳过findList接口的数据规则(比如仅部门可见、仅自己可见之类的)
+     */
+    public IPage<CwProjectRecordsDTO> findList2(Page<CwProjectRecordsDTO> page, CwProjectRecordsDTO cwProjectRecordsDTO) throws Exception{
+        QueryWrapper<CwProjectRecords> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( CwProjectRecordsWrapper.INSTANCE.toEntity(cwProjectRecordsDTO), CwProjectRecords.class );
+        queryWrapper.eq("a.del_flag","0");
+//        queryWrapper.orderByDesc("a.create_date");
+        if (ObjectUtil.isNotEmpty(cwProjectRecordsDTO)) {
+            if (ArrayUtil.isNotEmpty(cwProjectRecordsDTO.getCreateDates())) {
+                queryWrapper.between("a.create_date", cwProjectRecordsDTO.getCreateDates()[0], cwProjectRecordsDTO.getCreateDates()[1]);
+            }
+            if (StringUtils.isNotBlank(cwProjectRecordsDTO.getProjectMasterName())) {
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().lambda().like(User::getName, cwProjectRecordsDTO.getProjectMasterName()));
+                List<String> ids = userList.stream().distinct().map(User::getId).collect(Collectors.toList());
+                if (CollectionUtil.isNotEmpty(ids)) {
+                    queryWrapper.in("a.project_master_id", ids);
+                } else {
+                    return new Page<>();
+                }
+            }
+            if (StringUtils.isNotBlank(cwProjectRecordsDTO.getRealHeaderName())) {
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().lambda().like(User::getName, cwProjectRecordsDTO.getRealHeaderName()));
+                List<String> ids = userList.stream().distinct().map(User::getId).collect(Collectors.toList());
+                if (CollectionUtil.isNotEmpty(ids)) {
+                    queryWrapper.in("a.real_header", ids);
+                } else {
+                    return new Page<>();
+                }
+            }
+            if (StringUtils.isNotBlank(cwProjectRecordsDTO.getCreateId())){
+                queryWrapper.eq("a.create_by", cwProjectRecordsDTO.getCreateId());
+            }
+        }
+
+        IPage<CwProjectRecordsDTO> list = cwProjectRecordsMapper.findList2(page, queryWrapper);
+        return list;
+    }
 
     /**
      * 根据id查询项目详情

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/klgBase/question/controller/KlgBaseQuestionsController.java

@@ -106,7 +106,7 @@ public class KlgBaseQuestionsController {
      * @param klgBaseQuestionsDTO
      * @return
      */
-    @ApiLog(value = "保存发票数据-流程", type = LogTypeEnum.SAVE)
+    @ApiLog(value = "保存业务提问-流程", type = LogTypeEnum.SAVE)
     @PreAuthorize("hasAnyAuthority('klg:question:add','klg:question:edit')")
     @PostMapping("saveForm")
     public ResponseEntity saveForm(@Valid @RequestBody KlgBaseQuestionsDTO klgBaseQuestionsDTO) throws Exception {

+ 5 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/klgBase/question/domain/KlgBaseQuestions.java

@@ -38,7 +38,6 @@ public class KlgBaseQuestions extends BaseEntity {
     /**
      * 项目名称
      */
-    @Query(tableColumn = "kbq.program_id",type = QueryType.EQ)
     private String programId;
 
     /**
@@ -77,5 +76,10 @@ public class KlgBaseQuestions extends BaseEntity {
      */
     private Date finishDate;
 
+    /**
+     * 项目类型  1评估 2兴光会计
+     */
+    private String projectType;
+
     private static final long serialVersionUID = 1L;
 }

+ 13 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/klgBase/question/mapper/xml/KlgBaseQuestionsMapper.xml

@@ -24,6 +24,7 @@
             <result property="processDefinitionId" column="process_definition_id" jdbcType="VARCHAR"/>
             <result property="createBy.name" column="create_name" jdbcType="VARCHAR"/>
             <result property="finishDate" column="finish_date" jdbcType="TIMESTAMP"/>
+            <result property="projectType" column="project_type" jdbcType="VARCHAR"/>
             <collection property="klgBaseDisposeDTOList" ofType="com.jeeplus.test.klgBase.question.service.dto.KlgBaseDisposeDTO" column="id" select="getDisposeList"></collection>
             <collection property="klgBaseReplyDTOList" ofType="com.jeeplus.test.klgBase.question.service.dto.KlgBaseReplyDTO" column="id" select="getReplyList"></collection>
             <collection property="workAttachmentDtoList" ofType="com.jeeplus.test.workContract.service.dto.WorkAttachmentDto" column="id" select="getFileList"></collection>
@@ -66,7 +67,8 @@
         kbq.status,
         kbq.proc_ins_id,
         kbq.process_definition_id,
-        kbq.finish_date
+        kbq.finish_date,
+        kbq.project_type
     </sql>
     <sql id="Kbr_Column_List">
         kbr.id,
@@ -140,10 +142,14 @@
     <select id="findList" resultMap="BaseResultMap">
         select
         <include refid="Base_Column_List"></include>,
-        ppli.name as program_name,
+        (CASE
+        WHEN kbq.project_type = '1' THEN ppli.name
+        WHEN kbq.project_type = '2' THEN cw_pr.project_name
+        ELSE '' END) AS program_name,
         su.name as create_name
         from klg_base_questions kbq
         left join program_project_list_info ppli on ppli.id = kbq.program_id and ppli.del_flag = '0'
+        left join cw_project_records cw_pr on cw_pr.id = kbq.program_id and cw_pr.del_flag = '0'
         left join sys_user su on su.id = kbq.create_by and su.del_flag = '0'
         ${ew.customSqlSegment}
     </select>
@@ -163,10 +169,14 @@
     <select id="queryById" resultMap="BaseResultMap">
         select
         <include refid="Base_Column_List"></include>,
-        ppli.name as program_name,
+        (CASE
+        WHEN kbq.project_type = '1' THEN ppli.name
+        WHEN kbq.project_type = '2' THEN cw_pr.project_name
+        ELSE '' END) AS program_name,
         su.name as create_name
         from klg_base_questions kbq
         left join program_project_list_info ppli on ppli.id = kbq.program_id and ppli.del_flag = '0'
+        left join cw_project_records cw_pr on cw_pr.id = kbq.program_id and cw_pr.del_flag = '0'
         left join sys_user su on su.id = kbq.create_by and su.del_flag = '0'
         where kbq.del_flag = '0' and kbq.id = ${id}
     </select>

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/klgBase/question/service/KlgBaseQuestionsService.java

@@ -78,6 +78,12 @@ public class KlgBaseQuestionsService extends ServiceImpl<KlgBaseQuestionsMapper,
                     queryWrapper.eq("kbq.create_by",klgBaseQuestionsDTO.getCreateBy().getId());
                 }
             }
+            if (StringUtils.isNotBlank(klgBaseQuestionsDTO.getProgramName())) {
+                queryWrapper.and(w->
+                        w.like("ppli.name",klgBaseQuestionsDTO.getProgramName())
+                            .or().like("cw_pr.project_name",klgBaseQuestionsDTO.getProgramName())
+                );
+            }
         }
         IPage<KlgBaseQuestionsDTO> list = klgBaseQuestionsMapper.findList(page, queryWrapper);
         list.getRecords().stream().forEach(item->{

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/klgBase/question/service/dto/KlgBaseQuestionsDTO.java

@@ -125,6 +125,11 @@ public class KlgBaseQuestionsDTO extends BaseDTO {
      */
     private List<WorkAttachmentDto> workAttachmentDtoList;
 
+    /**
+     * 项目类型  1评估 2兴光会计
+     */
+    private String projectType;
+
 
     private static final long serialVersionUID = 1L;
 }

+ 9 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/controller/ProjectListController.java

@@ -222,6 +222,15 @@ public class ProjectListController {
     }
 
     /**
+     * 项目登记列表,和上面list接口是一样的,目的时跳过list mapper接口的数据规则(比如仅部门可见、仅自己可见之类的)
+     */
+    @GetMapping(value = "/list2")
+    public ResponseEntity<IPage<ProgramProjectListInfo>> list2(ProgramProjectListInfo info, Page<ProgramProjectListInfo> page) throws Exception {
+        IPage<ProgramProjectListInfo> list = projectListService.list2(page, info, "1");
+        return ResponseEntity.ok (list);
+    }
+
+    /**
      * 2022项目-项目登记列表
      * @param info
      * @param page

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListInfo.java

@@ -341,7 +341,7 @@ public class ProgramProjectListInfo {
     private String contractNo;
 
     /**
-     * 所属菜单
+     * 所属菜单   是评估项目登记   还是  评估2022项目登记
      */
     private String tabType;
 

+ 4 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProjectListMapper.java

@@ -21,6 +21,10 @@ public interface ProjectListMapper extends BaseMapper<ProgramProjectListInfo> {
     void updateStatusById(@Param("id")String id, @Param("status")String status);
 
     IPage<ProgramProjectListInfo> findPageList(Page<ProgramProjectListInfo> page, @Param(Constants.WRAPPER) QueryWrapper<ProgramProjectListInfo> wrapper);
+    /**
+     * 项目登记列表,和上面findPageList接口是一样的,目的时跳过findPageList mapper接口的数据规则(比如仅部门可见、仅自己可见之类的)
+     */
+    IPage<ProgramProjectListInfo> findPageList2(Page<ProgramProjectListInfo> page, @Param(Constants.WRAPPER) QueryWrapper<ProgramProjectListInfo> wrapper);
 
     List<ProgramProjectListInfo> findInfoList(@Param(Constants.WRAPPER) QueryWrapper<ProgramProjectListInfo> wrapper);
 

+ 92 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProjectListMapper.xml

@@ -150,6 +150,98 @@
             ${ew.customSqlSegment}
             ORDER BY a.update_date DESC
     </select>
+    <select id="findPageList2" resultType="com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo">
+        SELECT
+        distinct
+           a.id,
+           b.name AS create_by,
+           a.create_date,
+           a.update_by,
+           a.update_date,
+           a.del_flag,
+           a.contract_id,
+           a.contract_name,
+           a.client,
+           a.client_name,
+           a.amount,
+           a.contract_type,
+           a.name,
+           a.no,
+           a.project_type,
+           a.approval_no,
+           a.company,
+           a.project_mould,
+           a.property_holder,
+           a.property_holder_name,
+           a.location,
+           a.is_first,
+           a.year_num,
+           a.check_year,
+           a.project_manager,
+           c.name AS project_manager_name,
+           a.report_type,
+           a.industry,
+           a.enterprise_type,
+           a.risk_level,
+           a.project_source,
+           a.estimate,
+           a.plan_end_time,
+           a.use_num,
+           a.appointment,
+           a.work_hours,
+           a.remarks,
+           a.assessment_enterprise,
+           a.assessment_enterprise_name,
+           a.link_num,
+           a.relationship,
+           a.assessment_way,
+           a.assessment_objective,
+           a.assessment_date,
+           a.num,
+           a.project_development,
+           a.delegate_project_type,
+           a.assessment_object,
+           a.work_begin_date,
+           a.work_end_date,
+           a.reporting_date,
+           a.is_have,
+           a.is_influence,
+           a.mode,
+           a.status,
+           a.proc_ins_id,
+           a.process_definition_id,
+           prn.report_no,
+           pa1.status as status1,
+           pa1.id as auditId1,
+           pa1.proc_ins_id as procInsId1,
+           pa2.status as status2,
+           pa2.id as auditId2,
+           pa2.proc_ins_id as procInsId2,
+           pa3.status as status3,
+           pa3.id as auditId3,
+           pa3.proc_ins_id as procInsId3,
+           pa.status as archive_status,
+           pa.id as archive_id,
+           pa.proc_ins_id as procInsIdArchive,
+           d.id AS issued_id,
+           d.proc_ins_id AS procInsId4,
+           d.status AS issued_status,
+           wci.no AS contract_no
+        FROM
+            program_project_list_info a
+            LEFT JOIN sys_user b ON a.create_by = b.id
+            LEFT JOIN sys_user c ON a.project_manager = c.id
+            LEFT JOIN work_contract_info wci ON wci.id = a.contract_id and wci.del_flag = '0'
+            LEFT JOIN program_report_no prn ON prn.program_id = a.id and prn.del_flag = '0'
+            LEFT JOIN program_audit pa1 ON pa1.program_id = a.id and pa1.audit_level = '1' and pa1.del_flag = '0'
+            LEFT JOIN program_audit pa2 ON pa2.program_id = a.id and pa2.audit_level = '2' and pa2.del_flag = '0'
+            LEFT JOIN program_audit pa3 ON pa3.program_id = a.id and pa3.audit_level = '3' and pa3.del_flag = '0'
+            LEFT JOIN program_archive pa ON pa.program_id = a.id and pa.del_flag = '0'
+            left join program_members pm on a.id = pm.project_id
+            LEFT JOIN proofread_issued d ON a.id = d.project_id
+            ${ew.customSqlSegment}
+            ORDER BY a.update_date DESC
+    </select>
 
     <select id="findInfoList" resultType="com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo">
         SELECT

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/ProjectListService.java

@@ -623,6 +623,23 @@ public class ProjectListService {
         });
         return pageList;
     }
+    /**
+     * 项目登记列表,和上面list接口是一样的,目的时跳过list mapper接口的数据规则(比如仅部门可见、仅自己可见之类的)
+     */
+    public IPage<ProgramProjectListInfo> list2(Page<ProgramProjectListInfo> page, ProgramProjectListInfo info, String tabType) throws Exception{
+        QueryWrapper<ProgramProjectListInfo> wrapper = QueryWrapperGenerator.buildQueryCondition(info, ProgramProjectListInfo.class);
+        wrapper.eq("a.del_flag", "0");
+        wrapper.eq("a.tab_type", tabType);
+        if (info.getCreateDates() != null) {
+            wrapper.between("a.create_date", info.getCreateDates()[0], info.getCreateDates()[1]);
+        }
+        IPage<ProgramProjectListInfo> pageList = projectListMapper.findPageList2(page, wrapper);
+        pageList.getRecords().stream().forEach(item ->{
+            String isInvoice = projectListMapper.selectInvoiceFlag(item.getId());
+            item.setIsInvoice(isInvoice);
+        });
+        return pageList;
+    }
 
     public List<ExportFileDto> exportList(ProgramProjectListInfo info, String tabType) throws Exception{
         QueryWrapper<ProgramProjectListInfo> wrapper = QueryWrapperGenerator.buildQueryCondition(info, ProgramProjectListInfo.class);

+ 15 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/OfficeController.java

@@ -147,4 +147,19 @@ public class OfficeController {
         return ResponseEntity.ok (result);
     }
 
+    /**
+     * 查询当前登录人所属部门是评估还是兴光会计
+     *  1 评估
+     *  2 兴光会计
+     *  3 其他
+     *  4 管理员
+     * @return
+     */
+    @ApiLog("查询当前登录人所属部门是评估还是兴光会计")
+    @GetMapping("checkLoginIsPgOrKj")
+    public ResponseEntity<String> checkLoginIsPgOrKj() {
+        String result = officeService.checkLoginIsPgOrKj();
+        return ResponseEntity.ok (result);
+    }
+
 }

+ 41 - 2
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/OfficeService.java

@@ -17,7 +17,6 @@ import com.jeeplus.sys.constant.enums.OfficeTypeEnum;
 import com.jeeplus.sys.domain.Office;
 import com.jeeplus.sys.mapper.OfficeMapper;
 import com.jeeplus.sys.service.dto.OfficeDTO;
-import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.service.mapstruct.OfficeWrapper;
 import com.jeeplus.sys.utils.UserUtils;
 import org.apache.commons.lang.StringUtils;
@@ -25,7 +24,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -393,4 +391,45 @@ public class OfficeService extends TreeService<OfficeMapper, Office> {
         queryWrapper.orderByDesc("so.name");
         return officeMapper.findList(page, queryWrapper).getRecords();
     }
+
+    /**
+     * 查询当前登录人所属部门是评估还是兴光会计
+     *  1 评估
+     *  2 兴光会计
+     *  3 其他
+     *  4 管理员
+     */
+    public String checkLoginIsPgOrKj() {
+        AtomicReference<String> returnCode = new AtomicReference<>("3");
+        // 如果当前登录人是管理员,直接返回 4
+        if (UserUtils.getCurrentUserDTO().isAdmin()) {
+            return "4";
+        }
+        // 获取当前登录人所属部门
+        String officeId = UserUtils.getCurrentUserDTO().getOfficeDTO().getId();
+        // 获取当前登录人所属部门的所有上级机构的id
+        List<String> supOfficeIds = new ArrayList<>();
+        Office office = officeMapper.selectById(officeId);
+        if (ObjectUtil.isNotEmpty(office)) {
+            if (StringUtils.isNotBlank(office.getParentIds())) {
+                String[] splitIds = office.getParentIds().split(",");
+                if (ObjectUtil.isNotEmpty(splitIds)) {
+                    for (String splitId : splitIds) {
+                        supOfficeIds.add(splitId);
+                    }
+                }
+            }
+        }
+        supOfficeIds.add(officeId);
+        List<Office> officeList = officeMapper.selectList(new LambdaQueryWrapper<Office>().in(Office::getId, supOfficeIds));
+        officeList.stream().forEach(item -> {
+            if ("xgzcpg".equals(item.getCode())) { // 当前人所属评估部门
+                returnCode.set("1");
+            }
+            if ("xgkjssws".equals(item.getCode())) { // 当前人所属兴光会计部门
+                returnCode.set("2");
+            }
+        });
+        return returnCode.get();
+    }
 }