Browse Source

变更签名数据细化处理

Tony Kang 1 year ago
parent
commit
e63a40ca99

+ 3 - 6
app/controller/report_controller.js

@@ -900,8 +900,7 @@ module.exports = app => {
                 }
             }
             // console.log(pageRst);
-            // const roleRel = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id)) : [];
-            const roleRel = await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id, params.stage_id); // 新需求中,允许在非审核状态下设置签名
+            const roleRel = await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id, params.stage_id, params.business_id); // 新需求中,允许在非审核状态下设置签名
 
             let stgAudit = null,
                 stgAuditForOrg = null,
@@ -1076,7 +1075,7 @@ module.exports = app => {
                 }
             }
 
-            const roleRel = 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, params.business_id); // 新需求:在审批流程中的签名需要显示
             roleRel.sort(function(rr1, rr2) {
                 return params.rpt_ids.indexOf(parseInt(rr1.rpt_id)) - params.rpt_ids.indexOf(parseInt(rr2.rpt_id));
             });
@@ -1132,9 +1131,7 @@ module.exports = app => {
             // const stageList = (params.stage_status === 3) ? (await ctx.service.stage.getValidStagesShort(params.tender_id)) : [];
             const stageList = await ctx.service.stage.getValidStagesShort(params.tender_id);
 
-            const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : [];
-            // const roleRel = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id)) : [];
-            // const pageRstArr = await getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, baseDir);
+            const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id, params.business_id)) : [];
             const pageRstArr = await ctx.service.jpcReport.getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, baseDir);
             // console.log('params.stage_status: ' + params.stage_status);
             // fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/testBuiltPageResult1.js');

+ 3 - 5
app/controller/signature_controller.js

@@ -31,12 +31,10 @@ module.exports = app => {
          * @return {void}
          */
         async createRoleRel(ctx) {
+            // 这个好像已经没有调用了
             const params = JSON.parse(ctx.request.body.params);
-            // console.log(params);
-            const rst = await ctx.service.roleRptRel.createRoleRelationship(params.tender_id, params.rpt_id, params.rel_content);
-            // console.log(rst);
+            const rst = await ctx.service.roleRptRel.createRoleRelationship(params.tender_id, params.rpt_id, params.sid, params.business_id, '', params.rel_content);
             ctx.body = { data: rst };
-            // ctx.body = { data: { msg: 'test the network' } };
             ctx.status = 201;
         }
 
@@ -52,7 +50,7 @@ module.exports = app => {
             const bzId = params.business_id;
             const srcKey = sourceTypeConst.sourceTypeKey[params.source_type];
             const rst = await ctx.service.roleRptRel.updateRoleRelationship(params.id, params.tender_id, params.rpt_id, params.stage_id, bzId, srcKey, params.rel_content);
-            const roleRel = await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_id, params.stage_id);
+            const roleRel = await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_id, params.stage_id, bzId);
             // const roleRel = params.rel_content;
             await encodeSignatureDataUri(roleRel, this.app.baseDir);
             // console.log(rst);

+ 3 - 0
app/public/report/js/rpt_main.js

@@ -327,6 +327,7 @@ let zTreeOprObj = {
             params.custCfg = CUST_CFG;
             params.detail_id = DETAIL_ID;
             params.change_id = CHNAGE_ID;
+            params.business_id = BUSINESS_ID;
             params.change_times = CHANGE_TIMES;
             params.change_plan_id = CHNAGE_PLAN_ID;
             params.change_project_id = CHNAGE_PROJECT_ID;
@@ -417,6 +418,7 @@ let zTreeOprObj = {
             params.isTextSignature = getTxtSignature();
             params.detail_id = DETAIL_ID;
             params.change_id = CHNAGE_ID;
+            params.business_id = BUSINESS_ID;
             params.change_times = CHANGE_TIMES;
             params.change_plan_id = CHNAGE_PLAN_ID;
             params.change_project_id = CHNAGE_PROJECT_ID;
@@ -746,6 +748,7 @@ let rptControlObj = {
         rst.isTextSignature = getTxtSignature();
         rst.detail_id = DETAIL_ID;
         rst.change_id = CHNAGE_ID;
+        rst.business_id = BUSINESS_ID;
         rst.change_times = CHANGE_TIMES;
         rst.change_plan_id = CHNAGE_PLAN_ID;
         rst.change_project_id = CHNAGE_PROJECT_ID;

+ 1 - 0
app/public/report/js/rpt_move_signature.js

@@ -105,6 +105,7 @@ class MoveSignatureTool {
         params.tender_id = TENDER_ID;
         params.stage_id = getStageId();
         params.rpt_id = zTreeOprObj.currentNode.refId;
+        params.business_id = BUSINESS_ID;
         // params.rel_content = ROLE_REL_LIST;
         params.rel_content = [];
         ROLE_REL_LIST.forEach((role) => {

+ 24 - 6
app/service/role_rpt_rel.js

@@ -75,7 +75,7 @@ module.exports = app => {
             return rst;
         }
 
-        async getRoleRptRelByDetailIds(tenderId, rptId, sid) {
+        async getRoleRptRelByDetailIds(tenderId, rptId, sid, bzId = '-1') {
             this.initSqlBuilder();
             this.sqlBuilder.setAndWhere('tender_id', {
                 value: tenderId,
@@ -86,7 +86,7 @@ module.exports = app => {
                     value: rptId,
                     operate: 'in',
                 });
-            } else {
+            } else if (rptId !== '-1' && rptId !== null && rptId !== '') {
                 this.sqlBuilder.setAndWhere('rpt_id', {
                     value: rptId,
                     operate: '=',
@@ -96,11 +96,14 @@ module.exports = app => {
                 value: sid,
                 operate: '=',
             });
-            this.sqlBuilder.columns = ['id', 'tender_id', 'rpt_id', 'sid', 'rel_content'];
+            if (bzId !== '-1' && bzId !== null && bzId !== '') {
+                this.sqlBuilder.setAndWhere('business_id', {
+                    value: `"${bzId}"`,
+                    operate: '=',
+                });
+            }
+            this.sqlBuilder.columns = ['id', 'tender_id', 'rpt_id', 'sid', 'business_id', 'rel_content'];
             const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
-            // console.log(sql);
-            // console.log(this.tableName);
-            // console.log(sqlParam);
             const list = await this.db.query(sql, sqlParam);
             // console.log(list);
             return list;
@@ -130,6 +133,21 @@ module.exports = app => {
             return rst;
         }
 
+        async createRoleRelationshipFromOtherBz(tender_id, sid, currentBzId, preBzId) {
+            // 此方法适合变更令相关业务
+            if (preBzId && currentBzId) {
+                const preRst = await this.getRoleRptRelByDetailIds(tender_id, '-1', sid, '', preBzId);
+                if (preRst.length > 0) {
+                    preRst.forEach(async role => {
+                        const curRst = await this.getRoleRptRelByDetailIds(tender_id, role.rpt_id, sid, '', currentBzId);
+                        if (curRst.length === 0) {
+                            await this.createRoleRelationship(tender_id, role.rpt_id, sid, currentBzId, '', JSON.parse(role.rel_content));
+                        }
+                    });
+                }
+            }
+        }
+
         async addInitialStageData(tender_id, stage, preStage) {
             // 在加stage的时候需要挂上这个,copy之前的签名人
             const rst = [];