|
@@ -721,12 +721,12 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
clinic.setTimes(mzDepositFileVo.getTimes());
|
|
|
clinic.setReceiptNo(receiptNo);
|
|
|
clinic.setClinicStatus(ClinicStatusEnum.CHARGED.code);
|
|
|
- try{
|
|
|
+ try {
|
|
|
clinicMapper.updateClinicByPatientIdAndTimes(clinic);
|
|
|
- }catch (DuplicateKeyException e){
|
|
|
+ } catch (DuplicateKeyException e) {
|
|
|
//可能会有同一就诊次数不同缴费次数的数据,老医生系统产生,导致更新的时候索引重复,无法缴费
|
|
|
- List<Clinic> clinicList=clinicMapper.selectByPatientIdAndTimes(mzDepositFileVo.getPatientId(),mzDepositFileVo.getTimes());
|
|
|
- if(clinicList!=null && clinicList.size()>0){
|
|
|
+ List<Clinic> clinicList = clinicMapper.selectByPatientIdAndTimes(mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes());
|
|
|
+ if (clinicList != null && clinicList.size() > 0) {
|
|
|
clinicMapper.deleteById(clinicList.get(0).getId());
|
|
|
clinicMapper.updateClinicByPatientIdAndTimes(clinic);
|
|
|
}
|
|
@@ -1335,7 +1335,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
if (mzChargeDetail.getGroupOrder() != null) {
|
|
|
name = mzChargeDetail.getGroupOrder() + "." + name;
|
|
|
}
|
|
|
- String unitDesc=null;
|
|
|
+ String unitDesc = null;
|
|
|
if (mzChargeDetail.getDrugUnit() != null) {
|
|
|
unitDesc = UnitTypeEnum.getUnitTypeByCode(mzChargeDetail.getDrugUnit()).name;
|
|
|
if (mzChargeDetail.getDrugUnit().equals(ypZdDict.getWeighUnit()) && ypZdDict.getWeight() != null) {
|
|
@@ -1343,7 +1343,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
} else if (mzChargeDetail.getDrugUnit().equals(ypZdDict.getVolUnit()) && ypZdDict.getVolum() != null) {
|
|
|
name += " " + ypZdDict.getVolum().doubleValue() + unitDesc;
|
|
|
}
|
|
|
- // name += " " + mzChargeDetail.getDrugQuan() + unitDesc;
|
|
|
+ // name += " " + mzChargeDetail.getDrugQuan() + unitDesc;
|
|
|
}
|
|
|
name += " 共" + mzChargeDetail.getQuantity() + UnitTypeEnum.getUnitTypeByCode(ypZdDict.getPackUnit()).name;
|
|
|
if (StringUtils.isNotBlank(mzChargeDetail.getSupplyCode())) {
|
|
@@ -1859,7 +1859,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
//当前处方购药量
|
|
|
BigDecimal thisQuantity = BigDecimal.valueOf(mzChargeDetail.getQuantity()).multiply(BigDecimal.valueOf(mzChargeDetail.getDrugWin()));
|
|
|
//本月已经购买量
|
|
|
- Integer quantityDb = mzChargeDetailMapper.selectTotalQuantityForMonth(mzChargeDetail.getPatientId(), mzChargeDetail.getChargeItemCode(), mzChargeDetail.getSerial(), DateUtil.getFirstSecondForMonth(new Date()));
|
|
|
+ Integer quantityDb = mzChargeDetailMapper.selectTotalQuantityForDate(mzChargeDetail.getPatientId(), mzChargeDetail.getChargeItemCode(), mzChargeDetail.getSerial(), DateUtil.getFirstSecondForMonth(new Date()));
|
|
|
quantityDb = quantityDb == null ? 0 : quantityDb;
|
|
|
BigDecimal totalQuantity = thisQuantity.add(BigDecimal.valueOf(quantityDb));
|
|
|
if (totalQuantity.compareTo(BigDecimal.valueOf(ypZdDict.getMzRestrict())) == 1) {
|
|
@@ -1871,6 +1871,12 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
throw new MzException("药品【" + ypZdDict.getName() + "】编码【" + ypZdDict.getCode() + "】的药品超过限购量,最大购买量为【" + ypZdDict.getMzRestrict() + "】,本月已购买量为【" + quantityDb + "】,本次最大可购量为【" + tempCount + "】,当前处方购药数量【" + thisQuantity + "】请修改处方限制购药品种的数量");
|
|
|
}
|
|
|
}
|
|
|
+ if (ypZdDict.getPrescriptionLimitDays() != null && ypZdDict.getPrescriptionLimitDays() > 0) {
|
|
|
+ Integer quantityDb = mzChargeDetailMapper.selectTotalQuantityForDate(mzChargeDetail.getPatientId(), mzChargeDetail.getChargeItemCode(), mzChargeDetail.getSerial(), DateUtil.getDateFromNow(-ypZdDict.getPrescriptionLimitDays()));
|
|
|
+ if (quantityDb != null && quantityDb > 0) {
|
|
|
+ throw new MzException("药品【" + ypZdDict.getName() + "】编码【" + ypZdDict.getCode() + "】的药品超过限购量,最近"+ypZdDict.getPrescriptionLimitDays()+"天已经购买过该药品!");
|
|
|
+ }
|
|
|
+ }
|
|
|
String chargeBillCode = Constants.BILL_ITEM_CODE_prev + ypZdDict.getBillItemMz().substring(1);
|
|
|
mzChargeDetail.setChargeBillCode(chargeBillCode);
|
|
|
mzChargeDetail.setUnitPrice(ypZdDict.getPackRetprice());
|
|
@@ -2034,13 +2040,13 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = 36000, rollbackFor = Exception.class)
|
|
|
public int modifyReceiveFlagAndConfirmFlag(String flag, String opId, Integer reqNo) throws MzException {
|
|
|
- if(StringUtils.isBlank(flag)){
|
|
|
+ if (StringUtils.isBlank(flag)) {
|
|
|
throw new MzException("确认标志不能为空");
|
|
|
}
|
|
|
- if(StringUtils.isBlank(opId)){
|
|
|
+ if (StringUtils.isBlank(opId)) {
|
|
|
throw new MzException("确认人ID不能为空");
|
|
|
}
|
|
|
- if(reqNo==null){
|
|
|
+ if (reqNo == null) {
|
|
|
throw new MzException("申请单号不能为空");
|
|
|
}
|
|
|
Date now = new Date();
|
|
@@ -2061,7 +2067,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
|
|
|
@Override
|
|
|
public Integer queryPrintFlag(String patientId, String times, Integer orderNo) {
|
|
|
- return mzChargeDetailMapper.selectPrintFlag(patientId,times,orderNo);
|
|
|
+ return mzChargeDetailMapper.selectPrintFlag(patientId, times, orderNo);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -2355,10 +2361,14 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
if (mzVisitTable == null) {
|
|
|
throw new MzException("病人就诊记录不存在!");
|
|
|
}
|
|
|
+ MzBlRecord mzBlRecord = mzBlRecordMapper.selectMzBlRecordByPatientIdAndTimes(patientId, times);
|
|
|
mzPrescriptionVo.setFirstOrNot(mzVisitTable.getFirstOrNot());
|
|
|
mzPrescriptionVo.setIcdCode(mzVisitTable.getIcdCode());
|
|
|
- mzPrescriptionVo.setIcdText(mzVisitTable.getIcdText());
|
|
|
- MzBlRecord mzBlRecord = mzBlRecordMapper.selectMzBlRecordByPatientIdAndTimes(patientId, times);
|
|
|
+ String icdText=StringUtils.isBlank(mzBlRecord.getTentativeDiagnosis())?"":mzBlRecord.getTentativeDiagnosis();
|
|
|
+ if (mzVisitTable != null && mzVisitTable.getIcdText() != null && StringUtils.isNotBlank(mzVisitTable.getIcdText())) {
|
|
|
+ icdText+=mzVisitTable.getIcdText();
|
|
|
+ }
|
|
|
+ mzPrescriptionVo.setIcdText(icdText);
|
|
|
if (mzBlRecord == null) {
|
|
|
//throw new MzException("病人门诊病历记录不存在!");
|
|
|
//因为16年前没有病历数据
|