minus_no_value.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. const mysql = require('mysql');
  10. const config = process.argv.splice(2)[0];
  11. if (['local', 'uat', 'default'].indexOf(config) < 0) throw `参数错误: ${config}`;
  12. const options = require(`../config/config.${config}`)({ baseDir: __dirname + '/app', root: __dirname, name: 'calc' });
  13. const pool = mysql.createPool(options.mysql.client);
  14. const querySql = async function(sql, sqlParam) {
  15. return new Promise(function(resolve, reject) {
  16. pool.getConnection(function(err, conn) {
  17. if (err) {
  18. if (err) console.log(err);
  19. reject(err);
  20. } else {
  21. conn.query(sql, sqlParam, function(err, rows, fields) {
  22. if (err) console.log(err);
  23. // 释放连接
  24. conn.release();
  25. // 传递Promise回调对象
  26. resolve(rows);
  27. });
  28. }
  29. });
  30. });
  31. };
  32. const doCompleteProject = async function(p) {
  33. const fun_rela = p.fun_rela ? JSON.parse(p.fun_rela) : {};
  34. fun_rela.minusNoValue = false;
  35. await querySql(`Update zh_project Set fun_rela = '${JSON.stringify(fun_rela)}' Where id = ${p.id}`);
  36. };
  37. const doCompleteTender = async function(t) {
  38. const info = await querySql('Select * From zh_tender_info Where tid = ?', [t.id]);
  39. if (info.length > 0) {
  40. const fun_rela = t.fun_rela ? JSON.parse(t.fun_rela) : {};
  41. fun_rela.stage_chagne = { minusNoValue: false };
  42. await querySql(`Update zh_tender_info Set fun_rela = '${JSON.stringify(fun_rela)}' Where tid = ${t.id}`);
  43. } else {
  44. const fun_rela = { stage_change: { minusNoValue: false } };
  45. await querySql(`Insert Into zh_tender_info (pid, tid, fun_rela) Values(${t.project_id}, ${t.id}, '${JSON.stringify(fun_rela)}')`);
  46. }
  47. };
  48. const doComplete = async function() {
  49. try {
  50. const project = await querySql('Select * From zh_project');
  51. for (const p of project) {
  52. await doCompleteProject(p);
  53. }
  54. const tenders = await querySql('Select * From zh_tender');
  55. for (const t of tenders) {
  56. await doCompleteTender(t);
  57. }
  58. } catch (err) {
  59. console.log(err);
  60. }
  61. pool.end();
  62. };
  63. doComplete();