|
@@ -0,0 +1,70 @@
|
|
|
|
+'use strict';
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ *
|
|
|
|
+ *
|
|
|
|
+ * @author Mai
|
|
|
|
+ * @date
|
|
|
|
+ * @version
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+const mysql = require('mysql');
|
|
|
|
+const config = process.argv.splice(2)[0];
|
|
|
|
+if (['local', 'uat', 'default'].indexOf(config) < 0) throw `参数错误: ${config}`;
|
|
|
|
+const options = require(`../config/config.${config}`)({ baseDir: __dirname + '/app', root: __dirname, name: 'calc' });
|
|
|
|
+
|
|
|
|
+const pool = mysql.createPool(options.mysql.client);
|
|
|
|
+
|
|
|
|
+const querySql = async function(sql, sqlParam) {
|
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
|
+ pool.getConnection(function(err, conn) {
|
|
|
|
+ if (err) {
|
|
|
|
+ if (err) console.log(err);
|
|
|
|
+ reject(err);
|
|
|
|
+ } else {
|
|
|
|
+ conn.query(sql, sqlParam, function(err, rows, fields) {
|
|
|
|
+ if (err) console.log(err);
|
|
|
|
+ // 释放连接
|
|
|
|
+ conn.release();
|
|
|
|
+ // 传递Promise回调对象
|
|
|
|
+ resolve(rows);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+const doCompleteProject = async function(p) {
|
|
|
|
+ const fun_rela = p.fun_rela ? JSON.parse(p.fun_rela) : {};
|
|
|
|
+ fun_rela.minusNoValue = false;
|
|
|
|
+ await querySql('Update zh_project Set fun_rela = ? Where id = ?', [JSON.stringify(fun_rela), p.id]);
|
|
|
|
+};
|
|
|
|
+const doCompleteTender = async function(t) {
|
|
|
|
+ const info = await querySql('Select * From zh_tender_info Where tid = ?');
|
|
|
|
+ if (info.length > 0) {
|
|
|
|
+ const fun_rela = t.fun_rela ? JSON.parse(t.fun_rela) : {};
|
|
|
|
+ fun_rela.stage_chagne = { minusNoValue: false };
|
|
|
|
+ await querySql('Update zh_tender_info Set fun_rela = ? Where tid = ?', [JSON.stringify(fun_rela), t.id]);
|
|
|
|
+ } else {
|
|
|
|
+ const fun_rela = { stage_change: { minusNoValue: false } };
|
|
|
|
+ await querySql('Insert Into zh_tender_info {pid, tid, fun_rela} Values(?, ?, ?)', [t.project_id, t.id, JSON.stringify(fun_rela)]);
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+const doComplete = async function() {
|
|
|
|
+ try {
|
|
|
|
+ const project = await querySql('Select * From zh_project');
|
|
|
|
+ for (const p of project) {
|
|
|
|
+ await doCompleteProject(p);
|
|
|
|
+ }
|
|
|
|
+ const tenders = await querySql('Select * From zh_tender');
|
|
|
|
+ for (const t of tenders) {
|
|
|
|
+ await doCompleteTender(t);
|
|
|
|
+ }
|
|
|
|
+ } catch (err) {
|
|
|
|
+ console.log(err);
|
|
|
|
+ }
|
|
|
|
+ pool.end();
|
|
|
|
+};
|
|
|
|
+doComplete();
|
|
|
|
+
|