|
@@ -240,6 +240,8 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
private boolean setUnitPrice;
|
|
|
@Resource
|
|
|
private MzVisitListService mzVisitListService;
|
|
|
+ @Autowired
|
|
|
+ private ZdChargeItemMapper zdChargeItemMapper;
|
|
|
|
|
|
@Override
|
|
|
public int countMzChargeDetail(MzChargeDetailPageDto mzChargeDetailPageDto) {
|
|
@@ -7566,15 +7568,31 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
throw new MzException("开具商城套餐处方,不能和其他处方合开,必须单独开具!");
|
|
|
}
|
|
|
|
|
|
- // todo 当收取急诊监护费时,不收挂号费
|
|
|
List<MzChargeDetail> mzChargeDetailList = mzPrescriptionVo.getMzChargeDetailList();
|
|
|
+
|
|
|
+ // 当收取急诊监护费时,不收挂号费
|
|
|
+ ZdChargeItem zdChargeItem = null;
|
|
|
for(MzChargeDetail mzChargeDetail : mzChargeDetailList) {
|
|
|
if("020200000D".equalsIgnoreCase(mzChargeDetail.getChargeItemCode())) {
|
|
|
+ zdChargeItem = zdChargeItemMapper.selectZdChargeItemByCode(mzChargeDetail.getChargeItemCode());
|
|
|
mzPrescriptionVo.setGhFeeFlag("0");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 当收取急诊监护费时,不能收急诊诊察费、门急诊留观床位费、及所有项目名称带护理两字的护理费用
|
|
|
+ if(zdChargeItem != null && StringUtils.isNotBlank(zdChargeItem.getRepelOrder())) {
|
|
|
+ String[] repelOrders = zdChargeItem.getRepelOrder().split(",");
|
|
|
+ java.util.Set<String> repelOrderSet = new java.util.HashSet<>(Arrays.asList(repelOrders));
|
|
|
+
|
|
|
+ for (MzChargeDetail mzChargeDetail : mzChargeDetailList) {
|
|
|
+ String chargeItemCode = mzChargeDetail.getChargeItemCode();
|
|
|
+ if (repelOrderSet.contains(chargeItemCode)) {
|
|
|
+ throw new MzException("当收取急诊监护费时,不能收急诊诊察费、门急诊留观床位费、及所有项目名称带护理两字的护理费用!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//计算处方总金额是否为0
|
|
|
Map<String, Object> tempPrescription = getMzChargeDetailService().getAmountForTempPrescription(mzPrescriptionVo);
|
|
|
BigDecimal totalFee = (BigDecimal) tempPrescription.get("amount");
|