|
@@ -494,39 +494,121 @@ describe('test/app/service/report_memory.test.js', () => {
|
|
|
// ctx.helper.saveBufferFile(JSON.stringify(x, "", "\t"), ctx.app.baseDir + '/mem_stage_pos.json');
|
|
|
});
|
|
|
it('test sortPos/unionPos', function* () {
|
|
|
- const ctx = app.mockContext(mockData);
|
|
|
+ const ctx = app.mockContext();
|
|
|
+ const postData = {
|
|
|
+ account: 'zengpeiwen',
|
|
|
+ project: 'P1201',
|
|
|
+ project_password: '123456',
|
|
|
+ };
|
|
|
+ ctx.session = {};
|
|
|
+ const loginResult = yield ctx.service.projectAccount.accountLogin(postData, 2);
|
|
|
|
|
|
// test12 - 第6期
|
|
|
- const stage = yield ctx.service.stage.getDataByCondition({tid: 12, order: 6});
|
|
|
const params = {
|
|
|
- tender_id: stage.tid,
|
|
|
- stage_id: stage.id,
|
|
|
+ tender_id: 2546,
|
|
|
};
|
|
|
const filters = ['mem_stage_bills', 'tender_info', 'mem_stage_pos'];
|
|
|
const data = yield ctx.service.report.getReportData(params, filters, {
|
|
|
mem_stage_bills: [
|
|
|
- 'id', 'tender_id', 'ledger_id', 'ledger_pid', 'level', 'order', 'full_path', 'is_leaf',
|
|
|
- 'code', 'b_code', 'name', 'unit', 'unit_price',
|
|
|
- 'deal_qty', 'deal_tp',
|
|
|
- 'sgfh_qty', 'sgfh_tp', 'sjcl_qty', 'sjcl_tp', 'qtcl_qty', 'qtcl_tp', 'quantity', 'total_price',
|
|
|
- 'dgn_qty1', 'dgn_qty2',
|
|
|
- 'drawing_code', 'memo', 'node_type', 'is_tp',
|
|
|
- 'contract_qty', 'contract_tp', 'qc_qty', 'qc_tp', 'gather_qty', 'gather_tp', 'postil',
|
|
|
- 'pre_contract_qty', 'pre_contract_tp', 'pre_qc_qty', 'pre_qc_tp', 'pre_gather_qty', 'pre_gather_tp',
|
|
|
- 'end_contract_qty', 'end_contract_tp', 'end_qc_qty', 'end_qc_tp', 'end_gather_qty', 'end_gather_tp',
|
|
|
- 'final_tp', 'final_ratio',
|
|
|
- 'qc_bgl_code',
|
|
|
- 'chapter',
|
|
|
+ 'id'
|
|
|
],
|
|
|
- mem_stage_pos: [],
|
|
|
+ mem_stage_pos: ['name'],
|
|
|
});
|
|
|
// sortPos
|
|
|
- // reportDataAnalysis.analysisObj.sortPos.fun(ctx, data, [], {bills: 'mem_stage_bills', pos: 'mem_stage_pos'});
|
|
|
- // yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_bills, "", "\t"), path.join(savePath, 'mem_stage_bills.json'));
|
|
|
- // yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_pos, "", "\t"), path.join(savePath, 'mem_stage_pos.json'));
|
|
|
+ reportDataAnalysis.analysisObj.sortPos.fun(ctx, data, [], {bills: 'mem_stage_bills', pos: 'mem_stage_pos'});
|
|
|
+ yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_bills, "", "\t"), path.join(savePath, 'mem_stage_bills.json'));
|
|
|
+ yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_pos, "", "\t"), path.join(savePath, 'mem_stage_pos.json'));
|
|
|
|
|
|
// unionPos
|
|
|
- reportDataAnalysis.analysisObj.unionPos.fun(ctx, data, [], {bills: 'mem_stage_bills', pos: 'mem_stage_pos'});
|
|
|
- yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_bills, "", "\t"), path.join(savePath, 'mem_stage_bills.json'));
|
|
|
+ // reportDataAnalysis.analysisObj.unionPos.fun(ctx, data, [], {bills: 'mem_stage_bills', pos: 'mem_stage_pos'});
|
|
|
+ // yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_bills, "", "\t"), path.join(savePath, 'mem_stage_bills.json'));
|
|
|
+ });
|
|
|
+ it('test splitXmjCode', function* () {
|
|
|
+ const ctx = app.mockContext(mockData);
|
|
|
+
|
|
|
+ // test12 - 第6期
|
|
|
+ const testData11 = {
|
|
|
+ bills: [
|
|
|
+ { code: '1', level: 1 },
|
|
|
+ { code: '1-1', level: 2 },
|
|
|
+ { code: '1-1-1', level: 3 },
|
|
|
+ { code: '1-1-1-1', level: 4 },
|
|
|
+ { code: '1-1-1-1-1', level: 5 },
|
|
|
+ { code: '1-1-1-1-1-1', level: 6 },
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ reportDataAnalysis.analysisObj.splitXmjCode.fun(ctx, testData11, [], {table: 'bills', type: '11', code: 'code', targetField: ['xiang', 'mu', 'jie', 'ximu']});
|
|
|
+ assert(testData11.bills[1].xiang === '一' );
|
|
|
+ assert(testData11.bills[2].mu ==='1');
|
|
|
+ assert(testData11.bills[3].jie === '1');
|
|
|
+ assert(testData11.bills[4].ximu === '1');
|
|
|
+ assert(testData11.bills[5].ximu === '1-1');
|
|
|
+
|
|
|
+ reportDataAnalysis.analysisObj.splitXmjCode.fun(ctx, testData11, [], {table: 'bills', code: 'code', targetField: ['xiang', 'mu', 'jie', 'ximu']});
|
|
|
+ assert(testData11.bills[1].xiang === '1-1' );
|
|
|
+ assert(testData11.bills[2].mu === '1-1-1');
|
|
|
+ assert(testData11.bills[3].jie === '1-1-1-1');
|
|
|
+ assert(testData11.bills[4].ximu === '1-1-1-1-1');
|
|
|
+ assert(testData11.bills[5].ximu === '1-1-1-1-1-1');
|
|
|
+
|
|
|
+ const testData18 = {
|
|
|
+ bills: [
|
|
|
+ { code: '1', level: 1, ledger_id: 1, ledger_pid: -1, full_path: '1' }, // 0
|
|
|
+ { code: '101', level: 2, ledger_id: 2, ledger_pid: 1, full_path: '1-2' },
|
|
|
+ { code: '10101', level: 3, ledger_id: 3, ledger_pid: 2, full_path: '1-2-3' },
|
|
|
+ { code: '1010101', level: 4, ledger_id: 4, ledger_pid: 3, full_path: '1-2-3-4' },
|
|
|
+ { code: '1010103', level: 4, ledger_id: 5, ledger_pid: 3, full_path: '1-2-3-5' },
|
|
|
+ { code: '101010301', level: 5, ledger_id: 6, ledger_pid: 5, full_path: '1-2-3-5-6' }, // 5
|
|
|
+ { code: '102', level: 2, ledger_id: 7, ledger_pid: 1, full_path: '1-7' },
|
|
|
+ { code: 'LJ05', level: 3, ledger_id: 8, ledger_pid: 7, full_path: '1-7-8' },
|
|
|
+ { code: 'LJ0502', level: 4, ledger_id: 9, ledger_pid: 8, full_path: '1-7-8-9' },
|
|
|
+ { code: 'LJ050204', level: 5, ledger_id: 10, ledger_pid: 9, full_path: '1-7-8-9-10' },
|
|
|
+ { code: 'GDLJ05020401', level: 6, ledger_id: 11, ledger_pid: 10, full_path: '1-7-8-9-10-11' }, // 10
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ reportDataAnalysis.analysisObj.splitXmjCode.fun(ctx, testData18, [], {table: 'bills', type:'18', code: 'code', targetField: ['xiang', 'mu', 'jie', 'ximu']});
|
|
|
+ assert(testData18.bills[1].xiang === '01');
|
|
|
+ assert(testData18.bills[2].mu === '01');
|
|
|
+ assert(testData18.bills[3].jie === '01');
|
|
|
+ assert(testData18.bills[4].jie === '03');
|
|
|
+ assert(testData18.bills[5].ximu === '01');
|
|
|
+ assert(testData18.bills[6].xiang === '02');
|
|
|
+ assert(testData18.bills[7].mu === 'LJ05');
|
|
|
+ assert(testData18.bills[8].jie === 'LJ0502');
|
|
|
+ assert(testData18.bills[9].ximu === 'LJ050204');
|
|
|
+ assert(testData18.bills[10].ximu === 'LJ05020401');
|
|
|
+ reportDataAnalysis.analysisObj.splitXmjCode.fun(ctx, testData18, [], {table: 'bills', type:'18-1', code: 'code', targetField: ['xiang', 'mu', 'jie', 'ximu']});
|
|
|
+ assert(testData18.bills[1].xiang === '01');
|
|
|
+ assert(testData18.bills[2].mu === '01');
|
|
|
+ assert(testData18.bills[3].jie === '01');
|
|
|
+ assert(testData18.bills[4].jie === '03');
|
|
|
+ assert(testData18.bills[5].ximu === '01');
|
|
|
+ assert(testData18.bills[6].xiang === '02');
|
|
|
+ assert(testData18.bills[7].mu === 'LJ05');
|
|
|
+ assert(testData18.bills[8].jie === '02');
|
|
|
+ assert(testData18.bills[9].ximu === '04');
|
|
|
+ assert(testData18.bills[10].ximu === '0401');
|
|
|
+ reportDataAnalysis.analysisObj.splitXmjCode.fun(ctx, testData18, [], {table: 'bills', type:'18-0-1', code: 'code', targetField: ['xiang', 'mu', 'jie', 'ximu']});
|
|
|
+ assert(testData18.bills[1].xiang === '01');
|
|
|
+ assert(testData18.bills[2].mu === '01');
|
|
|
+ assert(testData18.bills[3].jie === '01');
|
|
|
+ assert(testData18.bills[4].jie === '03');
|
|
|
+ assert(testData18.bills[5].ximu === '01');
|
|
|
+ assert(testData18.bills[6].xiang === '02');
|
|
|
+ assert(testData18.bills[7].mu === 'LJ05');
|
|
|
+ assert(testData18.bills[8].jie === 'LJ0502');
|
|
|
+ assert(testData18.bills[9].ximu === 'LJ050204');
|
|
|
+ assert(testData18.bills[10].ximu === 'GDLJ05020401');
|
|
|
+ reportDataAnalysis.analysisObj.splitXmjCode.fun(ctx, testData18, [], {table: 'bills', type:'18-1-1', code: 'code', targetField: ['xiang', 'mu', 'jie', 'ximu']});
|
|
|
+ assert(testData18.bills[1].xiang === '01');
|
|
|
+ assert(testData18.bills[2].mu === '01');
|
|
|
+ assert(testData18.bills[3].jie === '01');
|
|
|
+ assert(testData18.bills[4].jie === '03');
|
|
|
+ assert(testData18.bills[5].ximu === '01');
|
|
|
+ assert(testData18.bills[6].xiang === '02');
|
|
|
+ assert(testData18.bills[7].mu === 'LJ05');
|
|
|
+ assert(testData18.bills[8].jie === '02');
|
|
|
+ assert(testData18.bills[9].ximu === '04');
|
|
|
+ assert(testData18.bills[10].ximu === 'GD0401');
|
|
|
});
|
|
|
});
|