فهرست منبع

会计归档导出调整

huangguoce 1 هفته پیش
والد
کامیت
f0caf4258a

+ 3 - 3
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReportArchive/controller/CwProjectReportArchiveController.java

@@ -177,15 +177,15 @@ public class CwProjectReportArchiveController {
         String sheetName = options.getSheetName();
         List<CwProjectReportArchiveDTO> result = new ArrayList<>();
         if ( ExportMode.current.equals ( options.getMode() ) ) {
-            result = cwProjectReportArchiveService.findList (page, cwProjectReportArchiveDTO).getRecords();
+            result = cwProjectReportArchiveService.ExportList (page, cwProjectReportArchiveDTO).getRecords();
         } else if (ExportMode.selected.equals ( options.getMode() )) {
-            result = cwProjectReportArchiveService.findList (page, cwProjectReportArchiveDTO).getRecords().stream ( ).filter ( item ->
+            result = cwProjectReportArchiveService.ExportList (page, cwProjectReportArchiveDTO).getRecords().stream ( ).filter ( item ->
                     options.getSelectIds ( ).contains ( item.getId ( ) )
             ).collect ( Collectors.toList ( ) );
         } else {
             page.setSize (-1);
             page.setCurrent (0);
-            result = cwProjectReportArchiveService.findList (page, cwProjectReportArchiveDTO).getRecords();
+            result = cwProjectReportArchiveService.ExportList (page, cwProjectReportArchiveDTO).getRecords();
         }
 
         if(result.size()>0){

+ 3 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReportArchive/mapper/CwProjectReportArchiveMapper.java

@@ -26,6 +26,9 @@ public interface CwProjectReportArchiveMapper extends BaseMapper<CwProjectReport
     void updateBorrowTypeById(@Param("id") String id, @Param("status")String status);
     //@InterceptorIgnore(tenantLine = "true")
     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);
+
+    IPage<CwProjectReportArchiveDTO> exportList(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);
+
     IPage<CwProjectReportArchiveExportDTO> findExportList(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);
 
     @InterceptorIgnore(tenantLine = "true")

+ 89 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReportArchive/mapper/xml/CwProjectReportArchiveMapper.xml

@@ -44,6 +44,46 @@
         <association property="cwProjectRecordsDTO" column="project_id" select="getProject" javaType="com.jeeplus.finance.projectRecords.service.dto.CwProjectRecordsDTO"></association>
         <collection property="workAttachmentDtoList" ofType="com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO" column="id" select="getFileList"></collection>
     </resultMap>
+
+    <resultMap id="ExportResultMap" type="com.jeeplus.finance.projectReportArchive.service.dto.CwProjectReportArchiveDTO">
+        <id property="id" column="id" jdbcType="VARCHAR"/>
+        <result property="createBy.id" column="create_by_id" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="updateBy.id" column="update_by_id" jdbcType="VARCHAR"/>
+        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+        <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+        <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+        <result property="projectId" column="project_id" jdbcType="VARCHAR"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="auditedUnits" column="audited_units" jdbcType="VARCHAR"/>
+        <result property="reportNum" column="report_num" jdbcType="VARCHAR"/>
+        <result property="papersNum" column="papers_num" jdbcType="VARCHAR"/>
+        <result property="year" column="year" jdbcType="VARCHAR"/>
+        <result property="number" column="number" jdbcType="VARCHAR"/>
+        <result property="isNumber" column="is_number" jdbcType="VARCHAR"/>
+        <result property="specialPlace" column="special_place" jdbcType="VARCHAR"/>
+        <result property="auditDate" column="audit_date" jdbcType="TIMESTAMP"/>
+        <result property="procInsId" column="proc_ins_id" jdbcType="VARCHAR"/>
+        <result property="processDefinitionId" column="process_definition_id" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="VARCHAR"/>
+        <result property="auditedUnitsName" column="audited_units_name" jdbcType="VARCHAR"/>
+        <result property="createBy.name" column="user_name" jdbcType="VARCHAR"/>
+        <result property="fileNumber" column="file_number" jdbcType="VARCHAR"/>
+        <result property="projectMasterName" column="project_master_name" jdbcType="VARCHAR"/>
+        <result property="projectName" column="project_name" jdbcType="VARCHAR"/>
+        <result property="createName" column="user_name" jdbcType="VARCHAR"/>
+        <result property="createDateT" column="create_time" jdbcType="VARCHAR"/>
+        <result property="createDate" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="reportId" column="report_id" jdbcType="VARCHAR"/>
+        <result property="reportNo" column="report_no" jdbcType="VARCHAR"/>
+        <result property="reportRemarks" column="report_remarks" jdbcType="VARCHAR"/>
+        <result property="reportDate" column="report_date" jdbcType="TIMESTAMP"/>
+        <result property="reportCreateName" column="report_create_name" jdbcType="VARCHAR"/>
+        <result property="signatureAnnotator1Name" column="signature_annotator1_name" jdbcType="VARCHAR"/>
+        <result property="signatureAnnotator2Name" column="signature_annotator2_name" jdbcType="VARCHAR"/>
+        <result property="taskId" column="task_id" jdbcType="VARCHAR"/>
+    </resultMap>
+
     <resultMap id="AttachmentMap" type="com.jeeplus.finance.projectReportArchive.service.dto.WorkAttachmentArchiveDto">
         <id property="id" column="id" jdbcType="VARCHAR"/>
         <result property="createBy.id" column="create_by_id" jdbcType="VARCHAR"/>
@@ -750,4 +790,53 @@
         AND a.status = '5'
         AND a.del_flag = '0';
     </update>
+
+    <select id="exportList" resultMap="ExportResultMap">
+        select
+        DISTINCT
+        <include refid="Base_Column_List"></include>,
+        cw_wcb.name as audited_units_name,
+        su.name as user_name,
+        su1.name as project_master_name,
+        su2.name as realHeaderName,
+        cw_pr.project_name as project_name,
+        cw_prnl.report_no,
+        date_format(cw_prnl.report_date,'%Y-%m-%d') as report_date,
+        art.ID_ as task_id,
+        crb.create_by_id as borrowUserId,
+        crb.proc_ins_id as procInsId2,
+        (case when cw_pa.audit_date is null then timestampdiff(day,cw_prnl.report_date,now()) when cw_pa.audit_date is not null then timestampdiff(day,cw_prnl.report_date,cw_pa.audit_date) end) as archiveDay
+        from cw_project_report_archive cw_pa
+        left join cw_project_report_borrow crb on crb.archive_id = cw_pa.id and crb.del_flag = '0'
+        left join cw_work_client_base cw_wcb on cw_pa.audited_units = cw_wcb.id and cw_wcb.del_flag = '0'
+        left join sys_user su on su.id = cw_pa.create_by_id and su.del_flag = '0'
+        left join sys_office so on so.id = su.office_id and so.del_flag ='0'
+        left join cw_project_records cw_pr on cw_pr.id = cw_pa.project_id and cw_pr.del_flag = '0'
+        left join sys_user su1 on cw_pr.project_master_id = su1.id and su1.del_flag = '0'
+        left join sys_user su2 on cw_pr.real_header = su2.id and su2.del_flag = '0'
+        left join cw_project_report_new_line cw_prnl on cw_prnl.report_id = cw_pa.report_id and cw_prnl.del_flag = '0'
+
+        left join cw_project_members cpm on cw_pr.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
+
+        left join act_ru_task art ON cw_pa.proc_ins_id = art.PROC_INST_ID_
+
+        ${ew.customSqlSegment}
+        and cw_prnl.report_number is not null and cw_prnl.report_date is not null and cw_pa.del_flag = '0'
+        <if test="sta == '超期未归档'">
+            and cw_pa.audit_date is null and timestampdiff(day,cw_prnl.report_date,now())>60
+        </if>
+        <if test="sta == '暂时未归档'">
+            and cw_pa.audit_date is null and timestampdiff(day,cw_prnl.report_date,now()) &lt;= 60
+        </if>
+        <if test="sta == '已超期归档'">
+            and cw_pa.audit_date is not null and timestampdiff(day,cw_prnl.report_date,cw_pa.audit_date)>60
+        </if>
+        <if test="sta == '已按时归档'">
+            and cw_pa.audit_date is not null and timestampdiff(day,cw_prnl.report_date,cw_pa.audit_date) &lt;= 60
+        </if>
+
+        ORDER BY cw_pa.create_time DESC
+    </select>
 </mapper>

+ 128 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReportArchive/service/CwProjectReportArchiveService.java

@@ -223,7 +223,6 @@ public class CwProjectReportArchiveService extends ServiceImpl<CwProjectReportAr
             }
         }*/
 
-
         IPage<CwProjectReportArchiveDTO> list = cwProjectReportArchiveMapper.findList(page, userDTO, isBmzr, officeIds.toString(), queryWrapper, cwProjectReportArchiveDTO.getArchiveSta());
         List<CwProjectReportArchiveDTO> records = list.getRecords();
         if (null != records && records.size()>0){
@@ -802,5 +801,133 @@ public class CwProjectReportArchiveService extends ServiceImpl<CwProjectReportAr
         return null;
     }
 
+    /**
+     * 项目归档列表信息
+     * @param page
+     * @param cwProjectReportArchiveDTO
+     * @return
+     * @throws Exception
+     */
+    public IPage<CwProjectReportArchiveDTO> ExportList(Page<CwProjectReportArchiveDTO> page, CwProjectReportArchiveDTO cwProjectReportArchiveDTO) throws Exception{
+        QueryWrapper<CwProjectReportArchive> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( CwProjectReportArchiveWrapper.INSTANCE.toEntity(cwProjectReportArchiveDTO), CwProjectReportArchive.class );
+        queryWrapper.eq("cw_pa.del_flag","0");
+        if (ObjectUtil.isNotEmpty(cwProjectReportArchiveDTO)) {
+            if (ObjectUtil.isNotEmpty(cwProjectReportArchiveDTO.getCwProjectRecordsDTO())){
+                // 项目名称
+                if (StringUtils.isNotBlank(cwProjectReportArchiveDTO.getCwProjectRecordsDTO().getProjectName())){
+                    List<CwProjectRecords> cwProjectRecords = cwProjectRecordsMapper.selectList(new QueryWrapper<CwProjectRecords>().lambda().like(CwProjectRecords::getProjectName, cwProjectReportArchiveDTO.getCwProjectRecordsDTO().getProjectName()));
+                    List<String> ids = cwProjectRecords.stream().map(CwProjectRecords::getId).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
+                    if(CollectionUtil.isNotEmpty(ids)) {
+                        queryWrapper.in("cw_pa.project_id",ids);
+                    }else{
+                        return new Page<>();
+                    }
+                }
+                // 项目经理1
+                if (StringUtils.isNotBlank(cwProjectReportArchiveDTO.getCwProjectRecordsDTO().getProjectMasterName())){
+                    queryWrapper.like("su1.name",cwProjectReportArchiveDTO.getCwProjectRecordsDTO().getProjectMasterName());
+
+                }
+                // 项目经理2
+                if (StringUtils.isNotBlank(cwProjectReportArchiveDTO.getCwProjectRecordsDTO().getRealHeaderName())){
+                    queryWrapper.like("su2.name",cwProjectReportArchiveDTO.getCwProjectRecordsDTO().getRealHeaderName());
+
+                }
+                // 创建时间
+                if (ArrayUtil.isNotEmpty(cwProjectReportArchiveDTO.getCreateDates())){
+                    queryWrapper.between("cw_pa.create_time", cwProjectReportArchiveDTO.getCreateDates()[0], cwProjectReportArchiveDTO.getCreateDates()[1]);
+                }
+                // 归档时间
+                if (ArrayUtil.isNotEmpty(cwProjectReportArchiveDTO.getAuditDates())){
+                    queryWrapper.between("cw_pa.audit_date", cwProjectReportArchiveDTO.getAuditDates()[0], cwProjectReportArchiveDTO.getAuditDates()[1]);
+                }
+                //如果案卷号存在,同时添加模糊查询文档位置
+                if(StringUtils.isNotBlank(cwProjectReportArchiveDTO.getNumber())){
+                    queryWrapper.and(qw ->
+                            qw.like("cw_pa.number", cwProjectReportArchiveDTO.getNumber())
+                                    .or()
+                                    .like("cw_pa.special_place", cwProjectReportArchiveDTO.getNumber())
+                    );
+                }
+                // 创建人
+                if (ObjectUtil.isNotEmpty(cwProjectReportArchiveDTO.getCreateBy())){
+                    if (StringUtils.isNotBlank(cwProjectReportArchiveDTO.getCreateBy().getName())){
+                        queryWrapper.in("cw_pa.create_by_id",cwProjectReportArchiveDTO.getCreateBy().getName()).or().like("su.name",cwProjectReportArchiveDTO.getCreateBy().getName());
+                    }
+                }
+                // 报告文号
+                if (StringUtils.isNotBlank(cwProjectReportArchiveDTO.getReportNo())) {
+                    queryWrapper.like("cw_prnl.report_no",cwProjectReportArchiveDTO.getReportNo());
+                }
+
+            }
+        }
+        String isBmzr = "0";
+        StringBuilder officeIds = new StringBuilder();
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        List<String> manageOfficeIdList= Lists.newArrayList();
+
+        if (StringUtils.isBlank(cwProjectReportArchiveDTO.getArchiveSta())) {
+            cwProjectReportArchiveDTO.setArchiveSta("");
+        }
+        //针对樊莉的导出做调整
+        IPage<CwProjectReportArchiveDTO> list = new Page<>();
+        if("樊莉".equals(userDTO.getName())){
+            list = cwProjectReportArchiveMapper.exportList(page, userDTO, isBmzr, officeIds.toString(), queryWrapper, cwProjectReportArchiveDTO.getArchiveSta());
+        }else{
+             list = cwProjectReportArchiveMapper.findList(page, userDTO, isBmzr, officeIds.toString(), queryWrapper, cwProjectReportArchiveDTO.getArchiveSta());
+        }
+
+        //IPage<CwProjectReportArchiveDTO> list = cwProjectReportArchiveMapper.exportList(page, userDTO, isBmzr, officeIds.toString(), queryWrapper, cwProjectReportArchiveDTO.getArchiveSta());
+        List<CwProjectReportArchiveDTO> records = list.getRecords();
+        if (null != records && records.size()>0){
+            //循环查询出来的数据
+            for (CwProjectReportArchiveDTO info : records) {
+                //如果归档日期为空,则表示该报告还未归档
+                if(null == info.getAuditDate()){
+                    //如果归档日期差大于60天,表示超期未归档
+                    if(info.getArchiveDay()>60){
+                        // 超期天数
+                        Integer overdueDay = info.getArchiveDay() - 60;
+                        info.setArchiveSta("超期未归档");
+                        long n = (long) Math.ceil((double)(overdueDay) / 30);
+                        String money = Long.toString(n * 200);
+                        info.setOverdueDay(String.valueOf(overdueDay));
+                        info.setFineMoney(money);
+                    }else{
+                        //如果归档日期差小于等于60天,表示暂时未归档
+                        info.setArchiveSta("暂时未归档");
+                        info.setOverdueDay(String.valueOf(info.getArchiveDay() - 60));
+                        info.setFineMoney("0");
+                    }
+                } else {
+                    //如果归档日期差大于60天,表示已超期归档
+                    if(info.getArchiveDay()>60){
+                        // 超期天数
+                        Integer overdueDay = info.getArchiveDay() - 60;
+
+                        info.setArchiveSta("已超期归档");
+                        long n = (long) Math.ceil((double)(overdueDay) / 30);
+                        String money = Long.toString(n * 200);
+                        info.setOverdueDay(String.valueOf(overdueDay));
+                        info.setFineMoney(money);
+                    }else{
+                        //如果归档日期差小于等于60天,表示已按时归档
+                        info.setArchiveSta("已按时归档");
+                        info.setOverdueDay(String.valueOf(info.getArchiveDay() - 60));
+                        info.setFineMoney("0");
+                    }
+                }
+                // 报告归档
+                if (StringUtils.isNotBlank(info.getTaskId()) && StringUtils.isNotBlank(info.getStatus())) {
+                    if ("2".equals(info.getStatus())) { // “审核中”的数据要获取数据审核人
+                        info.setAuditUserIds(flowTaskService.getTaskAuditUsers(info.getTaskId()));  // 获取数据审核人
+                    }
+                }
+            }
+        }
+        return list;
+    }
+
 
 }