Pārlūkot izejas kodu

1. 普通流水表的分组保存extract问题 + code sync

TonyKang 7 gadi atpakaļ
vecāks
revīzija
788276a5ab

+ 9 - 3
modules/reports/rpt_component/jpc_flow_tab.js

@@ -107,10 +107,16 @@ JpcFlowTabSrv.prototype.createNew = function(){
                     if (couldBreak) break;
                 } else {
                     //备注: 在有group的情况下,如果grpPageInfo[JV.PROP_SEG_GRP_IDX] 范围大于 grpSequenceInfo.length,则表示已经到最后了,不要再加空白数据了
+                    //      !!!但这是在有ex数据的情况下!!!
                     if (grpPageInfo[JV.PROP_SEG_GRP_IDX] < grpSequenceInfo.length) {
                         if (private_normal_add_rec(vi)) break;
                     } else {
-                        break;
+                        //还得判断是否是普通的流水数据情况,这里可以用isFollow来进行判断,暂时不需要特意加新参数(以后如isFollow的意义有变化则需要调整)
+                        if (!isFollow) {
+                            if (private_normal_add_rec(vi)) break;
+                        } else {
+                            break;
+                        }
                     }
                 }
             } else {
@@ -197,7 +203,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
                 }
                 let sumV = 0;
                 for (let si = preGrpIdx; si <= nexGrpIdx; si++) {
-                    sumV += JpcFieldHelper.getValue(data_field, segDataIdx[si]);
+                    sumV += parseFloat(JpcFieldHelper.getValue(data_field, segDataIdx[si]));
                 }
                 // me.group_sum_values[segIdx][j].push(sumV);
                 me.group_sum_values[segIdx][me.group_sum_fields[j][JV.PROP_SUM_KEY]].push(sumV);
@@ -587,7 +593,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
                             }
                             //add page info
                             pageStatus[JV.STATUS_SEGMENT_END] = true;
-                            pageStatus[JV.STATUS_REPORT_END] = true;
+                            pageStatus[JV.STATUS_REPORT_END] = (segIdx === me.segments.length - 1);
                             private_addPage(segIdx, grpSeqInfo, false, false, -1);
                         } else {
                             private_addPage(segIdx, grpSeqInfo, false, false, -1);

+ 13 - 1
modules/reports/util/rpt_construct_data_util.js

@@ -1029,6 +1029,7 @@ function ext_getPropety(propKey) {
         for (let dItem of getActDataArr(dtObj)) {
             let doc = (dItem._doc === null || dItem._doc === undefined)?dItem:dItem._doc;
             if (propKey instanceof Array) {
+                //备注:这里的key数组表示取value的优先级
                 for (let pi = 0; pi < propKey.length; pi++) {
                     if (doc.hasOwnProperty("property")) {
                         if (doc["property"].hasOwnProperty(propKey[pi])) {
@@ -1038,6 +1039,16 @@ function ext_getPropety(propKey) {
                     } else if (doc.hasOwnProperty(propKey[pi])) {
                         rst.push(doc[propKey[pi]]);
                         break;
+                    } else {
+                        let lenBefore = rst.length;
+                        getDeepProperty(propKey[pi], doc, rst);
+                        if (rst.length === (lenBefore + 1)) {
+                            if (rst[lenBefore] !== null && rst[lenBefore] !== undefined && rst[lenBefore] !== "") {
+                                break;
+                            } else {
+                                rst.splice(-1, 1); //删除末尾一条数据,给后面留空间
+                            }
+                        }
                     }
                     if (pi === propKey.length - 1) rst.push('');
                 }
@@ -1047,7 +1058,8 @@ function ext_getPropety(propKey) {
                 } else if (doc.hasOwnProperty(propKey)) {
                     rst.push(doc[propKey]);
                 } else {
-                    rst.push('');
+                    // rst.push('');
+                    getDeepProperty(propKey, doc, rst);
                 }
             }
         }

+ 3 - 2
web/maintain/report/js/rpt_tpl_data_map.js

@@ -657,7 +657,8 @@ let dataInfoMapTreeOprObj = {
                     let newSegSum = me.private_extract_sum_info(node);
                     rptTpl[JV.NODE_FLOW_INFO][JV.NODE_FLOW_PAGE_SUM] = newSegSum;
                 } else if (node[JV.PROP_NAME] === JV.NODE_FLOW_GROUP) {
-                    //
+                    let grpInfo = me.private_extract_grp_info(node);
+                    rptTpl[JV.NODE_FLOW_INFO][JV.NODE_FLOW_GROUP] = grpInfo;
                 }
             }
         }
@@ -708,7 +709,7 @@ let dataInfoMapTreeOprObj = {
                                     rst[JV.PROP_SUM_FIELDS].push({"FieldID": gf[JV.PROP_FIELD_ID], "SumKey": gf[JV.PROP_NAME]});
                                 }
                                 let item = {};
-                                rst[JV.PROP_SUM_FIELDS].push(item);
+                                // rst[JV.PROP_SUM_FIELDS].push(item);
                                 me.private_copy_field_properties(gf, item);
                                 item[JV.PROP_SUM_KEY] = gf[JV.PROP_NAME];
                                 grpLine[JV.PROP_GROUP_SUM_KEYS].push(item);