report_memory_temp.test.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. const { app, assert } = require('egg-mock/bootstrap');
  10. const path = require('path');
  11. let savePath;
  12. const mockData = {};
  13. const testSetting1 = {
  14. postData: {
  15. account: 'fuqingqing',
  16. project: 'P0505',
  17. project_password: '123456',
  18. },
  19. define: {
  20. enable: true,
  21. setting: JSON.stringify({
  22. title: '请选择汇总的标段',
  23. type: 'final',
  24. })
  25. },
  26. select: {
  27. tenders: [{tid: 2283}, {tid: 2281}],
  28. type: 'final',
  29. }
  30. };
  31. const testSetting2 = {
  32. postData: {
  33. account: 'zengpeiwen',
  34. project: 'P1201',
  35. project_password: '123456',
  36. },
  37. define: {
  38. enable: true,
  39. setting: JSON.stringify({
  40. title: '请选择汇总的标段',
  41. type: 'final',
  42. })
  43. },
  44. select: {
  45. tenders: [{tid: 2046}, {tid: 1942}, {tid: 2217}],
  46. type: 'final',
  47. }
  48. };
  49. const testSetting3 = {
  50. postData: {
  51. account: 'zengpeiwen',
  52. project: 'P1201',
  53. project_password: '123456',
  54. },
  55. define: {
  56. enable: true,
  57. setting: JSON.stringify({
  58. "title": "请选择汇总的标段",
  59. "type": "final",
  60. "nameColWidth": 180,
  61. "special": [
  62. {"title": "估算", "key": "gu", "width": 60},
  63. {"title": "概算", "key": "gai", "width": 60},
  64. {"title": "预算", "key": "yu", "width": 60}
  65. ]
  66. })
  67. },
  68. select: JSON.parse('{"tenders":[{"tid":1942},{"tid":2217},{"tid":2046},{"tid":2172,"gu":true},{"tid":2324,"gai":true},{"tid":2326,"yu":true}],"type":"final"}')
  69. };
  70. const testSetting4 = {
  71. postData: {
  72. account: 'zengpeiwen',
  73. project: 'P1201',
  74. project_password: '123456',
  75. },
  76. tenderId: 2436,
  77. sorder: 1,
  78. };
  79. const testSetting5 = {
  80. postData: {
  81. account: 'fuqingqing',
  82. project: 'P0505',
  83. project_password: '123456',
  84. },
  85. tenderId: 2142,
  86. sorder: 4,
  87. };
  88. const reportDataAnalysis = require('../../../app/lib/rpt_data_analysis');
  89. describe('test/app/service/report_memory.test.js', () => {
  90. // 准备测试数据
  91. before(function* () {
  92. const ctx = app.mockContext();
  93. savePath = path.join(ctx.app.baseDir,'report_temp');
  94. // const postData = {
  95. // account: '734406061@qq.com',
  96. // project: 'T201711273363',
  97. // project_password: 'mai654321',
  98. // };
  99. ctx.session = {};
  100. mockData.session = ctx.session;
  101. });
  102. // 汇总合同支付
  103. it('test getGatherStagePay', function* () {
  104. const ctx = app.mockContext();
  105. const postData = {
  106. account: 'fuqingqing',
  107. project: 'P0505',
  108. project_password: '123456',
  109. };
  110. ctx.session = {};
  111. const loginResult = yield ctx.service.projectAccount.accountLogin(postData, 2);
  112. assert(loginResult);
  113. const select = {
  114. tenders: [{tid: 2283}, {tid: 2281}],
  115. type: 'final',
  116. };
  117. const define = {
  118. enable: true,
  119. setting: JSON.stringify({
  120. title: '请选择汇总的标段',
  121. type: 'final',
  122. })
  123. };
  124. const data = {};
  125. data.mem_gather_stage_pay = yield ctx.service.rptGatherMemory.getGatherStagePay([], define, select);
  126. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_gather_stage_pay, "", "\t"), path.join(savePath, 'mem_gather_stage_pay.json'));
  127. reportDataAnalysis.analysisObj.gatherSelectConverse.fun(ctx, data, [], {table: ['mem_gather_stage_pay']}, {
  128. tplDefine: {gather_select: define}, cDefine: {gather_select: select}});
  129. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_gather_stage_pay, "", "\t"), path.join(savePath, 'mem_gather_stage_pay_converse.json'));
  130. });
  131. // 汇总签约清单
  132. it('test getGatherDealBills', function* () {
  133. const ctx = app.mockContext();
  134. const testSetting = testSetting3;
  135. ctx.session = {};
  136. const loginResult = yield ctx.service.projectAccount.accountLogin(testSetting.postData, 2);
  137. assert(loginResult);
  138. const data = {};
  139. data.mem_gather_deal_bills = yield ctx.service.rptGatherMemory.getGatherDealBills([], testSetting.define, testSetting.select);
  140. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_gather_deal_bills, "", "\t"), path.join(savePath, 'mem_gather_deal_bills.json'));
  141. });
  142. it('test getStageImTzData && getStageImTzBillsData', function* () {
  143. const ctx = app.mockContext();
  144. const testSetting = testSetting4;
  145. ctx.session = {};
  146. const loginResult = yield ctx.service.projectAccount.accountLogin(testSetting.postData, 2);
  147. assert(loginResult);
  148. const data = {};
  149. const stage = yield ctx.service.stage.getDataByCondition({tid: testSetting.tenderId, order: testSetting.sorder});
  150. data.mem_stage_im_tz = yield ctx.service.reportMemory.getStageImTzData(stage.tid, stage.id, [], false);
  151. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_im_tz, "", "\t"), path.join(savePath, 'mem_stage_im_tz.json'));
  152. console.log(ctx.helper._.map(data.mem_stage_im_tz, 'calc_memo'));
  153. data.mem_stage_im_tz_bills = yield ctx.service.reportMemory.getStageImTzBillsData(stage.tid, stage.id, [], false);
  154. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_im_tz_bills, "", "\t"), path.join(savePath, 'mem_stage_im_tz_bills.json'));
  155. });
  156. it('test getStageImZlData', function* () {
  157. const ctx = app.mockContext();
  158. const testSetting = testSetting5;
  159. ctx.session = {};
  160. const loginResult = yield ctx.service.projectAccount.accountLogin(testSetting.postData, 2);
  161. assert(loginResult);
  162. const data = {};
  163. const stage = yield ctx.service.stage.getDataByCondition({tid: testSetting.tenderId, order: testSetting.sorder});
  164. data.mem_stage_im_zl = yield ctx.service.reportMemory.getStageImZlData(stage.tid, stage.id, []);
  165. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_im_zl, "", "\t"), path.join(savePath, 'mem_stage_im_zl.json'));
  166. console.log(ctx.helper._.map(data.mem_stage_im_zl, 'calc_memo'));
  167. });
  168. });