Ver código fonte

中审报告归档

sangwenwei 2 meses atrás
pai
commit
8a600fc1f7
11 arquivos alterados com 1492 adições e 0 exclusões
  1. 1 0
      jeeplus-common/jeeplus-common-mybatis-plus/src/main/java/com/jeeplus/config/TenantLineHandlerImpl.java
  2. 323 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/Utils/EasyPoiUtil.java
  3. 73 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/Utils/ExcelDiceAddressListHandlerImpl.java
  4. 324 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/controller/ZsReportArchieveController.java
  5. 63 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/domain/ZsReportArchieve.java
  6. 34 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/mapper/ZsReportArchieveMapper.java
  7. 103 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/mapper/xml/ZsReportArchieveMapper.xml
  8. 360 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/service/ZsReportArchieveService.java
  9. 102 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/service/dto/ZsReportArchieveExport.java
  10. 90 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/service/dto/ZsReportArchieveTem.java
  11. 19 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java

+ 1 - 0
jeeplus-common/jeeplus-common-mybatis-plus/src/main/java/com/jeeplus/config/TenantLineHandlerImpl.java

@@ -83,6 +83,7 @@ public class TenantLineHandlerImpl implements TenantLineHandler {
                 || (tableName.startsWith ( "signature_" ))
                 || (tableName.startsWith ( "consultancy_" ))
                 || (tableName.startsWith ( "meeting_" ))
+                || (tableName.startsWith ( "zs_report_" ))
                 || (tableName.startsWith ( "program_" ))) {
             return true;
         }

+ 323 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/Utils/EasyPoiUtil.java

@@ -0,0 +1,323 @@
+package com.jeeplus.centrecareful.reportArchieve.Utils;
+
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+
+/**
+ * @Author Steel.D
+ * @Description easypoi导入导出通用工具类
+ * @Date 2019-7-31 9:29
+ * @Param
+ * @return
+ **/
+
+public class EasyPoiUtil {
+
+    /**
+     * 功能描述:复杂导出Excel,包括文件名以及表名。创建表头
+     *
+     * @param list           导出的实体类
+     * @param title          表头名称
+     * @param sheetName      sheet表名
+     * @param pojoClass      映射的实体类
+     * @param isCreateHeader 是否创建表头
+     * @param fileName
+     * @param response
+     * @return
+     * @author Steel.D
+     * @Date 2019-7-31 9:30
+     */
+
+    public static void exportExcel(List <?> list, String title, String sheetName, Class <?> pojoClass, String fileName, boolean isCreateHeader, HttpServletResponse response) {
+
+        ExportParams exportParams = new ExportParams ( title, sheetName );
+
+        exportParams.setCreateHeadRows ( isCreateHeader );
+
+        defaultExport ( list, pojoClass, fileName, response, exportParams );
+
+    }
+
+
+    /**
+     * 功能描述:复杂导出Excel,包括文件名以及表名,不创建表头
+     *
+     * @param list      导出的实体类
+     * @param title     表头名称
+     * @param sheetName sheet表名
+     * @param pojoClass 映射的实体类
+     * @param fileName  文件名
+     * @param response
+     * @return
+     * @author Steel.D
+     * @Date 2019-7-31 9:35
+     */
+
+    public static void exportExcel(List <?> list, String title, String sheetName, Class <?> pojoClass, String fileName, HttpServletResponse response) {
+        ExportParams exportParams = new ExportParams(title, sheetName);
+        exportParams.setDictHandler(new ExcelDiceAddressListHandlerImpl());
+        defaultExport ( list, pojoClass, fileName, response, exportParams );
+
+    }
+
+
+    /**
+     * 功能描述:Map 集合导出
+     *
+     * @param list     实体集合
+     * @param fileName 导出的文件名称
+     * @param response
+     * @return
+     * @author Steel.D
+     * @Date 2019-7-31 9:45
+     */
+
+    public static void exportExcel(List <Map <String, Object>> list, String fileName, HttpServletResponse response) {
+
+        defaultExport ( list, fileName, response );
+
+    }
+
+
+    /**
+     * 功能描述:默认导出方法
+     *
+     * @param list         导出的实体集合
+     * @param fileName     导出的文件名
+     * @param pojoClass    pojo实体
+     * @param exportParams ExportParams封装实体
+     * @param response
+     * @return
+     * @author Steel.D
+     * @Date 2019-7-31 9:50
+     */
+
+    private static void defaultExport(List <?> list, Class <?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) {
+
+        Workbook workbook = ExcelExportUtil.exportExcel ( exportParams, pojoClass, list );
+
+        if ( workbook != null ) {
+
+            downLoadExcel ( fileName, response, workbook );
+
+        }
+
+    }
+
+    /**
+     * 功能描述:Excel导出
+     *
+     * @param fileName 文件名称
+     * @param response
+     * @param workbook Excel对象
+     * @return
+     * @author Steel.D
+     * @Date 2019-7-31 10:35
+     */
+
+    private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {
+
+        try {
+
+            response.setCharacterEncoding ( "UTF-8" );
+
+            response.setHeader ( "content-Type", "application/vnd.ms-excel" );
+
+            response.setHeader ( "Content-Disposition", "attachment;filename=" + URLEncoder.encode ( fileName, "UTF-8" ) );
+
+            workbook.write ( response.getOutputStream ( ) );
+
+        } catch (IOException e) {
+
+            throw new RuntimeException ( e );
+
+        }
+
+    }
+
+
+    /**
+     * 功能描述:默认导出方法
+     *
+     * @param list     导出的实体集合
+     * @param fileName 导出的文件名
+     * @param response
+     * @return
+     * @author SteeL.D
+     * @Date 2019-7-31 10:45
+     */
+
+    private static void defaultExport(List <Map <String, Object>> list, String fileName, HttpServletResponse response) {
+
+        Workbook workbook = ExcelExportUtil.exportExcel ( list, ExcelType.HSSF );
+
+        if ( workbook != null ) ;
+
+        downLoadExcel ( fileName, response, workbook );
+
+    }
+
+
+    /**
+     * 功能描述:根据文件路径来导入Excel
+     *
+     * @param filePath   文件路径
+     * @param titleRows  表标题的行数
+     * @param headerRows 表头行数
+     * @param pojoClass  Excel实体类
+     * @return
+     * @author Steel.D
+     * @Date 2019-7-31 11:05
+     */
+
+    public static <T> List <T> importExcel(String filePath, Integer titleRows, Integer headerRows, Class <T> pojoClass) {
+
+        //判断文件是否存在
+
+        if ( StringUtils.isBlank ( filePath ) ) {
+
+            return null;
+
+        }
+
+        ImportParams params = new ImportParams ( );
+
+        params.setTitleRows ( titleRows );
+
+        params.setHeadRows ( headerRows );
+
+        List <T> list = null;
+
+        try {
+
+            list = ExcelImportUtil.importExcel ( new File ( filePath ), pojoClass, params );
+
+        } catch (NoSuchElementException e) {
+
+            throw new RuntimeException ( "模板不能为空" );
+
+        } catch (Exception e) {
+
+            e.printStackTrace ( );
+
+
+        }
+
+        return list;
+
+    }
+
+
+    /**
+     * 功能描述:根据接收的Excel文件来导入Excel,并封装成实体类
+     *
+     * @param file       上传的文件
+     * @param titleRows  表标题的行数
+     * @param headerRows 表头行数
+     * @param pojoClass  Excel实体类
+     * @return
+     * @author Steel.D
+     * @Date 2019-7-31 11:30
+     */
+
+    public static <T> List <T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class <T> pojoClass) {
+
+        if ( file == null ) {
+
+            return null;
+
+        }
+
+        ImportParams params = new ImportParams ( );
+
+        params.setTitleRows ( titleRows );
+
+        params.setHeadRows ( headerRows );
+
+        List <T> list = null;
+
+        try {
+
+            list = ExcelImportUtil.importExcel ( file.getInputStream ( ), pojoClass, params );
+
+        } catch (NoSuchElementException e) {
+
+            throw new RuntimeException ( "excel文件不能为空" );
+
+        } catch (Exception e) {
+            e.printStackTrace ();
+            throw new RuntimeException ( e.getMessage ( ) );
+
+        }
+
+        return list;
+
+    }
+
+    /**
+     * 功能描述:根据接收的Excel文件来导入Excel,并封装成实体类
+     *
+     * @param file       上传的文件
+     * @param titleRows  表标题的行数
+     * @param headerRows 表头行数
+     * @param sheetNum   开始sheet页
+     * @param sheetNum   sheet页数
+     * @param pojoClass  Excel实体类
+     * @return
+     * @author Steel.D
+     * @Date 2019-7-31 11:30
+     */
+    public static <T> List <T> importSheetExcel(MultipartFile file, Integer titleRows, Integer headerRows, Integer startSheetIndex, Integer sheetNum, Class <T> pojoClass) {
+
+        if ( file == null ) {
+
+            return null;
+
+        }
+
+        ImportParams params = new ImportParams ( );
+
+        params.setTitleRows ( titleRows );
+
+        params.setHeadRows ( headerRows );
+
+        params.setStartSheetIndex(startSheetIndex);
+
+        params.setSheetNum(sheetNum);
+
+        List <T> list = null;
+
+        try {
+
+            list = ExcelImportUtil.importExcel ( file.getInputStream ( ), pojoClass, params );
+
+        } catch (NoSuchElementException e) {
+
+            throw new RuntimeException ( "excel文件不能为空" );
+
+        } catch (Exception e) {
+            e.printStackTrace ();
+            throw new RuntimeException ( e.getMessage ( ) );
+
+        }
+
+        return list;
+
+    }
+
+
+}

+ 73 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/Utils/ExcelDiceAddressListHandlerImpl.java

@@ -0,0 +1,73 @@
+package com.jeeplus.centrecareful.reportArchieve.Utils;
+
+import cn.afterturn.easypoi.handler.inter.IExcelDictHandler;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.jeeplus.sys.feign.IDictApi;
+import com.jeeplus.sys.service.dto.DictValueInfoDTO;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+//import com.jeeplus.sys.utils.DictUtils;
+
+/**
+ * 模拟使用,生产请用真实字典
+ *
+ */
+public class ExcelDiceAddressListHandlerImpl implements IExcelDictHandler {
+
+    /**
+     * 返回字典所有值
+     * key: dictKey
+     *
+     * @param dict 字典Key
+     * @return
+     */
+    @Override
+    public List<Map> getList(String dict) {
+        List<Map> list = new ArrayList<> ();
+//        Map<String, String> dictMap = new HashMap<>();
+//        dictMap.put("dictKey", "0");
+//        dictMap.put("dictValue", "严重瞌睡");
+//        list.add(dictMap);
+//        dictMap = new HashMap<>();
+//        dictMap.put("dictKey", "1");
+//        dictMap.put("dictValue", "小B");
+//        list.add(dictMap);
+//        dictMap = new HashMap<>();
+//        dictMap.put("dictKey", "1");
+//        dictMap.put("dictValue", "深度富有");
+//        list.add(dictMap);
+//        List<DictValueDTO> dictValueDTOs = DictUtils.getDictMap ().get (dict);
+        String datas = SpringUtil.getBean ( IDictApi.class ).getDictMap (dict);
+        List<DictValueInfoDTO> dictValueDTOs = JSON.parseObject(datas, new TypeReference<List<DictValueInfoDTO>>() {});
+        dictValueDTOs.forEach (dictValueDTO -> {
+            Map<String, String> dictMap = new HashMap<> ();
+            dictMap.put ("dictKey", dictValueDTO.getValue ());
+            dictMap.put ("dictValue", dictValueDTO.getLabel ());
+            list.add (dictMap);
+        });
+        return list;
+    }
+
+    @Override
+    public String toName(String dict, Object obj, String name, Object value) {
+        if (ObjectUtil.isNotEmpty(value)) {
+            return SpringUtil.getBean ( IDictApi.class ).getDictLabel (value.toString (), dict, null);
+        }
+        return "";
+    }
+
+    @Override
+    public String toValue(String dict, Object obj, String name, Object value) {
+        if (ObjectUtil.isNotEmpty(value)) {
+            return SpringUtil.getBean ( IDictApi.class ).getDictLabel (value.toString (), dict, null);
+        }
+        return "";
+    }
+}

+ 324 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/controller/ZsReportArchieveController.java

@@ -0,0 +1,324 @@
+package com.jeeplus.centrecareful.reportArchieve.controller;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.aop.demo.annotation.DemoMode;
+import com.jeeplus.centrecareful.approvalInfo.util.ZSEasyPoiUtil;
+import com.jeeplus.centrecareful.reportArchieve.Utils.EasyPoiUtil;
+import com.jeeplus.centrecareful.reportArchieve.domain.ZsReportArchieve;
+import com.jeeplus.centrecareful.reportArchieve.service.ZsReportArchieveService;
+import com.jeeplus.centrecareful.reportArchieve.service.dto.ZsReportArchieveExport;
+import com.jeeplus.centrecareful.reportArchieve.service.dto.ZsReportArchieveTem;
+import com.jeeplus.common.excel.EasyExcelUtils;
+import com.jeeplus.common.excel.ExcelOptions;
+import com.jeeplus.common.excel.ExportMode;
+import com.jeeplus.logging.annotation.ApiLog;
+import com.jeeplus.logging.constant.enums.LogTypeEnum;
+import com.jeeplus.sys.feign.IDictApi;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Type;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@RestController
+@Api(tags ="中审-报告归档")
+@RequestMapping(value = "/zsReportArchieve/info")
+@Log4j2
+public class ZsReportArchieveController {
+
+    @Autowired
+    private ZsReportArchieveService reportArchieveService;
+
+
+    @ApiOperation(value = "列表查询")
+    @GetMapping("/list")
+    public ResponseEntity<IPage<ZsReportArchieve>> list(Page<ZsReportArchieve> page, ZsReportArchieve zsReportArchieve) throws Exception{
+        IPage<ZsReportArchieve> iPage = reportArchieveService.list(page, zsReportArchieve);
+
+        return ResponseEntity.ok(iPage);
+    }
+
+    /**
+     * 获取部门列表
+     */
+    @ApiOperation(value = "获取部门列表")
+    @GetMapping("/getOfficeNameList")
+    public List<ZsReportArchieve> getOfficeNameList(){
+       List<ZsReportArchieve> list = reportArchieveService.getOfficeNameList();
+       return list;
+    }
+
+    /**
+     * 下载导入模板
+     * @param response
+     * @param request
+     * @throws IOException
+     */
+    @GetMapping("import/template")
+    @ApiOperation(value = "下载模板")
+    public void importFileTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException {
+        String fileName = "报告归档导入模板.xlsx";
+        List <ZsReportArchieveTem> list = Lists.newArrayList ( );
+        EasyExcelUtils.newInstance ( ).exportExcel ( list, "报告归档", ZsReportArchieveTem.class, fileName, null, response );
+
+    }
+
+
+    /**
+     * 导入发票明细数据
+     *
+     * @return
+     */
+    @DemoMode
+    @PostMapping("/importDetail")
+    @ApiLog(value = "导入发票明细数据excel")
+    public ResponseEntity importDetail(MultipartFile file, HttpServletRequest request) throws Exception {
+
+        ArrayList<ZsReportArchieveExport> arrayList = new ArrayList<>();
+
+        List<ZsReportArchieveExport> listA = new ArrayList<>();
+        //获取sheet
+        listA = EasyPoiUtil.importExcel(file, 0, 1, ZsReportArchieveExport.class);
+        //去除excel中的空行
+        listA = getExcelList(listA);
+        //导入前检测数据
+        String resultA = reportArchieveService.importDecide(listA, arrayList);
+        if(StringUtils.isNotBlank(resultA)){
+            //有返回值,说明导入的数据不正确。向用户抛提示
+            return ResponseEntity.badRequest().body  (resultA);
+        }
+
+        return ResponseEntity.ok("导入成功");
+    }
+
+    /**
+     * 去除excel中的空行
+     * @param list
+     * @return
+     */
+    public ArrayList<ZsReportArchieveExport> getExcelList(List<ZsReportArchieveExport> list){
+
+        ArrayList<ZsReportArchieveExport> financeInvoiceDetailDTOS = new ArrayList<>();
+
+        list.stream().forEach(item->{
+            if(objectCheckIsNull(item)){
+                financeInvoiceDetailDTOS.add(item);
+            }
+        });
+
+        return financeInvoiceDetailDTOS;
+    }
+
+    public static boolean objectCheckIsNull(Object object) {
+        boolean flag = false; //定义返回结果,默认为true
+
+        if (Objects.isNull(object)) {
+            flag = false;
+        } else {
+            Class clazz = (Class) object.getClass(); // 得到类对象
+            Field fields[] = clazz.getDeclaredFields(); // 得到所有属性
+            for (Field field : fields) {
+                if("serialVersionUID".equals(field.getName()) || "BIZ_CODE".equalsIgnoreCase(field.getName())){
+                    continue;
+                }
+                field.setAccessible(true);
+                Object fieldValue = null;
+                try {
+                    fieldValue = field.get(object); //得到属性值
+                    Type fieldType = field.getGenericType();//得到属性类型
+                    String fieldName = field.getName(); // 得到属性名
+                    log.info("属性类型:" + fieldType + ",属性名:" + fieldName + ",属性值:" + fieldValue);
+                } catch (IllegalArgumentException e) {
+                    log.error(e.getMessage(), e);
+                } catch (IllegalAccessException e) {
+                    log.error(e.getMessage(), e);
+                }
+                if (fieldValue != null && fieldValue != "") {  //只要有一个属性值不为null 就返回false 表示对象不为null
+                    flag = true;
+                    break;
+                }
+            }
+        }
+
+        return flag;
+    }
+
+
+
+    /**
+     * 查询
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "查询")
+    @GetMapping("/queryById")
+    public ResponseEntity<ZsReportArchieve> queryById(@RequestParam String id) throws Exception{
+        ZsReportArchieve dto = reportArchieveService.findById(id);
+        return ResponseEntity.ok(dto);
+    }
+
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除")
+    @GetMapping("/remove")
+    public ResponseEntity<String> remove(@RequestParam String id){
+        String s = reportArchieveService.remove(id);
+        return ResponseEntity.ok(s);
+    }
+
+
+    /**
+     * 根据报告文号类型查询最新的报告文号
+     * @param reportNoType
+     * @return
+     */
+    @ApiOperation(value = "根据报告文号类型查询最新的报告文号")
+    @GetMapping("/getReportNo")
+    public ResponseEntity<ZsReportArchieve> getReportNo(@RequestParam String reportNoType) throws Exception{
+        ZsReportArchieve dto = reportArchieveService.findByReportNoType(reportNoType);
+        return ResponseEntity.ok(dto);
+    }
+    /**
+     * 根据报告文号查询最新的盒号
+     * @return
+     */
+    @ApiOperation(value = "根据报告文号查询最新的盒号")
+    @GetMapping("/getFileBoxNumber")
+    public ResponseEntity<ZsReportArchieve> getFileBoxNumber(@RequestParam String reportNo) throws Exception{
+        ZsReportArchieve dto = reportArchieveService.findByReportNo(reportNo);
+        return ResponseEntity.ok(dto);
+    }
+
+    /**
+     * 根据盒号查询修改人
+     * @param fileBoxNumber
+     * @return
+     */
+    @ApiOperation(value = "根据盒号查询修改人")
+    @GetMapping("/checkFileBoxNumber")
+    public boolean checkFileBoxNumber(@RequestParam String fileBoxNumber,@RequestParam String reportNoType) throws Exception{
+        boolean dto = reportArchieveService.findByFileBoxNumber(fileBoxNumber,reportNoType);
+        return dto;
+    }
+
+    /**
+     * 校验报告文号类型与报告文号是否一致
+     * @return
+     */
+    @ApiOperation(value = "校验报告文号类型与报告文号是否一致")
+    @GetMapping("/checkReportTypeAndReportNo")
+    public boolean checkReportTypeAndReportNo(@RequestParam String reportNoType,@RequestParam String reportNo) throws Exception{
+        boolean dto = reportArchieveService.checkReportTypeAndReportNo(reportNoType,reportNo);
+        return dto;
+    }
+
+    /**
+     * 修改
+     */
+    @ApiOperation(value = "修改")
+    @PostMapping("/saveForm")
+    public ResponseEntity<String> saveForm(@RequestBody ZsReportArchieve reportArchieve){
+        String s = reportArchieveService.saveForm(reportArchieve);
+        return ResponseEntity.ok(s);
+
+    }
+
+    @ApiLog(value = "报告归档数据", type = LogTypeEnum.EXPORT)
+    @GetMapping("exportFile")
+    @ApiOperation(value = "报告归档数据")
+    public void exportFile(ZsReportArchieveExport zsReportArchieveExport, Page <ZsReportArchieveExport> page, ExcelOptions options, HttpServletResponse response) throws Exception {
+        String fileName = options.getFilename();
+        String sheetName = options.getSheetName();
+        List<ZsReportArchieveExport> result = new ArrayList<>();
+        if ( ExportMode.current.equals ( options.getMode() ) ) {
+            result = reportArchieveService.exportList (page,zsReportArchieveExport).getRecords();
+        } else if (ExportMode.selected.equals ( options.getMode() )) {
+            result = reportArchieveService.exportList (page,zsReportArchieveExport).getRecords().stream ( ).filter ( item ->
+                    options.getSelectIds ( ).contains ( item.getId ( ) )
+            ).collect ( Collectors.toList ( ) );
+        } else {
+            page.setSize (-1);
+            page.setCurrent (0);
+            result = reportArchieveService.exportList (page,zsReportArchieveExport).getRecords();
+        }
+        Integer count = 0;
+        if(result.size()>0){
+            //获取字典数据
+            String businessTypeDatas = SpringUtil.getBean ( IDictApi.class ).getDictListMapByDict ("business_type");
+            Map<String,Object> businessTypeValueDTOs = JSON.parseObject(businessTypeDatas, new TypeReference<Map<String,Object>>() {});
+
+            String storagePlaceDatas = SpringUtil.getBean ( IDictApi.class ).getDictListMapByDict ("storage_place");
+            Map<String,Object> storagePlaceValueDTOs = JSON.parseObject(storagePlaceDatas, new TypeReference<Map<String,Object>>() {});
+
+            for (ZsReportArchieveExport info : result) {
+
+                if(com.jeeplus.utils.StringUtils.isNotBlank(info.getBusinessType())){
+                    for (String key : businessTypeValueDTOs.keySet()) {
+                        if(info.getBusinessType().equals(key)){
+                            info.setBusinessType(String.valueOf(businessTypeValueDTOs.get(key)));
+                            break;
+                        }
+                    }
+                }
+                if(com.jeeplus.utils.StringUtils.isNotBlank(info.getStoragePlace())){
+                    for (String key : storagePlaceValueDTOs.keySet()) {
+                        if(info.getStoragePlace().equals(key)){
+                            String value = String.valueOf(storagePlaceValueDTOs.get(key));
+                            String place = "江苏分所 "+value+"区";
+                            info.setStoragePlace(place);
+                            break;
+                        }
+                    }
+                }
+                count+=1;
+                info.setNumber(count+"");
+
+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
+                SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
+                if (ObjectUtil.isNotEmpty(info.getReportDate())){
+                    Date reportDate = inputFormat.parse(info.getReportDate());
+                    String format = dateFormat.format(reportDate);
+                    info.setReportDate(format);
+                }
+                if (ObjectUtil.isNotEmpty(info.getStampDate())){
+                    Date reportDate = inputFormat.parse(info.getStampDate());
+                    String format = dateFormat.format(reportDate);
+                    info.setStampDate(format);
+                }
+                if (ObjectUtil.isNotEmpty(info.getArchieveDate())){
+                    Date reportDate = inputFormat.parse(info.getArchieveDate());
+                    String format = dateFormat.format(reportDate);
+                    info.setArchieveDate(format);
+                }
+
+
+            }
+        }
+        ZSEasyPoiUtil.exportExcel ( result, sheetName,  sheetName, ZsReportArchieveExport.class, fileName, response );
+
+    }
+
+}

+ 63 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/domain/ZsReportArchieve.java

@@ -0,0 +1,63 @@
+package com.jeeplus.centrecareful.reportArchieve.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@TableName("zs_report_archieve")
+public class ZsReportArchieve extends BaseEntity {
+
+    //合同编号类型(字典值)
+    public static final String BIZ_CODE = "91";
+
+    private String archieveNo;  //流水号
+    private String officeName;  //部门名称
+    private String businessName;    //企业名称(审计报告上被审计单位名称)
+    private String businessType;    //业务类型
+    private String project; //项目
+    private String reportNo;    //报告文号
+    private String reportNoType;    //报告文号类型
+    private String reportingPeriod; //报告涵盖期间
+    private String fillingManager;  //归档经办人
+    private String projectLeader;   //项目经理
+    private String projectMaster;   //项目负责人
+    private String signatureCpa;    //签字注册会计师
+    private String signatureParter; //签字合伙人
+    private String projectLevel;    //项目等级
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date reportDate;  //报告日期
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date stampDate; //盖章日期
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date archieveDate;    //归档日期
+    private String fileBoxNumber;   //档案盒号
+    private String boxNumber;   //盒数
+    private String bookNumbers; //本数
+    private String remarks; //备注
+    private String originalContract;    //合同原件
+    private String totalAssets; //资产总额(万元)
+    private String archieveResever; //归档接收人
+    private String storagePlace;    //存放地区(区位码)
+    private String status;  //状态
+
+
+    @TableField(exist = false)
+    private String[] reportDates;
+    @TableField(exist = false)
+    private String[] stampDates;
+    @TableField(exist = false)
+    private String[] archieveDates;
+    @TableField(exist = false)
+    private String archieveReseverName; //归档接收人
+    @TableField(exist = false)
+    private String updateName;
+}

+ 34 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/mapper/ZsReportArchieveMapper.java

@@ -0,0 +1,34 @@
+package com.jeeplus.centrecareful.reportArchieve.mapper;
+
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.centrecareful.reportArchieve.domain.ZsReportArchieve;
+import com.jeeplus.centrecareful.reportArchieve.service.dto.ZsReportArchieveExport;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface ZsReportArchieveMapper extends BaseMapper<ZsReportArchieve> {
+
+    IPage<ZsReportArchieve> findList(Page<ZsReportArchieve> page, @Param(Constants.WRAPPER) QueryWrapper<ZsReportArchieve> queryWrapper);
+    @InterceptorIgnore(tenantLine = "true")
+    IPage<ZsReportArchieveExport> exportList(Page<ZsReportArchieveExport> page, @Param(Constants.WRAPPER)QueryWrapper<ZsReportArchieveExport> queryWrapper);
+
+    List<ZsReportArchieve> getOfficeNameList();
+    @InterceptorIgnore(tenantLine = "true")
+    OfficeDTO getOfficeDTOByName(@Param("name") String name);
+
+    ZsReportArchieve findById(@Param("id")String id);
+    //根据报告文号类型查询最新的报告号
+    @InterceptorIgnore(tenantLine = "true")
+    ZsReportArchieve findByReportNoType(@Param("reportNoType")String reportNoType);
+    //根据盒号查询修改人
+    @InterceptorIgnore(tenantLine = "true")
+    List<ZsReportArchieve> findByFileBoxNumber(@Param("fileBoxNumber")String fileBoxNumber, @Param("reportNoType")String reportNoType);
+
+}

+ 103 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/mapper/xml/ZsReportArchieveMapper.xml

@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.centrecareful.reportArchieve.mapper.ZsReportArchieveMapper">
+    <sql id="base_column_list">
+            a.id,
+            a.create_by_id,
+            a.create_time,
+            a.update_by_id,
+            a.update_time,
+            a.archieve_no,
+            a.office_name,
+            a.business_name,
+            a.business_type,
+            a.project,
+            a.report_no,
+            a.report_no_type,
+            a.reporting_period,
+            a.filling_manager,
+            a.project_leader,
+            a.project_master,
+            a.signature_cpa,
+            a.signature_parter,
+            a.project_level,
+            a.report_date,
+            a.stamp_date,
+            a.archieve_date,
+            a.file_box_number,
+            a.box_number,
+            a.book_numbers,
+            a.remarks,
+            a.original_contract,
+            a.total_assets,
+            a.archieve_resever,
+            a.storage_place,
+            a.status
+    </sql>
+    <select id="findList" resultType="com.jeeplus.centrecareful.reportArchieve.domain.ZsReportArchieve">
+        select
+            <include refid="base_column_list"></include>,
+            su.name as archieveReseverName
+        from zs_report_archieve a
+        left join sys_user su on a.archieve_resever = su.id and su.del_flag = '0'
+        left join sys_office so on a.office_name = so.name and so.del_flag = '0'
+        ${ew.customSqlSegment}
+        ORDER BY a.update_time DESC
+    </select>
+
+    <select id="exportList" resultType="com.jeeplus.centrecareful.reportArchieve.service.dto.ZsReportArchieveExport">
+        select
+        <include refid="base_column_list"></include>,
+        su.name as archieveReseverName
+        from zs_report_archieve a
+        left join sys_user su on a.archieve_resever = su.id and su.del_flag = '0'
+        left join sys_office so on a.office_name = so.name and so.del_flag = '0'
+        ${ew.customSqlSegment}
+        ORDER BY a.update_time DESC
+    </select>
+
+    <select id="getOfficeNameList" resultType="com.jeeplus.centrecareful.reportArchieve.domain.ZsReportArchieve">
+        SELECT office_name from zs_report_archieve where del_flag = '0' GROUP BY office_name
+    </select>
+
+    <select id="getOfficeDTOByName" resultType="com.jeeplus.sys.service.dto.OfficeDTO">
+        select * from sys_office where name = #{name} and del_flag = '0'
+    </select>
+
+    <select id="findById" resultType="com.jeeplus.centrecareful.reportArchieve.domain.ZsReportArchieve">
+        select
+        <include refid="base_column_list"></include>,
+        su.name as archieveReseverName
+        from zs_report_archieve a
+        left join sys_user su on a.archieve_resever = su.id and su.del_flag = '0'
+        left join sys_office so on a.office_name = so.name and so.del_flag = '0'
+        where a.id = #{id} and a.del_flag = '0'
+    </select>
+
+    <select id="findByReportNoType" resultType="com.jeeplus.centrecareful.reportArchieve.domain.ZsReportArchieve">
+        select
+        <include refid="base_column_list"></include>,
+        su.name as updateName
+        from zs_report_archieve a
+        left join sys_user su on a.update_by_id = su.id and su.del_flag = '0'
+        where a.report_no_type = #{reportNoType} and a.del_flag = '0' order by a.file_box_number DESC limit 1
+    </select>
+
+    <select id="findByReportNo" resultType="com.jeeplus.centrecareful.reportArchieve.domain.ZsReportArchieve">
+        select
+        <include refid="base_column_list"></include>,
+        su.name as updateName
+        from zs_report_archieve a
+        left join sys_user su on a.update_by_id = su.id and su.del_flag = '0'
+        where a.report_no = #{reportNo} and a.del_flag = '0' order by a.file_box_number DESC limit 1
+    </select>
+
+    <select id="findByFileBoxNumber" resultType="com.jeeplus.centrecareful.reportArchieve.domain.ZsReportArchieve">
+        select
+        <include refid="base_column_list"></include>,
+        su.name as updateName
+        from zs_report_archieve a
+        left join sys_user su on a.update_by_id = su.id and su.del_flag = '0'
+        where a.report_no_type = #{reportNoType} and a.file_box_number = #{fileBoxNumber} and a.del_flag = '0'
+    </select>
+</mapper>

+ 360 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/service/ZsReportArchieveService.java

@@ -0,0 +1,360 @@
+package com.jeeplus.centrecareful.reportArchieve.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.centrecareful.reportArchieve.domain.ZsReportArchieve;
+import com.jeeplus.centrecareful.reportArchieve.mapper.ZsReportArchieveMapper;
+import com.jeeplus.centrecareful.reportArchieve.service.dto.ZsReportArchieveExport;
+import com.jeeplus.centrecareful.reportArchieve.service.dto.ZsReportArchieveTem;
+import com.jeeplus.common.TokenProvider;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+
+import com.jeeplus.sys.feign.*;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.RoleDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.utils.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+@Service
+@Transactional
+public class ZsReportArchieveService {
+
+    @Resource
+    private ZsReportArchieveMapper reportArchieveMapper;
+
+    /**
+     * 列表查询
+     * @param page
+     * @param zsReportArchieve
+     * @return
+     */
+    public IPage<ZsReportArchieve> list(Page<ZsReportArchieve> page, ZsReportArchieve zsReportArchieve) throws Exception {
+        QueryWrapper<ZsReportArchieve> queryWrapper = QueryWrapperGenerator.buildQueryCondition(zsReportArchieve, ZsReportArchieve.class);
+        queryWrapper.eq("a.del_flag", 0);
+        //流水号
+        if (StringUtils.isNotBlank(zsReportArchieve.getArchieveNo())){
+            queryWrapper.like("a.archieve_no",zsReportArchieve.getArchieveNo());
+        }
+        //部门
+        if (StringUtils.isNotBlank(zsReportArchieve.getOfficeName())){
+            queryWrapper.like("a.office_name",zsReportArchieve.getOfficeName());
+        }
+        //业务类型
+        if (StringUtils.isNotBlank(zsReportArchieve.getBusinessType())){
+            queryWrapper.eq("a.business_type",zsReportArchieve.getBusinessType());
+        }
+        //项目名称
+        if (StringUtils.isNotBlank(zsReportArchieve.getProject())){
+            queryWrapper.like("a.project",zsReportArchieve.getProject());
+        }
+        //报告文号
+        if (StringUtils.isNotBlank(zsReportArchieve.getReportNo())){
+            queryWrapper.like("a.report_no",zsReportArchieve.getReportNo());
+        }
+        //报告日期
+        if (zsReportArchieve.getReportDates() != null){
+            queryWrapper.between("a.report_date",zsReportArchieve.getReportDates()[0],zsReportArchieve.getReportDates()[1]);
+        }
+        //盖章日期
+        if (zsReportArchieve.getStampDates() != null){
+            queryWrapper.between("a.stamp_date",zsReportArchieve.getStampDates()[0],zsReportArchieve.getStampDates()[1]);
+        }
+        //归档日期
+        if (zsReportArchieve.getArchieveDates() != null){
+            queryWrapper.between("a.archieve_date",zsReportArchieve.getArchieveDates()[0],zsReportArchieve.getArchieveDates()[1]);
+        }
+        //盒号
+        if (StringUtils.isNotBlank(zsReportArchieve.getFileBoxNumber())){
+            queryWrapper.like("a.file_box_number",zsReportArchieve.getFileBoxNumber());
+        }
+        //合同原件
+        if (StringUtils.isNotBlank(zsReportArchieve.getOriginalContract())){
+            queryWrapper.like("a.original_contract",zsReportArchieve.getOriginalContract());
+        }
+        //归档接收人
+        if (StringUtils.isNotBlank(zsReportArchieve.getArchieveResever())){
+            queryWrapper.apply("(a.archieve_resever",zsReportArchieve.getArchieveResever()).or().like("su.name",zsReportArchieve.getArchieveResever());
+        }
+        //存放地点
+        if (StringUtils.isNotBlank(zsReportArchieve.getStoragePlace())){
+            queryWrapper.eq("a.storage_place",zsReportArchieve.getStoragePlace());
+        }
+        //状态
+        if (StringUtils.isNotBlank(zsReportArchieve.getStatus())){
+            queryWrapper.eq("a.status",zsReportArchieve.getStatus());
+        }
+        IPage<ZsReportArchieve> list = reportArchieveMapper.findList(page,queryWrapper);
+
+
+        return list;
+    }
+
+    public IPage<ZsReportArchieveExport> exportList(Page<ZsReportArchieveExport> page, ZsReportArchieveExport zsReportArchieveExport) throws Exception {
+        QueryWrapper<ZsReportArchieveExport> queryWrapper = QueryWrapperGenerator.buildQueryCondition(zsReportArchieveExport, ZsReportArchieveExport.class);
+        queryWrapper.eq("a.del_flag", 0);
+        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
+        if (ObjectUtil.isNotEmpty(userDTO)){
+            for (RoleDTO roleDTO : userDTO.getRoleDTOList()) {
+                if (ObjectUtils.isNotEmpty(roleDTO)){
+                    RoleDTO dtoById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
+                    if ("zsbggdgly".equals(dtoById.getEnName())){
+                        queryWrapper.eq("a.office_name",userDTO.getOfficeDTO().getName());
+                    }
+                }
+            }
+        }
+        //流水号
+        if (StringUtils.isNotBlank(zsReportArchieveExport.getArchieveNo())){
+            queryWrapper.like("a.archieve_no",zsReportArchieveExport.getArchieveNo());
+        }
+        //业务类型
+        if (StringUtils.isNotBlank(zsReportArchieveExport.getBusinessType())){
+            queryWrapper.eq("a.business_type",zsReportArchieveExport.getBusinessType());
+        }
+        //项目名称
+        if (StringUtils.isNotBlank(zsReportArchieveExport.getProject())){
+            queryWrapper.like("a.project",zsReportArchieveExport.getProject());
+        }
+        //报告文号
+        if (StringUtils.isNotBlank(zsReportArchieveExport.getReportNo())){
+            queryWrapper.like("a.report_no",zsReportArchieveExport.getReportNo());
+        }
+        //报告日期
+        if (zsReportArchieveExport.getReportDates() != null){
+            queryWrapper.between("a.report_date",zsReportArchieveExport.getReportDates()[0],zsReportArchieveExport.getReportDates()[1]);
+        }
+        //盖章日期
+        if (zsReportArchieveExport.getStampDates() != null){
+            queryWrapper.between("a.stamp_date",zsReportArchieveExport.getStampDates()[0],zsReportArchieveExport.getStampDates()[1]);
+        }
+        //归档日期
+        if (zsReportArchieveExport.getArchieveDates() != null){
+            queryWrapper.between("a.archieve_date",zsReportArchieveExport.getArchieveDates()[0],zsReportArchieveExport.getArchieveDates()[1]);
+        }
+        //盒号
+        if (StringUtils.isNotBlank(zsReportArchieveExport.getFileBoxNumber())){
+            queryWrapper.like("a.file_box_number",zsReportArchieveExport.getFileBoxNumber());
+        }
+        //合同原件
+        if (StringUtils.isNotBlank(zsReportArchieveExport.getOriginalContract())){
+            queryWrapper.like("a.original_contract",zsReportArchieveExport.getOriginalContract());
+        }
+        //归档接收人
+        if (StringUtils.isNotBlank(zsReportArchieveExport.getArchieveResever())){
+            queryWrapper.apply("(a.archieve_resever",zsReportArchieveExport.getArchieveResever()).or().like("su.name",zsReportArchieveExport.getArchieveResever());
+        }
+        //存放地点
+        if (StringUtils.isNotBlank(zsReportArchieveExport.getStoragePlace())){
+            queryWrapper.eq("a.storage_place",zsReportArchieveExport.getStoragePlace());
+        }
+        //状态
+        if (StringUtils.isNotBlank(zsReportArchieveExport.getStatus())){
+            queryWrapper.eq("a.status",zsReportArchieveExport.getStatus());
+        }
+        IPage<ZsReportArchieveExport> list = reportArchieveMapper.exportList(page,queryWrapper);
+
+
+        return list;
+
+    }
+
+    /**
+     * 获取部门列表
+     * @return
+     */
+    public List<ZsReportArchieve> getOfficeNameList() {
+        List<ZsReportArchieve> list = reportArchieveMapper.getOfficeNameList();
+        return list;
+    }
+
+    /**
+     * 导入数据
+     * @param list
+     * @param arrayList
+     * @return
+     */
+    public String importDecide(List<ZsReportArchieveExport> list, ArrayList<ZsReportArchieveExport> arrayList) throws Exception {
+        for (ZsReportArchieveExport reportArchieveDTO : list) {
+            if(ObjectUtil.isEmpty(reportArchieveDTO)){
+                continue;
+            }
+            if(StringUtils.isBlank(reportArchieveDTO.getStoragePlace())){
+                return "文件中有存放地点为空,请重新填写";
+            }
+            if(StringUtils.isNotBlank(reportArchieveDTO.getReportNo())){
+
+                List<ZsReportArchieve> financeInvoiceDetailList = reportArchieveMapper.selectList(new QueryWrapper<ZsReportArchieve>().eq("report_no", reportArchieveDTO.getReportNo()));
+                if(CollectionUtil.isNotEmpty(financeInvoiceDetailList)){
+                    return "文件中报告文号--"+reportArchieveDTO.getReportNo()+"已在系统中存在,请重新填写";
+                }
+            }else {
+                return "文件中有报告文号为空,请重新填写";
+            }
+
+            arrayList.add(reportArchieveDTO);
+        }
+        //将数据进行保存
+        if (CollectionUtils.isNotEmpty(arrayList)){
+            for (ZsReportArchieveExport reportArchieveDTO : arrayList) {
+                add(reportArchieveDTO);
+            }
+        }
+        return null;
+    }
+
+    public void add(ZsReportArchieveExport reportArchieveDTO) throws Exception {
+        ZsReportArchieve zsReportArchieve = new ZsReportArchieve();
+        BeanUtils.copyProperties(reportArchieveDTO,zsReportArchieve);
+        //业务类型
+        if (StringUtils.isNotBlank(reportArchieveDTO.getBusinessType())){
+            String dictValue = SpringUtil.getBean(IDictApi.class).getDictValue(reportArchieveDTO.getBusinessType(), "business_type", "");
+            if (StringUtils.isNotBlank(dictValue)){
+                zsReportArchieve.setBusinessType(dictValue);
+            }
+        }
+        //报告文号类型
+        String reportNo = reportArchieveDTO.getReportNo();
+        String type = reportNo.substring(2, reportNo.lastIndexOf("("));
+        String noType = SpringUtil.getBean(IDictApi.class).getDictValue(type, "report_no_type", "");
+        if (StringUtils.isNotBlank(noType)){
+            zsReportArchieve.setReportNoType(noType);
+        }
+        //流水号生成
+        String currentToken = TokenProvider.getCurrentToken();
+        OfficeDTO officeDTO = reportArchieveMapper.getOfficeDTOByName("中审江苏分所");
+        String documentNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(officeDTO.getId(), ZsReportArchieve.BIZ_CODE,currentToken);
+        zsReportArchieve.setArchieveNo(documentNo);
+        //存放地点
+        String place = reportArchieveDTO.getStoragePlace().replace(" ", "");
+        String substring = place.substring(place.lastIndexOf("所") + 1, place.lastIndexOf("区"));
+        String placeValue = SpringUtil.getBean(IDictApi.class).getDictValue(substring, "storage_place", "");
+        zsReportArchieve.setStoragePlace(placeValue);
+        //归档接收人
+        zsReportArchieve.setArchieveResever("");
+
+        String id = UUID.randomUUID().toString().replace("-", "");
+        zsReportArchieve.setId(id);
+
+        reportArchieveMapper.insert(zsReportArchieve);
+
+
+    }
+
+
+    /**
+     * 根据id查询
+     * @param id
+     * @return
+     */
+    public ZsReportArchieve findById(String id) {
+        ZsReportArchieve zsReportArchieve = reportArchieveMapper.findById(id);
+        return zsReportArchieve;
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    public String remove(String id) {
+        reportArchieveMapper.deleteById(id);
+        return "删除成功";
+    }
+
+    /**
+     * 根据报告文号类型查询最新的报告文号
+     * @param reportNoType
+     * @return
+     */
+    public ZsReportArchieve findByReportNoType(String reportNoType) {
+        ZsReportArchieve reportArchieve = reportArchieveMapper.findByReportNoType(reportNoType);
+        return reportArchieve;
+    }
+
+    /**
+     * 根据盒号查询修改人
+     * @param fileBoxNumber
+     * @param reportNoType
+     * @return
+     */
+    public boolean findByFileBoxNumber(String fileBoxNumber, String reportNoType) {
+        if (StringUtils.isNotBlank(fileBoxNumber) && StringUtils.isNotBlank(reportNoType)){
+            List<ZsReportArchieve> reportArchieves = reportArchieveMapper.findByFileBoxNumber(fileBoxNumber,reportNoType);
+            UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
+            if (CollectionUtils.isNotEmpty(reportArchieves)){
+                for (ZsReportArchieve reportArchieve : reportArchieves) {
+                    if (!reportArchieve.getUpdateById().equals(userDTO.getId())){
+                        return true;
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 根据报告文号查询最新盒号
+     * @param reportNo
+     * @return
+     */
+    public ZsReportArchieve findByReportNo(String reportNo) {
+        if (StringUtils.isNotBlank(reportNo)){
+            String type = reportNo.substring(2, reportNo.lastIndexOf("("));
+            String noType = SpringUtil.getBean(IDictApi.class).getDictValue(type, "report_no_type", "");
+            if (StringUtils.isNotBlank(noType)){
+                ZsReportArchieve reportArchieve = reportArchieveMapper.findByReportNoType(noType);
+                return reportArchieve;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 校验报告文号类型与报告文号是否一致
+     * @param reportNoType
+     * @param reportNo
+     * @return
+     */
+    public boolean checkReportTypeAndReportNo(String reportNoType, String reportNo) {
+        String type = reportNo.substring(2, reportNo.lastIndexOf("("));
+        String noType = SpringUtil.getBean(IDictApi.class).getDictValue(type, "report_no_type", "");
+        if (StringUtils.isNotBlank(noType)){
+            if (noType.equals(reportNoType)){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 修改数据
+     * @param reportArchieve
+     * @return
+     */
+    public String saveForm(ZsReportArchieve reportArchieve) {
+        ZsReportArchieve zsReportArchieve = new ZsReportArchieve();
+        BeanUtils.copyProperties(reportArchieve,zsReportArchieve);
+        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
+        zsReportArchieve.setArchieveResever(userDTO.getId());
+        zsReportArchieve.setStatus("1");
+        reportArchieveMapper.updateById(zsReportArchieve);
+        return "操作成功";
+    }
+
+
+}

+ 102 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/service/dto/ZsReportArchieveExport.java

@@ -0,0 +1,102 @@
+package com.jeeplus.centrecareful.reportArchieve.service.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class ZsReportArchieveExport extends BaseEntity {
+    @Excel(name = "序号",width = 10)
+    private String number;
+
+    @Excel(name = "部门名称",width = 15)
+    private String officeName;  //部门名称
+
+    @Excel(name = "企业名称(审计报告上被审计单位名称)",width = 30)
+    private String businessName;    //企业名称(审计报告上被审计单位名称)
+
+    @Excel(name = "业务类型(审计、审阅、专项、验资、尽调、其他)",width = 15)
+    private String businessType;    //业务类型
+
+    @Excel(name = "项目",width = 35)
+    private String project; //项目
+
+    @Excel(name = "报告文号",width = 20)
+    private String reportNo;    //报告文号
+
+    @Excel(name = "报告涵盖期间",width = 20)
+    private String reportingPeriod; //报告涵盖期间
+
+    @Excel(name = "归档经办人",width = 15)
+    private String fillingManager;  //归档经办人
+
+    @Excel(name = "项目经理",width = 15)
+    private String projectLeader;   //项目经理
+
+    @Excel(name = "项目负责人",width = 15)
+    private String projectMaster;   //项目负责人
+
+    @Excel(name = "签字注册会计师",width = 15)
+    private String signatureCpa;    //签字注册会计师
+
+    @Excel(name = "签字合伙人",width = 15)
+    private String signatureParter; //签字合伙人
+
+    @Excel(name = "项目等级",width = 10)
+    private String projectLevel;    //项目等级
+
+
+    @Excel(name = "报告日期",width = 20)
+    private String reportDate;
+
+
+    @Excel(name = "盖章日期",width = 20)
+    private String stampDate;
+
+
+    @Excel(name = "归档日期",width = 20)
+    private String archieveDate;    //归档日期
+
+    @Excel(name = "档案盒号",width = 20)
+    private String fileBoxNumber;   //档案盒号
+
+    @Excel(name = "盒数",width = 10)
+    private String boxNumber;   //盒数
+
+    @Excel(name = "本数",width = 10)
+    private String bookNumbers; //本数
+
+    @Excel(name = "备注",width = 40)
+    private String remarks; //备注
+
+    @Excel(name = "合同原件",width = 10)
+    private String originalContract;    //合同原件
+
+    @Excel(name = "资产总额(万元)",width = 15)
+    private String totalAssets; //资产总额(万元)
+
+
+    private String archieveResever; //归档接收人
+    @Excel(name = "归档接收人",width = 15)
+    private String archieveReseverName; //归档接收人
+
+    @Excel(name = "存放地点(区位码)",width = 20)
+    private String storagePlace;    //存放地点(区位码)
+
+    private String archieveNo;  //流水号
+    private String status;  //状态
+
+
+    @TableField(exist = false)
+    private String[] reportDates;
+    @TableField(exist = false)
+    private String[] stampDates;
+    @TableField(exist = false)
+    private String[] archieveDates;
+
+}

+ 90 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/reportArchieve/service/dto/ZsReportArchieveTem.java

@@ -0,0 +1,90 @@
+package com.jeeplus.centrecareful.reportArchieve.service.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class ZsReportArchieveTem extends BaseEntity {
+    @ExcelProperty("序号")
+    private String number111;
+
+    @ExcelProperty("部门名称")
+    private String officeName;  //部门名称
+
+    @ExcelProperty("企业名称(审计报告上被审计单位名称)")
+    private String businessName;    //企业名称(审计报告上被审计单位名称)
+
+    @ExcelProperty("业务类型(审计、审阅、专项、验资、尽调、其他)")
+    private String businessType;    //业务类型
+
+    @ExcelProperty("项目")
+    private String project; //项目
+
+    @ExcelProperty("报告文号")
+    private String reportNo;    //报告文号
+
+    @ExcelProperty("报告涵盖期间")
+    private String reportingPeriod; //报告涵盖期间
+
+    @ExcelProperty("归档经办人")
+    private String fillingManager;  //归档经办人
+
+    @ExcelProperty("项目经理")
+    private String projectLeader;   //项目经理
+
+    @ExcelProperty("项目负责人")
+    private String projectMaster;   //项目负责人
+
+    @ExcelProperty("签字注册会计师")
+    private String signatureCpa;    //签字注册会计师
+
+    @ExcelProperty("签字合伙人")
+    private String signatureParter; //签字合伙人
+
+    @ExcelProperty("项目等级")
+    private String projectLevel;    //项目等级
+
+
+    @ExcelProperty(value = "报告日期")
+    private Date reportDate;
+
+
+    @ExcelProperty(value = "盖章日期")
+    private Date stampDate;
+
+
+    @ExcelProperty(value = "归档日期")
+    private Date archieveDate;    //归档日期
+
+    @ExcelProperty("档案盒号")
+    private String fileBoxNumber;   //档案盒号
+
+    @ExcelProperty("盒数")
+    private String boxNumber;   //盒数
+
+    @ExcelProperty("本数")
+    private String bookNumbers; //本数
+
+    @ExcelProperty("备注")
+    private String remarks; //备注
+
+    @ExcelProperty("合同原件")
+    private String originalContract;    //合同原件
+
+    @ExcelProperty("资产总额(万元)")
+    private String totalAssets; //资产总额(万元)
+
+    @ExcelProperty("归档接收人")
+    private String archieveResever; //归档接收人
+
+    @ExcelProperty("存放地点(区位码)")
+    private String storagePlace;    //存放地点(区位码)
+}

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

@@ -1251,6 +1251,25 @@ public class UserController {
     }
 
 
+    /**
+     * 判断当前用户是否是中审报告归档管理员
+     */
+    @ApiLog("判断当前用户是否是中审报告归档管理员")
+    @GetMapping("isBggdgly")
+    @ApiOperation(value = "判断当前用户是否是中审报告归档管理员")
+    public boolean isBggdgly(){
+        UserDTO currentUserDTO = UserUtils.getCurrentUserDTO();
+        for (RoleDTO roleDTO : currentUserDTO.getRoleDTOList()) {
+            if (ObjectUtils.isNotEmpty(roleDTO)){
+                if ("zsbggdgly".equals(roleDTO.getEnName())){
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+
 
     /**
      * 通过手机号获取验证码(忘记密码)