Pārlūkot izejas kodu

Merge branch 'master' of http://192.168.1.41:3000/maixinrong/Calculation

MaiXinRong 5 gadi atpakaļ
vecāks
revīzija
f5b795978b

+ 11 - 7
app/controller/report_controller.js

@@ -74,9 +74,11 @@ module.exports = app => {
                 // console.log(cnt + ' 完成!');
 
                 // console.log(maxStageAmt[0].maxAmt);
+                // 备注:在报表界面初始化的时候,暂时不需要check stage,只有在点中某张表的时候才需要(签名交互需要)
                 // if ((stage === null || stage === undefined) && stageList.length > 0) {
                 //     await ctx.service.stage.checkStage(stageList[stageList.length - 1].id);
                 //     stage = ctx.stage;
+                //     console.log(stage);
                 // }
                 if (stage !== null && stage !== undefined) {
                     stage_id = stage.id;
@@ -169,7 +171,7 @@ module.exports = app => {
             const pageRst = await getAllPagesCommon(ctx, rptTpl, params, JV.PAGING_OPTION_NORMAL, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir, customSelect);
             // 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); // 新需求中,允许在非审核状态下设置签名
+            const roleRel = await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id, params.stage_id); // 新需求中,允许在非审核状态下设置签名
             const stgAudit = await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times);
             // console.log('after role stage!');
             // console.log(roleRel);
@@ -249,7 +251,7 @@ module.exports = app => {
             // 原则说明:把所有报表模板集中获取,统一filter,只读一次数据!
             const params = JSON.parse(ctx.request.body.params);
             const pageRstArr = await getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir);
-            const roleRel = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids)) : [];
+            const roleRel = (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)) : [];
             roleRel.sort(function(rr1, rr2) {
                 return params.rpt_ids.indexOf(parseInt(rr1.rpt_id)) - params.rpt_ids.indexOf(parseInt(rr2.rpt_id));
@@ -279,7 +281,7 @@ module.exports = app => {
                     );
                 });
             }
-            const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids)) : [];
+            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, this.app.baseDir);
             await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
@@ -317,7 +319,7 @@ module.exports = app => {
                     );
                 });
             }
-            const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids)) : [];
+            const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : [];
             const pageRstArr = await getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir);
             await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
             const runnableRst = [];
@@ -429,7 +431,8 @@ async function checkStg(ctx, params) {
         }
     }
 }
-/*async function getReportData(ctx, params, filters, memFieldKeys) {
+/*
+async function getReportData(ctx, params, filters, memFieldKeys) {
     const rst = {};
     const runnableRst = [];
     const runnableKey = []; // 这个配合runnableRst用,未来考虑并行查询优化
@@ -530,7 +533,8 @@ async function checkStg(ctx, params) {
         }
     }
     return rst;
-}*/
+}
+*/
 
 async function getAllPagesCommon(ctx, rptTpl, params, option, outputType, baseDir, customSelect) {
     const rptDataUtil = new rptDataExtractor();
@@ -538,7 +542,7 @@ async function getAllPagesCommon(ctx, rptTpl, params, option, outputType, baseDi
     const filter = rptDataUtil.getDataRequestFilter();
     // console.log(filter.tables);
     const rawDataObj = await ctx.service.report.getReportData(params, filter.tables, filter.memFieldKeys);
-    await ctx.helper.saveBufferFile(JSON.stringify(rawDataObj,"","\t"), ctx.app.baseDir + '/mem.json');
+    await ctx.helper.saveBufferFile(JSON.stringify(rawDataObj, "", "\t"), ctx.app.baseDir + '/mem.json');
     // console.log(rawDataObj);
     try {
         const printCom = JpcEx.createNew();

+ 1 - 1
app/controller/signature_controller.js

@@ -47,7 +47,7 @@ module.exports = app => {
         async updateRoleRel(ctx) {
             const params = JSON.parse(ctx.request.body.params);
             // console.log(params);
-            const rst = await ctx.service.roleRptRel.updateRoleRelationship(params.id, params.tender_id, params.rpt_id, params.rel_content);
+            const rst = await ctx.service.roleRptRel.updateRoleRelationship(params.id, params.tender_id, params.rpt_id, params.stage_id, params.rel_content);
             // console.log(rst);
             ctx.body = { data: rst };
             // ctx.body = { data: { msg: 'test the network' } };

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

@@ -290,10 +290,11 @@ let zTreeOprObj = {
             function(result){
                 // hintBox.unWaitBox();
                 let pageRst = result.data;
+                STAGE_AUDIT = result.stageAudit;
+                STAGE_FLOW = result.stageFlow;
                 if (result.signatureRelInfo && result.signatureRelInfo.length > 0) {
                     CURRENT_ROLE_REL_ID = result.signatureRelInfo[0].id;
                     ROLE_REL_LIST = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
-                    STAGE_AUDIT = result.stageAudit;
                     rptSignatureHelper.originalRoleRelList = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
                     if (current_stage_status === 3) {
                         rptSignatureHelper.mergeSignDate(pageRst, ROLE_REL_LIST);

+ 20 - 3
app/public/report/js/rpt_signature.js

@@ -153,7 +153,7 @@ let rptSignatureHelper = {
                 ROLE_REL_LIST.push(roleRelObj);
             }
             // elementsStrArr.push('');
-            rptSignatureHelper.pushDatePickerDom(elementsStrArr);
+            rptSignatureHelper.pushDatePickerDom(elementsStrArr, userAcc.id);
             $(rptSignatureHelper.currentSelectedESignAccDom).append(elementsStrArr.join(' '));
             //.appendChild(pNode);
             //*/
@@ -272,12 +272,28 @@ let rptSignatureHelper = {
             '</small></span><a onclick="rptSignatureHelper.removeSignature(this)" class="text-danger"><i class="fa fa-remove" title="移除签名"></i></a></p>');
         // rptSignatureHelper.pushDatePickerDom(elementsStrArr);
     },
-    pushDatePickerDom: function (elementsStrArr) {
+    pushDatePickerDom: function (elementsStrArr, userAccId) {
         let idSuffixStr = 'dtp_' + rptSignatureHelper.currentSelectedESignAccName;
         elementsStrArr.push('<div class="">');
         // 日期控件存在页面高度不过高无法选中bug,先不用
         // elementsStrArr.push('<input id="' + idSuffixStr + '" class="datepicker-here form-control form-control-sm mt-0" placeholder="选择签名日期" data-language="zh" data-position="right bottom" type="text" readonly="true"');
-        elementsStrArr.push('<input id="' + idSuffixStr + '" class="form-control form-control-sm mt-0" placeholder="选择签名日期" type="date"');
+        let dftDate = '';
+        if (STAGE_AUDIT && STAGE_AUDIT.length > 0) {
+            for (const stga of STAGE_AUDIT) {
+                if (stga.aid === userAccId) {
+                    if (stga.end_time && stga.end_time !== '' && stga.end_time.length > 20) {
+                        // let dt = new Date(stga.end_time);
+                        dftDate = (new Date(stga.end_time)).Format('yyyy-MM-dd');
+                    }
+                    break;
+                }
+            }
+        }
+        if (dftDate !== '') {
+            elementsStrArr.push('<input id="' + idSuffixStr + '" class="form-control form-control-sm mt-0" placeholder="选择签名日期" type="date" value="' + dftDate + '"');
+        } else {
+            elementsStrArr.push('<input id="' + idSuffixStr + '" class="form-control form-control-sm mt-0" placeholder="选择签名日期" type="date"');
+        }
         elementsStrArr.push('</div>');
     },
     removeSignature: function (dom) {
@@ -401,6 +417,7 @@ let rptSignatureHelper = {
         const params = {};
         params.id = CURRENT_ROLE_REL_ID;
         params.tender_id = TENDER_ID;
+        params.stage_id = getStageId();
         params.rpt_id = zTreeOprObj.currentNode.refId;
         params.rel_content = ROLE_REL_LIST;
         // rptSignatureHelper.originalRoleRelList = [];

+ 10 - 5
app/service/role_rpt_rel.js

@@ -46,7 +46,7 @@ module.exports = app => {
             return list;
         }
 
-        async getRoleRptRelByDetailIds(tenderId, rptId) {
+        async getRoleRptRelByDetailIds(tenderId, rptId, sid) {
             this.initSqlBuilder();
             this.sqlBuilder.setAndWhere('tender_id', {
                 value: tenderId,
@@ -63,19 +63,24 @@ module.exports = app => {
                     operate: '=',
                 });
             }
+            this.sqlBuilder.setAndWhere('sid', {
+                value: sid,
+                operate: '=',
+            });
             this.sqlBuilder.columns = ['id', 'tender_id', 'rpt_id', 'rel_content'];
             const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
             const list = await this.db.query(sql, sqlParam);
             return list;
         }
 
-        async createRoleRelationship(tender_id, rpt_id, relArr) {
+        async createRoleRelationship(tender_id, rpt_id, sid, relArr) {
             let rst = null;
             this.transaction = await this.db.beginTransaction();
             try {
                 const data = {
                     tender_id: tender_id,
                     rpt_id: rpt_id,
+                    sid: sid,
                     rel_content: JSON.stringify(relArr),
                 };
                 rst = await this.transaction.insert(this.tableName, data);
@@ -88,14 +93,14 @@ module.exports = app => {
             return rst;
         }
 
-        async updateRoleRelationship(id, tender_id, rpt_id, relArr) {
+        async updateRoleRelationship(id, tender_id, rpt_id, sid, relArr) {
             let rst = null;
             if (id < 0) {
-                rst = this.createRoleRelationship(tender_id, rpt_id, relArr);
+                rst = this.createRoleRelationship(tender_id, rpt_id, sid, relArr);
             } else {
                 this.transaction = await this.db.beginTransaction();
                 try {
-                    const data = { id: id, tender_id: tender_id, rpt_id: rpt_id, rel_content: JSON.stringify(relArr) };
+                    const data = { id: id, tender_id: tender_id, rpt_id: rpt_id, sid: sid, rel_content: JSON.stringify(relArr) };
                     rst = await this.transaction.update(this.tableName, data);
                     this.transaction.commit();
                 } catch (ex) {

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

@@ -219,6 +219,7 @@
     let USED_LIST = <%- used_list %>;
     const STAGE_STATUS = <%- stg_status %>;
     let STAGE_AUDIT = [];
+    let STAGE_FLOW = [];
     let ROLE_REL_LIST = [];
     let CURRENT_ROLE_REL_ID = -1;
     let current_stage_order = -1;