Browse Source

签名日期刷新

TonyKang 5 years ago
parent
commit
25a8a738e2
3 changed files with 56 additions and 2 deletions
  1. 29 0
      app/public/report/js/rpt_signature.js
  2. 24 1
      app/service/role_rpt_rel.js
  3. 3 1
      app/service/stage.js

+ 29 - 0
app/public/report/js/rpt_signature.js

@@ -564,8 +564,10 @@ let rptSignatureHelper = {
             for (let rridx = 0; rridx < currRoleRelList.length; rridx++) {
                 const role_rel = currRoleRelList[rridx];
                 if (role_rel.sign_date === undefined || role_rel.sign_date ===  null || role_rel.sign_date ===  '') {
+                    let hasAudit = false;
                     for (const stg_audit of STAGE_AUDIT) {
                         if (role_rel.acc_id === stg_audit.aid) {
+                            hasAudit = true;
                             if (stg_audit.status === 3) {
                                 role_rel.sign_date = stg_audit.end_time;
                                 rptSignatureHelper.originalRoleRelList[rridx].sign_date = stg_audit.end_time;
@@ -576,6 +578,33 @@ let rptSignatureHelper = {
                             // break; //因为实际业务中会有反复,所以就不break了,一直判断,以最后一个为准
                         }
                     }
+                    let isOrgRpt = false;
+                    for (const stg of STAGE_LIST) {
+                        if (stg.id === current_stage_id) {
+                            if (stg.user_id === role_rel.acc_id) {
+                                isOrgRpt = true;
+                            }
+                            break;
+                        }
+                    }
+                    if (isOrgRpt && !hasAudit && STAGE_AUDIT_ORG && STAGE_AUDIT_ORG.length > 0) {
+                        if (STAGE_AUDIT_ORG[0].begin_time && STAGE_AUDIT_ORG[0].begin_time !== '' && STAGE_AUDIT_ORG[0].begin_time.length > 20) {
+                            role_rel.sign_date = STAGE_AUDIT_ORG[0].begin_time;
+                            rptSignatureHelper.originalRoleRelList[rridx].sign_date = STAGE_AUDIT_ORG[0].begin_time;
+                        }
+                    }
+                    if (!isOrgRpt && !hasAudit) {
+                        //非审批流程人员以及非原报,则显示期截至时间
+                        for (const stg of STAGE_LIST) {
+                            if (stg.id === current_stage_id && stg.period) {
+                                const period = stg.period.split(' ~ ');
+                                if (period.length === 2) {
+                                    role_rel.sign_date = period[1];
+                                    rptSignatureHelper.originalRoleRelList[rridx].sign_date = period[1];
+                                }
+                            }
+                        }
+                    }
                 }
             }
         }

+ 24 - 1
app/service/role_rpt_rel.js

@@ -49,6 +49,7 @@ module.exports = app => {
             this.sqlBuilder.columns = ['id', 'tender_id', 'rpt_id', 'sid', 'rel_content'];
             const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
             const list = await this.db.query(sql, sqlParam);
+            // console.log(list);
             return list;
         }
 
@@ -73,9 +74,10 @@ module.exports = app => {
                 value: sid,
                 operate: '=',
             });
-            this.sqlBuilder.columns = ['id', 'tender_id', 'rpt_id', 'rel_content'];
+            this.sqlBuilder.columns = ['id', 'tender_id', 'rpt_id', 'sid', 'rel_content'];
             const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
             const list = await this.db.query(sql, sqlParam);
+            // console.log(list);
             return list;
         }
 
@@ -101,6 +103,27 @@ module.exports = app => {
 
         async addInitialStageData(tender_id, stage, preStage) {
             // 在加stage的时候需要挂上这个,copy之前的签名人
+            const rst = [];
+            const preRoleRelList = await this.getRoleRptRelByTenderId(tender_id, preStage.id);
+            for (const rptRoleRel of preRoleRelList) {
+                const relList = JSON.parse(rptRoleRel.rel_content);
+                // const newRptRoleRel = {tender_id: tender_id, rpt_id: rptRoleRel.rpt_id, sid: stage.id, rel_content: ''};
+                const newRelList = [];
+                for (const role of relList) {
+                    const newRole = {};
+                    newRelList.push(newRole);
+                    for (const key in role) {
+                        if (key !== 'sign_date') {
+                            newRole[key] = role[key];
+                        } else {
+                            newRole[key] = '';
+                        }
+                    }
+                }
+                // rst.push(await this.createRoleRelationship(tender_id, rptRoleRel.rpt_id, stage.id, newRelList));
+                await this.createRoleRelationship(tender_id, rptRoleRel.rpt_id, stage.id, newRelList); // 暂时用不到,就先不返回结果
+            }
+            return rst;
         }
 
         async updateRoleRelationship(id, tender_id, rpt_id, sid, relArr) {

+ 3 - 1
app/service/stage.js

@@ -10,6 +10,7 @@
 
 const auditConst = require('../const/audit').stage;
 const payConst = require('../const/deal_pay.js');
+const roleRelSvr = require('./role_rpt_rel');
 const fs = require('fs');
 const path = require('path');
 const _ = require('lodash');
@@ -282,9 +283,10 @@ module.exports = app => {
                     const otherResult = await this.ctx.service.stageOther.addInitialStageData(newStage, preStage, transaction);
                     if (!otherResult) throw '初始化其他台账数据失败';
                 }
-                // 新增期拷贝报表相关配置
+                // 新增期拷贝报表相关配置/签名角色 等
                 if (preStage) {
                     const rptResult = await this.ctx.service.rptCustomDefine.addInitialStageData(newStage, preStage, transaction);
+                    await this.ctx.service.roleRptRel.addInitialStageData(tenderId, newStage, preStage);
                 }
 
                 await transaction.commit();