Parcourir la source

Merge branch 'master' of http://git.fmode.cn:3000/bin/edu-textbook

ryanemax il y a 1 semaine
Parent
commit
a523c7f968

+ 110 - 0
projects/textbook/src/services/importDept.ts

@@ -2266,4 +2266,114 @@ export const updateDept = {
     { name: '大连理工大学出版社', num: 1, desc: '' },
     { name: '北京邮电大学出版社', num: 1, desc: '' },
   ],
+
+  /* 重复出版社单位 */
+  list4: [
+    '安徽教育出版社',
+    '安徽科学技术出版社',
+    '安徽少年儿童出版社',
+    '北京科学技术出版社',
+    '北京理工大学出版社',
+    '北京旅游教育出版社',
+    '春风文艺出版社',
+    '大连海事大学出版社',
+    '德宏民族出版社',
+    '法律出版社',
+    '故宫出版社',
+    '光明日报出版社',
+    '广东教育出版社',
+    '广东岭南美术出版社',
+    '广州出版社',
+    '国防大学出版社',
+    '哈尔滨出版社',
+    '哈尔滨工程大学出版社',
+    '哈尔滨工业大学出版社',
+    '海豚出版社',
+    '海燕出版社',
+    '航空工业出版社',
+    '合肥工业大学出版社',
+    '河南科学技术出版社',
+    '黑龙江大学出版社',
+    '黑龙江教育出版社',
+    '湖北科学技术出版社',
+    '湖南大学出版社',
+    '湖南师范大学出版社',
+    '华南理工大学出版社',
+    '华语教学出版社',
+    '华中师范大学出版社',
+    '机械工业出版社',
+    '吉林大学出版社',
+    '江西高校出版社',
+    '军事科学出版社',
+    '科学技术文献出版社',
+    '科学普及出版社',
+    '蓝天出版社',
+    '辽宁教育出版社',
+    '辽宁科学技术出版社',
+    '辽宁美术出版社',
+    '辽宁民族出版社',
+    '辽宁师范大学出版社',
+    '明天出版社',
+    '人民邮电出版社',
+    '山东科学技术出版社',
+    '陕西科学技术出版社',
+    '陕西三秦出版社',
+    '陕西师范大学出版总社',
+    '陕西太白文艺出版社',
+    '上海教育出版社',
+    '上海科学技术出版社',
+    '上海科学技术文献出版社',
+    '上海科学普及出版社',
+    '上海少年儿童出版社',
+    '上海译文出版社',
+    '上海音乐出版社',
+    '上海音乐学院出版社',
+    '上海远东出版社',
+    '深圳出版社',
+    '生活·读书·新知三联书店',
+    '石油工业出版社',
+    '四川大学出版社',
+    '天津大学出版社',
+    '天津教育出版社',
+    '天津科学技术出版社',
+    '天津人民出版社',
+    '天津人民美术出版社',
+    '外文出版社',
+    '西安出版社',
+    '西安交通大学出版社',
+    '现代出版社',
+    '现代教育出版社',
+    '线装书局',
+    '新疆青少年出版社',
+    '新世界出版社',
+    '应急管理出版社',
+    '云南科技出版社',
+    '云南美术出版社',
+    '中国电力出版社',
+    '中国法制出版社',
+    '中国方正出版社',
+    '中国海关出版社',
+    '中国华侨出版社',
+    '中国计划出版社',
+    '中国检察出版社',
+    '中国建筑工业出版社',
+    '中国金融出版社',
+    '中国劳动社会保障出版社',
+    '中国盲文出版社',
+    '中国民主法制出版社',
+    '中国农业大学出版社',
+    '中国青年出版总社',
+    '中国人民大学出版社',
+    '中国社会科学出版社',
+    '中国石化出版社',
+    '中国体育报业总社(人民体育出版社)',
+    '中国言实出版社',
+    '中国原子能出版社',
+    '中国政法大学出版社',
+    '中国中福会出版社',
+    '中华书局',
+    '中南大学出版社',
+    '中译出版社',
+    '宗教文化出版社',
+  ],
 };

+ 59 - 30
projects/textbook/src/services/textbook.ts

@@ -58,7 +58,7 @@ export class textbookServer {
   }
   //格式化链
   async formatNode(id: string): Promise<Array<any>> {
-    if(!id) return []
+    if (!id) return [];
     let query = new Parse.Query('Department');
     query.select('name', 'parent', 'hasChildren', 'type', 'branch');
     let r = await query.get(id);
@@ -147,7 +147,7 @@ export class textbookServer {
       document.body.removeChild(a); // 下载后移除&lt;a&gt;元素
     });
   }
-  async preview(options:{bookid:string}){
+  async preview(options: { bookid: string }) {
     let url = Parse.serverURL + '/api/tbook/preview';
     let response = await fetch(url, {
       method: 'POST',
@@ -158,9 +158,9 @@ export class textbookServer {
       body: JSON.stringify(options),
     });
     let result = await response.json();
-    let { urlPdf } = result?.data
+    let { urlPdf } = result?.data;
     console.log(urlPdf);
-    window.open(urlPdf)
+    window.open(urlPdf);
   }
 
   async getEduProcess(id: string): Promise<string | undefined> {
@@ -177,7 +177,7 @@ export class textbookServer {
   }
 
   //需要删除是否存在为联系人情况
-  async getEduProcessProf(filter: Array<string>): Promise<string|undefined> {
+  async getEduProcessProf(filter: Array<string>): Promise<string | undefined> {
     let query = new Parse.Query('EduProcess');
     query.notEqualTo('isDeleted', true);
     query.containedIn('profileSubmitted', filter);
@@ -197,19 +197,19 @@ export class textbookServer {
     msg?: NzMessageService
   ): Promise<boolean | undefined> {
     console.log(pid, type, dpid);
-    
+
     let query = new Parse.Query('EduProcess');
-    if(!dpid){
+    if (!dpid) {
       query.equalTo('profileSubmitted', pid);
-    }else{
+    } else {
       query.equalTo('department', dpid);
     }
     query.include('profileSubmitted');
     query.select('objectId', 'profileSubmitted');
-    query.notEqualTo('isDeleted',true)
+    query.notEqualTo('isDeleted', true);
     let res = await query.first();
     if (!res?.id) {
-      msg?.warning('所属单位不存在')
+      msg?.warning('所属单位不存在');
       return false;
     }
     if (type == 'del') {
@@ -220,23 +220,23 @@ export class textbookServer {
     } else {
       //添加工作联系人
       if (res?.get('profileSubmitted')?.get('user')) {
-        msg?.warning('该单位已有部门联系人,请先移除后再操作')
+        msg?.warning('该单位已有部门联系人,请先移除后再操作');
         return false;
       }
-      res?.set('profileSubmitted',{
+      res?.set('profileSubmitted', {
         __type: 'Pointer',
         className: 'Profile',
         objectId: pid,
-      })
-      await res.save()
-      return true
+      });
+      await res.save();
+      return true;
     }
     return false;
   }
 
   /* 批量预设(临时) */
   async saveProcess() {
-    let count = 0
+    let count = 0;
     /* 批量关联流程管理员 */
     // let queryEdupro = new Parse.Query('EduProcess')
     // queryEdupro.select('department','name')
@@ -330,7 +330,7 @@ export class textbookServer {
     //   queryPareet.equalTo('name', item.name)
     //   let dep = await queryPareet.first()
     //   console.log(dep?.get('name'));
-      
+
     //   // for (let index = 0; index < prents.length; index++) {
     //   //   let item = prents[index];
     //     let query = new Parse.Query('EduProcess')
@@ -370,31 +370,60 @@ export class textbookServer {
     //     count ++
     //     console.log('已完成'+dep?.get('name')+'流程');
     //     console.log(count);
-        
+
     //   // }
     // }
+
+    /* 去重出版单位 */
+    let list = updateDept.list4;
+    for (let index = 0; index < list.length; index++) {
+      const item = list[index];
+      let queryPareet = new Parse.Query('Department');
+      queryPareet.equalTo('name', item);
+      queryPareet.descending('createdAt');
+      let dep = await queryPareet.find();
+      for (let j = 0; j < dep.length; j++) {
+        const e = dep[j];
+        let queryEdupro = new Parse.Query('EduProcess');
+        queryEdupro.equalTo('department', e.id);
+        queryEdupro.select('objectId', 'profileSubmitted');
+        queryEdupro.descending('createdAt');
+        let eps = await queryEdupro.find();
+        console.log(eps);
+        if (eps.length > 1) {
+          eps[0].set('isDeleted', true);
+          await eps[0].save();
+        }
+        if (!eps || eps.length == 0) {
+          e.set('isDeleted', true);
+          await e.save();
+          count++;
+        }
+      }
+      console.log(count);
+    }
   }
 
   /* 获取所有未上传签名页附件教材 */
-  async get_authorSignPDF_def(){
-    let query = new Parse.Query('EduTextbook')
+  async get_authorSignPDF_def() {
+    let query = new Parse.Query('EduTextbook');
     // let query = Parse.Query.fromJSON('EduTextbook', {
     //   where: {
     //     status:{$in: ['102','103','200','201','300']},
     //     authorSignPDF
     //   },
     // });
-    let list:any = []
-    query.notEqualTo('isDeleted',true)
-    query.containedIn('status',['102','103','200','201','300'])
-    query.doesNotExist('authorSignPDF.url')
-    query.exists('code')
-    query.select('code')
-    query.limit(1000)
-    query.greaterThanOrEqualTo('createdAt', new Date('2024/8/5 00:00'))
-    let r = await query.find()
+    let list: any = [];
+    query.notEqualTo('isDeleted', true);
+    query.containedIn('status', ['102', '103', '200', '201', '300']);
+    query.doesNotExist('authorSignPDF.url');
+    query.exists('code');
+    query.select('code');
+    query.limit(1000);
+    query.greaterThanOrEqualTo('createdAt', new Date('2024/8/5 00:00'));
+    let r = await query.find();
     // console.log(r);
-    r.forEach(item=> list.push(item.get('code')))
+    r.forEach((item) => list.push(item.get('code')));
     console.log(list);
   }
 }