package com.ruoyi.web.controller.archive; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.file.FileUploadUtils; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.poi.ExcelExp; import com.ruoyi.common.utils.poi.ExcelUtilManySheetFour; import com.ruoyi.common.utils.poi.ExcelUtilManySheetSecond; import com.ruoyi.domain.ArchiveRecords; import com.ruoyi.domain.DocumentMaterials; import com.ruoyi.domain.vo.*; import com.ruoyi.framework.config.ServerConfig; import com.ruoyi.service.IArchiveRecordsService; import com.ruoyi.service.IDocumentMaterialsService; import com.ruoyi.service.impl.BarcodeService; import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; import org.springframework.web.multipart.MultipartFile; import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM; import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE; /** * 档案记录Controller * * @author ruoyi * @date 2025-07-12 */ @RestController @RequestMapping("/system/records") public class ArchiveRecordsController extends BaseController { @Autowired private IArchiveRecordsService archiveRecordsService; @Autowired private BarcodeService barcodeService; @Autowired private IDocumentMaterialsService iDocumentMaterialsService; /** * 查询档案完成情况 */ @PreAuthorize("@ss.hasPermi('system:records:list')") @GetMapping("/analysisRes") public AjaxResult analysis() { System.out.println("009099"); return new AjaxResult(200, "查询成功", archiveRecordsService.statisticAya()); } @PreAuthorize("@ss.hasPermi('system:records:export')") @Log(title = "档案分析结果导出", businessType = BusinessType.EXPORT) @PostMapping("/exportAllStatis") public void exportAllStatis(HttpServletResponse response) { List list = archiveRecordsService.statisticAya(); ExcelUtil util = new ExcelUtil(AnalysisResult.class); util.exportExcel(response, list, "档案分析结果"); } /** * 查询档案记录列表 */ @PreAuthorize("@ss.hasPermi('system:records:list')") @GetMapping("/list") public AjaxResult list(ArchiveRecords archiveRecords) { Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1); Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10); return archiveRecordsService.selectDataList(archiveRecords, pageNum, pageSize); } /** * 拿到最大id */ @PreAuthorize("@ss.hasPermi('system:records:list')") @GetMapping("/getMaxId") public AjaxResult getMaxId() { return success(archiveRecordsService.getMaxId()+1); } /** * 导出档案记录列表 */ @PreAuthorize("@ss.hasPermi('system:records:export')") @Log(title = "档案记录", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ArchiveRecords archiveRecords, @RequestParam(value = "ids", required = false) Long[] ids) { List list; System.out.println(ids); // 如果提供了ids参数,则根据ids导出指定记录 if (ids != null && ids.length > 0) { list = archiveRecordsService.selectArchiveRecordsByIds(ids); } else { // 否则根据查询条件导出 list = archiveRecordsService.selectArchiveRecordsList(archiveRecords); } ExcelUtil util = new ExcelUtil(ArchiveRecords.class); util.exportExcel(response, list, "档案记录数据"); } /** * 获取档案记录详细信息 */ @PreAuthorize("@ss.hasPermi('system:records:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { ArchiveRecords records = archiveRecordsService.selectArchiveRecordsById(id); if(records!=null) return new AjaxResult(200, "查询成功", records); else return new AjaxResult(201, "查询失败!"); } /** * 新增档案记录 */ @PreAuthorize("@ss.hasPermi('system:records:add')") @Log(title = "档案记录", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ArchiveRecords archiveRecords) { int res = archiveRecordsService.insertArchiveRecords(archiveRecords); System.out.println(res); if(res==0) { System.out.println(res); return new AjaxResult(0, "档案号已经存在了!"); } else return new AjaxResult(200, "添加成功了!"); } /** * 修改档案记录 */ @PreAuthorize("@ss.hasPermi('system:records:edit')") @Log(title = "档案记录", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ArchiveRecords archiveRecords) { return toAjax(archiveRecordsService.updateArchiveRecords(archiveRecords)); } @PreAuthorize("@ss.hasPermi('system:records:edit')") @Log(title = "档案记录", businessType = BusinessType.UPDATE) @PostMapping(value = "/updateSByIds") public AjaxResult updateStatusByIds(@RequestBody Long[] ids) { System.out.println(ids); System.out.println("090sdfsdf"); return new AjaxResult(0, archiveRecordsService.updateStatusByIds(ids)+""); } /** * 删除档案记录 */ @PreAuthorize("@ss.hasPermi('system:records:remove')") @Log(title = "档案记录", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(archiveRecordsService.deleteArchiveRecordsByIds(ids)); } @PreAuthorize("@ss.hasPermi('system:records:edit')") @Log(title = "档案记录导入", businessType = BusinessType.IMPORT) @PostMapping("/importData") public AjaxResult importData(@RequestParam("excelImport") MultipartFile file) throws Exception { return archiveRecordsService.importExcel(file); } @PreAuthorize("@ss.hasPermi('system:records:edit')") @Log(title = "修改状态", businessType = BusinessType.IMPORT) @GetMapping(value = "/updateStatusById/{status}/{id}") public AjaxResult updateStatusById(@PathVariable("status") String status,@PathVariable("id") String id) { return new AjaxResult(200, archiveRecordsService.updateArchiveById(status, Long.parseLong(id))+""); } @PostMapping("/model") public void getExportModel(HttpServletResponse response){ List list = Collections.singletonList(new ArchiveRecordModelExp()); ExcelUtil util = new ExcelUtil<>(ArchiveRecordModelExp.class); util.exportExcel(response,list,"档案信息导入模板"); } @PostMapping("/modelOther") public void getExportModelOther(HttpServletResponse response){ List list = Collections.singletonList(new ArchiveRecordModelOther()); ExcelUtil util = new ExcelUtil<>(ArchiveRecordModelOther.class); util.exportExcel(response,list,"档案信息导入模板"); } @PreAuthorize("@ss.hasPermi('system:records:list')") @Log(title = "是否允许提交", businessType = BusinessType.IMPORT) @GetMapping(value = "/whether/{recordId}") public AjaxResult whether(@PathVariable("recordId") Long recordId) { return AjaxResult.success( archiveRecordsService.whether(recordId)); } @PostMapping(value={"/recordFileList/{includeQrCode}/{selectedSignatures}/{selectedAnnotations}", "/recordFileList/{includeQrCode}", "/recordFileList/{includeQrCode}/{selectedSignatures}","/recordFileList/{includeQrCode}/{selectedAnnotations}"}) //导出excle public void getSpecialArchiveInfo(HttpServletResponse response, @RequestParam("recordId")Long recordId, @PathVariable(name = "includeQrCode",required = false) boolean includeQrCode, @PathVariable(name = "selectedSignatures",required = false) int[] selectedSignatures, @PathVariable(name = "selectedAnnotations",required = false) int[] selectedAnnotations) throws IOException { System.out.println("uuuuuuuuuuuuuuuuuuusssss88888888888888"); // System.out.println(selectedSignatures[0]); // System.out.println(selectedAnnotations[0]); System.out.println(includeQrCode); //二维码是否生成 String code = "2024050000029250"; byte [] bt = barcodeService.generateBarcodeImage(code); //签名选择 String [] sig = {"业务科室移交人:","审批科移交人:","档案整理公司:"}; List arrLis = new ArrayList<>(); if(selectedSignatures!=null){ for(int si: selectedSignatures) { arrLis.add(sig[si]); } } //注选择 String [] ann = { "本清单由档案形成部门完成", "文件类型必须录入,包括结论材料、过程材料、申请材料,其他材料", "公开属性必须录入,主动公开、依申请公开、免予公开", "保管期限:30年或永久", "页号按照正式录入页码为准"}; List arrAn = new ArrayList<>(); if(selectedAnnotations!=null) { for (int ar : selectedAnnotations) { arrAn.add(ann[ar]); } } List arsi = new ArrayList<>(); // DocumentMaterials documentMaterials = new DocumentMaterials(); // documentMaterials.setRecordId(recordId); List lst = iDocumentMaterialsService.selectDocumentMaterialsFileList(recordId); // 复制属性到SmallObject列表 for (DocumentMaterialsFileList bigObject : lst) { DocumentMaterialsFileList smallObject = new DocumentMaterialsFileList(); BeanUtil.copyProperties(bigObject, smallObject); // 复制属性 arsi.add(smallObject); } // arsi.add(aIV); ExcelExp e3 = new ExcelExp("文件材料移交目录清单",arsi, DocumentMaterialsFileList.class); // ExcelExp e4 = new ExcelExp("案卷封面", arsi, recordId1, imgr1,sedcode, ArchiveInfoVo.class); List mysheet1 = new ArrayList(); mysheet1.add(e3); // mysheet1.add(e4); //ByteOutputStream bos2 = new ByteOutputStream(); ExcelUtilManySheetFour> util3 = new ExcelUtilManySheetFour>(mysheet1); //拿到caseTitle和inquiryNumber String inquiryNumber = ""; String caseTitle = ""; if(!arsi.isEmpty()) { inquiryNumber = arsi.get(0).getInquiryNumber(); caseTitle = arsi.get(0).getCaseTitle(); } util3.exportExcelManySheet(response, mysheet1, includeQrCode,bt, arrLis, arrAn, inquiryNumber, caseTitle); } }