change_valuation.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // 计算变更令,计价不计价金额数
  2. const defaultInfo = require('../app/const/tender_info');
  3. const BaseUtil = require('./baseUtils');
  4. const status = require('../app/const/audit').change.status;
  5. const querySql = BaseUtil.querySql;
  6. const ZhCalc = BaseUtil.ZhCalc;
  7. const checkChange = async function(change) {
  8. const changeBills = await querySql('Select * From zh_change_audit_list where cid = ?', [change.cid]);
  9. let valuation_tp = 0;
  10. let unvaluation_tp = 0;
  11. for (const cb of changeBills) {
  12. valuation_tp = cb.is_valuation ? ZhCalc.add(valuation_tp, cb.checked_price) : valuation_tp;
  13. unvaluation_tp = !cb.is_valuation ? ZhCalc.add(unvaluation_tp, cb.checked_price) : unvaluation_tp;
  14. }
  15. await querySql('Update zh_change Set valuation_tp = ?, unvaluation_tp = ? Where cid = ?', [valuation_tp, unvaluation_tp, change.cid]);
  16. console.log(`Update Change ${change.cid}`);
  17. };
  18. const doComplete = async function() {
  19. try {
  20. const tender = await querySql('Select * From zh_tender');
  21. for (const t of tender) {
  22. console.log(`Update Tender ${t.id}:`);
  23. const changes = await querySql('Select * From zh_change where tid = ? AND status = ?', [t.id, status.checked]);
  24. for (const c of changes) {
  25. await checkChange(c);
  26. }
  27. }
  28. } catch (err) {
  29. console.log(err);
  30. }
  31. BaseUtil.closePool();
  32. };
  33. const doCompleteTest = async function(tid) {
  34. try {
  35. const tender = await querySql('Select * From zh_tender where id = ?', [tid]);
  36. for (const t of tender) {
  37. console.log(`Update Tender ${t.id}:`);
  38. const changes = await querySql('Select * From zh_change where tid = ? AND status = ?', [t.id, status.checked]);
  39. for (const c of changes) {
  40. await checkChange(c);
  41. }
  42. }
  43. } catch (err) {
  44. console.log(err);
  45. }
  46. BaseUtil.closePool();
  47. };
  48. const tenderId = process.argv[3];
  49. if (tenderId) {
  50. doCompleteTest(tenderId);
  51. } else {
  52. doComplete();
  53. }