Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/controller/SupplyRoomConfigController.java =================================================================== diff -u -r29688 -r29996 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/controller/SupplyRoomConfigController.java (.../SupplyRoomConfigController.java) (revision 29688) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/controller/SupplyRoomConfigController.java (.../SupplyRoomConfigController.java) (revision 29996) @@ -53,7 +53,7 @@ } } else { orgUnitList = orgUnitManager - .searchOrgUnitByRoomTypeSpellOrWbCode(spell, SupplyRoomConfig.SUPPLYROOM_TYPE_APPLY, true, true, null); + .searchOrgUnitByRoomTypeSpellOrWbCode(spell, SupplyRoomConfig.SUPPLYROOM_TYPE_APPLY, true, true, null, null); } List> list = new LinkedList<>(); Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java =================================================================== diff -u -r29688 -r29996 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 29688) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 29996) @@ -98,9 +98,10 @@ * @param useSequence 是否需要排序

(这个排序是根据SupplyRoomConfig的sequence,并不是OrgUnit的sequence)

* @param showDisableOrgUnit 是否显示停用科室(true:显示;false:不显示) * @param departCodes 要查询的科室 + * @param brancheOfHospitalIdSet 院区 * @return */ - public List searchOrgUnitByRoomTypeSpellOrWbCode(String simpleSpell,Integer roomType, boolean useSequence, boolean showDisableOrgUnit, Set departCodes); + public List searchOrgUnitByRoomTypeSpellOrWbCode(String simpleSpell,Integer roomType, boolean useSequence, boolean showDisableOrgUnit, Set departCodes, Set brancheOfHospitalIdSet); public String getJsonChildreanCheckNode(long parentId); Index: ssts-web/src/main/webapp/jasperRtp/monthReportBranche.jasper =================================================================== diff -u Binary files differ Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r29688 -r29996 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 29688) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 29996) @@ -1174,7 +1174,7 @@ } @Override - public List searchOrgUnitByRoomTypeSpellOrWbCode(String simpleSpell, Integer roomType, boolean useSequence, boolean showDisableOrgUnit, Set departCodes) { + public List searchOrgUnitByRoomTypeSpellOrWbCode(String simpleSpell, Integer roomType, boolean useSequence, boolean showDisableOrgUnit, Set departCodes, Set brancheOfHospitalIdSet) { if (BooleanUtils.isFalse(useSequence)){ return this.searchOrgUnitByRoomTypeSpellOrWbCode(simpleSpell, roomType); } @@ -1193,6 +1193,9 @@ if(CollectionUtils.isNotEmpty(departCodes)){ hql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("po.orgUnitCoding", departCodes); } + if(!(brancheOfHospitalIdSet == null || brancheOfHospitalIdSet.isEmpty())){ + hql += " and po.id in (select orgUnitId from Org_OrgGroup where orgGroupId in ( select bh.orgUnitGroupId from BrancheOfHospital bh where "+ SqlUtils.getNonStringFieldInLargeCollectionsPredicate("bh.id", brancheOfHospitalIdSet) +"))"; + } hql += " order by src.sequence"; return objectDao.findByHql(hql,-1,-1); } Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.js =================================================================== diff -u -r29860 -r29996 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.js (.../departmentMonthlyView.js) (revision 29860) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.js (.../departmentMonthlyView.js) (revision 29996) @@ -5,8 +5,40 @@ var isSelect = false; var myMask; +var ALL = '全部'; +var enableMultipleBranchesOfHospital = false; Ext.onReady(function() { Ext.QuickTips.init(); + if(sstsConfig.hasOwnProperty('enableMultipleBranchesOfHospital') && sstsConfig.enableMultipleBranchesOfHospital){ + enableMultipleBranchesOfHospital = true; + } + //院区数据源 + var testRecord = Ext.data.Record.create([ + {name: 'id', type: 'long'}, + {name: 'name', type: 'string'} + ]); + + var brancheOfHospitalStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/brancheOfHospitalAction!getBrancheOfHospitalsForMultiSelect.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + totalProperty : 'totalCount', + root : 'data' + }, [ + {name : 'id',mapping : 'id'}, + {name : 'name',mapping : 'name'}, + ]), + listeners : { + load :function (thiz,records,options ){ + if(brancheOfHospitalStore.getCount() > 1){ + brancheOfHospitalStore.insert(0 , new testRecord({'id':-1,'name':'全部'})); + } + } + } + }); + brancheOfHospitalStore.load(); var tousseTypes = [ ['全部'],['全部器械包'],['器械包'],['敷料包'],['消毒物品'],['外来器械包'],['自定义器械包'],['外部代理灭菌包'],['一次性物品'],['器械材料'],['收费项目']] if(!notInWhiteList(sstsConfig, 'expensiveGoodsManage') && sstsConfig.enableExpensiveGoods){ tousseTypes.push(['高值耗材']); @@ -122,7 +154,16 @@ showCustonTousseAmount = true; } var jasperreportName = null; - if("accountingMonthlyReportGroupByDisposableGoodsType" == patternOfReport){//按一次性物品类型拆分的核算月报 + var brancheOfHospitalIds = null; + if(enableMultipleBranchesOfHospital){ + var brancheOfHospital = $Id('brancheOfHospital').value; + if(brancheOfHospital == "全部"){ + brancheOfHospitalIds = ""; + }else{ + brancheOfHospitalIds = Ext.getCmp('brancheOfHospital').value; + } + jasperreportName = "monthReportBranche.jasper"; + }else if("accountingMonthlyReportGroupByDisposableGoodsType" == patternOfReport){//按一次性物品类型拆分的核算月报 jasperreportName = "monthReportGroupByDisposableGoodsType.jasper"; }else if('accountingMonthlyReportGroupBySterilizationMode' == patternOfReport){ jasperreportName = 'monthReportGroupBySterilizationMode.jasper'; @@ -131,7 +172,7 @@ }else{ jasperreportName = "monthReport.jasper"; } - + var url = WWWROOT + '/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do'; var params = { jasperreportName : jasperreportName, @@ -142,6 +183,7 @@ disposableGoodsType:disposableGoodsType, patternOfReport:patternOfReport, showCustonTousseAmount:showCustonTousseAmount, + brancheOfHospitalIds:brancheOfHospitalIds, reportName:'monthReport' } @@ -294,6 +336,63 @@ },{ columnWidth : .2, layout : 'form', + labelWidth : 80, + hidden:!enableMultipleBranchesOfHospital, + labelSeparator : '院区:', + items : [{ + xtype : 'multiSelect', + id : 'brancheOfHospital', + name : 'brancheOfHospital', + valueField : 'id', + displayField : 'name', + minChars : 0, + allowBlank : true, + editable : false, + store : brancheOfHospitalStore, + forceSelection : false, + mode : 'local', + triggerAction : 'all', + lazyInit : true, + typeAhead : false, + anchor : '95%', + listeners: { + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('name') == ALL) { + if (record.get('checked')) { + combo.selectAll(); + } else { + combo.deselectAll(); + } + } + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function(record) { + if (record.get('name') != ALL && !record.get(this.checkField)) { + selectAll = false; + return; + } + }, combo); + var all = combo.store.getAt(0); + if (selectAll) { + all.set(combo.checkField, true); + } else { + all.set(combo.checkField, false); + } + combo.setValue(combo.getCheckedValue()); + }, + change :function(field,newVal,oldVal){ + var ids = Ext.getCmp('brancheOfHospital').value; + departJsonStore.baseParams.brancheOfHospitalIds = ids; + departJsonStore.load(); + Ext.getCmp('departSearch').setValue(""); + Ext.getCmp('departSearch').setRawValue(""); + } + } + }] + },{ + columnWidth : .2, + layout : 'form', labelWidth : 50, items : [{ xtype : 'combo', Index: forgon-core/src/main/java/com/forgon/directory/service/BrancheOfHospitalManager.java =================================================================== diff -u -r29991 -r29996 --- forgon-core/src/main/java/com/forgon/directory/service/BrancheOfHospitalManager.java (.../BrancheOfHospitalManager.java) (revision 29991) +++ forgon-core/src/main/java/com/forgon/directory/service/BrancheOfHospitalManager.java (.../BrancheOfHospitalManager.java) (revision 29996) @@ -1,5 +1,8 @@ package com.forgon.directory.service; +import java.util.Map; +import java.util.Set; + import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -27,5 +30,21 @@ * @return */ public JSONObject loadBrancheOfHospital(BrancheOfHospital brancheOfHospital); - + /** + * 获取院区的所有科室 + * @param brancheOfHospitalIds + * @return key:部门编码 value:部门名称 + */ + public Map loadDepartByBrancheOfHospitals(Set brancheOfHospitalIds); + /** + * 根据院区或者院区下的部门,如果brancheOfHospitalIds为空则查所有院区 + * @param brancheOfHospitalIds + * @return + */ + public Map getDepartToBrancheOfHospitalMap(Set brancheOfHospitalIds); + /** + * 获取所有院区,供多选框使用,只查名字和id + * @return + */ + public JSONArray getBrancheOfHospitalList(); } Index: forgon-core/src/main/java/com/forgon/directory/service/BrancheOfHospitalManagerImpl.java =================================================================== diff -u -r29991 -r29996 --- forgon-core/src/main/java/com/forgon/directory/service/BrancheOfHospitalManagerImpl.java (.../BrancheOfHospitalManagerImpl.java) (revision 29991) +++ forgon-core/src/main/java/com/forgon/directory/service/BrancheOfHospitalManagerImpl.java (.../BrancheOfHospitalManagerImpl.java) (revision 29996) @@ -1,8 +1,13 @@ package com.forgon.directory.service; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Set; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -11,11 +16,15 @@ import net.sf.json.JSONObject; import com.forgon.directory.model.BrancheOfHospital; +import com.forgon.directory.model.OrgUnit; import com.forgon.directory.model.OrgUnitGroup; +import com.forgon.directory.model.Org_OrgGroup; import com.forgon.exception.SystemException; import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.format.ConvertNumber; import com.forgon.tools.hibernate.BasePoManagerImpl; import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.SqlUtils; /** * 院区设置 * @author ZhouPeiMian @@ -83,5 +92,112 @@ json.put("orgUnitGroup", orgUnitGroup.getName()); return json; } - + @Override + public Map loadDepartByBrancheOfHospitals( + Set brancheOfHospitalIds) { + if(brancheOfHospitalIds == null || brancheOfHospitalIds.isEmpty()){ + return null; + } + StringBuilder sql = new StringBuilder(); + sql.append(" select ou.orgUnitCoding,ou.name from ") + .append(BrancheOfHospital.class.getSimpleName()) + .append(" bh join ") + .append(OrgUnitGroup.class.getSimpleName()) + .append(" oug on bh.orgUnitGroupId=oug.id join ") + .append(Org_OrgGroup.class.getSimpleName()) + .append(" oog on oog.orgGroupId=oug.id join ") + .append(OrgUnit.class.getSimpleName()) + .append(" ou on ou.id=oog.orgUnitId where ") + .append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("bh.id", brancheOfHospitalIds)); + System.out.println(sql.length()); + Map departCodeToName = new HashMap(); + ResultSet rs = null; + try { + rs = objectDao.executeSql(sql.toString()); + while (rs.next()) { + String orgUnitCoding = rs.getString("orgUnitCoding"); + String name = rs.getString("name"); + departCodeToName.put(orgUnitCoding, name); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return departCodeToName; + } + @Override + public Map getDepartToBrancheOfHospitalMap( + Set brancheOfHospitalIds) { + + StringBuilder sql = new StringBuilder(); + sql.append(" select ou.name,bh.serialNumber,bh.name bhName,bh.id from ") + .append(BrancheOfHospital.class.getSimpleName()) + .append(" bh join ") + .append(OrgUnitGroup.class.getSimpleName()) + .append(" oug on bh.orgUnitGroupId=oug.id join ") + .append(Org_OrgGroup.class.getSimpleName()) + .append(" oog on oog.orgGroupId=oug.id join ") + .append(OrgUnit.class.getSimpleName()) + .append(" ou on ou.id=oog.orgUnitId "); + if(!(brancheOfHospitalIds == null || brancheOfHospitalIds.isEmpty())){ + sql.append(" where ").append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("bh.id", brancheOfHospitalIds)); + } + System.out.println(sql.toString()); + System.out.println(sql.length()); + Map departToBrancheOfHospitalMap = new HashMap(); + ResultSet rs = null; + try { + rs = objectDao.executeSql(sql.toString()); + Map brancheOfHospitals = new HashMap(); + while (rs.next()) { + String name = rs.getString("name"); + Long id = ConvertNumber.getNumberLongValue(rs.getObject("id"), 0L); + BrancheOfHospital brancheOfHospital = null; + if(brancheOfHospitals.containsKey(id)){ + brancheOfHospital = brancheOfHospitals.get(id); + }else{ + String bhName = rs.getString("bhName"); + int serialNumber = ConvertNumber.getNumberIntValue(rs.getObject("serialNumber"), 0); + brancheOfHospital = new BrancheOfHospital(); + brancheOfHospital.setId(id); + brancheOfHospital.setSerialNumber(serialNumber); + brancheOfHospital.setName(bhName); + brancheOfHospitals.put(id, brancheOfHospital); + } + departToBrancheOfHospitalMap.put(name, brancheOfHospital); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return departToBrancheOfHospitalMap; + } + @Override + public JSONArray getBrancheOfHospitalList() { + StringBuilder sql = new StringBuilder(); + sql.append(" select id,name from BrancheOfHospital ") + .append(BrancheOfHospital.class.getSimpleName()) + .append(" order by serialNumber asc "); + System.out.println(sql.length() + sql.toString()); + ResultSet rs = null; + JSONArray arr = new JSONArray(); + try { + rs = objectDao.executeSql(sql.toString()); + while (rs.next()) { + Long id = ConvertNumber.getNumberLongValue(rs.getObject("id"), 0L); + String name = rs.getString("name"); + JSONObject obj = new JSONObject(); + obj.put("id", id); + obj.put("name", name); + arr.add(obj); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return arr; + } } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r29989 -r29996 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 29989) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 29996) @@ -58,7 +58,9 @@ import com.forgon.databaseadapter.service.SqlFunctionsAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; +import com.forgon.directory.model.BrancheOfHospital; import com.forgon.directory.model.OrgUnit; +import com.forgon.directory.service.BrancheOfHospitalManager; import com.forgon.directory.service.OrgUnitManager; import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; @@ -254,6 +256,12 @@ private SterilisationManager sterilisationManager; @Autowired private OperationManager operationManager; + private BrancheOfHospitalManager brancheOfHospitalManager; + + public void setBrancheOfHospitalManager( + BrancheOfHospitalManager brancheOfHospitalManager) { + this.brancheOfHospitalManager = brancheOfHospitalManager; + } public static final String FORMNAMEOFADJ = "无菌包质量抽查登记表"; /** * 利用sql语句做数据源创建JasperPrint对象 @@ -2909,8 +2917,13 @@ */ @Override public List getMonthReportData(String startDate,String endDate, - String department,String tousseType,String disposableGoodsType,Boolean showCustonTousseAmount, String patternOfReport){ + String department,String tousseType,String disposableGoodsType,Boolean showCustonTousseAmount, String patternOfReport, Map departToBrancheOfHospitalMap, boolean filterBrancheOfHospital){ // String handleDeptCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + Set departments = null; + if(filterBrancheOfHospital && !(departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty())){ + departments = departToBrancheOfHospitalMap.keySet(); + } + boolean enableMultipleBranchesOfHospital = CssdUtils.getSystemSetConfigByNameBool("enableMultipleBranchesOfHospital", false); boolean enableDiscountPrice = CssdUtils.getSystemSetConfigByNameBool("enableDiscountPrice"); boolean enableExpensiveGoods = CssdUtils.getSystemSetConfigByNameBool("enableExpensiveGoods"); //是否启用包内材料统计列 @@ -2940,6 +2953,10 @@ invoiceWheresql += " and i.settleAccountsDepart = '"+department+"'"; expensiveGoodsWheresql += " and i.settleAccountsDepart = '"+department+"'"; receiveDepartWhereSql = String.format(" and r.depart='%s'", department); + }else if(!(departments == null || departments.isEmpty())){ + invoiceWheresql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("i.settleAccountsDepart", departments); + expensiveGoodsWheresql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("i.settleAccountsDepart", departments); + receiveDepartWhereSql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("r.depart", departments); } String invoiceItemDisposableGoodsTypePredicate = "1=1"; String disposableGoodsInvoiceAmountPredicate = " ii.diposable='是' "; @@ -3019,9 +3036,13 @@ } } - newMonthReport(code, dept,"2", "价格统计",columnName,price, list); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(dept) == null?null:departToBrancheOfHospitalMap.get(dept).getName(); + } + newMonthReport(code, dept,"2", "价格统计",columnName,price, list, hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice && StringUtils.isNotBlank(costColumn)){ - newMonthReport(code, dept,"1", "科室记支",costColumn,discountPrice, list); + newMonthReport(code, dept,"1", "科室记支",costColumn,discountPrice, list, hospitalDistrict, enableMultipleBranchesOfHospital); } } } catch (SQLException e) { @@ -3047,6 +3068,8 @@ + " where "+returnGoodsItemPredicate+ tousseTypeReturnSql + " and "+getHandleDeptCodeSql("r.handleDepartCode")+" and r.returnTime " + betweenSql; if(StringUtils.isNotBlank(department)){ returnSql += " and r.settleAccountsDepart = '" + department + "'"; + }else if(!(departments == null || departments.isEmpty())){ + returnSql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("r.settleAccountsDepart", departments); } ResultSet rs5 = objectDao.executeSql(returnSql); try { @@ -3071,21 +3094,24 @@ amount = totalMaterialAmount; } } - + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(dept) == null?null:departToBrancheOfHospitalMap.get(dept).getName(); + } if("一次性物品".equals(type)){ - newMonthReport(code, dept, "2", "价格统计", "一次性物品总价", price, list); + newMonthReport(code, dept, "2", "价格统计", "一次性物品总价", price, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, dept,"1", "科室记支","一次性物品记支",price, list); + newMonthReport(code, dept,"1", "科室记支","一次性物品记支",price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } - newMonthReport(code, dept, "3", "数量统计", "一次性物品数量", amount, list); + newMonthReport(code, dept, "3", "数量统计", "一次性物品数量", amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); }else{ - newMonthReport(code, dept, "2", "价格统计", "器械包总价", price, list); + newMonthReport(code, dept, "2", "价格统计", "器械包总价", price, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, dept,"1", "科室记支","器械包记支",price, list); + newMonthReport(code, dept,"1", "科室记支","器械包记支",price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } - newMonthReport(code, dept, "3", "数量统计", "器械包数量", amount, list); + newMonthReport(code, dept, "3", "数量统计", "器械包数量", amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(monthReportMaterialAmountOfTousse){ - newMonthReport(code, dept, "4", "包内材料统计", "包内材料数量", totalMaterialAmount, list); + newMonthReport(code, dept, "4", "包内材料统计", "包内材料数量", totalMaterialAmount, list,hospitalDistrict, enableMultipleBranchesOfHospital); } } } @@ -3109,10 +3135,13 @@ String dept = materialInvoicePriceResultSet.getString(2); Double price = materialInvoicePriceResultSet.getDouble(3); String columnName = "发货材料总价"; - - newMonthReport(code, dept,"2", "价格统计",columnName,price, list); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(dept) == null?null:departToBrancheOfHospitalMap.get(dept).getName(); + } + newMonthReport(code, dept,"2", "价格统计",columnName,price, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, dept,"1", "科室记支","材料记支",price, list); + newMonthReport(code, dept,"1", "科室记支","材料记支",price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } } } catch (SQLException e) { @@ -3134,8 +3163,12 @@ String code = materialInvoiceAmountResultSet.getString(1); String dept = materialInvoiceAmountResultSet.getString(2); int tousseAmount = materialInvoiceAmountResultSet.getInt("amount"); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(dept) == null?null:departToBrancheOfHospitalMap.get(dept).getName(); + } if(tousseAmount > 0){ - newMonthReport(code, dept,"3","数量统计", "发货材料数量",tousseAmount,list); + newMonthReport(code, dept,"3","数量统计", "发货材料数量",tousseAmount,list,hospitalDistrict, enableMultipleBranchesOfHospital); } } } catch (SQLException e) { @@ -3159,6 +3192,8 @@ if(StringUtils.isNotBlank(department)){ damageSql += " and i.depart = '"+department+"' "; + }else if(!(departments == null || departments.isEmpty())){ + damageSql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("i.depart", departments); } damageSql += " group by i.departCode,i.depart,i.materialName"; ResultSet rs33 = objectDao.executeSql(damageSql); @@ -3170,11 +3205,14 @@ String materialName = rs33.getString(3); Double money = rs33.getDouble(4); int amount = rs33.getInt("amount"); - - newMonthReport(code, dept, "3", "数量统计", "丢失报损材料数量", amount, list); - newMonthReport(code, dept, "2", "价格统计", "丢失报损材料总价", money, list); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(dept) == null?null:departToBrancheOfHospitalMap.get(dept).getName(); + } + newMonthReport(code, dept, "3", "数量统计", "丢失报损材料数量", amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); + newMonthReport(code, dept, "2", "价格统计", "丢失报损材料总价", money, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, dept,"1", "科室记支","材料记支",money, list); + newMonthReport(code, dept,"1", "科室记支","材料记支",money, list,hospitalDistrict, enableMultipleBranchesOfHospital); } } } @@ -3191,6 +3229,8 @@ if(StringUtils.isNotBlank(department)){ recyclingErrorSql += " and r.depart = '"+department+"' "; + }else if(!(departments == null || departments.isEmpty())){ + recyclingErrorSql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("r.depart", departments); } recyclingErrorSql += " group by r.departCode,r.depart,r.materialName"; ResultSet rs3 = objectDao.executeSql(recyclingErrorSql); @@ -3202,11 +3242,14 @@ String materialName = rs3.getString(3); Double money = rs3.getDouble(4); int amount = rs3.getInt(5); - - newMonthReport(code, dept,"3", "数量统计","丢失报损材料数量",amount, list); - newMonthReport(code, dept,"2", "价格统计","丢失报损材料总价",money, list); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(dept) == null?null:departToBrancheOfHospitalMap.get(dept).getName(); + } + newMonthReport(code, dept,"3", "数量统计","丢失报损材料数量",amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); + newMonthReport(code, dept,"2", "价格统计","丢失报损材料总价",money, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, dept,"1", "科室记支","材料记支",money, list); + newMonthReport(code, dept,"1", "科室记支","材料记支",money, list,hospitalDistrict, enableMultipleBranchesOfHospital); } } } @@ -3222,6 +3265,8 @@ + " and "+getHandleDeptCodeSql("r.handleDepartCode")+" and r.returnTime " + betweenSql; if(StringUtils.isNotBlank(department)){ materialReturnSql += " and r.depart = '" + department + "'"; + }else if(!(departments == null || departments.isEmpty())){ + materialReturnSql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("r.depart", departments); } ResultSet materialReturnResultSet = objectDao.executeSql(materialReturnSql); try { @@ -3230,11 +3275,14 @@ String dept = materialReturnResultSet.getString(2); Double price = materialReturnResultSet.getDouble(3); int amount = materialReturnResultSet.getInt("amount"); - - newMonthReport(code, dept, "2", "价格统计", "发货材料总价", price, list); - newMonthReport(code, dept, "3", "数量统计", "发货材料数量", amount, list); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(dept) == null?null:departToBrancheOfHospitalMap.get(dept).getName(); + } + newMonthReport(code, dept, "2", "价格统计", "发货材料总价", price, list,hospitalDistrict, enableMultipleBranchesOfHospital); + newMonthReport(code, dept, "3", "数量统计", "发货材料数量", amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, dept,"1", "科室记支","材料记支",price, list); + newMonthReport(code, dept,"1", "科室记支","材料记支",price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } } }catch(Exception e){ @@ -3263,7 +3311,11 @@ String dept = disposableGoodsInvoiceAmountResultSet.getString(2); int diposableAmount = disposableGoodsInvoiceAmountResultSet.getInt("amount"); if(diposableAmount > 0){ - newMonthReport(code, dept,"3","数量统计", "一次性物品数量",diposableAmount,list); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(dept) == null?null:departToBrancheOfHospitalMap.get(dept).getName(); + } + newMonthReport(code, dept,"3","数量统计", "一次性物品数量",diposableAmount,list,hospitalDistrict, enableMultipleBranchesOfHospital); } } } catch (SQLException e) { @@ -3303,18 +3355,22 @@ Double price = rs4.getDouble(2); int amount = rs4.getInt("amount"); String code = rs4.getString(4); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(config.getOrgUnitName()) == null?null:departToBrancheOfHospitalMap.get(config.getOrgUnitName()).getName(); + } if("一次性物品".equals(type)){ - newMonthReport(code, config.getOrgUnitName(), "2", "价格统计", "一次性物品总价", price, list); + newMonthReport(code, config.getOrgUnitName(), "2", "价格统计", "一次性物品总价", price, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, config.getOrgUnitName(),"1", "科室记支","一次性物品记支",price, list); + newMonthReport(code, config.getOrgUnitName(),"1", "科室记支","一次性物品记支",price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } - newMonthReport(code, config.getOrgUnitName(), "3", "数量统计", "一次性物品数量", amount, list); + newMonthReport(code, config.getOrgUnitName(), "3", "数量统计", "一次性物品数量", amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); }else{ - newMonthReport(code, config.getOrgUnitName(), "2", "价格统计", "发货材料总价", price, list); + newMonthReport(code, config.getOrgUnitName(), "2", "价格统计", "发货材料总价", price, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, config.getOrgUnitName(),"1", "科室记支","材料记支",price, list); + newMonthReport(code, config.getOrgUnitName(),"1", "科室记支","材料记支",price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } - newMonthReport(code, config.getOrgUnitName(), "3", "数量统计", "发货材料数量", amount, list); + newMonthReport(code, config.getOrgUnitName(), "3", "数量统计", "发货材料数量", amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); } } }catch(Exception e){ @@ -3338,12 +3394,16 @@ int amount = rs4.getInt("amount"); String code = rs4.getString(4); String orgUnitName = rs4.getString(5); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(orgUnitName) == null?null:departToBrancheOfHospitalMap.get(orgUnitName).getName(); + } if("一次性物品".equals(type)){ - newMonthReport(code, orgUnitName, "2", "价格统计", "一次性物品总价", price, list); + newMonthReport(code, orgUnitName, "2", "价格统计", "一次性物品总价", price, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, orgUnitName,"1", "科室记支","一次性物品记支",price, list); + newMonthReport(code, orgUnitName,"1", "科室记支","一次性物品记支",price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } - newMonthReport(code, orgUnitName, "3", "数量统计", "一次性物品数量", amount, list); + newMonthReport(code, orgUnitName, "3", "数量统计", "一次性物品数量", amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); } } }catch(Exception e){ @@ -3367,12 +3427,16 @@ int amount = rs4.getInt("amount"); String code = rs4.getString(4); String orgUnitName = rs4.getString(5); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(orgUnitName) == null?null:departToBrancheOfHospitalMap.get(orgUnitName).getName(); + } if("一次性物品".equals(type)){ - newMonthReport(code, orgUnitName, "2", "价格统计", "一次性物品总价", price, list); + newMonthReport(code, orgUnitName, "2", "价格统计", "一次性物品总价", price, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, orgUnitName,"1", "科室记支","一次性物品记支",price, list); + newMonthReport(code, orgUnitName,"1", "科室记支","一次性物品记支",price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } - newMonthReport(code, orgUnitName, "3", "数量统计", "一次性物品数量", amount, list); + newMonthReport(code, orgUnitName, "3", "数量统计", "一次性物品数量", amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); } } }catch(Exception e){ @@ -3396,12 +3460,16 @@ int amount = rs.getInt("amount"); String code = rs.getString(4); String orgUnitName = rs.getString(5); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(orgUnitName) == null ?null:departToBrancheOfHospitalMap.get(orgUnitName).getName(); + } if("一次性物品".equals(type)){ - newMonthReport(code, orgUnitName, "2", "价格统计", "一次性物品总价", price, list); + newMonthReport(code, orgUnitName, "2", "价格统计", "一次性物品总价", price, list,hospitalDistrict, enableMultipleBranchesOfHospital); if(enableDiscountPrice){ - newMonthReport(code, orgUnitName,"1", "科室记支","一次性物品记支",price, list); + newMonthReport(code, orgUnitName,"1", "科室记支","一次性物品记支",price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } - newMonthReport(code, orgUnitName, "3", "数量统计", "一次性物品数量", amount, list); + newMonthReport(code, orgUnitName, "3", "数量统计", "一次性物品数量", amount, list,hospitalDistrict, enableMultipleBranchesOfHospital); } } }catch(Exception e){ @@ -3480,12 +3548,16 @@ tousseAmount = totalMaterialAmount; } } + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(dept) == null?null:departToBrancheOfHospitalMap.get(dept).getName(); + } if(ExpensiveGoods.TYPE_NAME.equals(tousseTypeName)){ - newMonthReport(code, dept,"3","数量统计", "高值耗材数量",tousseAmount,list,integral); + newMonthReport(code, dept,"3","数量统计", "高值耗材数量",tousseAmount,list,integral,hospitalDistrict, enableMultipleBranchesOfHospital); }else{ - newMonthReport(code, dept,"3","数量统计", "器械包数量",tousseAmount,list,integral); + newMonthReport(code, dept,"3","数量统计", "器械包数量",tousseAmount,list,integral,hospitalDistrict, enableMultipleBranchesOfHospital); if(monthReportMaterialAmountOfTousse){ - newMonthReport(code, dept, "4", "包内材料统计", "包内材料数量", totalMaterialAmount, list,integral); + newMonthReport(code, dept, "4", "包内材料统计", "包内材料数量", totalMaterialAmount, list,integral,hospitalDistrict, enableMultipleBranchesOfHospital); } } } @@ -3501,6 +3573,8 @@ String chargeDepartSql = ""; if(StringUtils.isNotBlank(department)){ chargeDepartSql = String.format(" and ci.orgUnitName = '%s' ", department); + }else if(!(departments == null || departments.isEmpty())){ + chargeDepartSql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("ci.orgUnitName", departments); } String sql = String.format("select ci.orgUnitName,ci.orgUnitCode,sum(price) price from ChargeRecordItem ci " + " inner join ChargeRecord cr on cr.id=ci.chargeRecord_id where 1=1 %s %s group by ci.orgUnitName,ci.orgUnitCode", chargeDateSql,chargeDepartSql); @@ -3511,7 +3585,11 @@ Double price = rs5.getDouble("price"); String orgUnitName = rs5.getString("orgUnitName"); String orgUnitCode = rs5.getString("orgUnitCode"); - newMonthReport(orgUnitCode, orgUnitName, "2", "价格统计", "收费项目总价", price, list); + String hospitalDistrict = null; + if(enableMultipleBranchesOfHospital){ + hospitalDistrict = departToBrancheOfHospitalMap == null || departToBrancheOfHospitalMap.isEmpty() || departToBrancheOfHospitalMap.get(orgUnitName) == null?null:departToBrancheOfHospitalMap.get(orgUnitName).getName(); + } + newMonthReport(orgUnitCode, orgUnitName, "2", "价格统计", "收费项目总价", price, list,hospitalDistrict, enableMultipleBranchesOfHospital); } }catch(Exception e){ e.printStackTrace(); @@ -3632,7 +3710,7 @@ }else{ columnName = "c器械包总价"; } - newMonthReport(code, dept,"2", "价格统计",columnName,price, list); + newMonthReport(code, dept,"2", "价格统计",columnName,price, list, null, null); } if(codeAndTypeMap.size() > 0){ Map departSum = new HashMap(); @@ -3641,7 +3719,7 @@ MonthReportBean item = entry.getValue(); String code = item.getRowNum(); Double price = item.getMoney(); - newMonthReport(code, item.getDepartment(),"2", "价格统计", key.substring(key.indexOf(",") + 1),price, list); + newMonthReport(code, item.getDepartment(),"2", "价格统计", key.substring(key.indexOf(",") + 1),price, list, null, null); if(departSum.containsKey(code)){ MonthReportBean mrb = departSum.get(code); mrb.setMoney(MathTools.add(mrb.getMoney(), price).doubleValue()); @@ -3712,10 +3790,10 @@ setCodeAndTypeMapData(codeAndTypeMap, code, dept, rs5.getString("dgType"), amount, price); continue; } - newMonthReport(code, dept, "2", "价格统计", "c器械包总价", price, list); - newMonthReport(code, dept, "3", "数量统计", "c器械包数量", amount, list); + newMonthReport(code, dept, "2", "价格统计", "c器械包总价", price, list, null, null); + newMonthReport(code, dept, "3", "数量统计", "c器械包数量", amount, list, null, null); if(monthReportMaterialAmountOfTousse){ - newMonthReport(code, dept, "4", "包内材料统计", "c包内材料数量", totalMaterialAmount, list); + newMonthReport(code, dept, "4", "包内材料统计", "c包内材料数量", totalMaterialAmount, list, null, null); } } addDisposableGoodsData(codeAndTypeMap, list); @@ -3740,7 +3818,7 @@ Double price = materialInvoicePriceResultSet.getDouble(3); String columnName = "c发货材料总价"; - newMonthReport(code, dept,"2", "价格统计",columnName,price, list); + newMonthReport(code, dept,"2", "价格统计",columnName,price, list, null, null); } } catch (SQLException e) { e.printStackTrace(); @@ -3762,7 +3840,7 @@ String dept = materialInvoiceAmountResultSet.getString(2); int tousseAmount = materialInvoiceAmountResultSet.getInt(3); if(tousseAmount > 0){ - newMonthReport(code, dept,"3","数量统计", "c发货材料数量",tousseAmount,list); + newMonthReport(code, dept,"3","数量统计", "c发货材料数量",tousseAmount,list, null, null); } } } catch (SQLException e) { @@ -3798,8 +3876,8 @@ Double money = rs33.getDouble(4); int amount = rs33.getInt(5); - newMonthReport(code, dept, "3", "数量统计", "c丢失报损材料数量", amount, list); - newMonthReport(code, dept, "2", "价格统计", "c丢失报损材料总价", money, list); + newMonthReport(code, dept, "3", "数量统计", "c丢失报损材料数量", amount, list, null, null); + newMonthReport(code, dept, "2", "价格统计", "c丢失报损材料总价", money, list, null, null); } } }catch(Exception e){ @@ -3827,8 +3905,8 @@ Double money = rs3.getDouble(4); int amount = rs3.getInt(5); - newMonthReport(code, dept,"3", "数量统计","c丢失报损材料数量",amount, list); - newMonthReport(code, dept,"2", "价格统计","c丢失报损材料总价",money, list); + newMonthReport(code, dept,"3", "数量统计","c丢失报损材料数量",amount, list, null, null); + newMonthReport(code, dept,"2", "价格统计","c丢失报损材料总价",money, list, null, null); } } }catch(Exception e){ @@ -3852,8 +3930,8 @@ Double price = materialReturnResultSet.getDouble(3); int amount = materialReturnResultSet.getInt(4); - newMonthReport(code, dept, "2", "价格统计", "c发货材料总价", price, list); - newMonthReport(code, dept, "3", "数量统计", "c发货材料数量", amount, list); + newMonthReport(code, dept, "2", "价格统计", "c发货材料总价", price, list, null, null); + newMonthReport(code, dept, "3", "数量统计", "c发货材料数量", amount, list, null, null); } }catch(Exception e){ e.printStackTrace(); @@ -3904,7 +3982,7 @@ MonthReportBean item = entry.getValue(); String code = item.getRowNum(); int amount = item.getAmount(); - newMonthReport(code, item.getDepartment(),"3", "数量统计", key.substring(key.indexOf(",") + 1),amount, list); + newMonthReport(code, item.getDepartment(),"3", "数量统计", key.substring(key.indexOf(",") + 1),amount, list, null, null); if(departSum.containsKey(code)){ MonthReportBean mrb = departSum.get(code); mrb.setAmount(MathTools.add(mrb.getAmount(), amount).intValue()); @@ -3965,8 +4043,8 @@ setCodeAndTypeMapData(codeAndTypeMap, code, orgUnitName, rs4.getString("dgType"), amount, price); continue; } - newMonthReport(code, config.getOrgUnitName(), "2", "价格统计", "c发货材料总价", price, list); - newMonthReport(code, config.getOrgUnitName(), "3", "数量统计", "c发货材料数量", amount, list); + newMonthReport(code, config.getOrgUnitName(), "2", "价格统计", "c发货材料总价", price, list, null, null); + newMonthReport(code, config.getOrgUnitName(), "3", "数量统计", "c发货材料数量", amount, list, null, null); } addDisposableGoodsData(codeAndTypeMap, list); }catch(Exception e){ @@ -4085,9 +4163,9 @@ tousseAmount = totalMaterialAmount; } } - newMonthReport(code, dept,"3","数量统计", "c器械包数量",tousseAmount,list); + newMonthReport(code, dept,"3","数量统计", "c器械包数量",tousseAmount,list, null, null); if(monthReportMaterialAmountOfTousse){ - newMonthReport(code, dept, "4", "包内材料统计", "c包内材料数量", totalMaterialAmount, list); + newMonthReport(code, dept, "4", "包内材料统计", "c包内材料数量", totalMaterialAmount, list, null, null); } } } catch (SQLException e) { @@ -4112,7 +4190,7 @@ Double price = rs5.getDouble("price"); String orgUnitName = rs5.getString("orgUnitName"); String orgUnitCode = rs5.getString("orgUnitCode"); - newMonthReport(orgUnitCode, orgUnitName, "2", "价格统计", "c收费项目总价", price, list); + newMonthReport(orgUnitCode, orgUnitName, "2", "价格统计", "c收费项目总价", price, list, null, null); } }catch(Exception e){ e.printStackTrace(); @@ -4139,8 +4217,8 @@ Double price = item.getMoney(); Double amount = item.getAmount().doubleValue(); String columnName = key.substring(key.indexOf(",") + 1);//a +一次物品类型 - newMonthReport(code, dept, "2", "价格统计", columnName, price, list); - newMonthReport(code, dept,"3", "数量统计", columnName, amount, list); + newMonthReport(code, dept, "2", "价格统计", columnName, price, list, null, null); + newMonthReport(code, dept,"3", "数量统计", columnName, amount, list, null, null); if(departSum.containsKey(code)){//计算合计 MonthReportBean mrb = departSum.get(code); mrb.setAmount(MathTools.add(mrb.getAmount(), amount).intValue()); @@ -4306,11 +4384,11 @@ String columnName = ""; if("是".equals(diposable)){ discountPrice = price;//一次性物品发货项中目前还没有记录折扣价 - newMonthReport(code, dept,"3", "价格统计","b一次性物品总价",price, list); + newMonthReport(code, dept,"3", "价格统计","b一次性物品总价",price, list, null, null); continue; } columnName = getColumnNameBySterilingMethod(sterilisationAndSterilizationModeMap, sterilingMethod); - newMonthReport(code, dept,"3", "价格统计",columnName,price, list); + newMonthReport(code, dept,"3", "价格统计",columnName,price, list, null, null); } } catch (SQLException e) { e.printStackTrace(); @@ -4363,16 +4441,16 @@ } if("一次性物品".equals(type)){ - newMonthReport(code, dept, "3", "价格统计", "b一次性物品总价", price, list); - newMonthReport(code, dept, "2", "数量统计", "b一次性物品数量", amount, list); + newMonthReport(code, dept, "3", "价格统计", "b一次性物品总价", price, list, null, null); + newMonthReport(code, dept, "2", "数量统计", "b一次性物品数量", amount, list, null, null); continue; } String columnName = getColumnNameBySterilingMethod(sterilisationAndSterilizationModeMap, sterilingMethod); - newMonthReport(code, dept, "3", "价格统计", columnName, price, list); - newMonthReport(code, dept, "2", "数量统计", columnName, amount, list); + newMonthReport(code, dept, "3", "价格统计", columnName, price, list, null, null); + newMonthReport(code, dept, "2", "数量统计", columnName, amount, list, null, null); if(monthReportMaterialAmountOfTousse){ - newMonthReport(code, dept, "4", "包内材料统计", "b包内材料数量", totalMaterialAmount, list); + newMonthReport(code, dept, "4", "包内材料统计", "b包内材料数量", totalMaterialAmount, list, null, null); } } }catch(Exception e){ @@ -4396,7 +4474,7 @@ Double price = materialInvoicePriceResultSet.getDouble(3); String columnName = "b发货材料总价"; - newMonthReport(code, dept,"3", "价格统计",columnName,price, list); + newMonthReport(code, dept,"3", "价格统计",columnName,price, list, null, null); } } catch (SQLException e) { e.printStackTrace(); @@ -4418,7 +4496,7 @@ String dept = materialInvoiceAmountResultSet.getString(2); int tousseAmount = materialInvoiceAmountResultSet.getInt(3); if(tousseAmount > 0){ - newMonthReport(code, dept,"2","数量统计", "b发货材料数量",tousseAmount,list); + newMonthReport(code, dept,"2","数量统计", "b发货材料数量",tousseAmount,list, null, null); } } } catch (SQLException e) { @@ -4451,8 +4529,8 @@ Double money = rs33.getDouble(4); int amount = rs33.getInt(5); - newMonthReport(code, dept, "2", "数量统计", "b丢失报损材料数量", amount, list); - newMonthReport(code, dept, "3", "价格统计", "b丢失报损材料总价", money, list); + newMonthReport(code, dept, "2", "数量统计", "b丢失报损材料数量", amount, list, null, null); + newMonthReport(code, dept, "3", "价格统计", "b丢失报损材料总价", money, list, null, null); } } }catch(Exception e){ @@ -4480,8 +4558,8 @@ Double money = rs3.getDouble(4); int amount = rs3.getInt(5); - newMonthReport(code, dept,"2", "数量统计","b丢失报损材料数量",amount, list); - newMonthReport(code, dept,"3", "价格统计","b丢失报损材料总价",money, list); + newMonthReport(code, dept,"2", "数量统计","b丢失报损材料数量",amount, list, null, null); + newMonthReport(code, dept,"3", "价格统计","b丢失报损材料总价",money, list, null, null); } } }catch(Exception e){ @@ -4505,8 +4583,8 @@ Double price = materialReturnResultSet.getDouble(3); int amount = materialReturnResultSet.getInt(4); - newMonthReport(code, dept, "3", "价格统计", "b发货材料总价", price, list); - newMonthReport(code, dept, "2", "数量统计", "b发货材料数量", amount, list); + newMonthReport(code, dept, "3", "价格统计", "b发货材料总价", price, list, null, null); + newMonthReport(code, dept, "2", "数量统计", "b发货材料数量", amount, list, null, null); } }catch(Exception e){ e.printStackTrace(); @@ -4534,7 +4612,7 @@ String dept = disposableGoodsInvoiceAmountResultSet.getString(2); int diposableAmount = disposableGoodsInvoiceAmountResultSet.getInt(3); if(diposableAmount > 0){ - newMonthReport(code, dept,"2","数量统计", "b一次性物品数量",diposableAmount,list); + newMonthReport(code, dept,"2","数量统计", "b一次性物品数量",diposableAmount,list, null, null); } } } catch (SQLException e) { @@ -4575,11 +4653,11 @@ int amount = rs4.getInt(3); String code = rs4.getString(4); if("一次性物品".equals(type)){ - newMonthReport(code, config.getOrgUnitName(), "3", "价格统计", "b一次性物品总价", price, list); - newMonthReport(code, config.getOrgUnitName(), "2", "数量统计", "b一次性物品数量", amount, list); + newMonthReport(code, config.getOrgUnitName(), "3", "价格统计", "b一次性物品总价", price, list, null, null); + newMonthReport(code, config.getOrgUnitName(), "2", "数量统计", "b一次性物品数量", amount, list, null, null); }else{ - newMonthReport(code, config.getOrgUnitName(), "3", "价格统计", "b发货材料总价", price, list); - newMonthReport(code, config.getOrgUnitName(), "2", "数量统计", "b发货材料数量", amount, list); + newMonthReport(code, config.getOrgUnitName(), "3", "价格统计", "b发货材料总价", price, list, null, null); + newMonthReport(code, config.getOrgUnitName(), "2", "数量统计", "b发货材料数量", amount, list, null, null); } } }catch(Exception e){ @@ -4604,8 +4682,8 @@ String code = rs4.getString(4); String orgUnitName = rs4.getString(5); if("一次性物品".equals(type)){ - newMonthReport(code, orgUnitName, "3", "价格统计", "b一次性物品总价", price, list); - newMonthReport(code, orgUnitName, "2", "数量统计", "b一次性物品数量", amount, list); + newMonthReport(code, orgUnitName, "3", "价格统计", "b一次性物品总价", price, list, null, null); + newMonthReport(code, orgUnitName, "2", "数量统计", "b一次性物品数量", amount, list, null, null); } } }catch(Exception e){ @@ -4630,8 +4708,8 @@ String code = rs4.getString(4); String orgUnitName = rs4.getString(5); if("一次性物品".equals(type)){ - newMonthReport(code, orgUnitName, "3", "价格统计", "b一次性物品总价", price, list); - newMonthReport(code, orgUnitName, "2", "数量统计", "b一次性物品数量", amount, list); + newMonthReport(code, orgUnitName, "3", "价格统计", "b一次性物品总价", price, list, null, null); + newMonthReport(code, orgUnitName, "2", "数量统计", "b一次性物品数量", amount, list, null, null); } } }catch(Exception e){ @@ -4656,8 +4734,8 @@ String code = rs.getString(4); String orgUnitName = rs.getString(5); if("一次性物品".equals(type)){ - newMonthReport(code, orgUnitName, "3", "价格统计", "b一次性物品总价", price, list); - newMonthReport(code, orgUnitName, "2", "数量统计", "b一次性物品数量", amount, list); + newMonthReport(code, orgUnitName, "3", "价格统计", "b一次性物品总价", price, list, null, null); + newMonthReport(code, orgUnitName, "2", "数量统计", "b一次性物品数量", amount, list, null, null); } } }catch(Exception e){ @@ -4714,9 +4792,9 @@ } } String columnName = getColumnNameBySterilingMethod(sterilisationAndSterilizationModeMap, sterilingMethod); - newMonthReport(code, dept,"2","数量统计", columnName,tousseAmount,list); + newMonthReport(code, dept,"2","数量统计", columnName,tousseAmount,list, null, null); if(monthReportMaterialAmountOfTousse){ - newMonthReport(code, dept, "4", "包内材料统计", "b包内材料数量", totalMaterialAmount, list); + newMonthReport(code, dept, "4", "包内材料统计", "b包内材料数量", totalMaterialAmount, list, null, null); } } } catch (SQLException e) { @@ -4741,7 +4819,7 @@ Double price = rs5.getDouble("price"); String orgUnitName = rs5.getString("orgUnitName"); String orgUnitCode = rs5.getString("orgUnitCode"); - newMonthReport(orgUnitCode, orgUnitName, "3", "价格统计", "b收费项目总价", price, list); + newMonthReport(orgUnitCode, orgUnitName, "3", "价格统计", "b收费项目总价", price, list, null, null); } }catch(Exception e){ e.printStackTrace(); @@ -4793,14 +4871,18 @@ } private void newMonthReport(String code, String dept, String columnNum, String columnTitle, String columnName, - Double money,List list) { + Double money,List list, String hospitalDistrict , Boolean enableMultipleBranchesOfHospital) { MonthReportBean bean = new MonthReportBean(); bean.setRowNum(code); bean.setDepartment(dept); bean.setColumnNum(columnNum); bean.setColumnTitle(columnTitle); bean.setColumnName(columnName); bean.setMoney(money); + bean.setHospitalDistrict(hospitalDistrict); + if(StringUtils.isNotBlank(hospitalDistrict) && enableMultipleBranchesOfHospital != null && enableMultipleBranchesOfHospital){ + newMonthReport(null, "合计_"+ hospitalDistrict, columnNum, columnTitle, columnName, money, list, hospitalDistrict, false); + } list.add(bean); } /** @@ -4815,20 +4897,24 @@ */ private void newMonthReport(String code, String dept, String columnNum, String columnTitle, String columnName, - Integer amount,List list) { + Integer amount, List list, String hospitalDistrict, Boolean enableMultipleBranchesOfHospital) { MonthReportBean bean = new MonthReportBean(); bean.setRowNum(code); bean.setDepartment(dept); bean.setColumnNum(columnNum); bean.setColumnTitle(columnTitle); bean.setColumnName(columnName); bean.setAmount(amount); + bean.setHospitalDistrict(hospitalDistrict); + if(StringUtils.isNotBlank(hospitalDistrict) && enableMultipleBranchesOfHospital != null && enableMultipleBranchesOfHospital){ + newMonthReport(null, "合计_"+ hospitalDistrict, columnNum, columnTitle, columnName, amount, list, hospitalDistrict, false); + } list.add(bean); } private void newMonthReport(String code, String dept, String columnNum, String columnTitle, String columnName, - Integer amount,List list, Double integral) { + Integer amount,List list, Double integral, String hospitalDistrict, Boolean enableMultipleBranchesOfHospital) { MonthReportBean bean = new MonthReportBean(); bean.setRowNum(code); bean.setDepartment(dept); @@ -4839,6 +4925,10 @@ if(integral != null){ bean.setIntegral(integral); } + bean.setHospitalDistrict(hospitalDistrict); + if(StringUtils.isNotBlank(hospitalDistrict) && enableMultipleBranchesOfHospital != null && enableMultipleBranchesOfHospital){ + newMonthReport(null, "合计_"+ hospitalDistrict, columnNum, columnTitle, columnName, amount, list, integral, hospitalDistrict, false); + } list.add(bean); } public Map getDiposableGoodsManufacturer(){ Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.jsp =================================================================== diff -u -r29916 -r29996 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.jsp (.../departmentMonthlyView.jsp) (revision 29916) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.jsp (.../departmentMonthlyView.jsp) (revision 29996) @@ -44,9 +44,11 @@ + + +