|
@@ -9,6 +9,7 @@ import cn.hnthyy.thmz.service.thmz.MzmxsrService;
|
|
|
import cn.hnthyy.thmz.vo.ThmzmxsrParamsVo;
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
|
|
|
public class ProcessYpCountThread implements Runnable{
|
|
@@ -28,7 +29,7 @@ public class ProcessYpCountThread implements Runnable{
|
|
|
calendar.set(Calendar.SECOND, 0);
|
|
|
Date beginTime = calendar.getTime();
|
|
|
Date now = DateUtil.getFirstSecond();
|
|
|
- Date Today = DateUtil.pase("2020-06-22 00:00:00","yyyy-MM-dd HH:mm:ss");
|
|
|
+ Date Today = DateUtil.pase("2020-09-07 00:00:00","yyyy-MM-dd HH:mm:ss");
|
|
|
if(year < 2020){
|
|
|
calendar.add(Calendar.YEAR, 1);
|
|
|
now=calendar.getTime();
|
|
@@ -40,6 +41,7 @@ public class ProcessYpCountThread implements Runnable{
|
|
|
try {
|
|
|
process(beginTime, endTime);
|
|
|
}catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
log.error("当前日期没有抓取 beginTime="+beginTime+"----endTime="+endTime);
|
|
|
}
|
|
|
log.info("=====>>>>>开始日期{},结束日期{}初始化统计完成", DateUtil.fomart(beginTime, "yyyy-MM-dd HH:mm:ss"), DateUtil.fomart(endTime, "yyyy-MM-dd HH:mm:ss"));
|
|
@@ -76,21 +78,36 @@ public class ProcessYpCountThread implements Runnable{
|
|
|
thmzmxsrParamsVo.setHisData(YesNoEnum.YES);
|
|
|
List<Mzmxsr> thmzmxsrsHis = chargeFeeVoService.queryThmzmxsr(thmzmxsrParamsVo);
|
|
|
fomartThmzmxsr(thmzmxsrs, thmzmxsrsHis);
|
|
|
+ List<Map<String,Object>> list=chargeFeeVoService.querySumAmount(thmzmxsrParamsVo);
|
|
|
+ Map<String,BigDecimal> sumMap = new HashMap<>();
|
|
|
+ if (list!=null && list.size()>0){
|
|
|
+ for (Map map :list){
|
|
|
+ String patientId = (String) map.get("patient_id");
|
|
|
+ Double totalChargeD = (Double) map.get("total_charge");
|
|
|
+ BigDecimal totalCharge =BigDecimal.ZERO;
|
|
|
+ if(totalChargeD!=null){
|
|
|
+ totalCharge=BigDecimal.valueOf(totalChargeD);
|
|
|
+ }
|
|
|
+ sumMap.put(patientId,totalCharge);
|
|
|
+ }
|
|
|
+ }
|
|
|
Date inputDate = new Date();
|
|
|
//批量导入入库方式
|
|
|
List<Mzmxsr> insertList = new ArrayList<>();
|
|
|
thmzmxsrs.forEach(mzmxsr -> {
|
|
|
mzmxsr.setInputDate(inputDate);
|
|
|
- insertList.add(mzmxsr);
|
|
|
- if (insertList.size() >= 50) {
|
|
|
- try {
|
|
|
- mzmxsrService.batchSaveMzmxsr(insertList);
|
|
|
- insertList.clear();
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("统计门诊收入明细信息保存出错,参数列表长度{},错误信息:{}", thmzmxsrs.size(),e.getMessage());
|
|
|
+ BigDecimal totalCharge =sumMap.get(mzmxsr.getPatientId());
|
|
|
+ if(totalCharge!=null && totalCharge.compareTo(BigDecimal.ZERO)!=0){
|
|
|
+ insertList.add(mzmxsr);
|
|
|
+ if (insertList.size() >= 50) {
|
|
|
+ try {
|
|
|
+ mzmxsrService.batchSaveMzmxsr(insertList);
|
|
|
+ insertList.clear();
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("统计门诊收入明细信息保存出错,参数列表长度{},错误信息:{}", thmzmxsrs.size(),e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
});
|
|
|
if (insertList.size() > 0) {
|
|
|
try {
|