fei
3 天以前 5de5db24efe1b25896c37f395124a207584bcb38
ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java
@@ -8,6 +8,8 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.List;
@@ -17,6 +19,8 @@
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.aspose.words.License;
import com.deepoove.poi.XWPFTemplate;
import com.drew.imaging.ImageMetadataReader;
@@ -25,17 +29,20 @@
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
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.ExcelUtilManySheet;
import com.ruoyi.common.utils.poi.ExcelUtilManySheetSecond;
import com.ruoyi.domain.ArchiveCategory;
import com.ruoyi.domain.ArchiveProjectName;
import com.ruoyi.domain.ArchiveRecords;
import com.ruoyi.domain.DocumentMaterials;
import com.ruoyi.domain.vo.*;
import com.ruoyi.framework.config.ServerConfig;
import com.ruoyi.framework.web.domain.server.Sys;
import com.ruoyi.service.IArchiveProjectNameService;
import com.ruoyi.service.IArchiveRecordsService;
import com.ruoyi.service.IDocumentMaterialsService;
import com.ruoyi.service.impl.BarcodeService;
@@ -72,6 +79,8 @@
@RequestMapping("/system/materials")
public class DocumentMaterialsController extends BaseController
{
    @Autowired
    private IArchiveProjectNameService iArchiveProjectNameService;
    @Autowired
    private BarcodeService barcodeService;
    @Autowired
@@ -196,7 +205,7 @@
            vo.setCreator(doc.getCreator());
            vo.setTitle(doc.getTitle());
            vo.setDate(doc.getDate());
            vo.setPageNumber(doc.getPageNumber());
            vo.setPageNumberFormatted(doc.getPageNumber().toString());
            vo.setRemarks(doc.getRemarks());
//            vo.setRecordId(doc.getRecordId() != null ? doc.getRecordId().toString() : null);
//            vo.setPublicity(doc.getPublicity());
@@ -452,6 +461,32 @@
    {
        //09-备考表.pdf
        String pdf09Path = "09-备考表.pdf";
        //根据项目名称拿到公司名称和项目负责人
        String compName = "广州盈家档案管理有限公司";
        String li_person = "仇翀";
        String sh_person = "曾瑞莹";
        ArchiveRecords archiveRecords = iArchiveRecordsService.selectArchiveRecordsById(id);
        if(!StringUtils.isEmpty(archiveRecords.getLiPerson()))
            li_person = archiveRecords.getLiPerson();
        ArchiveProjectName tmp = new ArchiveProjectName();
        tmp.setName(archiveRecords.getProjectName());
        List<ArchiveProjectName> projectName = iArchiveProjectNameService.selectArchiveProjectNameList(tmp);
        if(!projectName.isEmpty())
        {
            System.out.println(projectName.get(0).getCompanyName());
            if(!StringUtils.isEmpty(projectName.get(0).getCompanyName()))
                compName = projectName.get(0).getCompanyName();
            if(!StringUtils.isEmpty(projectName.get(0).getCreatePerson()))
                sh_person = projectName.get(0).getCreatePerson();
            System.out.println(compName+"--+"+sh_person);
        }
        System.out.println(compName+"--+"+sh_person);
        //  pdfGenerateService.generateFileStyleInfo(pdf09Path, aIV.getRecordId(), id);
        //拿到相关数据
        List<DocumentMaterialFileStyle> dmfs = documentMaterialsService.findFileStyleInfo(Math.toIntExact(id));
@@ -484,6 +519,9 @@
        hs.put("picPages", picPages);
        hs.put("texPages", texPages);
        hs.put("volumeNumber", recordId);
        hs.put("company", compName);
        hs.put("liPerson", li_person);
        hs.put("shPerson", sh_person);
        hs.put("time", cdt);
        if (!getLicense()) {
@@ -494,9 +532,21 @@
        try {
            // 获取 Word 模板所在路径
            String filepath = "09-备考表.docx";
//            String filepath = "09-备考表.docx";
//            // 通过 XWPFTemplate 编译文件并渲染数据到模板中
//            XWPFTemplate template = XWPFTemplate.compile(filepath).render(hs
//            );
            // 获取 Word 模板所在路径
            ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
            org.springframework.core.io.Resource resource = resolver.getResource("classpath:09.docx");
//                String filepath = resource.getFile().getAbsolutePath();
//                // 通过 XWPFTemplate 编译文件并渲染数据到模板中
//                XWPFTemplate template = XWPFTemplate.compile(filepath).render(hs
//                       );
            InputStream inputStream = resource.getInputStream();
            // 通过 XWPFTemplate 编译文件并渲染数据到模板中
            XWPFTemplate template = XWPFTemplate.compile(filepath).render(hs
            XWPFTemplate template = XWPFTemplate.compile(inputStream).render(hs
            );
            String renderedDocPath = "rendered_output.docx";
@@ -530,7 +580,7 @@
        //拿到卷内目录的excel
        List<DocumentMaterialsVoSmall> list2 = dsvs.stream().map(res1 -> new DocumentMaterialsVoSmall(res1.getNum(), res1.getDocumentNumber(),res1.getCreator(),
                res1.getTitle(), res1.getDate(), res1.getPageNumber(), res1.getRemarks())).collect(Collectors.toList());
                res1.getTitle(), res1.getDate(), res1.getPageNumberFormatted(), res1.getRemarks())).collect(Collectors.toList());
        if(!dsvs.isEmpty()) {
            String recordId = dsvs.get(0).getRecordId();
            byte[] imgr = barcodeService.generateBarcodeImage(recordId);
@@ -556,7 +606,7 @@
    //导出案卷封面
    @PostMapping("/exportPageInfo/{id}/{recordId}")
    public void exportPageInfo(HttpServletResponse response, @PathVariable Long id, @PathVariable String recordId) throws IOException {
    public void exportPageInfo(HttpServletResponse response, @PathVariable Long id, @PathVariable String recordId) throws IOException, ParseException {
        ArchiveInfoVo aIV = iArchiveRecordsService.selectByRecordId(id);
@@ -564,8 +614,31 @@
        arsi.add(aIV);
        String recordId1 = recordId;
        if(aIV!=null)
        {
            String date = "";
            if(arsi.get(0).getPreparationDate()!=null) {
                System.out.println(arsi.get(0).getPreparationDate().toString() + "]]]]]]]]");
                System.out.println(DateUtil.parseCST(arsi.get(0).getPreparationDate().toString()));
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                DateTime dat = DateUtil.parseCST(arsi.get(0).getPreparationDate().toString());
                date = new SimpleDateFormat("yyyy-MM-dd").format(dat);
            }
            String tmp = "档号:" +
                arsi.get(0).getRecordId() +
                ";档案馆(室)号:" + arsi.get(0).getArchiveRoomNumber()+
                ";缩微号:" + arsi.get(0).getMicrofilmNumber()+
                ";发文号:" + arsi.get(0).getInquiryNumber()+
                ";案卷题名:" + arsi.get(0).getCaseTitle() +
                ";编制日期:" +  date +
                ";编制单位:" + arsi.get(0).getPreparationUnit() +
                ";保管期限:" + arsi.get(0).getRetentionPeriod() +
                ";密级:" + arsi.get(0).getSecurityClassification();
        byte[] imgr1 = barcodeService.generateBarcodeImage(recordId1);
        byte[] sedcode = pdfGenerateService.createQrCodeN(recordId1, 200, 200);
        byte[] sedcode = pdfGenerateService.createQrCodeN(tmp, 210, 210);
        ExcelExp e3 = new ExcelExp("案卷封面数据",arsi, ArchiveInfoVo.class);
        ExcelExp e4 = new ExcelExp("案卷封面",  arsi, recordId1, imgr1,sedcode, ArchiveInfoVo.class);
        List<ExcelExp> mysheet1 = new ArrayList<ExcelExp>();
@@ -578,6 +651,7 @@
        //  System.out.println(bos2);
        bos2.writeTo(response.getOutputStream());
        }
    }