소스 검색

TASK #2493 + 02表组成物提取逻辑调整 code sync

TonyKang 6 년 전
부모
커밋
4e9dfb1c8a

+ 47 - 16
modules/reports/rpt_component/jpc_cross_tab.js

@@ -306,32 +306,63 @@ JpcCrossTabSrv.prototype.createNew = function(){
                 if (hasAdHocRow) rowSplitCnt++;
                 if (hasAdHocCol) colSplitCnt++;
                 //2.2
-                for (let colIdx = 0; colIdx < colSplitCnt; colIdx++) {
-                    pageStatus[JV.STATUS_CROSS_COL_END] = (colIdx === (colSplitCnt - 1));
-                    private_resetBandArea();
-                    counterColRec = orgMaxColRec * colIdx;
-                    let currentSortedContentSequence = me.sortedContentSequence;
-                    let currentSortedColSequence = me.sortedColSequence;
-                    if (hasAdHocCol && colIdx === (colSplitCnt - 1)) {
-                        currentSortedColSequence = null;
-                        currentSortedContentSequence = null;
-                        counterColRec = 0;
-                    }
+                if (rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_CROSS_DISPLAY_ORDER] === JV.PAGE_ORIENTATION_H_FIRST) {
                     for (let rowIdx = 0; rowIdx < rowSplitCnt; rowIdx++) {
                         pageStatus[JV.STATUS_CROSS_ROW_END] = (rowIdx === (rowSplitCnt - 1));
                         private_resetBandArea();
-                        me.pageStatusLst.push(pageStatus.slice(0));
-                        pageIdx++;
                         counterRowRec = orgMaxRowRec * rowIdx;
                         let currentSortedRowSequence = me.sortedRowSequence;
+                        let currentSortedContentSequence = me.sortedContentSequence;
                         if (hasAdHocRow && rowIdx === (rowSplitCnt - 1)) {
                             currentSortedRowSequence = null;
                             currentSortedContentSequence = null;
                             counterRowRec = 0;
                         }
-                        private_addTabValue(me.dispValueIdxLst_Row, currentSortedRowSequence, segIdx, counterRowRec, maxRowRec, me.dispSerialIdxLst_Row, me.col_sum_fields_value_total, me.dispSumValueLst_Col);
-                        private_addTabValue(me.dispValueIdxLst_Col, currentSortedColSequence, segIdx, counterColRec, maxColRec, null, null, null);
-                        private_addContentValue(me.dispValueIdxLst_Content, currentSortedContentSequence, segIdx, counterRowRec, maxRowRec, counterColRec, maxColRec, me.page_seg_map, pageIdx);
+                        for (let colIdx = 0; colIdx < colSplitCnt; colIdx++) {
+                            pageStatus[JV.STATUS_CROSS_COL_END] = (colIdx === (colSplitCnt - 1));
+                            private_resetBandArea();
+                            counterColRec = orgMaxColRec * colIdx;
+                            let currentSortedColSequence = me.sortedColSequence;
+                            if (hasAdHocCol && colIdx === (colSplitCnt - 1)) {
+                                currentSortedColSequence = null;
+                                currentSortedContentSequence = null;
+                                counterColRec = 0;
+                            }
+                            me.pageStatusLst.push(pageStatus.slice(0));
+                            pageIdx++;
+                            private_addTabValue(me.dispValueIdxLst_Row, currentSortedRowSequence, segIdx, counterRowRec, maxRowRec, me.dispSerialIdxLst_Row, me.col_sum_fields_value_total, me.dispSumValueLst_Col);
+                            private_addTabValue(me.dispValueIdxLst_Col, currentSortedColSequence, segIdx, counterColRec, maxColRec, null, null, null);
+                            private_addContentValue(me.dispValueIdxLst_Content, currentSortedContentSequence, segIdx, counterRowRec, maxRowRec, counterColRec, maxColRec, me.page_seg_map, pageIdx);
+                        }
+                    }
+                } else {
+                    for (let colIdx = 0; colIdx < colSplitCnt; colIdx++) {
+                        pageStatus[JV.STATUS_CROSS_COL_END] = (colIdx === (colSplitCnt - 1));
+                        private_resetBandArea();
+                        counterColRec = orgMaxColRec * colIdx;
+                        let currentSortedContentSequence = me.sortedContentSequence;
+                        let currentSortedColSequence = me.sortedColSequence;
+                        if (hasAdHocCol && colIdx === (colSplitCnt - 1)) {
+                            currentSortedColSequence = null;
+                            currentSortedContentSequence = null;
+                            counterColRec = 0;
+                        }
+                        for (let rowIdx = 0; rowIdx < rowSplitCnt; rowIdx++) {
+                            pageStatus[JV.STATUS_CROSS_ROW_END] = (rowIdx === (rowSplitCnt - 1));
+                            private_resetBandArea();
+                            me.pageStatusLst.push(pageStatus.slice(0));
+                            pageIdx++;
+                            counterRowRec = orgMaxRowRec * rowIdx;
+                            let currentSortedRowSequence = me.sortedRowSequence;
+                            if (hasAdHocRow && rowIdx === (rowSplitCnt - 1)) {
+                                currentSortedRowSequence = null;
+                                currentSortedContentSequence = null;
+                                counterRowRec = 0;
+                            }
+                            private_addTabValue(me.dispValueIdxLst_Row, currentSortedRowSequence, segIdx, counterRowRec, maxRowRec, me.dispSerialIdxLst_Row, me.col_sum_fields_value_total, me.dispSumValueLst_Col);
+                            private_addTabValue(me.dispValueIdxLst_Col, currentSortedColSequence, segIdx, counterColRec, maxColRec, null, null, null);
+                            private_addContentValue(me.dispValueIdxLst_Content, currentSortedContentSequence, segIdx, counterRowRec, maxRowRec, counterColRec, maxColRec, me.page_seg_map, pageIdx);
+                        }
                     }
                 }
                 JpcCrossTabHelper.initialPageStatus(pageStatus);

+ 2 - 2
modules/reports/util/rpt_yanghu_data_util.js

@@ -875,7 +875,7 @@ function moveRationData(rationData, rawDataObj) {
         for (let rationGljItem of getActDataArr(rationGljData)) {
             for (let prjGljItem of prjGljData.data.gljList) {
                 if (prjGljItem.id === rationGljItem.projectGLJID) {
-                    if (prjGljItem.ratio_data && prjGljItem.ratio_data.length > 0) {
+                    if (prjGljItem.ratio_data && prjGljItem.ratio_data.length > 0 && !gljUtil.isConcreteType(prjGljItem.type)) {
                         //有组成物
                         for (let comItem of prjGljItem.ratio_data) {
                             let copyItem = {};
@@ -883,7 +883,7 @@ function moveRationData(rationData, rawDataObj) {
                             copyItem.projectID = rationGljItem.projectID;
                             copyItem.rationID = rationGljItem.rationID;
                             // copyItem.rationItemQuantity = rationGljItem.quantity;
-                            copyItem.quantity = prjGljItem.quantity * comItem.consumption;
+                            copyItem.quantity = parseFloat(rationGljItem.quantity) * parseFloat(comItem.consumption);
                             copyItem.name = comItem.name;
                             copyItem.code = comItem.code;
                             copyItem.unit = comItem.unit;

+ 1 - 0
public/web/rpt_value_define.js

@@ -134,6 +134,7 @@ const JV = {
     PROP_FLOW_FIELDS: "flow_field_s",
     PROP_BILL_FIELDS: "bill_field_s",
     PROP_CROSS_FIELDS: "cross_field_s",
+    PROP_CROSS_DISPLAY_ORDER: "cross_display_order",
     PROP_GROUP_FIELDS: "group_field_s", //用来分组的指标(如按清单、定额etc...)
     PROP_GROUP_LINES: "group_lines",    //显示分组行,因分组的特殊性,分组的数据当成流水数据一样(行高相同),group_lines里的每一条数据占用流水的一整行,里面再细分(指标/text)
     PROP_GROUP_SUM_KEYS: "SumKey_S",

+ 7 - 3
web/maintain/report/html/rpt_tpl_dtl_info.html

@@ -8,18 +8,22 @@
             <div class="form-group">
                 <label>页面</label>
                 <div class="row">
-                    <div class="input-group col-4">
+                    <div class="input-group col-2">
                         <div class="input-group-addon">方向</div>
                         <select class="form-control input-sm" id="rptTplPageOrientation"><option>横向</option><option>竖向</option></select>
                     </div>
-                    <div class="input-group col-4">
+                    <div class="input-group col-2">
                         <div class="input-group-addon">纸张</div>
                         <select class="form-control input-sm" id="rptTplPageSize"><option>A3</option><option>A4</option></select>
                     </div>
-                    <div class="input-group col-4">
+                    <div class="input-group col-2">
                         <div class="input-group-addon">单位</div>
                         <select class="form-control input-sm" id="rptTplUnit"><option>厘米</option></select>
                     </div>
+                    <div class="input-group col-4">
+                        <div class="input-group-addon">交叉表显示方向</div>
+                        <select class="form-control input-sm" id="element_cross_display_seq" disabled><option value ="0">纵向优先</option><option value ="1">横向优先</option></select>
+                    </div>
                 </div>
             </div>
             <div class="form-group" id="multiColCnt">

+ 8 - 0
web/maintain/report/js/rpt_tpl_helper.js

@@ -83,6 +83,11 @@ let tplHelper = {
             } else {
                 $("#rptTplPageOrientation")[0].selectedIndex = 0;
             }
+            if (rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_CROSS_DISPLAY_ORDER] === JV.PAGE_ORIENTATION_H_FIRST) {
+                $("#element_cross_display_seq")[0].selectedIndex = 1;
+            } else {
+                $("#element_cross_display_seq")[0].selectedIndex = 0;
+            }
             if (rptTpl[JV.NODE_FLOW_INFO]) {
                 $("#multiColCnt")[0].style.display = "";
                 $("#flow_content_height_div")[0].style.display = "";
@@ -90,14 +95,17 @@ let tplHelper = {
                 $("#element_content_height").get(0).removeAttribute("disabled");
                 $("#element_content_width").get(0).disabled = "disabled" ;
                 $("#rptTplMultiCols")[0].value = rptTpl[JV.NODE_FLOW_INFO][JV.PROP_MULTI_COLUMN];
+                $("#element_cross_display_seq").get(0).disabled = "disabled" ;
             } else if (rptTpl[JV.NODE_CROSS_INFO]) {
                 $("#flow_content_height_div")[0].style.display = "none";
                 $("#cross_row_height_div")[0].style.display = "";
                 $("#multiColCnt")[0].style.display = "none";
                 $("#element_content_width").get(0).removeAttribute("disabled");
                 $("#element_content_height").get(0).disabled = "disabled" ;
+                $("#element_cross_display_seq").get(0).removeAttribute("disabled");
             } else {
                 $("#multiColCnt")[0].style.display = "none";
+                $("#element_cross_display_seq").get(0).disabled = "disabled" ;
             }
             // $("#rptTplMarginLeft")[0].value = rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT];
             // $("#rptTplMarginRight")[0].value = rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT];

+ 1 - 0
web/maintain/report/js/rpt_tpl_main.js

@@ -943,6 +943,7 @@ let zTreeOprObj = {
         if (rptTpl[JV.NODE_FLOW_INFO]) {
             rptTpl[JV.NODE_FLOW_INFO][JV.PROP_MULTI_COLUMN] = parseInt($("#rptTplMultiCols")[0].value);
         }
+        rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_CROSS_DISPLAY_ORDER] = $("#element_cross_display_seq")[0].selectedIndex;
         //考虑到页边距必然跟用户设置走,所以这里没必要特意去设置了,全部下架
     },
     getParentNodeByNodeLevel: function (currentNode, level) {