Browse Source

变更令 code sync

Tony Kang 1 year ago
parent
commit
5125470a85

+ 64 - 13
app/controller/report_controller.js

@@ -319,6 +319,8 @@ module.exports = app => {
                     source_type: 1,
                     changes: 'null',
                     changeId: '-1',
+                    businessId: '-1',
+                    change_times: 1,
                     cPlanId: -1,
                     cPrjId: -1,
                     cAplId: -1,
@@ -473,6 +475,8 @@ module.exports = app => {
                     source_type: 101,
                     changes: 'null',
                     changeId: '-1',
+                    businessId: '-1',
+                    change_times: 1,
                     cPlanId: -1,
                     cPrjId: -1,
                     cAplId: -1,
@@ -618,6 +622,8 @@ module.exports = app => {
                     source_type: 200,
                     changes: 'null',
                     changeId: '-1',
+                    businessId: '-1',
+                    change_times: 1,
                     cPlanId: -1,
                     cPrjId: -1,
                     cAplId: -1,
@@ -639,11 +645,14 @@ module.exports = app => {
                 pageShow.closeShowAllCustomized = 0;
                 const tenderId = ctx.params.id;
                 const changeId = ctx.params.cid;
-                const cPlanId = ctx.params.cplnid || -1;
-                const cPrjId = ctx.params.cprjid || -1;
-                const cAplId = ctx.params.caid || -1;
+                const cPlanId = ctx.params.cplnid || '-1';
+                const cPrjId = ctx.params.cprjid || '-1';
+                const cAplId = ctx.params.caid || '-1';
                 let bzId = '';
                 if (stage_id === -300) bzId = changeId;
+                if (stage_id === -301) bzId = cPlanId;
+                if (stage_id === -302) bzId = cPrjId;
+                if (stage_id === -303) bzId = cAplId;
                 const paymentDetail_id = -1;
                 const pid = ctx.session.sessionProject.id;
                 const budget_id = -1;
@@ -653,12 +662,14 @@ module.exports = app => {
                 const orders = ctx.query.order ? ctx.query.order : 0;
                 const state = ctx.session.sessionProject.page_show.openChangeState && ctx.query.state ? parseInt(ctx.query.state) : 0;
                 const changes = await ctx.service.change.getListByStatus(tenderId, 0, 1, sorts, orders, state);
+                let change_times = 1;
                 const stageList = [];
                 const unitList = await ctx.service.constructionUnit.getAllDataByCondition({ where: { pid } }); // 找公司章用的
                 const isAdmin = ctx.session.sessionUser.is_admin;
                 let lastAuditor = null;
                 for (let cIdx = 0; cIdx < changes.length; cIdx++) {
                     if (changes[cIdx].cid === changeId) {
+                        if (changes[cIdx].times > change_times) change_times = changes[cIdx].times;
                         if (changes[cIdx].status === 3) {
                             const changeAudit = await ctx.service.changeAudit.getLastUser(changeId, changes[cIdx].times, 3);
                             if (changeAudit) {
@@ -781,6 +792,8 @@ module.exports = app => {
                     source_type,
                     changes: JSON.stringify(changes),
                     changeId,
+                    businessId: bzId,
+                    change_times,
                     cPlanId,
                     cPrjId,
                     cAplId,
@@ -894,12 +907,12 @@ module.exports = app => {
                 stgAuditForOrg = null,
                 stageFlow = null,
                 stageList = [];
-            if (![-100, -200, -300].includes(params.stage_id)) {
+            if (![-100, -200, -300, -301, -302, -303].includes(params.stage_id)) {
                 stgAudit = await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times);
                 stgAuditForOrg = await ctx.service.stageAudit.getStageAudit(params.stage_id, 1);
                 stageList = await ctx.service.stage.getValidStagesShort(params.tender_id);
                 stageFlow = await ctx.service.stageAudit.getAuditGroupByListWithOwner(params.stage_id, params.stage_times);
-            } else {
+            } else if ([-100, -200].includes(params.stage_id)) {
                 stgAudit = await ctx.service.paymentDetailAudit.getAuditors(params.detail_id, params.stage_times);
                 stgAuditForOrg = await ctx.service.paymentDetailAudit.getAuditors(params.detail_id, 1);
                 stageFlow = await ctx.service.paymentDetailAudit.getAuditorsWithOwner(params.detail_id);
@@ -908,6 +921,31 @@ module.exports = app => {
                     const payment = paymentDetailList[0];
                     stageList.push({ id: params.stage_id, user_id: payment.uid, status: payment.status });
                 }
+            } else if ([-300, -301, -302, -303].includes(params.stage_id)) {
+                // 变更令相关的
+                stgAudit = [];
+                stgAuditForOrg = [];
+                stageFlow = [];
+                switch (params.stage_id) {
+                    case -300:
+                        const changeAudit = await ctx.service.changeAudit.getAuditors(params.change_id, params.change_times, true);
+                        const changeAuditOrg = await ctx.service.changeAudit.getAuditors(params.change_id, 1);
+                        changeAudit.forEach(audit => {
+                            stgAudit.push({ aid: audit.uid, status: audit.status, opinion: audit.sdesc, end_time: audit.sin_time, usite: audit.usite });
+                        });
+                        changeAuditOrg.forEach(audit => {
+                            stgAuditForOrg.push({ aid: audit.uid, status: audit.status, opinion: audit.sdesc, end_time: audit.sin_time, usite: audit.usite });
+                        });
+                        break;
+                    case -301:
+                        break;
+                    case -302:
+                        break;
+                    case -303:
+                        break;
+                    default:
+                        break;
+                }
             }
 
             stageFlow.forEach(x => {
@@ -1008,28 +1046,41 @@ module.exports = app => {
 
             let stgAudit = null,
                 stageList = [];
-            if (![-100, -200, -300].includes(params.stage_id)) {
+            if (![-100, -200, -300, -301, -302, -303].includes(params.stage_id)) {
                 stgAudit = await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times);
                 stageList = await ctx.service.stage.getValidStagesShort(params.tender_id);
-            } else {
+            } else if ([-100, -200].includes(params.stage_id)) {
                 stgAudit = await ctx.service.paymentDetailAudit.getAuditors(params.detail_id);
                 const paymentDetailList = await ctx.service.paymentDetail.getDetail(params.detail_id);
                 if (paymentDetailList && paymentDetailList.length > 0) {
                     const payment = paymentDetailList[0];
                     stageList.push({ id: params.stage_id, user_id: payment.uid, status: payment.status });
                 }
+            } else if ([-300, -301, -302, -303].includes(params.stage_id)) {
+                stgAudit = [];
+                switch (params.stage_id) {
+                    case -300:
+                        const changeAudit = await ctx.service.changeAudit.getAuditors(params.change_id, params.change_times);
+                        changeAudit.forEach(audit => {
+                            stgAudit.push({ aid: audit.uid, status: audit.status, opinion: audit.sdesc, end_time: audit.sin_time });
+                        });
+                        break;
+                    case -301:
+                        break;
+                    case -302:
+                        break;
+                    case -303:
+                        break;
+                    default:
+                        break;
+                }
             }
 
-            // const stgAudit = await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times);
-            // const stageList = await ctx.service.stage.getValidStagesShort(params.tender_id);
-
-            // const roleRel = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : [];
             const roleRel = await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id); // 新需求:在审批流程中的签名需要显示
             roleRel.sort(function(rr1, rr2) {
                 return params.rpt_ids.indexOf(parseInt(rr1.rpt_id)) - params.rpt_ids.indexOf(parseInt(rr2.rpt_id));
             });
-            // console.log('roleRel: ');
-            // console.log(roleRel);
+
             mergeStampSignature(ctx, params.stage_status, pageRstArr, roleRel, params.rpt_ids, stgAudit, stageList);
             mergeTextSignature(params.isTextSignature, params.stage_status, pageRstArr, roleRel, params.rpt_ids, stgAudit, stageList);
 

+ 14 - 2
app/public/report/js/rpt_main.js

@@ -327,6 +327,10 @@ let zTreeOprObj = {
             params.custCfg = CUST_CFG;
             params.detail_id = DETAIL_ID;
             params.change_id = CHNAGE_ID;
+            params.change_times = CHANGE_TIMES;
+            params.change_plan_id = BUSINESS_ID;
+            params.change_project_id = BUSINESS_ID;
+            params.change_apply_id = BUSINESS_ID;
             _getSplitAmendmentParam(params, treeNode);
         
             rptArchiveObj.toggleBtn(false);
@@ -413,6 +417,10 @@ let zTreeOprObj = {
             params.isTextSignature = getTxtSignature();
             params.detail_id = DETAIL_ID;
             params.change_id = CHNAGE_ID;
+            params.change_times = CHANGE_TIMES;
+            params.change_plan_id = BUSINESS_ID;
+            params.change_project_id = BUSINESS_ID;
+            params.change_apply_id = BUSINESS_ID;
             _getSplitAmendmentParam(params, me.currentNode);
             localStorage[CUST_NAME + '_custCfg'] = JSON.stringify(CUST_CFG);
 
@@ -738,7 +746,11 @@ let rptControlObj = {
         rst.isTextSignature = getTxtSignature();
         rst.detail_id = DETAIL_ID;
         rst.change_id = CHNAGE_ID;
-        // rst.amendmentType = 
+        rst.change_times = CHANGE_TIMES;
+        rst.change_plan_id = BUSINESS_ID;
+        rst.change_project_id = BUSINESS_ID;
+        rst.change_apply_id = BUSINESS_ID;
+    // rst.amendmentType = 
         return rst;
     },
     getAllInOneBook: async function () {
@@ -1408,7 +1420,7 @@ function getStageStatus() {
     if (ppStatus === 3) {
         return ppStatus
     } else {
-        if ([-200, -300].includes(STAGE_ID)) return 3
+        if ([-200, -300, -301, -302, -303].includes(STAGE_ID)) return 3
         else return current_stage_status;
     }
 }

+ 4 - 2
app/service/change_audit.js

@@ -537,10 +537,12 @@ module.exports = app => {
          *
          * @param {Number} cid - 变更id
          * @param {Number} times - 第几次审批
+         * @param {Boolean} includeOR - 是否包含原报
          * @return {Promise<*>}
          */
-        async getAuditors(cid, times = 1) {
-            const sql = 'SELECT * FROM ?? WHERE `cid` = ? and `times` = ? and usite != 0';
+        async getAuditors(cid, times = 1, includeOR = false) {
+            const sql = `SELECT * FROM ?? WHERE cid = ? and times = ?${includeOR ? '' : ' and usite != 0'}`;
+            // const sql = 'SELECT * FROM ?? WHERE `cid` = ? and `times` = ? and usite != 0';
             const sqlParam = [this.tableName, cid, times];
             return await this.db.query(sql, sqlParam);
         }

+ 2 - 0
app/view/report/index.ejs

@@ -399,6 +399,8 @@
     const DETAIL_ID = <%- detail_id %>;
     const BUDGET_ID = <%- budget_id %>;
     const CHNAGE_ID = '<%- changeId %>';
+    const CHANGE_TIMES = <%- change_times %>;
+    const BUSINESS_ID = '<%- businessId %>';
     const SP_ID = '<%- sp_id %>';
     const SOURCE_TYPE = <%- source_type %>;
     const ALL_CHANGES = <%- changes %>;