|
@@ -1183,4 +1183,83 @@ public class SiQueryService {
|
|
|
public ResultVo<List<SiMzMatnDise>> queryMzMatnDises() {
|
|
|
return ResultVoUtil.success(dao.selectAllMzMatnDises());
|
|
|
}
|
|
|
+
|
|
|
+ public ResultVo<List<SetlStatisticResult>> selectSetlinfoStatistics(SetlCondition condition) {
|
|
|
+ String begntime = condition.getMonth() + "-01 00:00:00.000";
|
|
|
+ String endtime = DateUtil.getMonthEndtime(condition.getMonth());
|
|
|
+ List<BaseSetlStatistics> baseStatistics;
|
|
|
+ if (condition.getAdmdvs() == 1) {
|
|
|
+ baseStatistics = dao.selectBaseSetlStatisticsInProvince(begntime, endtime, condition.getInsutype());
|
|
|
+ } else {
|
|
|
+ baseStatistics = dao.selectBaseSetlStatisticsOutProvince(begntime, endtime, condition.getInsutype());
|
|
|
+ }
|
|
|
+ if (null == baseStatistics || baseStatistics.isEmpty()) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, List<BaseSetlStatistics>> tempMap = new HashMap<>();
|
|
|
+ baseStatistics.forEach(itm -> {
|
|
|
+ String key = itm.getInsuplcAdmdvs();
|
|
|
+ if (tempMap.containsKey(key)) {
|
|
|
+ tempMap.get(key).add(itm);
|
|
|
+ } else {
|
|
|
+ List<BaseSetlStatistics> tempList = new ArrayList<>();
|
|
|
+ tempList.add(itm);
|
|
|
+ tempMap.put(key, tempList);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ Map<String, List<BaseSetlStatistics>> admNameMap = new HashMap<>();
|
|
|
+ for (Map.Entry<String, List<BaseSetlStatistics>> entry : tempMap.entrySet()) {
|
|
|
+ String admdvs = entry.getKey();
|
|
|
+ String admdvsName = dao.selectRegionName(admdvs);
|
|
|
+ if (StringUtil.isBlank(admdvsName)) {
|
|
|
+ admdvsName = dao.selectAdmdvsName(admdvs);
|
|
|
+ if (StringUtil.isBlank(admdvsName)) {
|
|
|
+ admdvs = admdvs.substring(0, 4) + "00";
|
|
|
+ admdvsName = dao.selectRegionName(admdvs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (admNameMap.containsKey(admdvsName)) {
|
|
|
+ admNameMap.get(admdvsName).addAll(entry.getValue());
|
|
|
+ } else {
|
|
|
+ admNameMap.put(admdvsName, entry.getValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<SetlStatisticResult> resultList = new ArrayList<>();
|
|
|
+ for (Map.Entry<String, List<BaseSetlStatistics>> entry : admNameMap.entrySet()) {
|
|
|
+ List<BaseSetlStatistics> mapStatistics = entry.getValue();
|
|
|
+ SetlStatisticResult resultItem = new SetlStatisticResult();
|
|
|
+ resultItem.setAdmdvsName(entry.getKey());
|
|
|
+ resultItem.setPsnSumamt(mapStatistics.size());
|
|
|
+ String medfeeSumamt = "0";
|
|
|
+ String baseMedFundpaySumamt = "0";
|
|
|
+ String bigDssFundpaySumamt = "0";
|
|
|
+ String clvFundpaySumamt = "0";
|
|
|
+ String acctpaySumamt = "0";
|
|
|
+ String othFundpaySumamt = "0";
|
|
|
+ String fundpaySumamt = "0";
|
|
|
+ for (BaseSetlStatistics itm : mapStatistics) {
|
|
|
+ medfeeSumamt = DecimalUtil.add(medfeeSumamt, itm.getMedfeeSumamt());
|
|
|
+ baseMedFundpaySumamt = DecimalUtil.add(baseMedFundpaySumamt, itm.getHifpPay());
|
|
|
+ bigDssFundpaySumamt = DecimalUtil.add(bigDssFundpaySumamt, itm.getHifmiPay());
|
|
|
+ clvFundpaySumamt = DecimalUtil.add(clvFundpaySumamt, itm.getCvlservPay());
|
|
|
+ acctpaySumamt = DecimalUtil.add(acctpaySumamt, itm.getAcctPay());
|
|
|
+ fundpaySumamt = DecimalUtil.add(fundpaySumamt, itm.getFundPaySumamt());
|
|
|
+ String othpay = DecimalUtil.minusLink(itm.getFundPaySumamt(), itm.getHifpPay(),
|
|
|
+ itm.getHifmiPay(), itm.getCvlservPay(), itm.getAcctPay());
|
|
|
+ othFundpaySumamt = DecimalUtil.add(othFundpaySumamt, othpay);
|
|
|
+ }
|
|
|
+ resultItem.setMedfeeSumamt(medfeeSumamt);
|
|
|
+ resultItem.setBaseMedFundpaySumamt(baseMedFundpaySumamt);
|
|
|
+ resultItem.setBigDssFundpaySumamt(bigDssFundpaySumamt);
|
|
|
+ resultItem.setClvFundpaySumamt(clvFundpaySumamt);
|
|
|
+ resultItem.setAcctpaySumamt(acctpaySumamt);
|
|
|
+ resultItem.setOthFundpaySumamt(othFundpaySumamt);
|
|
|
+ resultItem.setFundpaySumamt(fundpaySumamt);
|
|
|
+ resultList.add(resultItem);
|
|
|
+ }
|
|
|
+ return ResultVoUtil.success(resultList);
|
|
|
+ }
|
|
|
}
|