| 
					
				 | 
			
			
				@@ -9,6 +9,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const excel = require('node-xlsx'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const _ = require('lodash'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const mockData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /*const testNodeData = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { ledger_id: 1, ledger_pid: -1, order: 1, level: 1, full_path: '1', code: '1', is_leaf: false }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -46,8 +47,6 @@ const testNodeData = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { id: 16, pid: 4, order: 1, level: 3, full_path: '1.4.16', code: '1-3-1', is_leaf: true }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { id: 5, pid: 1, order: 4, level: 2, full_path: '1.5', code: '1-4', is_leaf: true }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const testTenderId = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const testUserId = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const { app, assert } = require('egg-mock/bootstrap'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const findById = function(nodes, Id) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -59,22 +58,55 @@ const findById = function(nodes, Id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 准备测试数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    it('clear history test data', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.db.delete(ctx.service.ledger.tableName, { tender_id: testTenderId }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const posResult = yield ctx.service.pos.db.delete(ctx.service.ledger.tableName, { tender_id: testTenderId }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 准备测试数据,新增测试标段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    before(function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 模拟登录session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const postData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            account: '734406061@qq.com', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            project: 'T201711273363', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            project_password: 'mai654321', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.session = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const loginResult = yield ctx.service.projectAccount.accountLogin(postData, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assert(loginResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mockData.session = ctx.session; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 模拟打开标段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mockData.tender = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const addData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            name: 'test_ledger', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            category: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const tenderData = yield ctx.service.tender.getDataByCondition({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            user_id: ctx.session.sessionUser.accountId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            name: addData.name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (tenderData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mockData.tender.data = tenderData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const addResult = yield ctx.service.tender.add(addData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            assert(addResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mockData.tender.data = yield ctx.service.tender.getDataByCondition({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                user_id: ctx.session.sessionUser.accountId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                name: addData.name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mockData.tender.id = mockData.tender.data.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mockData.tender.info = yield ctx.service.tenderInfo.getTenderInfo(mockData.tender.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.tender = mockData.tender; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 清理旧测试数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let result = yield ctx.service.ledger.db.delete(ctx.service.ledger.tableName, { tender_id: ctx.tender.id }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const posResult = yield ctx.service.pos.db.delete(ctx.service.ledger.tableName, { tender_id: ctx.tender.id }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.affectedRows >= 0 && posResult.affectedRows >= 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    it('add test data(test add)', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 初始化测试基础数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (const data of testNodeData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data.tender_id = testTenderId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data.tender_id = ctx.tender.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //const result = yield ctx.service.ledger.db.insert(ctx.service.ledger.tableName, testNodeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //assert(result.affectedRows === testNodeData.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.add(testNodeData, testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        result = yield ctx.service.ledger.add(testNodeData, ctx.tender.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.service.ledger.cache.set('tender_node_maxId:' + testTenderId, 16, 'EX', ctx.app.config.cacheTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.service.ledger.cache.set('tender_node_maxId:' + ctx.tender.id, 16, 'EX', ctx.app.config.cacheTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /* 期望运行结果: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         1 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,29 +129,29 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 测试R类方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getDataByTenderId', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询前4层节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result1 = yield ctx.service.ledger.getDataByTenderId(testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result1 = yield ctx.service.ledger.getDataByTenderId(ctx.tender.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1.length === 12); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询前3层节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result2 = yield ctx.service.ledger.getDataByTenderId(testTenderId, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result2 = yield ctx.service.ledger.getDataByTenderId(ctx.tender.id, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result2.length === 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getDataByNodeId', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询节点202-1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const node = yield ctx.service.ledger.getDataByNodeId(testTenderId, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node = yield ctx.service.ledger.getDataByNodeId(ctx.tender.id, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.code === '202-1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.full_path === '1.2.6.7'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getDataByNodeIds', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询节点202-1-a与201-1-b 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.getDataByNodeIds(testTenderId, [10, 9]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = yield ctx.service.ledger.getDataByNodeIds(ctx.tender.id, [10, 9]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.length === 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let node = findById(result, 10); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,33 +161,33 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.full_path === '1.2.6.7.9'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getDataByIds', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询节点202-1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const node = yield ctx.service.ledger.getDataByNodeId(testTenderId, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node = yield ctx.service.ledger.getDataByNodeId(ctx.tender.id, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const result = yield ctx.service.ledger.getDataByIds([node.id]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.length === 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.code === result[0].code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.full_path === result[0].full_path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getLastChildData', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询节点202-1最后一个子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.getLastChildData(testTenderId, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = yield ctx.service.ledger.getLastChildData(ctx.tender.id, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.ledger_id === 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.full_path === '1.2.6.7.10'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getDataByParentAndOrder', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询节点202-1 第1子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result1 = yield ctx.service.ledger.getDataByParentAndOrder(testTenderId, 8, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result1 = yield ctx.service.ledger.getDataByParentAndOrder(ctx.tender.id, 8, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1.ledger_id === 11); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1.full_path === '1.2.6.8.11'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询节点1-1 第2/3子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result2 = yield ctx.service.ledger.getDataByParentAndOrder(testTenderId, 2, [2, 3]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result2 = yield ctx.service.ledger.getDataByParentAndOrder(ctx.tender.id, 2, [2, 3]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result2.length === 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let node = findById(result2, 13); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -167,10 +199,10 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.code === '1-1-3'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getChildrenByParentId', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询节点202-1最后一个子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.getChildrenByParentId(testTenderId, 8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = yield ctx.service.ledger.getChildrenByParentId(ctx.tender.id, 8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.length === 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let node = findById(result, 11); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -182,10 +214,10 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.full_path === '1.2.6.8.12'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getNextsData', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询节点1-1-1的全部子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.getNextsData(testTenderId, 2, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = yield ctx.service.ledger.getNextsData(ctx.tender.id, 2, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.length === 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let node = findById(result, 13); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -197,10 +229,10 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.code === '1-1-3'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getDataByFullPath', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询节点202-2及其子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.getDataByFullPath(testTenderId, '1.2.6.8%'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = yield ctx.service.ledger.getDataByFullPath(ctx.tender.id, '1.2.6.8%'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.length === 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let node = findById(result, 8); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -216,26 +248,26 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.full_path === '1.2.6.8.12'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询1-1-1的子孙节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result1 = yield ctx.service.ledger.getDataByFullPath(testTenderId, '1.2.6.%'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result1 = yield ctx.service.ledger.getDataByFullPath(ctx.tender.id, '1.2.6.%'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1.length === 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test getFullLevelDataByFullPath', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 查询202-2-c及其全部父节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result1 = yield ctx.service.ledger.getFullLevelDataByFullPath(testTenderId, '1.2.6.8.11'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result1 = yield ctx.service.ledger.getFullLevelDataByFullPath(ctx.tender.id, '1.2.6.8.11'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1.length === 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result2 = yield ctx.service.ledger.getFullLevelDataByFullPath(testTenderId, ['1.2.6.8.11', '1.2.6.7.9']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result2 = yield ctx.service.ledger.getFullLevelDataByFullPath(ctx.tender.id, ['1.2.6.8.11', '1.2.6.7.9']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result2.length === 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 测试CUD类方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 基本树结构操作 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test addNode', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中1-1-1,插入节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.addNode(testTenderId, 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.addNode(ctx.tender.id, 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.create.length === 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.update.length === 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.create[0].is_leaf === 1); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -261,9 +293,9 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test deleteNode', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中202-1,删除节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.deleteNode(testTenderId, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.deleteNode(ctx.tender.id, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.delete.length === 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.update.length === 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -284,9 +316,9 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test upMoveNode', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中202-2-e上移 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.upMoveNode(testTenderId, 12); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.upMoveNode(ctx.tender.id, 12); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resultData.update.sort(function(x, y) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return x.order - y.order; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -310,9 +342,9 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test downMoveNode', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中202-2-e下移 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.downMoveNode(testTenderId, 12); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.downMoveNode(ctx.tender.id, 12); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resultData.update.sort(function(x, y) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return x.order - y.order; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -336,9 +368,9 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test upLevelNode', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中 1-1-2 升级 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.upLevelNode(testTenderId, 13); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.upLevelNode(ctx.tender.id, 13); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.update.length === 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -377,9 +409,9 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test downLevelNode', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中1-3 降级 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.downLevelNode(testTenderId, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.downLevelNode(ctx.tender.id, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 1-2/1-3/1-3-1/1-4修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.update.length === 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -414,9 +446,9 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 复制整块 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test pasteBlock', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中1-2-1, 粘贴1-1-1和new 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.pasteBlock(testTenderId, 15, [6, 17]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.pasteBlock(ctx.tender.id, 15, [6, 17]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const ledger = resultData.ledger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(ledger.create.length === 5); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -456,13 +488,13 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 增量计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test updateInfo', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 修改new(id=17)的code 为 1-1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const node = yield ctx.service.ledger.getDataByNodeId(testTenderId, 17); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node = yield ctx.service.ledger.getDataByNodeId(ctx.tender.id, 17); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.updateInfo(testTenderId, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.updateInfo(ctx.tender.id, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             id: node.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             tender_id: node.tender_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ledger_id: node.ledger_id, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -492,15 +524,15 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test updateInfos', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 修改1-1-1(id=18)的code 为 1-2-2、修改new(id=22)的code 为 1-2-3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const node1 = yield ctx.service.ledger.getDataByNodeId(testTenderId, 18); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node1 = yield ctx.service.ledger.getDataByNodeId(ctx.tender.id, 18); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const node2 = yield ctx.service.ledger.getDataByNodeId(testTenderId, 22); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node2 = yield ctx.service.ledger.getDataByNodeId(ctx.tender.id, 22); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.updateInfos(testTenderId, [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.updateInfos(ctx.tender.id, [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             id: node1.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             tender_id: node1.tender_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ledger_id: node1.ledger_id, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -537,18 +569,18 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test updateCalc - update 1', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 计算需使用清单精度、小数位数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender = {id: testTenderId}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender.data = yield ctx.service.tender.getTender(testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender.info = yield ctx.service.tenderInfo.getTenderInfo(testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.tender = {id: ctx.tender.id}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.tender.data = yield ctx.service.tender.getTender(ctx.tender.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.tender.info = yield ctx.service.tenderInfo.getTenderInfo(ctx.tender.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 修改202-2-e(1-1-1下)(id=12)的quantity为2.00000001, unit_price位3.0000005 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const qty = 2.00000001, fQty = ctx.helper.round(qty, ctx.tender.info.precision.other.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const up = 3.0000005, fUp = ctx.helper.round(up, ctx.tender.info.decimal.up); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const tp = 6.00000103, fTp = ctx.helper.times(fQty, fUp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const node1 = yield ctx.service.ledger.getDataByNodeId(testTenderId, 12); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node1 = yield ctx.service.ledger.getDataByNodeId(ctx.tender.id, 12); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.updateCalc(testTenderId, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.updateCalc(ctx.tender.id, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             id: node1.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             tender_id: node1.tender_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ledger_id: node1.ledger_id, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -583,11 +615,11 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test updateCalc - update N', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 计算需使用清单精度、小数位数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender = {id: testTenderId}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender.data = yield ctx.service.tender.getTender(testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender.info = yield ctx.service.tenderInfo.getTenderInfo(testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.tender = {id: ctx.tender.id}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.tender.data = yield ctx.service.tender.getTender(ctx.tender.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.tender.info = yield ctx.service.tenderInfo.getTenderInfo(ctx.tender.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 修改202-2-c(1-1-1下)(id=11)的quantity为4.00000025, unit_price为6.0000083 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //    202-2-c(1-2-2下)(id=20)的quantity为2.0000001, unit_price为5.000065 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //    202-2-e(1-2-2下)(id=21)的quantity为8.0000579, unit_price为4.0000086 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -606,14 +638,14 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             fTp.push(ctx.helper.times(fQty[i], fUp[i])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const node1 = yield ctx.service.ledger.getDataByNodeId(testTenderId, 11); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node1 = yield ctx.service.ledger.getDataByNodeId(ctx.tender.id, 11); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const node2 = yield ctx.service.ledger.getDataByNodeId(testTenderId, 20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node2 = yield ctx.service.ledger.getDataByNodeId(ctx.tender.id, 20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const node3 = yield ctx.service.ledger.getDataByNodeId(testTenderId, 21); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node3 = yield ctx.service.ledger.getDataByNodeId(ctx.tender.id, 21); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.updateCalc(testTenderId, [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.updateCalc(ctx.tender.id, [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             id: node1.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             tender_id: node1.tender_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ledger_id: node1.ledger_id, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -671,9 +703,9 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 复制整块+实时计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test pasteBlock - with Increment Calculate', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中1-1-4, 粘贴202-2(1-1-1下) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.pasteBlock(testTenderId, 17, [8]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.pasteBlock(ctx.tender.id, 17, [8]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.ledger.create.length === 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.ledger.update.length === 0); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -704,9 +736,9 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 树结构基本操作+实时计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test downLevel - with Increment Calculate', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中202-2(1-1-4后兄弟节点) 降级 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.downLevelNode(testTenderId, 23); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.downLevelNode(ctx.tender.id, 23); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.update.length === 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /* 期望运行结果: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -734,8 +766,8 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test upLevel - with Increment Calculate', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        yield ctx.service.ledger.pasteBlock(testTenderId, 23, [23]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        yield ctx.service.ledger.pasteBlock(ctx.tender.id, 23, [23]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /* 期望运行结果: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ├── 1-1 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -764,7 +796,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中202-2-c(1-1-4下)(id=23)升级 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.upLevelNode(testTenderId, 23); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.upLevelNode(ctx.tender.id, 23); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.update.length === 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /* 期望运行结果: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -795,10 +827,10 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test deleteNode - with Increment Calculate', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中202-2-c(1-2-2下)(id=20),删除节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const resultData = yield ctx.service.ledger.deleteNode(testTenderId, 20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const resultData = yield ctx.service.ledger.deleteNode(ctx.tender.id, 20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.delete.length === 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(resultData.update.length === 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -831,10 +863,10 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 从标准库添加数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 检查添加,直接添加为选中节点子节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test addStdNode', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中1-1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const selectData = yield ctx.service.ledger.getDataByCondition({ tender_id: testTenderId, code: '1-1-4' }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const selectData = yield ctx.service.ledger.getDataByCondition({ tender_id: ctx.tender.id, code: '1-1-4' }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(selectData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 从标准库中添加1-1-5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const condition1 = { list_id: 1, code: '1-1-5' }; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -843,7 +875,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const stdData1 = yield ctx.service.stdChapter.getDataByDataId(1, libData1.chapter_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(stdData1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(stdData1.id === libData1.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result1 = yield ctx.service.ledger.addStdNode(testTenderId, selectData.ledger_id, stdData1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result1 = yield ctx.service.ledger.addStdNode(ctx.tender.id, selectData.ledger_id, stdData1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1.create.length === 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1.update.length === 1); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -877,7 +909,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         └── 1-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test addStdNodeWithParent', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 从标准库添加1-4-2-1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const condition1 = { list_id: 1, code: '1-4-2-1'}; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -886,7 +918,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const stdData1 = yield ctx.service.stdChapter.getDataByDataId(1, libData1.chapter_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(stdData1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(stdData1.id === libData1.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result1 = yield ctx.service.ledger.addStdNodeWithParent(testTenderId, stdData1, ctx.service.stdChapter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result1 = yield ctx.service.ledger.addStdNodeWithParent(ctx.tender.id, stdData1, ctx.service.stdChapter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1.create.length === 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(!result1.update || result1.update.length === 0); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -898,7 +930,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const stdData2 = yield ctx.service.stdChapter.getDataByDataId(1, libData2.chapter_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(stdData2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(stdData2.id === libData2.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result2 = yield ctx.service.ledger.addStdNodeWithParent(testTenderId, stdData2, ctx.service.stdChapter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result2 = yield ctx.service.ledger.addStdNodeWithParent(ctx.tender.id, stdData2, ctx.service.stdChapter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result2.create.length === 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result2.update.length === 1); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -911,7 +943,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const stdData3 = yield ctx.service.stdChapter.getDataByDataId(1, libData3.chapter_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(stdData3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(stdData3.id === libData3.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result3 = yield ctx.service.ledger.addStdNodeWithParent(testTenderId, stdData3, ctx.service.stdChapter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result3 = yield ctx.service.ledger.addStdNodeWithParent(ctx.tender.id, stdData3, ctx.service.stdChapter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result3.create.length === 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result3.create[0].order === 1); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -952,17 +984,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 批量插入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test batchInsertChild', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 计算需使用清单精度、小数位数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender = {id: testTenderId}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender.data = yield ctx.service.tender.getTender(testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender.info = yield ctx.service.tenderInfo.getTenderInfo(testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // pos需要记录createUserId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.session = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sessionUser: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                accountId: testUserId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const batchData = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -975,7 +997,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中1-1-3(id=14) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.batchInsertChild(testTenderId, 14, batchData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = yield ctx.service.ledger.batchInsertChild(ctx.tender.id, 14, batchData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.ledger.create.length === 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let node = _.find(result.ledger.create, {name: 'A1'}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(node.quantity === 3); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1025,17 +1047,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 批量插入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test batchInsertNext', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 计算需使用清单精度、小数位数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender = {id: testTenderId}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender.data = yield ctx.service.tender.getTender(testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.tender.info = yield ctx.service.tenderInfo.getTenderInfo(testTenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // pos需要记录createUserId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ctx.session = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sessionUser: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                accountId: testUserId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const batchData = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1048,7 +1060,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 选中1-1-3(id=14) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.batchInsertNext(testTenderId, 14, batchData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = yield ctx.service.ledger.batchInsertNext(ctx.tender.id, 14, batchData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.ledger.create.length === 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let node = _.find(result.ledger.create, {name: 'A3'}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1106,25 +1118,25 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 测试统计类方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test addUpChildren', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 统计202-2(id=23)前两个子节点的金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result1 = yield ctx.service.ledger.addUpChildren(testTenderId, 23, 2, '<='); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result1 = yield ctx.service.ledger.addUpChildren(ctx.tender.id, 23, 2, '<='); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result1 && result1 === 30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 数据库不再存储父项金额,以下两个查询不能获得实际金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 统计202-2(id=23)后两个子节点的金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //const result2 = yield ctx.service.ledger.addUpChildren(testTenderId, 23, 2, '>='); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //const result2 = yield ctx.service.ledger.addUpChildren(ctx.tender.id, 23, 2, '>='); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //assert(result2 && result2.toFixed(8) == 36.00003676); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 统计202-2(id=23)全部子节点的金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //const result3 = yield ctx.service.ledger.addUpChildren(testTenderId, 23, 0, '>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //const result3 = yield ctx.service.ledger.addUpChildren(ctx.tender.id, 23, 0, '>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //assert(result3 && result3.toFixed(8) == 60.00007146); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 测试搜索类方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test search', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.search(testTenderId, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = yield ctx.service.ledger.search(ctx.tender.id, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             value: app.mysql.escape('%1-3%'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             operate: 'Like', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             fields: ['code', 'name'], 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1132,8 +1144,8 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert(result.length === 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     it('test searchRange', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = yield ctx.service.ledger.searchRange(testTenderId, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = yield ctx.service.ledger.searchRange(ctx.tender.id, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             value: app.mysql.escape('%1-3%'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             operate: 'Like', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             fields: ['code', 'name'], 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1148,7 +1160,7 @@ describe('test/app/service/ledger.test.js', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // it('test ImportExcelData', function* () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     const ctx = app.mockContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     const ctx = app.mockContext(mockData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //     const file = ctx.app.baseDir + '/test/app/test_file/ledger-upload-test.xls'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //     const sheets = excel.parse(file); 
			 |