Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/RealTimeBulletinBoardWorkloadHelper.java =================================================================== diff -u -r41327 -r41334 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/RealTimeBulletinBoardWorkloadHelper.java (.../RealTimeBulletinBoardWorkloadHelper.java) (revision 41327) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/RealTimeBulletinBoardWorkloadHelper.java (.../RealTimeBulletinBoardWorkloadHelper.java) (revision 41334) @@ -12,9 +12,11 @@ import java.util.Date; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.stream.Collectors; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -25,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import com.forgon.Constants; import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.common.CssdUtils; @@ -1093,7 +1096,7 @@ sbf.append(" sn on sn.sterilisation=sr.sterilizationType where sr.sterilizer_id=s.id and sr.status='"); sbf.append(SterilizationRecord.STERILIZATION_STATUS_BEGIN); sbf.append("') dateStr,s.name "); - sbf.append(",(select 1 from "); + sbf.append(",(select count(*) from "); sbf.append(SterilizationRecord.class.getSimpleName()); sbf.append(" sr11 where sr11.sterilizer_id=s.id and sr11.startDate "); sbf.append(displayModBetweenSql); @@ -1969,6 +1972,7 @@ }else{ throw new SystemException("暂不支持的环节"+link); } + Map statisticalWorkloadMap = new LinkedHashMap(); try (ResultSet rs = objectDao.executeSql(tousseAmountSql)){ while (rs.next()) { String type = rs.getString("type"); @@ -1980,6 +1984,7 @@ workLoadBean.setColumnName(type); workLoadBean.setSequence(1); list.add(workLoadBean); + statisticalWorkloadMap.put(userName+ Constants.IDS_SEPARATOR + type, workLoadBean); } } catch (Exception e) { e.printStackTrace(); @@ -2047,7 +2052,14 @@ String type = materialAmountRs.getString("type"); String userName = materialAmountRs.getString("userName"); int amount = materialAmountRs.getInt("amount"); - StatisticalWorkload workLoadBean = new StatisticalWorkload(); + String key = userName+ Constants.IDS_SEPARATOR + type; + StatisticalWorkload workLoadBean = null; + if(!statisticalWorkloadMap.containsKey(key)){ + workLoadBean = new StatisticalWorkload(); + statisticalWorkloadMap.put(key, workLoadBean); + }else{ + workLoadBean = statisticalWorkloadMap.get(key); + } workLoadBean.setOperator(userName); workLoadBean.setMaterialAmount(amount); workLoadBean.setColumnName(type); @@ -2079,19 +2091,28 @@ while (materialInvoice.next()) { String sender = materialInvoice.getString("sender"); int amount = materialInvoice.getInt("amount"); - StatisticalWorkload workLoadBean = new StatisticalWorkload(); + String key = sender+ Constants.IDS_SEPARATOR + "发货数量"; + StatisticalWorkload workLoadBean = null; + if(!statisticalWorkloadMap.containsKey(key)){ + workLoadBean = new StatisticalWorkload(); + statisticalWorkloadMap.put(key, workLoadBean); + }else{ + workLoadBean = statisticalWorkloadMap.get(key); + } workLoadBean.setOperator(sender); - workLoadBean.setAmount(amount); + workLoadBean.setAmount(MathTools.add(amount, workLoadBean.getAmount()).intValue()); workLoadBean.setColumnName("发货数量"); workLoadBean.setSequence(1); - workLoadBean.setMaterialAmount(amount); + workLoadBean.setMaterialAmount(MathTools.add(amount, workLoadBean.getMaterialAmount()).intValue()); list.add(workLoadBean); } } catch (Exception e) { e.printStackTrace(); } } - return list; + return statisticalWorkloadMap.values() + .stream() + .collect(Collectors.toList()); } /** * 获取数据看板数据源