|
|
@@ -26,8 +26,12 @@ import org.quartz.JobExecutionException;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 门诊事后监管任务生成
|
|
|
@@ -77,6 +81,7 @@ public class OutpatientAuditLogJob implements Job {
|
|
|
outpatientSettleBill.setDoctorLevel(outpatientSettleBill.getDoctorLevel());
|
|
|
AfterIncidentLog afterIncidentLog = afterIncidentLogService.addAfterIncidentLogByOutpatient(outpatientSettleBill);
|
|
|
List<OutpatientSettlementDetails> outpatientSettlementDetailsList = outpatientSettlementDetailsService.lambdaQuery().eq(OutpatientSettlementDetails::getHisid, outpatientSettleBill.getHisid()).list();
|
|
|
+ sumDetail(outpatientSettlementDetailsList);
|
|
|
List<AfterIncidentDetailLog> afterIncidentDetailLogList = new ArrayList<>();
|
|
|
AfterIncidentDetailLog afterIncidentDetailLog = null;
|
|
|
|
|
|
@@ -152,5 +157,37 @@ public class OutpatientAuditLogJob implements Job {
|
|
|
outpatientSettleBillService.lambdaUpdate().set(OutpatientSettleBill::getState, Constant.SUCCESS).eq(OutpatientSettleBill::getId, outpatientSettleBill.getId()).update();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 抵扣负条数记录
|
|
|
+ * @param detailList
|
|
|
+ */
|
|
|
+ public void sumDetail(List<OutpatientSettlementDetails> detailList) {
|
|
|
+ Map<String, OutpatientSettlementDetails> projectCodeHospMap = new HashMap<>();
|
|
|
+ Iterator<OutpatientSettlementDetails> hospIterator = detailList.iterator();
|
|
|
+ boolean haveSubFlag = false;
|
|
|
+ while (hospIterator.hasNext()) {
|
|
|
+ OutpatientSettlementDetails hospitalizatioSettleDetail = hospIterator.next();
|
|
|
+ if (hospitalizatioSettleDetail.getNum() < 0) {
|
|
|
+ projectCodeHospMap.put(hospitalizatioSettleDetail.getItemId(), hospitalizatioSettleDetail);
|
|
|
+ hospIterator.remove();
|
|
|
+ haveSubFlag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (haveSubFlag) {
|
|
|
+ Iterator<OutpatientSettlementDetails> newHospIterator = detailList.iterator();
|
|
|
+ while (newHospIterator.hasNext()) {
|
|
|
+ OutpatientSettlementDetails hospitalizatioSettleDetail = newHospIterator.next();
|
|
|
+ String itemId = hospitalizatioSettleDetail.getItemId();
|
|
|
+ if (projectCodeHospMap.containsKey(itemId)) {
|
|
|
+ OutpatientSettlementDetails subHospitalizatioSettleDetail = projectCodeHospMap.get(itemId);
|
|
|
+ hospitalizatioSettleDetail.setNum(hospitalizatioSettleDetail.getNum() + subHospitalizatioSettleDetail.getNum());
|
|
|
+ hospitalizatioSettleDetail.setCost(hospitalizatioSettleDetail.getCost().add(subHospitalizatioSettleDetail.getCost()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ if(hospitalizatioSettleDetail.getNum() == 0){
|
|
|
+ newHospIterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|