exportRationGLJ.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * Created by Tony on 2021/10/8.
  3. */
  4. let fs = require('fs');
  5. // let data1 = fs.readFileSync('D:/GitHome/ConstructionOperation/tmp/testRationData_1633514079281.js');
  6. // let data2 = fs.readFileSync('D:/GitHome/ConstructionOperation/tmp/testGLJData.js');
  7. // let mixedData = fs.readFileSync('D:/GitHome/YangHuOperation/tmp/testDataResult_广西公路日常养护预算指标(2021).js');
  8. let mixedData = fs.readFileSync('D:/GitHome/YangHuOperation/tmp/testDataResult_广西公路养护预算定额(2021).js');
  9. let data = JSON.parse(mixedData);
  10. let gljItemArr = data.gljList;
  11. // let data1 = fs.readFileSync('D:/GitHome/YangHuOperation/tmp/testRationData_广西公路日常养护预算指标(2021).js');
  12. let data1 = fs.readFileSync('D:/GitHome/YangHuOperation/tmp/testRationData_广西公路养护预算定额(2021).js');
  13. let rationItemArr = JSON.parse(data1);
  14. //----------------------------------------
  15. // let rationItemArr = JSON.parse(data1);
  16. // let gljItemArr = JSON.parse(data2);
  17. let gljCache = {};
  18. const prefix = '_'
  19. let pmKeysCache = {};
  20. for (let gljItem of gljItemArr) {
  21. gljCache[prefix + gljItem.ID] = gljItem;
  22. }
  23. let newData = [];
  24. let firstStr = 'RationID|GLJID|Amount|Proportion|Type';
  25. newData.push(firstStr);
  26. for (let item of rationItemArr) {
  27. for (let rgljItem of item.rationGljList) {
  28. if (parseFloat(rgljItem.consumeAmt) > 0) {
  29. let str = `${item.ID}|${rgljItem.gljId}|${rgljItem.consumeAmt}|${(rgljItem.proportion !== undefined)?rgljItem.proportion:0}|${gljCache[prefix + rgljItem.gljId].gljType}`;
  30. // if (pmKeysCache.hasOwnProperty(item.ID + prefix + rgljItem.gljId)) {
  31. // pmKeysCache[item.ID + prefix + rgljItem.gljId]++;
  32. // console.log('dup key: ' + (item.ID + prefix + rgljItem.gljId));
  33. // } else {
  34. // pmKeysCache[item.ID + prefix + rgljItem.gljId] = 1;
  35. // }
  36. newData.push(str);
  37. }
  38. }
  39. }
  40. let ttlStr = newData.join('\n');
  41. let regExp = new RegExp('"', "gm");
  42. ttlStr = ttlStr.replace(regExp, '');
  43. fs.writeFile(`D:/GitHome/YangHuOperation/tmp/定额工料机Data文件_${(new Date()).getTime()}.txt`, ttlStr, { 'flag': 'a', 'encoding': 'utf-8' }, function(err){
  44. if(err) throw err;
  45. });