Browse Source

修复签章状态及报表不展示问题

laiguoran 2 years ago
parent
commit
1a23cef49d

+ 3 - 0
app/service/payment_detail_audit.js

@@ -350,6 +350,8 @@ module.exports = app => {
                     const report_json = JSON.parse(this.ctx.detail.report_json);
                     const sign_msg = JSON.parse(rptAudit.signature_msg);
                     updateDetailData.report_json = JSON.stringify(await this.ctx.service.paymentDetail.signOneSignatureData(report_json, rptAudit.signature_name, sign_msg));
+                    // 更新签字确定时间
+                    await this.ctx.service.paymentRptAudit.updateSignTime(transaction, rptAudit.id);
                 }
                 await transaction.update(this.ctx.service.paymentDetail.tableName, updateDetailData);
                 // 判断用户是否有权限查看支付审批,没有则自动加入到权限中
@@ -467,6 +469,7 @@ module.exports = app => {
                 // 清空签名
                 await transaction.update(this.ctx.service.paymentRptAudit.tableName, {
                     signature_msg: null,
+                    sign_time: null,
                 }, {
                     where: {
                         td_id: detailId,

+ 7 - 1
app/service/payment_rpt_audit.js

@@ -32,6 +32,7 @@ module.exports = app => {
                 if (!rptAudit) {
                     throw '当前人不存在报表角色中';
                 }
+                let sign_time = null;
                 if ((this.ctx.detail.status !== auditConst.status.uncheck && this.ctx.detail.status !== auditConst.status.checkNo && this.ctx.detail.uid === uid) ||
                     (this._.findIndex(this.ctx.detail.auditors, { aid: uid }) === -1 && this.ctx.detail.uid !== uid) ||
                     (this._.findIndex(this.ctx.detail.auditors, { aid: uid }) !== -1 && this.ctx.detail.curAuditor && this.ctx.detail.curAuditor.aid !== uid)) {
@@ -42,8 +43,9 @@ module.exports = app => {
                         id: this.ctx.detail.id,
                         report_json: JSON.stringify(report_json),
                     });
+                    sign_time = new Date();
                 }
-                await transaction.update(this.tableName, { sign_time: new Date(), signature_msg: JSON.stringify(signature_msg) }, { where: { td_id, uid } });
+                await transaction.update(this.tableName, { sign_time, signature_msg: JSON.stringify(signature_msg) }, { where: { td_id, uid } });
                 await transaction.commit();
                 return true;
             } catch (error) {
@@ -52,6 +54,10 @@ module.exports = app => {
             }
         }
 
+        async updateSignTime(transaction, id) {
+            return await transaction.update(this.tableName, { id, sign_time: new Date() });
+        }
+
         async clearSignatureMsg(transaction, td_id, uid) {
             return await transaction.update(this.tableName, { sign_time: null, signature_msg: null }, { where: { td_id, uid } });
         }

+ 2 - 2
app/view/payment/detail_modal.ejs

@@ -126,8 +126,8 @@
                         <td><%- index+1 %></td>
                         <td><%- ra.signature_name %></td>
                         <td><%- ra.user_name %></td>
-                        <td><% if (ra.signature_msg && ra.signature_msg.sign_path !== null ) { %><i class="fa fa-check text-success"></i><% } %></td>
-                        <td><% if (ra.signature_msg && (ra.signature_msg.stamp_path !== null || ra.signature_msg.company_stamp !== null)) { %><i class="fa fa-check text-success"></i><% } %></td>
+                        <td><% if (ra.signature_msg && ra.signature_msg.sign_path !== null && (ra.sign_time || ra.uid === ctx.session.sessionUser.accountId)) { %><i class="fa fa-check text-success"></i><% } %></td>
+                        <td><% if (ra.signature_msg && (ra.signature_msg.stamp_path !== null || ra.signature_msg.company_stamp !== null) && (ra.sign_time || ra.uid === ctx.session.sessionUser.accountId)) { %><i class="fa fa-check text-success"></i><% } %></td>
                     </tr>
                     <% } %>
                     </tbody>