Просмотр исходного кода

变更申请,变更方案,变更立项,批量设置过滤当前

MaiXinRong 10 месяцев назад
Родитель
Сommit
a0e5fb268e

+ 1 - 0
app/controller/report_controller.js

@@ -756,6 +756,7 @@ module.exports = app => {
                     default:
                         break;
                 }
+                otherChangeList = otherChangeList.filter(x => { return x.id != bglObj.BUSINESS_ID });
                 let archiveList = [];
                 const archives = await ctx.service.rptArchive.getArchiveByBzId(pid, stage_id, bglObj.BUSINESS_ID);
                 if (archives.length > 0) {

+ 1 - 5
app/controller/signature_controller.js

@@ -121,16 +121,12 @@ module.exports = app => {
             const roleRel = params.rel_content;
             const bzId = params.business_id;
             const srcKey = sourceTypeConst.sourceTypeKey[params.source_type];
-            console.log('before:');
-            console.log(params.rel_content);
             await ctx.service.roleRptRel.updateRoleRelationship(params.id, params.tender_id, params.rpt_id, params.stage_id, bzId, srcKey, params.rel_content); // 传过来的数据是额外变更令的,还需要单独处理当前的
             // update完默认当前的变更令后要清理审核日期(其他变更令的审核日期肯定会有出入的)
             params.rel_content.forEach(role_rel => {
                 role_rel.sign_date = null;
             });
-            console.log('after:');
-            console.log(params.rel_content);
-            const rst = await ctx.service.roleRptRel.updateMultiOtherRoleRelationship(conParams, srcKey, roleRel);
+            const rst = await ctx.service.roleRptRel.updateMultiOtherRoleRelationship(conParams, roleRel);
             ctx.body = { data: rst };
             ctx.status = 201;
         }

+ 1 - 1
app/public/report/js/rpt_signature.js

@@ -552,7 +552,7 @@ let rptSignatureHelper = {
         await this._commonRefreshAfterSelectSignature(signatureDivId);
         const params = this._getCommonParams();
         params.stg_id = STAGE_ID;
-        params.select = selectedOther;
+        params.selected = selectedOther;
         const new_ROLE_REL_LIST = JSON.parse(JSON.stringify(ROLE_REL_LIST));
         new_ROLE_REL_LIST.forEach(nrole => {
             nrole.sign_pic = null;

+ 6 - 6
app/service/role_rpt_rel.js

@@ -133,9 +133,9 @@ module.exports = app => {
             return rst;
         }
 
-        async createRoleRela(transaction, data, content) {
+        async createRoleRelaOther(transaction, data, content) {
             const insertData = JSON.parse(JSON.stringify(data));
-            insertData.business_type = rptArchiveConst.getBusinessType(sid);
+            insertData.business_type = rptArchiveConst.getBusinessType(data.sid);
             insertData.rel_content = JSON.stringify(content);
             if (transaction) {
                 await transaction.insert(this.tableName, insertData);
@@ -243,16 +243,16 @@ module.exports = app => {
         async updateMultiOtherRoleRelationship(orgParams, newRelArr) {
             const conn = await this.db.beginTransaction();
             try {
-                for (let idx = 0; idx < orgParams.length; idx++) {
-                    const param = orgParams[idx];
+                for (const param of orgParams) {
                     // 变更令的参数结构有些不一样
                     // [tenderId, '-300', changeCid, reportId];
                     const data = { tender_id: param[0], sid: param[1], business_id: param[2], rpt_id: param[3] };
                     await conn.delete(this.tableName, data);
-                    await this.createRoleRela(conn, data, newRelArr);
+                    await this.createRoleRelaOther(conn, data, newRelArr);
                 }
                 await conn.commit();
-            } catch (ex) {
+            } catch (err) {
+                this.ctx.log(err);
                 await conn.rollback();
             }
             return true;

+ 16 - 1
app/view/report/rpt_all_popup.ejs

@@ -1025,7 +1025,7 @@
         const report_id = zTreeOprObj.currentNode.refId;
         for (const s of source) {
             if (s[keyField] !== BUSINESS_ID && s.status === 3) {
-                domStrs.push(`<tr><td>${s.code}</td><td>${s.name}</td><td><input type="checkbox" onclick="amendChange(this, SELECTED_OTHER, TENDER_ID, '${s[keyField]}', ${report_id})"></td></tr>`);
+                domStrs.push(`<tr><td>${s.code}</td><td>${s.name}</td><td><input type="checkbox" onclick="amendOther(this, SELECTED_OTHER, TENDER_ID, '${s[keyField]}', ${report_id})"></td></tr>`);
             }
         }
         domStrs.push('</tbody>');
@@ -1204,6 +1204,21 @@
         }
     }
 
+    function amendOther(dom, rstArr, tenderId, changeCid, reportId) {
+        if (dom.checked) {
+            let item = [tenderId, STAGE_ID, changeCid, reportId];
+            rstArr.push(item);
+        } else {
+            for (let idx = rstArr.length - 1; idx >= 0; idx--) {
+                if (rstArr[idx][2] === changeCid) {
+                    rstArr.splice(idx, 1); // 删除变更令选择(这里变更令cid一定是唯一的)
+                    //这里不break,防止一些冗余数据
+                }
+            }
+        }
+    }
+
+
     function changeCrossTender(dom, rstArr, tenderId, stageId, reportId) {
         if (dom.checked) {
             let item = [tenderId, stageId, reportId];