report_memory_temp.test.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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 testSetting6 = {
  89. postData: {
  90. account: 'zengpeiwen',
  91. project: 'P1201',
  92. project_password: '123456',
  93. },
  94. tenderId: 2504,
  95. sorder: 1,
  96. };
  97. const reportDataAnalysis = require('../../../app/lib/rpt_data_analysis');
  98. describe('test/app/service/report_memory.test.js', () => {
  99. // 准备测试数据
  100. before(function* () {
  101. const ctx = app.mockContext();
  102. savePath = path.join(ctx.app.baseDir,'report_temp');
  103. // const postData = {
  104. // account: '734406061@qq.com',
  105. // project: 'T201711273363',
  106. // project_password: 'mai654321',
  107. // };
  108. ctx.session = {};
  109. mockData.session = ctx.session;
  110. });
  111. // 汇总合同支付
  112. it('test getGatherStagePay', function* () {
  113. const ctx = app.mockContext();
  114. const postData = {
  115. account: 'fuqingqing',
  116. project: 'P0505',
  117. project_password: '123456',
  118. };
  119. ctx.session = {};
  120. const loginResult = yield ctx.service.projectAccount.accountLogin(postData, 2);
  121. assert(loginResult);
  122. const select = {
  123. tenders: [{tid: 2283}, {tid: 2281}],
  124. type: 'final',
  125. };
  126. const define = {
  127. enable: true,
  128. setting: JSON.stringify({
  129. title: '请选择汇总的标段',
  130. type: 'final',
  131. })
  132. };
  133. const data = {};
  134. data.mem_gather_stage_pay = yield ctx.service.rptGatherMemory.getGatherStagePay([], define, select);
  135. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_gather_stage_pay, "", "\t"), path.join(savePath, 'mem_gather_stage_pay.json'));
  136. reportDataAnalysis.analysisObj.gatherSelectConverse.fun(ctx, data, [], {table: ['mem_gather_stage_pay']}, {
  137. tplDefine: {gather_select: define}, cDefine: {gather_select: select}});
  138. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_gather_stage_pay, "", "\t"), path.join(savePath, 'mem_gather_stage_pay_converse.json'));
  139. });
  140. // 汇总签约清单
  141. it('test getGatherDealBills', function* () {
  142. const ctx = app.mockContext();
  143. const testSetting = testSetting3;
  144. ctx.session = {};
  145. const loginResult = yield ctx.service.projectAccount.accountLogin(testSetting.postData, 2);
  146. assert(loginResult);
  147. const data = {};
  148. data.mem_gather_deal_bills = yield ctx.service.rptGatherMemory.getGatherDealBills([], testSetting.define, testSetting.select);
  149. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_gather_deal_bills, "", "\t"), path.join(savePath, 'mem_gather_deal_bills.json'));
  150. });
  151. it('test getStageImTzData && getStageImTzBillsData', function* () {
  152. const ctx = app.mockContext();
  153. const testSetting = testSetting6;
  154. ctx.session = {};
  155. const loginResult = yield ctx.service.projectAccount.accountLogin(testSetting.postData, 2);
  156. assert(loginResult);
  157. const data = {};
  158. const stage = yield ctx.service.stage.getDataByCondition({tid: testSetting.tenderId, order: testSetting.sorder});
  159. data.mem_stage_im_tz = yield ctx.service.reportMemory.getStageImTzData(stage.tid, stage.id, [], false);
  160. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_im_tz, "", "\t"), path.join(savePath, 'mem_stage_im_tz.json'));
  161. data.mem_stage_im_tz_bills = yield ctx.service.reportMemory.getStageImTzBillsData(stage.tid, stage.id, [], false);
  162. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_im_tz_bills, "", "\t"), path.join(savePath, 'mem_stage_im_tz_bills.json'));
  163. });
  164. it('test getStageImZlData', function* () {
  165. const ctx = app.mockContext();
  166. const testSetting = testSetting5;
  167. ctx.session = {};
  168. const loginResult = yield ctx.service.projectAccount.accountLogin(testSetting.postData, 2);
  169. assert(loginResult);
  170. const data = {};
  171. const stage = yield ctx.service.stage.getDataByCondition({tid: testSetting.tenderId, order: testSetting.sorder});
  172. data.mem_stage_im_zl = yield ctx.service.reportMemory.getStageImZlData(stage.tid, stage.id, []);
  173. yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_im_zl, "", "\t"), path.join(savePath, 'mem_stage_im_zl.json'));
  174. });
  175. });