change_valuation.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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, decimal) {
  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. cb.tp = ZhCalc.mul(cb.spamount, cb.unit_price, change.tp_decimal || decimal.tp);
  13. if (cb.is_valuation) {
  14. valuation_tp = ZhCalc.add(valuation_tp, cb.tp);
  15. } else {
  16. unvaluation_tp = ZhCalc.add(unvaluation_tp, cb.tp);
  17. }
  18. }
  19. await querySql('Update zh_change Set valuation_tp = ?, unvaluation_tp = ? Where cid = ?', [valuation_tp, unvaluation_tp, change.cid]);
  20. console.log(`Update Change ${change.cid}`);
  21. };
  22. const doComplete = async function() {
  23. try {
  24. const tender = await querySql('Select * From zh_tender');
  25. for (const t of tender) {
  26. console.log(`Update Tender ${t.id}:`);
  27. const info = await querySql('Select * From zh_tender_info where tid = ?', [t.id]);
  28. const decimal = info.length > 0 && info[0].decimal ? JSON.parse(info[0].decimal) : defaultInfo.defaultInfo.decimal;
  29. const changes = await querySql('Select * From zh_change where tid = ?', [t.id]);
  30. for (const c of changes) {
  31. await checkChange(c, decimal);
  32. }
  33. }
  34. } catch (err) {
  35. console.log(err);
  36. }
  37. BaseUtil.closePool();
  38. };
  39. const doCompleteTest = async function(tid) {
  40. try {
  41. const tender = await querySql('Select * From zh_tender where id = ?', [tid]);
  42. for (const t of tender) {
  43. console.log(`Update Tender ${t.id}:`);
  44. const info = await querySql('Select * From zh_tender_info where tid = ?', [t.id]);
  45. const decimal = info.length > 0 && info[0].decimal ? JSON.parse(info[0].decimal) : defaultInfo.defaultInfo.decimal;
  46. const changes = await querySql('Select * From zh_change where tid = ?', [t.id]);
  47. for (const c of changes) {
  48. await checkChange(c, decimal);
  49. }
  50. }
  51. } catch (err) {
  52. console.log(err);
  53. }
  54. BaseUtil.closePool();
  55. };
  56. const tenderId = process.argv[3];
  57. if (tenderId) {
  58. doCompleteTest(tenderId);
  59. } else {
  60. doComplete();
  61. }