|  | @@ -604,19 +604,21 @@ module.exports = app => {
 | 
	
		
			
				|  |  |              if (this.stageValidRole && this.stageValidRole.length > 0) return;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              const result = [{dataOrder: 0, flowOrder: 0, uid: this.ctx.stage.user_id}];
 | 
	
		
			
				|  |  | -            for (const auditor of this.ctx.stage.auditors) {
 | 
	
		
			
				|  |  | -                if (auditor.status === audit.stage.status.checked ||
 | 
	
		
			
				|  |  | -                    (auditor.status === audit.stage.status.checking && !this.ctx.stage.readOnly)) {
 | 
	
		
			
				|  |  | +            for (const auditorGroup of this.ctx.stage.auditorGroups) {
 | 
	
		
			
				|  |  | +                const hasChecked = auditorGroup.find(x => { return x.status === audit.stage.status.checked });
 | 
	
		
			
				|  |  | +                const hasOtherStatus = auditorGroup.find(x => { return x.status === audit.stage.status.checkNo || x.status === audit.stage.status.checkNoPre || x.status === audit.stage.status.checkAgain || x.status === audit.stage.status.checkCancel });
 | 
	
		
			
				|  |  | +                const isCur = auditorGroup.find(x => { return x.status === audit.stage.status.checking}) && (!this.ctx.stage.readOnly || this.ctx.stage.canCheck);
 | 
	
		
			
				|  |  | +                if ((hasChecked && !hasOtherStatus) || isCur) {
 | 
	
		
			
				|  |  |                      const role = result.find(function (r) {
 | 
	
		
			
				|  |  | -                        return r.uid === auditor.aid;
 | 
	
		
			
				|  |  | +                        return r.uid === auditorGroup.map(x => { return x.aid }).join(',');
 | 
	
		
			
				|  |  |                      });
 | 
	
		
			
				|  |  |                      if (role) {
 | 
	
		
			
				|  |  | -                        role.dataOrder = auditor.order;
 | 
	
		
			
				|  |  | +                        role.dataOrder = auditorGroup[0].order;
 | 
	
		
			
				|  |  |                      } else {
 | 
	
		
			
				|  |  |                          result.push({
 | 
	
		
			
				|  |  | -                            dataOrder: auditor.order,
 | 
	
		
			
				|  |  | -                            flowOrder: result.length,
 | 
	
		
			
				|  |  | -                            uid: auditor.aid
 | 
	
		
			
				|  |  | +                            dataOrder: auditorGroup[0].order,
 | 
	
		
			
				|  |  | +                            flowOrder: auditorGroup[0].audit_order,
 | 
	
		
			
				|  |  | +                            uid: auditorGroup.map(x => { return x.aid }).join(',')
 | 
	
		
			
				|  |  |                          })
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 |