| 
					
				 | 
			
			
				@@ -42,9 +42,8 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         async getAuditor(stageId, auditorId, times = 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 'SELECT la.`aid`, pa.`name`, pa.`company`, pa.`role`, pa.`mobile`, pa.`telephone`, la.`times`, la.`order`, la.`status`, la.`opinion`, la.`begin_time`, la.`end_time` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'FROM ?? AS la, ?? AS pa ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'WHERE la.`sid` = ? and la.`aid` = ? and la.`times` = ?' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '    and la.`aid` = pa.`id`'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'FROM ?? AS la Left Join ?? AS pa On la.`aid` = pa.`id`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'WHERE la.`sid` = ? and la.`aid` = ? and la.`times` = ?'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, stageId, auditorId, times]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return await this.db.queryOne(sql, sqlParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -117,11 +116,8 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * @return {Promise<*>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         async getStatusName(stageId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'SELECT pa.`name` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'FROM ?? AS sa, ?? AS pa ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'WHERE sa.`sid` = ?' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '    and sa.`aid` = pa.`id` and sa.`status` != ? ORDER BY sa.`times` DESC, sa.`order` DESC'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sql = 'SELECT pa.`name` FROM ?? AS sa Left Join ?? AS pa On sa.`aid` = pa.`id`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  WHERE sa.`sid` = ? and sa.`status` != ? ORDER BY sa.`times` DESC, sa.`order` DESC'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, stageId, auditConst.status.uncheck]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return await this.db.queryOne(sql, sqlParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -136,9 +132,8 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         async getCurAuditor(stageId, times = 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 'SELECT la.`aid`, pa.`name`, pa.`company`, pa.`role`, pa.`mobile`, pa.`telephone`, la.`times`, la.`order`, la.`status`, la.`opinion`, la.`begin_time`, la.`end_time` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'FROM ?? AS la, ?? AS pa ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'WHERE la.`sid` = ? and la.`status` = ? and la.`times` = ?' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '    and la.`aid` = pa.`id`'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  FROM ?? AS la Left Join ?? AS pa On la.`aid` = pa.`id`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  WHERE la.`sid` = ? and la.`status` = ? and la.`times` = ?'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, stageId, auditConst.status.checking, times]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return await this.db.queryOne(sql, sqlParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -996,9 +991,11 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 'SELECT sa.`aid`, sa.`times`, sa.`order`, sa.`begin_time`, sa.`end_time`, sa.`tid`, sa.`sid`,' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '    s.`order` As `sorder`, s.`status` As `sstatus`,' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '    t.`name`, t.`project_id`, t.`type`, t.`user_id` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '  FROM ?? AS sa, ?? AS s, ?? As t ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  FROM ?? AS sa ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '    Left Join ?? AS s On sa.`sid` = s.`id` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '    Left Join ?? As t ON sa.`tid` = t.`id`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '  WHERE ((sa.`aid` = ? and sa.`status` = ?) OR (s.`user_id` = ? and sa.`status` = ? and s.`status` = ? and sa.`times` = (s.`times`-1)))' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '    and sa.`sid` = s.`id` and sa.`tid` = t.`id` ORDER BY sa.`begin_time` DESC'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  ORDER BY sa.`begin_time` DESC'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.ctx.service.stage.tableName, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1020,20 +1017,6 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * @return {Promise<*>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         async getNoticeStage(pid, uid, time) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // const sql = 'SELECT * FROM (SELECT t.`name`, t.`project_id`, t.`type`, t.`user_id`, ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '    s.`order` As `s_order`, s.`status` As `s_status`, ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '    sa.`aid`, sa.`times`, sa.`order`, sa.`end_time`, sa.`tid`, sa.`sid`, sa.`status`, ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '    pa.`name` As `su_name`, pa.role As `su_role`, pa.company As `su_company`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '  FROM (SELECT * FROM ?? WHERE `user_id` = ? OR `id` in (SELECT `tid` FROM ?? WHERE `aid` = ? GROUP BY `tid`)) As t' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '  LEFT JOIN ?? As s On t.`id` = s.`tid`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '  LEFT JOIN ?? As sa ON s.`id` = sa.`sid`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '  LEFT JOIN ?? As pa ON sa.`aid` = pa.`id`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '  WHERE sa.`end_time` > ? and t.`project_id` = ?' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '  ORDER By sa.`end_time` DESC LIMIT 1000) as new_t GROUP BY new_t.`tid`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //             '  ORDER By new_t.`end_time`'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // const sqlParam = [this.ctx.service.tender.tableName, uid, this.tableName, uid, this.ctx.service.stage.tableName, this.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     this.ctx.service.projectAccount.tableName, time, pid]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // return await this.db.query(sql, sqlParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let notice = await this.db.select('zh_notice', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 where: { pid, type: pushType.stage, uid }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 orders: [['create_time', 'desc']], 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1077,13 +1060,10 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         async getAuditGroupByList(stageId, times) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 'SELECT la.`aid`, pa.`name`, pa.`company`, pa.`role`, la.`times`, la.`sid`, la.`aid`, la.`order` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'FROM ?? AS la, ?? AS pa ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'WHERE la.`sid` = ? and la.`times` = ? and la.`aid` = pa.`id` GROUP BY la.`aid` ORDER BY la.`order`'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  FROM ?? AS la Left Join ?? AS pa On la.`aid` = pa.`id` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  WHERE la.`sid` = ? and la.`times` = ? GROUP BY la.`aid` ORDER BY la.`order`'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, stageId, times]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return await this.db.query(sql, sqlParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // const sql = 'SELECT `tid`, `sid`, `aid`, `order` FROM ?? WHERE `sid` = ? and `times` = ? GROUP BY `aid`'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // const sqlParam = [this.tableName, stageId, times]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // return await this.db.query(sql, sqlParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1096,12 +1076,8 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const result = await this.getAuditGroupByList(stageId, times); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 'SELECT pa.`id` As aid, pa.`name`, pa.`company`, pa.`role`, ? As times, ? As sid, 0 As `order`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '  FROM ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                this.ctx.service.stage.tableName + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ' As s' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '  LEFT JOIN ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                this.ctx.service.projectAccount.tableName + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ' As pa' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  FROM ' + this.ctx.service.stage.tableName + ' As s' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  LEFT JOIN ' + this.ctx.service.projectAccount.tableName + ' As pa' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '  ON s.user_id = pa.id' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '  WHERE s.id = ?'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [times, stageId, stageId]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1152,18 +1128,16 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case auditConst.status.checking: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case auditConst.status.checked: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case auditConst.status.checkNoPre: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'SELECT la.`aid`, pa.`name`, pa.`company`, pa.`role`, la.`times`, la.`sid`, la.`order` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'FROM ?? AS la, ?? AS pa ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'WHERE la.`sid` = ? and la.`status` = ? and la.`aid` = pa.`id` order by la.`times` desc, la.`order` desc'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sql = 'SELECT la.`aid`, pa.`name`, pa.`company`, pa.`role`, la.`times`, la.`sid`, la.`order` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          '  FROM ?? AS la Left Join ?? AS pa On la.`aid` = pa.`id` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          '  WHERE la.`sid` = ? and la.`status` = ? order by la.`times` desc, la.`order` desc'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, stageId, status]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     auditor = await this.db.queryOne(sql, sqlParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case auditConst.status.checkNo: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'SELECT la.`aid`, pa.`name`, pa.`company`, pa.`role`, la.`times`, la.`sid`, la.`order` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'FROM ?? AS la, ?? AS pa ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'WHERE la.`sid` = ? and la.`status` = ? and la.`times` = ? and la.`aid` = pa.`id` order by la.`times` desc, la.`order` desc'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sql = 'SELECT la.`aid`, pa.`name`, pa.`company`, pa.`role`, la.`times`, la.`sid`, la.`order` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          '  FROM ?? AS la Left Join ?? AS pa On la.`aid` = pa.`id` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          '  WHERE la.`sid` = ? and la.`status` = ? and la.`times` = ? order by la.`times` desc, la.`order` desc'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, stageId, auditConst.status.checkNo, parseInt(times) - 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     auditor = await this.db.queryOne(sql, sqlParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1201,9 +1175,11 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '    s.*,' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '    t.`name`, t.`project_id`, t.`type`, t.`user_id`,' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '    ti.`deal_info` ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '  FROM ?? AS sa, ?? AS s, ?? As t, ?? AS ti ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '  WHERE sa.`aid` = ? and sa.`status` = ?' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                '    and sa.`sid` = s.`id` and sa.`tid` = t.`id` and ti.`tid` = t.`id`'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  FROM ?? AS sa' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '    Left Join ?? AS s On sa.`sid` = s.`id`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '    Left Join ?? As t On sa.`tid` = t.`id`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '    Left Join ?? AS ti ON ti.`tid` = t.`id`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  WHERE sa.`aid` = ? and sa.`status` = ?'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.tableName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.ctx.service.stage.tableName, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1379,8 +1355,8 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         async getFinalAuditGroup(stageId, times) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 'SELECT la.`aid`, pa.`name`, pa.`company`, pa.`role`, pa.`mobile`, pa.`telephone`, pa.`sign_path`, la.`times`, la.`sid`, Max(la.`order`) as max_order ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'FROM ?? AS la, ?? AS pa ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                'WHERE la.`sid` = ? and la.`times` = ? and la.`aid` = pa.`id` GROUP BY la.`aid` ORDER BY la.`order`'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  FROM ?? AS la Left Join ?? AS pa On la.`aid` = pa.`id`' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '  WHERE la.`sid` = ? and la.`times` = ? GROUP BY la.`aid` ORDER BY la.`order`'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const sqlParam = [this.tableName, this.ctx.service.projectAccount.tableName, stageId, times]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const result = await this.db.query(sql, sqlParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (const r of result) { 
			 |