|  | @@ -255,18 +255,19 @@ module.exports = app => {
 | 
	
		
			
				|  |  |           * @param {int} hadlimit - 分页
 | 
	
		
			
				|  |  |           * @return {object} list - 列表
 | 
	
		
			
				|  |  |           */
 | 
	
		
			
				|  |  | -        async getListByStatus(tenderId, status = 0, hadlimit = 1, sortBy = '', orderBy = '') {
 | 
	
		
			
				|  |  | +        async getListByStatus(tenderId, status = 0, hadlimit = 1, sortBy = '', orderBy = '', state = 0) {
 | 
	
		
			
				|  |  |              let sql = '';
 | 
	
		
			
				|  |  |              let sqlParam = '';
 | 
	
		
			
				|  |  | +            const stateSql = state ? ' AND a.state = ' + state : '';
 | 
	
		
			
				|  |  |              if (this.ctx.tender.isTourist && status === 0) {
 | 
	
		
			
				|  |  | -                sql = 'SELECT a.* FROM ?? As a WHERE a.tid = ?';
 | 
	
		
			
				|  |  | +                sql = 'SELECT a.* FROM ?? As a WHERE a.tid = ?' + stateSql;
 | 
	
		
			
				|  |  |                  sqlParam = [this.tableName, tenderId];
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  switch (status) {
 | 
	
		
			
				|  |  |                      case 0: // 包含你的所有变更令
 | 
	
		
			
				|  |  |                          sql =
 | 
	
		
			
				|  |  |                              'SELECT a.* FROM ?? AS a WHERE a.tid = ? AND ' +
 | 
	
		
			
				|  |  | -                            '(a.uid = ? OR (a.status != ? AND a.cid IN (SELECT b.cid FROM ?? AS b WHERE b.uid = ? AND a.times = b.times GROUP BY b.cid)) OR a.status = ? )';
 | 
	
		
			
				|  |  | +                            '(a.uid = ? OR (a.status != ? AND a.cid IN (SELECT b.cid FROM ?? AS b WHERE b.uid = ? AND a.times = b.times GROUP BY b.cid)) OR a.status = ? )' + stateSql;
 | 
	
		
			
				|  |  |                          sqlParam = [
 | 
	
		
			
				|  |  |                              this.tableName,
 | 
	
		
			
				|  |  |                              tenderId,
 | 
	
	
		
			
				|  | @@ -278,14 +279,14 @@ module.exports = app => {
 | 
	
		
			
				|  |  |                          ];
 | 
	
		
			
				|  |  |                          break;
 | 
	
		
			
				|  |  |                      case 1: // 待处理(你的)
 | 
	
		
			
				|  |  | -                        sql = 'SELECT a.* FROM ?? as a WHERE cid in(SELECT b.cid FROM ?? as b WHERE tid = ? AND uid = ? AND status = ?)';
 | 
	
		
			
				|  |  | +                        sql = 'SELECT a.* FROM ?? as a WHERE cid in(SELECT b.cid FROM ?? as b WHERE tid = ? AND uid = ? AND status = ?)' + stateSql;
 | 
	
		
			
				|  |  |                          sqlParam = [this.tableName, this.ctx.service.changeAudit.tableName, tenderId, this.ctx.session.sessionUser.accountId, audit.flow.auditStatus.checking];
 | 
	
		
			
				|  |  |                          break;
 | 
	
		
			
				|  |  |                      case 5: // 待上报(所有的)PS:取未上报,退回,修订的变更令
 | 
	
		
			
				|  |  |                          sql =
 | 
	
		
			
				|  |  |                              'SELECT a.* FROM ?? AS a WHERE ' +
 | 
	
		
			
				|  |  |                              'a.cid IN (SELECT b.cid FROM ?? AS b WHERE b.uid = ? GROUP BY b.cid) AND ' +
 | 
	
		
			
				|  |  | -                            '(a.status = ? OR a.status = ? OR a.status = ?) AND a.tid = ?';
 | 
	
		
			
				|  |  | +                            '(a.status = ? OR a.status = ? OR a.status = ?) AND a.tid = ?' + stateSql;
 | 
	
		
			
				|  |  |                          sqlParam = [
 | 
	
		
			
				|  |  |                              this.tableName,
 | 
	
		
			
				|  |  |                              this.ctx.service.changeAudit.tableName,
 | 
	
	
		
			
				|  | @@ -301,11 +302,11 @@ module.exports = app => {
 | 
	
		
			
				|  |  |                          sql =
 | 
	
		
			
				|  |  |                              'SELECT a.* FROM ?? AS a WHERE ' +
 | 
	
		
			
				|  |  |                              'a.cid IN (SELECT b.cid FROM ?? AS b WHERE b.uid = ? AND a.times = b.times GROUP BY b.cid) AND ' +
 | 
	
		
			
				|  |  | -                            'a.status = ? AND a.tid = ?';
 | 
	
		
			
				|  |  | +                            'a.status = ? AND a.tid = ?' + stateSql;
 | 
	
		
			
				|  |  |                          sqlParam = [this.tableName, this.ctx.service.changeAudit.tableName, this.ctx.session.sessionUser.accountId, status, tenderId];
 | 
	
		
			
				|  |  |                          break;
 | 
	
		
			
				|  |  |                      case 3: // 已完成(所有的)
 | 
	
		
			
				|  |  | -                        sql = 'SELECT a.* FROM ?? AS a WHERE a.status = ? AND a.tid = ?';
 | 
	
		
			
				|  |  | +                        sql = 'SELECT a.* FROM ?? AS a WHERE a.status = ? AND a.tid = ?' + stateSql;
 | 
	
		
			
				|  |  |                          sqlParam = [this.tableName, status, tenderId];
 | 
	
		
			
				|  |  |                          break;
 | 
	
		
			
				|  |  |                      default:
 | 
	
	
		
			
				|  | @@ -337,9 +338,10 @@ module.exports = app => {
 | 
	
		
			
				|  |  |           * @param {int} status - 状态
 | 
	
		
			
				|  |  |           * @return {void}
 | 
	
		
			
				|  |  |           */
 | 
	
		
			
				|  |  | -        async getCountByStatus(tenderId, status) {
 | 
	
		
			
				|  |  | +        async getCountByStatus(tenderId, status, state = 0) {
 | 
	
		
			
				|  |  | +            const stateSql = state ? ' AND a.state = ' + state : '';
 | 
	
		
			
				|  |  |              if (this.ctx.tender.isTourist && status === 0) {
 | 
	
		
			
				|  |  | -                const sql5 = 'SELECT count(*) AS count FROM ?? WHERE tid = ? ORDER BY in_time DESC';
 | 
	
		
			
				|  |  | +                const sql5 = 'SELECT count(*) AS count FROM ?? AS a WHERE a.tid = ?' + stateSql + ' ORDER BY a.in_time DESC';
 | 
	
		
			
				|  |  |                  const sqlParam5 = [this.tableName, tenderId];
 | 
	
		
			
				|  |  |                  const result5 = await this.db.query(sql5, sqlParam5);
 | 
	
		
			
				|  |  |                  return result5[0].count;
 | 
	
	
		
			
				|  | @@ -348,7 +350,7 @@ module.exports = app => {
 | 
	
		
			
				|  |  |                  case 0: // 包含你的所有变更令
 | 
	
		
			
				|  |  |                      const sql =
 | 
	
		
			
				|  |  |                          'SELECT count(*) AS count FROM ?? AS a WHERE a.tid = ? AND ' +
 | 
	
		
			
				|  |  | -                        '(a.uid = ? OR (a.status != ? AND a.cid IN (SELECT b.cid FROM ?? AS b WHERE b.uid = ? AND a.times = b.times GROUP BY b.cid)) OR a.status = ? )';
 | 
	
		
			
				|  |  | +                        '(a.uid = ? OR (a.status != ? AND a.cid IN (SELECT b.cid FROM ?? AS b WHERE b.uid = ? AND a.times = b.times GROUP BY b.cid)) OR a.status = ? )' + stateSql;
 | 
	
		
			
				|  |  |                      const sqlParam = [
 | 
	
		
			
				|  |  |                          this.tableName,
 | 
	
		
			
				|  |  |                          tenderId,
 | 
	
	
		
			
				|  | @@ -366,7 +368,7 @@ module.exports = app => {
 | 
	
		
			
				|  |  |                      //     uid: this.ctx.session.sessionUser.accountId,
 | 
	
		
			
				|  |  |                      //     status: 2,
 | 
	
		
			
				|  |  |                      // });
 | 
	
		
			
				|  |  | -                    const sql6 = 'SELECT count(*) AS count FROM ?? as a WHERE cid in(SELECT b.cid FROM ?? as b WHERE tid = ? AND uid = ? AND status = ?)';
 | 
	
		
			
				|  |  | +                    const sql6 = 'SELECT count(*) AS count FROM ?? as a WHERE cid in(SELECT b.cid FROM ?? as b WHERE tid = ? AND uid = ? AND status = ?)' + stateSql;
 | 
	
		
			
				|  |  |                      const sqlParam6 = [this.tableName, this.ctx.service.changeAudit.tableName, tenderId, this.ctx.session.sessionUser.accountId, audit.flow.auditStatus.checking];
 | 
	
		
			
				|  |  |                      const result6 = await this.db.query(sql6, sqlParam6);
 | 
	
		
			
				|  |  |                      return result6[0].count;
 | 
	
	
		
			
				|  | @@ -374,7 +376,7 @@ module.exports = app => {
 | 
	
		
			
				|  |  |                      const sql2 =
 | 
	
		
			
				|  |  |                          'SELECT count(*) AS count FROM ?? AS a WHERE ' +
 | 
	
		
			
				|  |  |                          'a.cid IN (SELECT b.cid FROM ?? AS b WHERE b.uid = ? AND a.times = b.times GROUP BY b.cid) ' +
 | 
	
		
			
				|  |  | -                        'AND (a.status = ? OR a.status = ? OR a.status = ?) AND a.tid = ?';
 | 
	
		
			
				|  |  | +                        'AND (a.status = ? OR a.status = ? OR a.status = ?) AND a.tid = ?' + stateSql;
 | 
	
		
			
				|  |  |                      const sqlParam2 = [
 | 
	
		
			
				|  |  |                          this.tableName,
 | 
	
		
			
				|  |  |                          this.ctx.service.changeAudit.tableName,
 | 
	
	
		
			
				|  | @@ -390,12 +392,12 @@ module.exports = app => {
 | 
	
		
			
				|  |  |                  case 4: // 终止(所有的)
 | 
	
		
			
				|  |  |                      const sql3 =
 | 
	
		
			
				|  |  |                          'SELECT count(*) AS count FROM ?? AS a WHERE ' +
 | 
	
		
			
				|  |  | -                        'a.cid IN (SELECT b.cid FROM ?? AS b WHERE b.uid = ? AND a.times = b.times GROUP BY b.cid) AND a.status = ? AND a.tid = ?';
 | 
	
		
			
				|  |  | +                        'a.cid IN (SELECT b.cid FROM ?? AS b WHERE b.uid = ? AND a.times = b.times GROUP BY b.cid) AND a.status = ? AND a.tid = ?' + stateSql;
 | 
	
		
			
				|  |  |                      const sqlParam3 = [this.tableName, this.ctx.service.changeAudit.tableName, this.ctx.session.sessionUser.accountId, status, tenderId];
 | 
	
		
			
				|  |  |                      const result3 = await this.db.query(sql3, sqlParam3);
 | 
	
		
			
				|  |  |                      return result3[0].count;
 | 
	
		
			
				|  |  |                  case 3: // 已完成(所有的)
 | 
	
		
			
				|  |  | -                    const sql4 = 'SELECT count(*) AS count FROM ?? WHERE status = ? AND tid = ?';
 | 
	
		
			
				|  |  | +                    const sql4 = 'SELECT count(*) AS count FROM ?? AS a WHERE a.status = ? AND a.tid = ?' + stateSql;
 | 
	
		
			
				|  |  |                      const sqlParam4 = [this.tableName, status, tenderId];
 | 
	
		
			
				|  |  |                      const result4 = await this.db.query(sql4, sqlParam4);
 | 
	
		
			
				|  |  |                      return result4[0].count;
 |