Browse Source

审核比较问题

MaiXinRong 3 years ago
parent
commit
7287eb85a2
2 changed files with 40 additions and 11 deletions
  1. 2 2
      app/controller/stage_controller.js
  2. 38 9
      db_script/recover_ledger_his.js

+ 2 - 2
app/controller/stage_controller.js

@@ -1398,10 +1398,10 @@ module.exports = app => {
                 if (data.main) {
                     result.main = {};
                     result.main.ledger = ctx.stage.ledgerHis
-                        ? await ctx.helper.loadLedgerDataFromOss(ctx.tender.id, ctx.stage.ledgerHis.bills_file)
+                        ? await ctx.helper.loadLedgerDataFromOss(ctx.stage.ledgerHis.bills_file)
                         : await ctx.service.ledger.getData(ctx.tender.id);
                     result.main.pos = ctx.stage.ledgerHis
-                        ? await ctx.helper.loadLedgerDataFromOss(ctx.tender.id, ctx.stage.ledgerHis.pos_file)
+                        ? await ctx.helper.loadLedgerDataFromOss(ctx.stage.ledgerHis.pos_file)
                         : await ctx.service.pos.getPosData({ tid: ctx.tender.id });
                 }
                 for (const order of data.roles) {

+ 38 - 9
db_script/recover_ledger_his.js

@@ -1,7 +1,12 @@
 const fs = require('fs');
 const path = require('path');
-
-const measureType = require('../app/const/tender').measureType;
+var util = require('util');
+var logPath = path.join(__dirname, 'recover_ledger_his.log');
+var logFile = fs.createWriteStream(logPath, { flags: 'a' });
+console.log = function() {
+    logFile.write(util.format.apply(null, arguments) + '\n');
+    process.stdout.write(util.format.apply(null, arguments) + '\n');
+};
 
 const mysql = require('mysql');
 const oss = require('ali-oss');
@@ -38,11 +43,35 @@ const querySql = async function(sql, sqlParam) {
     });
 };
 
-const getTableName = function(tender, table) {
-    switch(table) {
-        case 'ledger': return 'zh_ledger_' + (tender.id % 10);
-        case 'pos': return 'zh_pos_' + (tender.id % 20);
-        case 'revise_bills': return 'zh_revise_bills_' + (tender.id % 10);
-        case 'revise_pos': return 'zh_revise_pos_' + (tender.id % 20);
+const recoverLedgerHis = async function (id, countField, url) {
+    let File;
+    try {
+        File = await ossClient.get('undefined' + url);
+    } catch(err) {
+        if (err.status === 404) return;
+    }
+    if (File.res.status !== 200) {
+        await ossClient.put(options.hisOssPath + url, File.content);
+        // const result = JSON.parse(File.content);
+        // await querySql(`Update zh_ledger_history Set ${countField} = ? Where id = ?`, [result.length, l.id]);
+        // console.log(`LedgerHis: ${countField}-${result.length}`);
     }
-};
+};
+
+const checkLedgerHis = async function (his) {
+    await recoverLedgerHis(his.id, 'bills_count', his.bills_file);
+    await recoverLedgerHis(his.id, 'pos_count', his.pos_file);
+};
+
+const doComplete = async function() {
+    try {
+        const ledgerHis = await querySql('Select * From zh_ledger_history where tid = 5709');
+        for (const l of ledgerHis) {
+            await checkLedgerHis(l);
+        }
+    } catch (err) {
+        console.log(err);
+    }
+    pool.end();
+};
+doComplete();