change_bills.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // 计算变更令,正负变更数
  2. const defaultInfo = require('../app/const/tender_info');
  3. const BaseUtil = require('./baseUtils');
  4. const querySql = BaseUtil.querySql;
  5. const ZhCalc = BaseUtil.ZhCalc;
  6. const checkChange = async function(change, decimal) {
  7. const changeBills = await querySql('Select * From zh_change_audit_list where cid = ?', [change.cid]);
  8. for (const cb of changeBills) {
  9. cb.checked_amount = cb.checked_amount ? cb.checked_amount : 0;
  10. cb.checked_price = ZhCalc.mul(cb.checked_amount, cb.unit_price, change.tp_decimal || decimal.tp);
  11. await querySql('Update zh_change_audit_list Set checked_price = ?, checked_amount = ? Where id = ?', [cb.checked_price, cb.checked_amount, cb.id]);
  12. }
  13. console.log(`Update Change ${change.cid}`);
  14. };
  15. const doComplete = async function() {
  16. try {
  17. const tender = await querySql('Select * From zh_tender');
  18. for (const t of tender) {
  19. console.log(`Update Tender ${t.id}:`);
  20. const info = await querySql('Select * From zh_tender_info where tid = ?', [t.id]);
  21. const decimal = info.length > 0 && info[0].decimal ? JSON.parse(info[0].decimal) : defaultInfo.defaultInfo.decimal;
  22. const changes = await querySql('Select * From zh_change where tid = ?', [t.id]);
  23. for (const c of changes) {
  24. await checkChange(c, decimal);
  25. }
  26. }
  27. } catch (err) {
  28. console.log(err);
  29. }
  30. BaseUtil.closePool();
  31. };
  32. const doCompleteTest = async function(tid) {
  33. try {
  34. const tender = await querySql('Select * From zh_tender where id = ?', [tid]);
  35. for (const t of tender) {
  36. console.log(`Update Tender ${t.id}:`);
  37. const info = await querySql('Select * From zh_tender_info where tid = ?', [t.id]);
  38. const decimal = info.length > 0 && info[0].decimal ? JSON.parse(info[0].decimal) : defaultInfo.defaultInfo.decimal;
  39. const changes = await querySql('Select * From zh_change where tid = ?', [t.id]);
  40. for (const c of changes) {
  41. await checkChange(c, decimal);
  42. }
  43. }
  44. } catch (err) {
  45. console.log(err);
  46. }
  47. BaseUtil.closePool();
  48. };
  49. const tenderId = process.argv[3];
  50. if (tenderId) {
  51. doCompleteTest(tenderId);
  52. } else {
  53. doComplete()
  54. }