|
@@ -1,12 +1,14 @@
|
|
|
-import { replaceDocx, createZip, uploadFileToOSS, docxToPdf, renderDocx } from "../../lib/docs";
|
|
|
+import { replaceDocx, createZip, uploadFileToOSS, docxToPdf, renderDocx, toBarCode } from "../../lib/docs";
|
|
|
// const Parse = global.Parse;
|
|
|
|
|
|
const path = require("path")
|
|
|
const fs = require("fs")
|
|
|
-var TemplateDocxPath = path.join(__dirname,"template/模板-推荐申报表.docx")
|
|
|
-if(!fs.existsSync(TemplateDocxPath)){
|
|
|
- TemplateDocxPath = path.join(__dirname,"../../template/模板-推荐申报表.docx")
|
|
|
+var TemplateDocxDir = path.join(__dirname,"template")
|
|
|
+if(!fs.existsSync(TemplateDocxDir)){
|
|
|
+ TemplateDocxDir = path.join(__dirname,"../../template")
|
|
|
}
|
|
|
+const tempDir = path.join(__dirname , "temp");
|
|
|
+
|
|
|
/**
|
|
|
* 定义导出申报合集文档云函数
|
|
|
* @example
|
|
@@ -146,7 +148,10 @@ module.exports.exportProcessReportDocs = exportProcessReportDocs
|
|
|
|
|
|
function renderReportDocsByTextbook(textbook){
|
|
|
console.log("renderReportDocsByTextbook")
|
|
|
- let json = textbook.toJSON();
|
|
|
+ return new Promise(async (resolve)=>{
|
|
|
+ let json = textbook.toJSON();
|
|
|
+ let bookid = json.code || json?.objectId;
|
|
|
+
|
|
|
// console.log(json)
|
|
|
// 圆圈选中未选 ○ 未选 ● 选中
|
|
|
let circleCheck = ["○","●"];
|
|
@@ -159,14 +164,13 @@ function renderReportDocsByTextbook(textbook){
|
|
|
let createdAt = new Date(textbook?.createdAt);
|
|
|
let createdDate = `${createdAt?.getFullYear()}年${createdAt?.getMonth()+1}月${createdAt?.getDate()}日`;
|
|
|
|
|
|
- // 专业代码:前四位
|
|
|
- let majorCode = json?.majorId || json?.major?.code
|
|
|
- let majorCode6
|
|
|
- if(majorCode?.length>4){
|
|
|
- majorCode = majorCode.slice(0,4)
|
|
|
- majorCode6 = majorCode.slice(0,6)
|
|
|
- }
|
|
|
- let majorName = json?.majorName || json?.major?.name
|
|
|
+ // 专业代码:前四位 majorPoniter
|
|
|
+ let majorCode4 = json?.majorPoniter?.code?.slice(0,4) || ""
|
|
|
+ let majorName4 = json?.majorPoniter?.name || ""
|
|
|
+ // 专业代码:前六位 major
|
|
|
+ let majorCode6 = json?.major?.code?.slice(0,6) || ""
|
|
|
+ let majorName6 = json?.major?.name || ""
|
|
|
+
|
|
|
// 是否重点立项
|
|
|
let importantProject = json?.importantProject?.join();
|
|
|
|
|
@@ -242,9 +246,17 @@ function renderReportDocsByTextbook(textbook){
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ let codePngBuffer = await toBarCode(json?.code);
|
|
|
+ let codePngPath = path.join(tempDir,bookid+"code.png")
|
|
|
+ fs.writeFileSync(codePngPath,codePngBuffer)
|
|
|
+ // let codeBarImg =
|
|
|
+ // console.log(codeBarImg)
|
|
|
// (其他佐证材料,限两份以内。)
|
|
|
+ console.log(codePngPath)
|
|
|
|
|
|
let fixData = {
|
|
|
+ // 图片信息
|
|
|
+ codeBarImg:codePngPath,
|
|
|
// 封面信息
|
|
|
titlePad:padString(json?.title,21),
|
|
|
ISBNPad:padString(json?.ISBN,21),
|
|
@@ -259,8 +271,6 @@ function renderReportDocsByTextbook(textbook){
|
|
|
mobile:padString(mobile,21),
|
|
|
authorUnit:padString(json?.unit,21),
|
|
|
publisherPad:padString(json?.editionUnit,21),
|
|
|
- recommandUnit:padString("",14), // 未找到
|
|
|
- majorCodePad:padString((majorCode),6),
|
|
|
createdDate:padString(createdDate,21),
|
|
|
// 基本信息
|
|
|
title:json?.title,
|
|
@@ -270,11 +280,13 @@ function renderReportDocsByTextbook(textbook){
|
|
|
uHJ:circleCheck[(json?.unitType?.indexOf("合建")>-1)?1:0],
|
|
|
uGJ:circleCheck[(json?.unitType?.indexOf("共建")>-1)?1:0],
|
|
|
uQT:circleCheck[(json?.unitType?.indexOf("其他")>-1)?1:0],
|
|
|
- mc:majorCode,
|
|
|
+ mc4:majorCode4,
|
|
|
+ mn4:majorName4,
|
|
|
mc6:majorCode6,
|
|
|
- mn:majorName,
|
|
|
+ mn6:majorName6,
|
|
|
lCN:circleCheck[(json?.lang=="中文")?1:0],
|
|
|
lEN:circleCheck[(json?.lang=="英文")?1:0],
|
|
|
+ lMW:circleCheck[(json?.lang=="盲文")?1:0],
|
|
|
lOT:circleCheck[(json?.lang?.indexOf("其他")>-1)?1:0],
|
|
|
lSS:circleCheck[(json?.lang?.indexOf("少数")>-1)?1:0],
|
|
|
authors:json?.authors, // 其他主编
|
|
@@ -343,10 +355,16 @@ function renderReportDocsByTextbook(textbook){
|
|
|
})
|
|
|
// console.log(bookData)
|
|
|
// console.log(json)
|
|
|
- let bookid = json.code || json?.objectId;
|
|
|
let tempFileName = path.join(`${bookid}${json.title}.docx`)
|
|
|
- return new Promise(async (resolve)=>{
|
|
|
+
|
|
|
+ // 开始文件合并导出
|
|
|
let filePath,pdfPath,urlDocx,urlPdf
|
|
|
+ let TemplateDocxPath
|
|
|
+ if(json?.childrens?.length>0){
|
|
|
+ TemplateDocxPath = path.join(TemplateDocxDir,"模板-本科教材申报书-全册.docx")
|
|
|
+ }else{
|
|
|
+ TemplateDocxPath = path.join(TemplateDocxDir,"模板-本科教材申报书-单册.docx")
|
|
|
+ }
|
|
|
try{
|
|
|
// DOCX模板合成 速度2-3秒
|
|
|
filePath = renderDocx(TemplateDocxPath,tempFileName,bookData)
|