change_bills.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. for (const cb of changeBills) {
  10. cb.checked_amount = cb.checked_amount ? cb.checked_amount : 0;
  11. cb.checked_price = ZhCalc.mul(cb.checked_amount, cb.unit_price, change.tp_decimal || decimal.tp);
  12. await querySql('Update zh_change_audit_list Set checked_price = ?, checked_amount = ? Where id = ?', [cb.checked_price, cb.checked_amount, cb.id]);
  13. }
  14. console.log(`Update Change ${change.cid}`);
  15. };
  16. const doComplete = async function() {
  17. try {
  18. const tender = await querySql('Select * From zh_tender');
  19. for (const t of tender) {
  20. console.log(`Update Tender ${t.id}:`);
  21. const info = await querySql('Select * From zh_tender_info where tid = ?', [t.id]);
  22. const decimal = info.length > 0 && info[0].decimal ? JSON.parse(info[0].decimal) : defaultInfo.defaultInfo.decimal;
  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, decimal);
  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 info = await querySql('Select * From zh_tender_info where tid = ?', [t.id]);
  39. const decimal = info.length > 0 && info[0].decimal ? JSON.parse(info[0].decimal) : defaultInfo.defaultInfo.decimal;
  40. const changes = await querySql('Select * From zh_change where tid = ?', [t.id]);
  41. for (const c of changes) {
  42. await checkChange(c, decimal);
  43. }
  44. }
  45. } catch (err) {
  46. console.log(err);
  47. }
  48. BaseUtil.closePool();
  49. };
  50. const tenderId = process.argv[3];
  51. if (tenderId) {
  52. doCompleteTest(tenderId);
  53. } else {
  54. doComplete()
  55. }