Procházet zdrojové kódy

变更撤销修订增加审批状态展示

ellisran před 1 rokem
rodič
revize
87e78154d6

+ 3 - 0
app/const/audit.js

@@ -317,6 +317,7 @@ const auditStatus = {
     backnew: 6, // 退回到上一个审批人
     checkAgain: 7, // 重新审批
     revise: 9, // 修订变更
+    cancelRevise: 10, // 撤销修订
 };
 
 const auditStatusString = [];
@@ -328,6 +329,7 @@ auditStatusString[auditStatus.back] = '退回';
 auditStatusString[auditStatus.backnew] = '审批退回';
 auditStatusString[auditStatus.checkAgain] = '重新审批';
 auditStatusString[auditStatus.revise] = '修订变更';
+auditStatusString[auditStatus.cancelRevise] = '撤销修订';
 
 const auditStatusClass = [];
 auditStatusClass[auditStatus.uncheck] = '';
@@ -338,6 +340,7 @@ auditStatusClass[auditStatus.back] = 'text-warning';
 auditStatusClass[auditStatus.backnew] = 'text-warning';
 auditStatusClass[auditStatus.checkAgain] = 'text-warning';
 auditStatusClass[auditStatus.revise] = 'text-warning';
+auditStatusClass[auditStatus.cancelRevise] = 'text-success';
 
 /* ------------------------------------------------------- */
 

+ 35 - 1
app/service/change.js

@@ -1450,7 +1450,7 @@ module.exports = app => {
                     jobs: auditList[0].jobs,
                     company: auditList[0].company,
                     times: changeData.times,
-                    usite: lastauditInfo.usite + 1,
+                    usite: 0,
                     usort,
                     status: audit.flow.auditStatus.revise,
                     sin_time: new Date(),
@@ -1532,9 +1532,43 @@ module.exports = app => {
             this.transaction = await this.db.beginTransaction();
             let result = false;
             try {
+                const changeData = await this.getDataByCondition({ cid });
+                const pid = this.ctx.session.sessionProject.id;
+                // 获取所有审核人列表
+                const auditors = await this.ctx.service.changeAudit.getAllAuditors(changeData.tid);
+                // 添加到消息推送表
+                const noticeContent = await this.getNoticeContent(pid, changeData.tid, changeData.cid, this.ctx.session.sessionUser.accountId, '撤销重新审批');
+                const records = [];
+                auditors.forEach(auditor => {
+                    records.push({
+                        pid,
+                        type: pushType.change,
+                        uid: auditor.uid,
+                        status: audit.flow.status.checked,
+                        content: noticeContent,
+                    });
+                });
+                await this.transaction.insert('zh_notice', records);
                 await this.ctx.service.changeHistory.returnHistory(this.transaction, cid);
                 await this.transaction.delete(this.ctx.service.changeAudit.tableName, { cid, times });
                 await this.transaction.delete(this.ctx.service.changeHistory.tableName, { cid });
+
+                const lastauditInfo = await this.ctx.service.changeAudit.getLastUser(cid, times - 1, 1, 0);
+                // 新增一个撤销修订状态到审批流程中
+                const revise_audit = {
+                    tid: lastauditInfo.tid,
+                    cid,
+                    uid: this.ctx.session.sessionUser.accountId,
+                    name: lastauditInfo.name,
+                    jobs: lastauditInfo.jobs,
+                    company: lastauditInfo.company,
+                    times: times - 1,
+                    usite: 0,
+                    usort: lastauditInfo.usort + 1,
+                    status: audit.flow.auditStatus.cancelRevise,
+                    sin_time: new Date(),
+                };
+                await this.transaction.insert(this.ctx.service.changeAudit.tableName, revise_audit);
                 await this.transaction.commit();
                 result = true;
             } catch (error) {

+ 6 - 6
app/view/change/information_modal.ejs

@@ -293,7 +293,7 @@
                                                         <% if(index < auditors.length - 1) { %>
                                                             <div class="timeline-item-tail"></div>
                                                         <% } %>
-                                                        <% if(auditor.status === auditConst.auditStatus.checked) { %>
+                                                        <% if(auditor.status === auditConst.auditStatus.checked || auditor.status === auditConst.auditStatus.cancelRevise) { %>
                                                             <div class="timeline-item-icon bg-success text-light">
                                                                 <i class="fa fa-check"></i>
                                                             </div>
@@ -448,7 +448,7 @@
                                                     <% if(index < auditors.length - 1) { %>
                                                         <div class="timeline-item-tail"></div>
                                                     <% } %>
-                                                    <% if(auditor.status === auditConst.auditStatus.checked) { %>
+                                                    <% if(auditor.status === auditConst.auditStatus.checked || auditor.status === auditConst.auditStatus.cancelRevise) { %>
                                                         <div class="timeline-item-icon bg-success text-light">
                                                             <i class="fa fa-check"></i>
                                                         </div>
@@ -578,7 +578,7 @@
                                                     <% if(index < auditors.length - 1) { %>
                                                         <div class="timeline-item-tail"></div>
                                                     <% } %>
-                                                    <% if(auditor.status === auditConst.auditStatus.checked) { %>
+                                                    <% if(auditor.status === auditConst.auditStatus.checked || auditor.status === auditConst.auditStatus.cancelRevise) { %>
                                                         <div class="timeline-item-icon bg-success text-light">
                                                             <i class="fa fa-check"></i>
                                                         </div>
@@ -667,7 +667,7 @@
                                                 <% if(index < auditList3.length - 1) { %>
                                                     <div class="timeline-item-tail"></div>
                                                 <% } %>
-                                                <% if(auditor.status === auditConst.auditStatus.checked) { %>
+                                                <% if(auditor.status === auditConst.auditStatus.checked || auditor.status === auditConst.auditStatus.cancelRevise) { %>
                                                     <div class="timeline-item-icon bg-success text-light">
                                                         <i class="fa fa-check"></i>
                                                     </div>
@@ -815,7 +815,7 @@
                                                     <% if(index < auditors.length - 1) { %>
                                                         <div class="timeline-item-tail"></div>
                                                     <% } %>
-                                                    <% if(auditor.status === auditConst.auditStatus.checked) { %>
+                                                    <% if(auditor.status === auditConst.auditStatus.checked || auditor.status === auditConst.auditStatus.cancelRevise) { %>
                                                         <div class="timeline-item-icon bg-success text-light">
                                                             <i class="fa fa-check"></i>
                                                         </div>
@@ -904,7 +904,7 @@
                                                 <% if(index < auditList3.length - 1) { %>
                                                     <div class="timeline-item-tail"></div>
                                                 <% } %>
-                                                <% if(auditor.status === auditConst.auditStatus.checked) { %>
+                                                <% if(auditor.status === auditConst.auditStatus.checked || auditor.status === auditConst.auditStatus.cancelRevise) { %>
                                                     <div class="timeline-item-icon bg-success text-light">
                                                         <i class="fa fa-check"></i>
                                                     </div>

+ 3 - 0
sql/update.sql

@@ -77,3 +77,6 @@ CREATE TABLE `calculation`.`zh_change_history`  (
   `list_json` json NULL COMMENT '清单json值',
   PRIMARY KEY (`id`)
 ) COMMENT = '变更令内容临时保存表,用于修订撤销';
+
+-- 更新resive状态下usite值为0
+UPDATE `calculation`.zh_change_audit SET `usite` = 0 WHERE `status` = 9;