From 3aa284c96ee83edbdf1d14a324d5e9ca82b6e2c8 Mon Sep 17 00:00:00 2001 From: tangxiaoxuan Date: Wed, 18 Sep 2024 09:53:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E5=AF=B9=E6=AF=94=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=A2=9E=E5=8A=A0=E9=A1=B9=E7=9B=AE=E6=80=BB=E9=A2=9D?= =?UTF-8?q?=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GetBudgetCompareDataListCmd.java | 496 ++++++++++++++++++ .../components/budgeting/BudgetingCompare.js | 340 ++++++++++++ 2 files changed, 836 insertions(+) create mode 100644 src/com/engine/fna/cmd/budgeting/GetBudgetCompareDataListCmd.java create mode 100644 src4js/pc4backstage/fna/components/budgeting/BudgetingCompare.js diff --git a/src/com/engine/fna/cmd/budgeting/GetBudgetCompareDataListCmd.java b/src/com/engine/fna/cmd/budgeting/GetBudgetCompareDataListCmd.java new file mode 100644 index 0000000..a1dd8bd --- /dev/null +++ b/src/com/engine/fna/cmd/budgeting/GetBudgetCompareDataListCmd.java @@ -0,0 +1,496 @@ +/** + * + * Copyright (c) 2001-2018 泛微软件. + * 泛微协同商务系统,版权所有. + * + */ + +package com.engine.fna.cmd.budgeting; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringEscapeUtils; + +import weaver.conn.RecordSet; +import weaver.fna.general.FnaCommon; +import weaver.fna.general.FnaSplitPageTransmethod; +import weaver.fna.maintenance.BudgetfeeTypeComInfo; +import weaver.fna.maintenance.FnaBudgetInfoComInfo; +import weaver.fna.maintenance.FnaSystemSetComInfo; +import weaver.general.BaseBean; +import weaver.general.SplitPageParaBean; +import weaver.general.SplitPageUtil; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.resource.ResourceComInfo; +import weaver.systeminfo.SystemEnv; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import com.engine.fna.entity.RowInfo; + +/** + * @author xuf + * @date 2018-5-23 + * + */ +public class GetBudgetCompareDataListCmd extends AbstractCommonCommand>{ + + /** + * 日志信息 + */ + @Override + public BizLogContext getLogContext() { + return null; + } + + /** + * 构造方法 + * @param params + * @param user + */ + public GetBudgetCompareDataListCmd(Map params, User user){ + this.params = params; + this.user = user; + } + + /** + * Command类方法实现 + * @param commandContext + * @return + */ + @Override + public Map execute(CommandContext commandContext) { + Map datas = new HashMap(); + + List rowInfoList = new ArrayList(); + Map versionFirstMap = new HashMap();//预算总额版本一 + Map versionSecondMap = new HashMap();//预算总额版本二 + Map changeBudgetMap = new HashMap();//变更差额 + + RecordSet rs = new RecordSet(); + + String organizationtype = Util.null2String(params.get("organizationtype"));//组织类型 + String organizationid = Util.null2String(params.get("organizationid"));//组织ID + //String[] historyRevisionArray = params.getValues("historyRevision");//要对比的两个预算版本id + int budgetinfoid_1 = Util.getIntValue(Util.null2String(params.get("budgetinfoid_1")), -1); + int budgetinfoid_2 = Util.getIntValue(Util.null2String(params.get("budgetinfoid_2")), -1); + + String tabFeeperiod = Util.null2String(params.get("tabFeeperiod")).trim();//打开预算周期tab页类型 + if("".equals(tabFeeperiod)){ + tabFeeperiod = "M"; + } + + FnaSystemSetComInfo fnaSystemSetComInfo = new FnaSystemSetComInfo(); + + int budgetperiods = Util.getIntValue(Util.null2String(params.get("budgetperiods")), 0);//预算年度ID,因为不会跨年比较预算版本,所以只需要一个 + //定位 数据库表名 + String tableName_FnaBudgetInfo = "FnaBudgetInfo"; + String tableName_FnaBudgetInfoDetail = "FnaBudgetInfoDetail"; + + //String guid1 = Util.null2String(params.get("guid1")).trim(); + + String nameQuery = Util.null2String(params.get("nameQuery")); + + int qCount = 0; + int feeperiod = 0; + + if("M".equals(tabFeeperiod)){ + qCount = 12; + feeperiod = 1; + }else if("Q".equals(tabFeeperiod)){ + qCount = 4; + feeperiod = 2; + }else if("H".equals(tabFeeperiod)){ + qCount = 2; + feeperiod = 3; + }else if("Y".equals(tabFeeperiod)){ + qCount = 1; + feeperiod = 4; + } + + DecimalFormat df = new DecimalFormat("####################################################0.00"); + FnaSplitPageTransmethod fnaSplitPageTransmethod = new FnaSplitPageTransmethod(); + FnaBudgetInfoComInfo fnaBudgetInfoComInfo = new FnaBudgetInfoComInfo(); + + int revision1 = -1; + int status1 = -1; + double sum_budgetaccount1 = 0.00; + String sql = "select a.revision, a.status, SUM(b.budgetaccount) sum_budgetaccount "+ + " from "+tableName_FnaBudgetInfo+" a "+ + " JOIN "+tableName_FnaBudgetInfoDetail+" b ON a.id = b.budgetinfoid "+ + " where a.id = "+budgetinfoid_1+" "+ + " GROUP BY a.revision, a.status "; + rs.executeSql(sql); + if(rs.next()){ + revision1 = rs.getInt("revision"); + status1 = rs.getInt("status"); + sum_budgetaccount1 = Util.getDoubleValue(df.format(Util.getDoubleValue(rs.getString("sum_budgetaccount"))), 0.00); + } + String revision1Name = "V"+revision1; + if(revision1==0){ + revision1Name=SystemEnv.getHtmlLabelName(220,user.getLanguage());//草稿 + } + if(status1==3){ + revision1Name=SystemEnv.getHtmlLabelName(2242,user.getLanguage());//待审批 + } + + int revision2 = -1; + int status2 = -1; + double sum_budgetaccount2 = 0.00; + sql = "select a.revision, a.status, SUM(b.budgetaccount) sum_budgetaccount "+ + " from "+tableName_FnaBudgetInfo+" a "+ + " JOIN "+tableName_FnaBudgetInfoDetail+" b ON a.id = b.budgetinfoid "+ + " where a.id = "+budgetinfoid_2+" "+ + " GROUP BY a.revision, a.status "; + rs.executeSql(sql); + if(rs.next()){ + revision2 = rs.getInt("revision"); + status2 = rs.getInt("status"); + sum_budgetaccount2 = Util.getDoubleValue(df.format(Util.getDoubleValue(rs.getString("sum_budgetaccount"))), 0.00); + } + String revision2Name = "V"+revision2; + if(revision2==0){ + revision2Name=SystemEnv.getHtmlLabelName(220,user.getLanguage());//草稿 + } + if(status2==3){ + revision2Name=SystemEnv.getHtmlLabelName(2242,user.getLanguage());//待审批 + } + + BudgetfeeTypeComInfo budgetfeeTypeComInfo = new BudgetfeeTypeComInfo(); + + boolean showHiddenSubject = 1==Util.getIntValue(fnaSystemSetComInfo.get_showHiddenSubject()); + boolean subjectFilter = 1==Util.getIntValue(fnaSystemSetComInfo.get_subjectFilter()); + String separator = Util.null2String(fnaSystemSetComInfo.get_separator()); + + if("".equals(separator)){ + separator = "/"; + } + + + int pageIndex = Util.getIntValue(Util.null2String(params.get("pageIndex")), 1); + int pageSize = Util.getIntValue(Util.null2String(params.get("pageSize")), -1); + pageSize = FnaCommon.getAndSaveFnaBudgetInfoPageSize(pageSize, 50, user.getUID()); + + int sqlCondOrgType4ftRul = Util.getIntValue(organizationtype); + int sqlCondOrgId4ftRul = Util.getIntValue(organizationid); + if(Util.getIntValue(organizationtype)==3){//个人预算 + try { + ResourceComInfo rci = new ResourceComInfo(); + sqlCondOrgType4ftRul = 2; + sqlCondOrgId4ftRul = Util.getIntValue(rci.getDepartmentID(organizationid)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + SplitPageParaBean splitPageParaBean = new SplitPageParaBean(); + SplitPageUtil splitPageUtil = new SplitPageUtil(); + + + StringBuffer sql_rs_split = new StringBuffer(); + sql_rs_split.append("select DISTINCT b2.id b2id, b2.name b2name, b2.codeName b2codeName, b2.feelevel b2feelevel, b2.Archive b2Archive, b2.alertvalue b2Alertvalue, b2.isEditFeeType b2IsEditFeeType, b2.displayOrder b2displayOrder, \n"); + sql_rs_split.append(" b3.id b3id, b3.name b3name, b3.codeName b3codeName, b3.feelevel b3feelevel, b3.Archive b3Archive, b3.alertvalue b3Alertvalue, b3.isEditFeeType b3IsEditFeeType, b3.displayOrder b3displayOrder \n"); + sql_rs_split.append(" from Fnabudgetfeetype b2 "); + sql_rs_split.append(" join FnaBudgetfeeType b3 on b2.id = b3.groupCtrlId \n"); + sql_rs_split.append(" where 1=1 \n"); + if(subjectFilter){ + sql_rs_split.append(" and ( \n"+ + " not exists (select 1 from FnabudgetfeetypeRuleSet ftRul \n"+ + " where ftRul.type = "+sqlCondOrgType4ftRul+" and ftRul.mainid = b3.id ) \n"+ + " or \n"+ + " exists (select 1 from FnabudgetfeetypeRuleSet ftRul \n"+ + " where ftRul.type = "+sqlCondOrgType4ftRul+" and ftRul.orgid = "+sqlCondOrgId4ftRul+" and ftRul.mainid = b3.id ) \n"+ + " ) \n"); + } + if(!"".equals(nameQuery)){ + sql_rs_split.append(" and (b3.name like '%"+StringEscapeUtils.escapeSql(nameQuery)+"%') \n"); + } + if(!showHiddenSubject){ + sql_rs_split.append(" and (b3.archive is null or b3.archive=0) "); + } + sql_rs_split.append(" and b3.feeperiod = "+feeperiod+" and b3.isEditFeeType = 1 "); + + String backFields = " t1.* "; + String sqlFrom = " from ("+sql_rs_split.toString()+") t1 "; + String SqlOrderBy = " t1.b2feelevel, t1.b2displayOrder, t1.b2codeName, t1.b2name, t1.b3feelevel, t1.b3displayOrder, t1.b3codeName, t1.b3name "; + String primaryKey = " b3id "; + + splitPageParaBean.setBackFields(backFields); + splitPageParaBean.setSqlFrom(sqlFrom); + splitPageParaBean.setPrimaryKey(primaryKey); + splitPageParaBean.setSqlOrderBy(SqlOrderBy); + splitPageParaBean.setSortWay(splitPageParaBean.ASC); + splitPageParaBean.setDistinct(true); + + splitPageUtil.setSpp(splitPageParaBean); + + List currentPage_isEditFeeTypeIds_list = new ArrayList(); + StringBuffer currentPage_isEditFeeTypeIds = new StringBuffer("-1"); + RecordSet rs_split = splitPageUtil.getCurrentPageRs(pageIndex, pageSize); + while(rs_split.next()){ + int b3id = rs_split.getInt("b3id"); + if(!currentPage_isEditFeeTypeIds_list.contains(b3id+"")){ + currentPage_isEditFeeTypeIds_list.add(b3id+""); + currentPage_isEditFeeTypeIds.append(","+b3id); + } + } + List sqlCond_currentPage_isEditFeeTypeIds_list = FnaCommon.initData1(currentPage_isEditFeeTypeIds_list); + int sqlCond_currentPage_isEditFeeTypeIds_list_len = sqlCond_currentPage_isEditFeeTypeIds_list.size(); + + int rsAllCnt = splitPageUtil.getRecordCount();//currentPageAllB3IdList.size(); + int maxPageIndex = (rsAllCnt / pageSize) + ((rsAllCnt % pageSize)>0?1:0); + if(pageIndex > maxPageIndex){ + pageIndex = maxPageIndex; + } + + + //bb.writeLog("5 FnaBudgetViewData.jsp>>>"+SDF.format(Calendar.getInstance().getTime())); + //得到指定范围内所有三级科目整期预算 + HashMap b3BudgetTypeAmountHm_1 = fnaBudgetInfoComInfo.getBudgetAmountBySubjects_isEditFeeType(budgetinfoid_1, currentPage_isEditFeeTypeIds.toString(), budgetperiods); + HashMap b3BudgetTypeAmountHm_2 = fnaBudgetInfoComInfo.getBudgetAmountBySubjects_isEditFeeType(budgetinfoid_2, currentPage_isEditFeeTypeIds.toString(), budgetperiods); + + List b2id_distinct_list = new ArrayList(); + List b3id_list = new ArrayList(); + StringBuffer sql2 = new StringBuffer(); + sql2.append("select distinct b3.id b3id, b3.feelevel b3feelevel, b3.displayOrder b3displayOrder, b3.codeName b3codeName, b3.name b3name, b3.Archive b3Archive,b3.alertvalue b3Alertvalue, \n"); + sql2.append(" b2.id b2id, b2.feelevel b2feelevel, b2.displayOrder b2displayOrder, b2.codeName b2codeName, b2.name b2name, b2.Archive b2Archive \n"); + sql2.append("from FnaBudgetfeeType b3 \n"); + sql2.append("join FnaBudgetfeeType b2 on b2.id = b3.groupCtrlId \n"); + sql2.append("where b3.feeperiod = "+feeperiod+" "); + sql2.append("and (1=2 \n"); + for(int i=0;i("+SystemEnv.getHtmlLabelName(22151,user.getLanguage())+")";//封存 + }else{ + b2name = budgetfeeTypeComInfo.getSubjectFullName(Util.getIntValues(b2id), separator); + } + + /**统一费控的科目赋值*/ + rowInfo.setGroupctrlId(b2id); + rowInfo.setGroupctrlSubjectName(b2name); + rowInfo.setShowGroupctrl(true); + } + + } + b2id_distinct_list.add(b2id); + + if(b3Archive){ + rowInfo.setArchive(true); + rowInfo.setArchiveHtml("("+SystemEnv.getHtmlLabelName(22151,user.getLanguage())+")");//封存 + } + + //得到某科目整期预算 + Map budgetTypeAmount1 = b3BudgetTypeAmountHm_1.get(b3id); + if(budgetTypeAmount1==null){ + budgetTypeAmount1 = new HashMap(); + } + Map budgetTypeAmount2 = b3BudgetTypeAmountHm_2.get(b3id); + if(budgetTypeAmount2==null){ + budgetTypeAmount2 = new HashMap(); + } + + double _sum_ysze1 = 0.00; + double _sum_ysze2 = 0.00; + String _sum_pro1 = ""; + String _sum_pro2 = ""; + + /**预算总额V1*/ + rowInfo.setSubjectName(b3name); + rowInfo.setVersionFirstName(SystemEnv.getHtmlLabelName(18501,user.getLanguage())+"("+revision1Name+")");//预算总额 V1 + for(int i = 1; i <= qCount; i++){ + //预算总额 + double _ysze1 = Util.getDoubleValue((String)budgetTypeAmount1.get(i+""), 0.00); + //预算总额 + double _ysze2 = Util.getDoubleValue((String)budgetTypeAmount2.get(i+""), 0.00); + + _sum_ysze1 = Util.getDoubleValue(df.format(_sum_ysze1 + _ysze1)); + + String versionFirstStr = fnaSplitPageTransmethod.fmtAmountQuartile(_ysze1); + if(_ysze2 != _ysze1){ + //colorRed2 = "background-color: yellow;"; + versionFirstStr = "" + fnaSplitPageTransmethod.fmtAmountQuartile(_ysze1) + ""; + } + versionFirstMap.put("subject_"+b3id+"_"+i, versionFirstStr); + } + versionFirstMap.put("subject_"+b3id+"_ALL", fnaSplitPageTransmethod.fmtAmountQuartile(_sum_ysze1)); + JSONArray jsonArray1 = getSumProjectArrays(budgetinfoid_1, tableName_FnaBudgetInfoDetail); + JSONArray jsonArray2 = getSumProjectArrays(budgetinfoid_2, tableName_FnaBudgetInfoDetail); + int jsonArray1Size = jsonArray1.size(); + int jsonArray2Size = jsonArray2.size(); + for(int i=0; i"; + } + versionFirstMap.put("subject_"+b3id+"_PRO", proFirstStr); + + /**预算总额V2*/ + rowInfo.setVersionSecondName(SystemEnv.getHtmlLabelName(18501,user.getLanguage())+"("+revision2Name+")");//预算总额V2 + for(int i = 1; i <= qCount; i++){ + //预算总额 + double _ysze1 = Util.getDoubleValue((String)budgetTypeAmount1.get(i+""), 0.00); + //预算总额 + double _ysze2 = Util.getDoubleValue((String)budgetTypeAmount2.get(i+""), 0.00); + + _sum_ysze2 = Util.getDoubleValue(df.format(_sum_ysze2 + _ysze2)); + + String versionSecondStr = fnaSplitPageTransmethod.fmtAmountQuartile(_ysze2); + if(_ysze2 != _ysze1){ + versionSecondStr = "" + fnaSplitPageTransmethod.fmtAmountQuartile(_ysze2) + ""; + } + versionSecondMap.put("subject_"+b3id+"_"+i, versionSecondStr); + } + versionSecondMap.put("subject_"+b3id+"_ALL", fnaSplitPageTransmethod.fmtAmountQuartile(_sum_ysze2)); + String proSecondStr = fnaSplitPageTransmethod.fmtAmountQuartile(_sum_pro2); + if(!_sum_pro1.equals(_sum_pro2)){ + //colorRed2 = "background-color: yellow;"; + proSecondStr = "" + _sum_pro2 + ""; + } + versionSecondMap.put("subject_"+b3id+"_PRO", proSecondStr); + + + /**变更差额*/ + rowInfo.setChangeBudgetName(SystemEnv.getHtmlLabelName(18751,user.getLanguage()));//变更差额 + for(int i = 1; i <= qCount; i++){ + //预算总额 + double _ysze1 = Util.getDoubleValue((String)budgetTypeAmount1.get(i+""), 0.00); + double _ysze2 = Util.getDoubleValue((String)budgetTypeAmount2.get(i+""), 0.00); + double _ysze_diff = _ysze1 - _ysze2; + + String changeBudgetStr = fnaSplitPageTransmethod.fmtAmountQuartile(_ysze_diff); + + if(_ysze_diff > 0){ + changeBudgetStr = "" + fnaSplitPageTransmethod.fmtAmountQuartile(_ysze_diff) + ""; + }else if(_ysze_diff < 0){ + changeBudgetStr = "" + fnaSplitPageTransmethod.fmtAmountQuartile(_ysze_diff) + ""; + } + changeBudgetMap.put("subject_"+b3id+"_"+i, changeBudgetStr); + } + double _sum_ysze_diff = _sum_ysze1 - _sum_ysze2; + String changeBudgetSumStr = fnaSplitPageTransmethod.fmtAmountQuartile(_sum_ysze_diff); + if(_sum_ysze_diff > 0){ + changeBudgetSumStr = "" + fnaSplitPageTransmethod.fmtAmountQuartile(_sum_ysze_diff) + ""; + }else if(_sum_ysze_diff < 0){ + changeBudgetSumStr = "" + fnaSplitPageTransmethod.fmtAmountQuartile(_sum_ysze_diff) + ""; + } + changeBudgetMap.put("subject_"+b3id+"_ALL", changeBudgetSumStr); + String changeProSumStr = ""; + if (!_sum_pro1.equals("")) { + double _sum_pro_diff = Double.parseDouble(_sum_pro1) - Double.parseDouble(_sum_pro2); + changeProSumStr = fnaSplitPageTransmethod.fmtAmountQuartile(_sum_pro_diff); + if (_sum_pro_diff > 0) { + changeProSumStr = "" + fnaSplitPageTransmethod.fmtAmountQuartile(_sum_pro_diff) + ""; + } else if (_sum_pro_diff < 0) { + changeProSumStr = "" + fnaSplitPageTransmethod.fmtAmountQuartile(_sum_pro_diff) + ""; + } + } + + changeBudgetMap.put("subject_"+b3id+"_PRO", changeProSumStr); + + rowInfoList.add(rowInfo); + } + + datas.put("pageIndex", pageIndex); + datas.put("pageSize", pageSize); + datas.put("rsAllCnt",rsAllCnt); + datas.put("qCount", qCount); + datas.put("rowInfoList", rowInfoList); + datas.put("versionFirstMap", versionFirstMap); + datas.put("versionSecondMap", versionSecondMap); + datas.put("changeBudgetMap", changeBudgetMap); + + return datas; + } + + /** + * 获取每个科目的项目总额 + * @param budgetinfoid + * @return + */ + public JSONArray getSumProjectArrays(int budgetinfoid, String tableName_FnaBudgetInfoDetail) { + + DecimalFormat df = new DecimalFormat("####################################################0.00"); + JSONArray jsonArray = new JSONArray(); + String budgettypeid = ""; + String sumProject = ""; + + String sql = "SELECT distinct budgettypeid, sumProject FROM " + tableName_FnaBudgetInfoDetail + " WHERE budgetinfoid=? "; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql,budgetinfoid); + while(rs.next()) { + budgettypeid = Util.null2String(rs.getString("budgettypeid")).trim(); //科目ID + sumProject = Util.null2String(rs.getString("sumProject")).trim(); //科目的项目总额 + + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("subjectId",budgettypeid); + jsonObject.put("sum",df.format(Util.getDoubleValue(sumProject,0))); + jsonArray.add(jsonObject); + } + + return jsonArray; + } +} diff --git a/src4js/pc4backstage/fna/components/budgeting/BudgetingCompare.js b/src4js/pc4backstage/fna/components/budgeting/BudgetingCompare.js new file mode 100644 index 0000000..bd2a3f7 --- /dev/null +++ b/src4js/pc4backstage/fna/components/budgeting/BudgetingCompare.js @@ -0,0 +1,340 @@ +import React from 'react'; +import { inject, observer } from 'mobx-react'; + +import { WeaErrorPage, WeaTools, WeaNewScroll, WeaLocaleProvider } from 'ecCom'; +import { Pagination } from 'antd'; +import * as mobx from 'mobx' +import { getBrowserVersion } from '../../util/common'; +const getLabel = WeaLocaleProvider.getLabel; + +@inject('budgetingStore') +@observer +class BudgetingCompare extends React.Component { + + constructor(props) { + super(props); + this.state = { + showGroupHeight: true, + budgetConditionHeight: 0 + }; + } + + componentDidMount() { + + } + + componentWillReceiveProps(nextProps) { + + } + + shouldComponentUpdate(nextProps, nextState) { + + return true; + } + + componentWillUnmount() { + //组件卸载时一般清理一些状态 + + } + + + render() { + + const { budgetingStore } = this.props; + const { pageIndex, pageSize, rsAllCnt, qCount, compareData, updata } = budgetingStore; + const { versionFirstMap, versionSecondMap, changeBudgetMap, leftTreeOnOff, leftTreeWidth, leftTreeOnOff_middle } = budgetingStore; + + let contentHeigh = jQuery(".wea-new-top-content").height(); + let budgetTabHeight = jQuery(".fna_budget_tab").height(); + let tabHeight = jQuery(".ant-row.wea-title").height(); //基本信息 搜索面板 + let budgetPeriodHeight = jQuery(".fna_budget_period_tab").height(); + let pageHeight = jQuery(".fna_page").height(); + let budgetHeight = 0; + + if (this.state.showGroupHeight && jQuery(".fna_budget_condition").height()) { + this.setState({ + showGroupHeight: false, + budgetConditionHeight: jQuery(".fna_budget_condition").height() + }) + } + + if (updata) { + budgetHeight = contentHeigh - budgetTabHeight - this.state.budgetConditionHeight - tabHeight - budgetPeriodHeight - pageHeight - 15; + } else { + budgetHeight = contentHeigh - budgetTabHeight - tabHeight - budgetPeriodHeight - pageHeight - 15; + } + + let leftData = []; //左边固定列内容 + let dateGroup = [];//日期列 + let subjectGroup = [];//科目行 List + let dateGroup2 = []; //日期列 + + let widthLength = '100%'; + if (qCount == 12) { + widthLength = '2400px'; + } + + for (let i = 1; i <= qCount; i++) { + dateGroup.push({i}{getLabel(15372, '期')}); + dateGroup2.push({i}{getLabel(15372, '期')}); + } + + compareData.forEach(dataObj => { + let subjectId = dataObj.subjectId; + //let archive = dataObj.archive;//封存 + let archiveHtml = dataObj.archiveHtml; + let showGroupctrl = dataObj.showGroupctrl;//显示下级统一费控 + let groupctrlId = dataObj.groupctrlId; + let showBottomLine = dataObj.showBottomLine; + let styleStr = {}; + let styleHideBorder = {}; + if (showBottomLine) { + styleStr = { 'border-bottom': '1px solid #A9A9A9' }; + styleHideBorder = { 'border-bottom': '1px solid transparent' }; + } + + let versionFirstGroup = []; + let versionSecondGroup = []; + let changeBudgetGroup = []; + let sumGroup = []; + + for (let i = 1; i <= qCount; i++) { + let versionFirstAmount = versionFirstMap['subject_' + subjectId + '_' + i]; + let versionSecondAmount = versionSecondMap['subject_' + subjectId + '_' + i]; + let changeBudgetAmount = changeBudgetMap['subject_' + subjectId + '_' + i]; + + //
+ if (showGroupctrl) { + sumGroup.push( ); + } + versionFirstGroup.push(
); + versionSecondGroup.push(
); + changeBudgetGroup.push(
); + } + if (showGroupctrl) { + sumGroup.push(); + } + let changeBudgetSum = changeBudgetMap['subject_' + subjectId + '_ALL']; + + let leftTab_width; + let rightTab_width; + if (leftTreeOnOff && leftTreeOnOff_middle) { + leftTab_width = ((jQuery('body').width() - leftTreeWidth - leftTreeWidth) * 0.3 * 0.55); + rightTab_width = ((jQuery('body').width() - leftTreeWidth - leftTreeWidth) * 0.3 * 0.40); + } else if (leftTreeOnOff || leftTreeOnOff_middle) { + leftTab_width = jQuery('.e9theme-bs-main') ? ((jQuery('body').width() - leftTreeWidth) * 0.3 * 0.55) : ((jQuery('body').width() - leftTreeWidth) * 0.3 * 0.55); + rightTab_width = jQuery('.e9theme-bs-main') ? ((jQuery('body').width() - leftTreeWidth) * 0.3 * 0.40) : ((jQuery('body').width() - leftTreeWidth) * 0.3 * 0.40); + } else { + leftTab_width = jQuery('.e9theme-bs-main') ? ((jQuery('body').width()) * 0.3 * 0.55) : ((jQuery('body').width()) * 0.3 * 0.55); + rightTab_width = jQuery('.e9theme-bs-main') ? ((jQuery('body').width()) * 0.3 * 0.40) : ((jQuery('body').width()) * 0.3 * 0.40); + } + + versionFirstGroup.push({versionFirstMap['subject_' + subjectId + '_ALL']}); + versionSecondGroup.push({versionSecondMap['subject_' + subjectId + '_ALL']}); + changeBudgetGroup.push(
); + + // 版本比对:项目预算value + versionFirstGroup.push({versionFirstMap['subject_' + subjectId + '_PRO']}); + versionSecondGroup.push({versionSecondMap['subject_' + subjectId + '_PRO']}); + changeBudgetGroup.push(
); + + if (showGroupctrl) { + subjectGroup.push({sumGroup}); + leftData.push( + + +
+ + + ); + } + subjectGroup.push({versionFirstGroup}); + subjectGroup.push({versionSecondGroup}); + subjectGroup.push({changeBudgetGroup}); + + let isChromeStyle = { width: (leftTab_width - 50), overflow: 'hidden', 'text-overflow': 'ellipsis', '-webkit-line-clamp': '3', 'display': '-webkit-box', '-webkit-box-orient': 'vertical' }; + let notChromeStyle = { width: (leftTab_width - 50), overflow: 'hidden', 'text-overflow': 'ellipsis', height: '90px' }; + let isChrome = getBrowserVersion() === 'Chrome' ? isChromeStyle : notChromeStyle; + + leftData.push( + +
+ {dataObj.subjectName} +
+ + + {/* {dataObj.versionFirstName} */} + +
+ + ); + // leftData.push( + // + //
+ // {dataObj.versionSecondName} + // ); + leftData.push( + + +
+ + ); + // leftData.push( + // + // + // {dataObj.changeBudgetName} + // ); + leftData.push( + + +
+ + ); + }); + + + let dataList = []; + let actual_width; + let top_div_width; + if (qCount == '12') { + top_div_width = '135' + actual_width = '1755px'; + + top_div_width = 100 / 14; + } else { + let width = jQuery('.tabTopRight').width(); + //top_div_width = width/(qCount+1); + top_div_width = 100 / (qCount + 2); + + actual_width = '100%'; + } + + jQuery('.editRight').scroll(function () { + jQuery('.dataListMove').css('left', -jQuery('.editRight').scrollLeft()); + jQuery('.editLeftTab').css('top', -jQuery('.editRight').scrollTop()); + }) + + for (let i = 1; i <= qCount; i++) { + dataList.push(
{i}{getLabel(15372, '期')}
); + } + + let DivContent = [ +
+
+
+
+
{getLabel(15409, '科目名称')}
+
{getLabel(16893, '统计项')}
+
+
+
+
+
+ {dataList} +
{getLabel(1013, '全年')}
+
项目总额
+
+
+
+
+
+ + {leftData} +
+
+ +
+ + {subjectGroup} +
+
+
+ ] + + let NullDivContent = [ +
+ + + + + + {dateGroup2} + + + + {subjectGroup} + +
{getLabel(15409, '科目名称')}{getLabel(16893, '统计项')}{getLabel(1013, '全年')}项目总额
+ +
+
+ ] + + let content = ""; + if (rsAllCnt == '0') { + content = NullDivContent; + } else { + content = DivContent; + } + + return ( +
+ {content} + + `${getLabel(386979, '共')} ${total} ${getLabel(386978, '条')}`} + pageSizeOptions={['10', '20', '30', '50']} + onChange={this.pageChange} + onShowSizeChange={this.onShowSizeChange} + /> + +
+ ) + + } + + + pageChange = (page) => { + //console.log('page',page); + const { budgetingStore } = this.props; + const { compareDataList } = budgetingStore; + const { organizationtype, organizationid, budgetperiods, tabFeeperiod } = budgetingStore; + const { budgetinfoid_1, budgetinfoid_2 } = budgetingStore; + const { nameQuery, clickType } = budgetingStore; + let baseParams = { organizationtype: organizationtype, organizationid: organizationid, budgetperiods: budgetperiods, tabFeeperiod: tabFeeperiod }; + let idParams = { budgetinfoid_1: budgetinfoid_1, budgetinfoid_2: budgetinfoid_2 }; + let queryParams = { nameQuery: nameQuery }; + let params = { ...baseParams, ...queryParams, ...idParams, pageIndex: page, clickType }; + compareDataList(params); + } + + onShowSizeChange = (current, pageSize) => { + //console.log('current ', current); + //console.log('pageSize ', pageSize); + const { budgetingStore } = this.props; + const { compareDataList } = budgetingStore; + const { organizationtype, organizationid, budgetperiods, tabFeeperiod } = budgetingStore; + const { budgetinfoid_1, budgetinfoid_2 } = budgetingStore; + const { nameQuery, clickType } = budgetingStore; + let baseParams = { organizationtype: organizationtype, organizationid: organizationid, budgetperiods: budgetperiods, tabFeeperiod: tabFeeperiod }; + let idParams = { budgetinfoid_1: budgetinfoid_1, budgetinfoid_2: budgetinfoid_2 }; + let queryParams = { nameQuery: nameQuery }; + let params = { ...baseParams, ...queryParams, ...idParams, pageSize: pageSize, pageIndex: current, clickType }; + compareDataList(params); + } + +} + +export default WeaTools.tryCatch(React, + props => , + { error: "" } +)(BudgetingCompare); \ No newline at end of file