Ver código fonte

首页推送增加重新上报数据

laiguoran 6 anos atrás
pai
commit
df0022fec0

+ 2 - 0
app/controller/dashboard_controller.js

@@ -24,10 +24,12 @@ module.exports = app => {
             const auditTenders = await ctx.service.ledgerAudit.getAuditTender(ctx.session.sessionUser.accountId);
             const auditStages = await ctx.service.stageAudit.getAuditStage(ctx.session.sessionUser.accountId);
             const auditChanges = await ctx.service.changeAudit.getAuditChange(ctx.session.sessionUser.accountId);
+            const projectAccountInfo = await ctx.service.projectAccount.getDataById(ctx.session.sessionUser.accountId);
             const renderData = {
                 auditTenders,
                 auditStages,
                 auditChanges,
+                role: projectAccountInfo.role,
                 acLedger: auditConst.ledger,
                 acStage: auditConst.stage,
                 acChange: auditConst.flow,

+ 4 - 4
app/service/ledger_audit.js

@@ -271,14 +271,14 @@ module.exports = app => {
          * @returns {Promise<*>}
          */
         async getAuditTender(auditorId) {
-            const sql = 'SELECT la.`audit_id`, la.`times`, la.`audit_order`, la.`begin_time`, t.`id`, t.`name`, t.`project_id`, t.`type`, t.`user_id` ' +
+            const sql = 'SELECT la.`audit_id`, la.`times`, la.`audit_order`, la.`begin_time`, la.`end_time`, t.`id`, t.`name`, t.`project_id`, t.`type`, t.`user_id`, t.`ledger_status` ' +
                 'FROM ?? AS la, ?? AS t ' +
-                'WHERE la.`audit_id` = ? and la.`status` = ?' +
+                'WHERE (la.`audit_id` = ? and la.`status` = ?) OR (t.`user_id` = ? and t.`ledger_status` = ? and la.`status` = ? and la.`times` = (t.`ledger_times`-1))' +
                 '    and la.`tender_id` = t.`id`';
-            const sqlParam = [this.tableName, this.ctx.service.tender.tableName, auditorId, auditConst.status.checking];
+            const sqlParam = [this.tableName, this.ctx.service.tender.tableName, auditorId, auditConst.status.checking, auditorId, auditConst.status.checkNo, auditConst.status.checkNo];
             return await this.db.query(sql, sqlParam);
         }
     }
 
     return LedgerAudit;
-};
+};

+ 3 - 3
app/service/stage_audit.js

@@ -306,13 +306,13 @@ module.exports = app => {
          * @returns {Promise<*>}
          */
         async getAuditStage(auditorId) {
-            const sql = 'SELECT sa.`aid`, sa.`times`, sa.`order`, sa.`begin_time`, sa.`tid`, sa.`sid`,' +
+            const sql = '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 ' +
-                        '  WHERE sa.`aid` = ? and sa.`status` = ?' +
+                        '  WHERE (sa.`aid` = ? and sa.`status` = ?) OR (s.`user_id` = ? and sa.`status` = ? and s.`status` = ? and sa.`times` = s.`times`)' +
                         '    and sa.`sid` = s.`id` and sa.`tid` = t.`id`';
-            const sqlParam = [this.tableName, this.ctx.service.stage.tableName, this.ctx.service.tender.tableName, auditorId, auditConst.status.checking];
+            const sqlParam = [this.tableName, this.ctx.service.stage.tableName, this.ctx.service.tender.tableName, auditorId, auditConst.status.checking, auditorId, auditConst.status.checkNo, auditConst.status.checkNo];
             return await this.db.query(sql, sqlParam);
         }
     }

+ 30 - 3
app/view/dashboard/index.ejs

@@ -9,21 +9,33 @@
         <div class="c-body">
             <ul class="list-unstyled m-0">
                 <% for (const t of auditTenders) { %>
+                <% if (t.ledger_status === acLedger.status.checking) { %>
                 <li class="media">
                     <img class="mr-3" src="public/images/avatar.png">
                     <div class="media-body">
                         <span class="pull-right text-muted"><%- t.begin_time.toLocaleString() %></span>
-                        <h5 class="mt-0"><%- ctx.session.sessionUser.name %><small class="ml-3 text-muted"><%- t.role %></small></h5>
+                        <h5 class="mt-0"><%- ctx.session.sessionUser.name %><small class="ml-3 text-muted"><%- role %></small></h5>
                         <p><a href="/tender/<%- t.id %>"><%- t.name %></a> 台帐 需要您 <a href="/tender/<%- t.id %>/ledger/audit">审批</a>。</p>
                     </div>
                 </li>
+                <% } else { %>
+                <li class="media">
+                    <img class="mr-3" src="public/images/avatar.png">
+                    <div class="media-body">
+                        <span class="pull-right text-muted"><%- t.end_time.toLocaleString() %></span>
+                        <h5 class="mt-0"><%- ctx.session.sessionUser.name %><small class="ml-3 text-muted"><%- role %></small></h5>
+                        <p><a href="/tender/<%- t.id %>"><%- t.name %></a> 台帐 需要您 <a href="/tender/<%- t.id %>/ledger/explode">重新上报</a>。</p>
+                    </div>
+                </li>
+                <% } %>
                 <% } %>
                 <% for (const audit of auditStages) { %>
+                <% if (audit.sstatus !== acStage.status.checkNo) { %>
                 <li class="media">
                     <img class="mr-3" src="public/images/avatar.png">
                     <div class="media-body">
                         <span class="pull-right text-muted"><%- audit.begin_time.toLocaleString() %></span>
-                        <h5 class="mt-0"><%- ctx.session.sessionUser.name %><small class="ml-3 text-muted"><%- audit.role %></small></h5>
+                        <h5 class="mt-0"><%- ctx.session.sessionUser.name %><small class="ml-3 text-muted"><%- role %></small></h5>
                         <p><a href="/tender/<%- audit.tid %>"><%- audit.name %></a>
                             第<%- audit.sorder %>期 <% if (audit.sstatus === acStage.status.checkNoPre) { %><span style="color: indianred">被退回</span> <% } %> 需要您
                             <a href="/tender/<%- audit.tid %>/measure/stage/<%- audit.sorder %>">
@@ -32,13 +44,28 @@
                         </p>
                     </div>
                 </li>
+                <% } else { %>
+                <li class="media">
+                    <img class="mr-3" src="public/images/avatar.png">
+                    <div class="media-body">
+                        <span class="pull-right text-muted"><%- audit.end_time.toLocaleString() %></span>
+                        <h5 class="mt-0"><%- ctx.session.sessionUser.name %><small class="ml-3 text-muted"><%- role %></small></h5>
+                        <p><a href="/tender/<%- audit.tid %>"><%- audit.name %></a>
+                            第<%- audit.sorder %>期 <% if (audit.sstatus === acStage.status.checkNoPre) { %><span style="color: indianred">被退回</span> <% } %> 需要您
+                            <a href="/tender/<%- audit.tid %>/measure/stage/<%- audit.sorder %>">
+                                重新上报
+                            </a>。
+                        </p>
+                    </div>
+                </li>
+                <% } %>
                 <% } %>
                 <% for (const change of auditChanges) { %>
                 <li class="media">
                     <img class="mr-3" src="public/images/avatar.png">
                     <div class="media-body">
                         <span class="pull-right text-muted"><%- (change.sin_time ? change.sin_time.toLocaleString() : '') %></span>
-                        <h5 class="mt-0"><%- change.caname %><small class="ml-3 text-muted"><%- change.pre.role %></small></h5>
+                        <h5 class="mt-0"><%- change.caname %><small class="ml-3 text-muted"><%- role %></small></h5>
                         <p>
                             <a href="/tender/<%- change.tid %>"><%- change.name %></a>
                             变更令 <%- change.ccode %>

+ 1 - 0
app/view/ledger/audit_modal.ejs

@@ -60,6 +60,7 @@
                                 <label>审批意见<b class="text-danger">*</b></label>
                                 <textarea class="form-control" name="opinion">不同意</textarea>
                             </div>
+                            <div class="alert alert-warning">审批退回,将直接退回给上报人。</div>
                             <% } %>
                         </li>
                         <% } %>