Browse Source

没有任何期计量时,进入台账修订失败

MaiXinRong 5 years ago
parent
commit
7378dd1da1
2 changed files with 24 additions and 21 deletions
  1. 21 19
      app/controller/revise_controller.js
  2. 3 2
      app/service/revise_audit.js

+ 21 - 19
app/controller/revise_controller.js

@@ -277,25 +277,27 @@ module.exports = app => {
             // 台账只读、使用数据
             renderData.readOnly = false;
             const lastStage = await ctx.service.stage.getLastestStage(ctx.tender.id, true);
-            if (lastStage.status === audit.stage.status.checked) {
-                const usedPreBills = await ctx.service.stageBillsFinal.getUsedBills(ctx.tender.id, lastStage.order);
-                for (const b of renderData.reviseBills) {
-                    b.used = usedPreBills.indexOf(b.id) >= 0;
-                }
-                const usedPrePos = await ctx.service.stagePosFinal.getUsedPos(ctx.tender.id, lastStage.order);
-                for (const p of renderData.revisePos) {
-                    p.used = usedPrePos.indexOf(p.id) >= 0;
-                }
-            } else {
-                const usedPreBills = lastStage.order > 1 ? await ctx.service.stageBillsFinal.getUsedBills(ctx.tender.id, lastStage.order - 1) : [];
-                const usedCurBills = await ctx.service.stageBills.getStageUsedBills(ctx.tender.id, lastStage.id);
-                for (const b of renderData.reviseBills) {
-                    b.used = usedPreBills.indexOf(b.id) >= 0 || usedCurBills.indexOf(b.id) >= 0;
-                }
-                const usedPrePos = lastStage.order > 1 ? await ctx.service.stagePosFinal.getUsedPos(ctx.tender.id, lastStage.order - 1) : [];
-                const usedCurPos = await ctx.service.stagePos.getStageUsedPos(ctx.tender.id, lastStage.id);
-                for (const p of renderData.revisePos) {
-                    p.used = usedPrePos.indexOf(p.id) >= 0 || usedCurPos.indexOf(p.id) >= 0;
+            if (lastStage) {
+                if (lastStage.status === audit.stage.status.checked) {
+                    const usedPreBills = await ctx.service.stageBillsFinal.getUsedBills(ctx.tender.id, lastStage.order);
+                    for (const b of renderData.reviseBills) {
+                        b.used = usedPreBills.indexOf(b.id) >= 0;
+                    }
+                    const usedPrePos = await ctx.service.stagePosFinal.getUsedPos(ctx.tender.id, lastStage.order);
+                    for (const p of renderData.revisePos) {
+                        p.used = usedPrePos.indexOf(p.id) >= 0;
+                    }
+                } else {
+                    const usedPreBills = lastStage.order > 1 ? await ctx.service.stageBillsFinal.getUsedBills(ctx.tender.id, lastStage.order - 1) : [];
+                    const usedCurBills = await ctx.service.stageBills.getStageUsedBills(ctx.tender.id, lastStage.id);
+                    for (const b of renderData.reviseBills) {
+                        b.used = usedPreBills.indexOf(b.id) >= 0 || usedCurBills.indexOf(b.id) >= 0;
+                    }
+                    const usedPrePos = lastStage.order > 1 ? await ctx.service.stagePosFinal.getUsedPos(ctx.tender.id, lastStage.order - 1) : [];
+                    const usedCurPos = await ctx.service.stagePos.getStageUsedPos(ctx.tender.id, lastStage.id);
+                    for (const p of renderData.revisePos) {
+                        p.used = usedPrePos.indexOf(p.id) >= 0 || usedCurPos.indexOf(p.id) >= 0;
+                    }
                 }
             }
             // 修订历史

+ 3 - 2
app/service/revise_audit.js

@@ -361,9 +361,10 @@ module.exports = app => {
                 '    t.`id` As t_id, t.`name` As t_name, t.`project_id` As t_pid, t.`type` As t_type, t.`user_id` As t_uid, ' +
                 '    pa.name As `ru_name`, pa.role As `ru_role`, pa.company As `ru_company`' +
                 '  FROM ' + this.tableName + ' As ra' +
-                '  INNER JOIN ' + this.ctx.service.ledgerRevise.tableName + ' As r ON ra.audit_id <> ? and ra.end_time > ?' +
-                '  LEFT JOIN ' + this.ctx.service.tender.tableName + ' As t ON r.`tid` = t.`id` and t.project_id = ?' +
+                '  LEFT JOIN ' + this.ctx.service.ledgerRevise.tableName + ' As r ON ra.rid = r.id' +
+                '  LEFT JOIN ' + this.ctx.service.tender.tableName + ' As t ON r.`tid` = t.`id`' +
                 '  LEFT JOIN ' + this.ctx.service.projectAccount.tableName + ' As pa ON ra.`audit_id` = pa.`id`' +
+                '  WHERE ra.audit_id <> ? and ra.end_time > ? and t.project_id = ?' +
                 '  GROUP By t.`id`' +
                 '  ORDER By ra.`end_time`';
             const sqlParam = [auditorId, noticeTime, projectId];