Преглед изворни кода

feat: author & more export info

MetaPunkGames пре 7 месеци
родитељ
комит
1802337d3b

+ 51 - 8
server/cloud/tbook/func-tbook-export.js

@@ -111,18 +111,22 @@ function renderReportDocsByTextbook(textbook){
     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
     // 是否重点立项
+    let importantProject = json?.importantProject.join();
+
     let isJC = circleCheck[(json?.approval?.indexOf("基础")>-1)?1:0];
     let isZL = circleCheck[(json?.approval?.indexOf("战略")>-1)?1:0];
     
     let is101 = circleCheck[(json?.approval?.indexOf("101计划")>-1)?1:0]; // 2024新重点
     let isZY = circleCheck[(json?.approval?.indexOf("中央")>-1)?1:0];
     let isSX = circleCheck[(json?.approval?.indexOf("四新")>-1)?1:0];
-    let isJS = circleCheck[(json?.importantProject?.indexOf("建设")>-1)?1:0];
+    let isJS = circleCheck[(importantProject?.indexOf("建设")>-1)?1:0];
 
     let isNotImpt = (json?.approval?.indexOf("101计划")==-1) && (json?.approval?.indexOf("中央")==-1) && (json?.approval?.indexOf("四新")==-1) && (json?.approval?.indexOf("建设")==-1)
     isNotImpt = circleCheck[isNotImpt?1:0];
@@ -139,12 +143,21 @@ function renderReportDocsByTextbook(textbook){
     let latestYear = latestDate?.getFullYear();
     let latestMonth = latestDate?.getMonth()+1;
     // 初版至今重点项目
-    let isBSQT =  !((json?.importantProject?.indexOf("建设")>-1) || (json?.importantProject?.indexOf("本科国家")>-1) || (json?.importantProject?.indexOf("省级优秀")>-1) || (json?.importantProject?.indexOf("省级规划")>-1))// 是否其他省级奖项
+    let isBSQT =  !((importantProject?.indexOf("建设")>-1) || (importantProject?.indexOf("本科国家")>-1) || (importantProject?.indexOf("省级优秀")>-1) || (importantProject?.indexOf("省级规划")>-1))// 是否其他省级奖项
+    let bsqtName = (json?.importantProject || [])?.filter(item=>(item?.indexOf("建设")==-1&&item?.indexOf("本科国家")==-1&&item?.indexOf("省级优秀")==-1&&item?.indexOf("省级规划")==-1));
+    // 教材适用
+    let characteristic = (json?.characteristic?.filter(item=>item?.checked).map(item=>item.label) || []).join(",")
 
-    let bookData = {
+    let alist = []
+    for (let index = 0; index < 9; index++) {
+        alist[index] = [json?.authorList[index]?.name||" ",json?.authorList[index]?.unit||" ",toYearMonth(json?.authorList[index]?.birth)||" ",json?.authorList[index]?.nationality||" ",json?.authorList[index]?.job||" ",json?.authorList[index]?.title||" ",json?.authorList[index]?.mobile||" ",json?.authorList[index]?.email||" ",json?.authorList[index]?.work||" "]
+    }
+    
+    let fixData = {
         // 封面信息
         titlePad:padString(json?.title,21),
-        ISBN:padString(json?.ISBN,21),
+        ISBNPad:padString(json?.ISBN,21),
+        ISBN:json?.ISBN,
         one:squareCheck[(json?.type=="单本"||json?.type=="单册")?1:0], // 单本/单册 方框
         full:squareCheck[json?.type=="全册"?1:0], // 全册
         oneCircle:circleCheck[(json?.type=="单本"||json?.type=="单册")?1:0], // 单本/单册 圆圈
@@ -162,6 +175,7 @@ function renderReportDocsByTextbook(textbook){
         author:json?.author,
         unit:json?.unit,
         mc:majorCode,
+        mc6:majorCode6,
         mn:majorName,
         lCN:circleCheck[(json?.lang=="中文")?1:0],
         lEN:circleCheck[(json?.lang=="英文")?1:0],
@@ -191,14 +205,37 @@ function renderReportDocsByTextbook(textbook){
         currentM:currentMonth,
         currentNum:json?.editionNumber || "",
         printSum:json?.printSum || "",
-        isBGJ:circleCheck[(json?.importantProject?.indexOf("本科国家")>-1)?1:0],
-        isBSYX:circleCheck[(json?.importantProject?.indexOf("省级优秀")>-1)?1:0],
-        isBSGH:circleCheck[(json?.importantProject?.indexOf("省级规划")>-1)?1:0],
+        isBGJ:circleCheck[(importantProject?.indexOf("本科国家")>-1)?1:0],
+        isBSYX:circleCheck[(importantProject?.indexOf("省级优秀")>-1)?1:0],
+        isBSGH:circleCheck[(importantProject?.indexOf("省级规划")>-1)?1:0],
         isBSQT:circleCheck[isBSQT?1:0],
-        bsqtName:isBSQT?(json?.importantProject || ""):"",
+        bsqtName:bsqtName||"",
         isFirstNot:circleCheck[json?.importantProject?0:1],
+        // 教材适用情况
+        lessons:json?.lessons||[],
+        period:json?.period||"", // 学时
+        isBX:squareCheck[(characteristic?.indexOf("必修")>-1)?1:0],
+        isXX:squareCheck[(characteristic?.indexOf("选修")>-1)?1:0],
+        isTS:circleCheck[(characteristic?.indexOf("通识")>-1)?1:0],
+        isGG:circleCheck[(characteristic?.indexOf("公共")>-1)?1:0],
+        isZY:circleCheck[(characteristic?.indexOf("专业")>-1)?1:0],
+        isSXZZ:squareCheck[(characteristic?.indexOf("思想")>-1)?1:0],
+        isSY:squareCheck[(characteristic?.indexOf("实验")>-1)?1:0],
+        // 作者列表
+        a11:alist[0][0],a12:alist[0][1],a13:alist[0][2],a14:alist[0][3],a15:alist[0][4],a16:alist[0][5],a17:alist[0][6],a18:alist[0][7],a19:alist[0][8],
+        a21:alist[1][0],a22:alist[1][1],a23:alist[1][2],a24:alist[1][3],a25:alist[1][4],a26:alist[1][5],a27:alist[1][6],a28:alist[1][7],a29:alist[1][8],
+        a31:alist[2][0],a32:alist[2][1],a33:alist[2][2],a34:alist[2][3],a35:alist[2][4],a36:alist[2][5],a37:alist[2][6],a38:alist[2][7],a39:alist[2][8],
+        a41:alist[3][0],a42:alist[3][1],a43:alist[3][2],a44:alist[3][3],a45:alist[3][4],a46:alist[3][5],a47:alist[3][6],a48:alist[3][7],a49:alist[3][8],
+        a51:alist[4][0],a52:alist[4][1],a53:alist[4][2],a54:alist[4][3],a55:alist[4][4],a56:alist[4][5],a57:alist[4][6],a58:alist[4][7],a59:alist[4][8],
+        a61:alist[5][0],a62:alist[5][1],a63:alist[5][2],a64:alist[5][3],a65:alist[5][4],a66:alist[5][5],a67:alist[5][6],a68:alist[5][7],a69:alist[5][8],
+
     }
+    let bookData = json;
+    Object.keys(fixData).forEach(key=>{
+        bookData[key] = fixData[key]
+    })
     console.log(bookData)
+    console.log(json)
     let bookid = json.code || json?.objectId;
     let tempFileName = path.join(`${bookid}${json.title}.docx`)
     return new Promise((resolve)=>{
@@ -216,6 +253,12 @@ function renderReportDocsByTextbook(textbook){
     })
 }
 
+function toYearMonth(date){
+    console.log(date)
+    date = new Date(date?.iso||date);
+    if(!date) return ""
+    return `${date.getFullYear()}年${date.getMonth()+1}月`
+}
 
 function padString(str,width) {
     str = str || ""

BIN
server/cloud/tbook/template/模板-推荐申报表.docx


+ 4 - 1
server/cloud/tbook/test/test-export.js

@@ -9,6 +9,9 @@ global.Parse = Parse;
  (npx vite build) -and (node temp/test-export.js)
  npx vite build && node temp/test-export.js
 
+ npx vite build
+ node temp/test-export.js
+
  */
 import { exportProcessReportDocs } from "../func-tbook-export";
 
@@ -18,7 +21,7 @@ async function main(){
         // console.log("测试合集")
         // console.log(await exportProcessReportDocs("FR7KZtefyR"))
         console.log("测试列表")
-        console.log(await exportProcessReportDocs(null,["2YBKitpCJL","xLdiEaHGrX"]))
+        console.log(await exportProcessReportDocs(null,["9V575dapEM"]))
     }catch(err){
         console.error(err)
     }