|
@@ -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(',')
|
|
|
})
|
|
|
}
|
|
|
}
|