Kaynağa Gözat

退号优化

lihong 2 yıl önce
ebeveyn
işleme
72c3a91cf3

+ 15 - 6
src/main/java/cn/hnthyy/thmz/service/impl/his/mz/MzyReqrecServiceImpl.java

@@ -636,6 +636,8 @@ public class MzyReqrecServiceImpl implements MzyReqrecService {
             if (Constants.BRZZJF_CODE.equals(opId) && StringUtils.isNotBlank(dbMzyReqrec.getReceiptBill())) {
                 throw new MzException("您操作的挂号记录已打发票,请前往收费窗口进行退费!");
             }
+            //查询是否有退号记录了,防止插入重复数据
+            MzyReqrec thMzyReqrec = mzyReqrecMapper.selectMzyReqrecBySerialNo(-dbMzyReqrec.getSerialNo());
             ReqrecRequestRelation reqrecRequestRelation = reqrecRequestRelationMapper.selectReqrecRequestRelation(dbMzyReqrec.getSerialNo());
             if (reqrecRequestRelation != null && reqrecRequestRelation.getRequestId() != null) {
                 String requestHour = DateUtil.fomart(dbMzyReqrec.getRequestDay(), "HH");
@@ -686,11 +688,16 @@ public class MzyReqrecServiceImpl implements MzyReqrecService {
                 }else if ("17".equals(requestHour)) {
                         apTime = "p7";
                 }
-                mzyRequestMapper.updateLeftNumById(reqrecRequestRelation.getRequestId(), apTime);
-                MzyRequest dbMzyRequest = mzyRequestMapper.selectMzyRequestById(reqrecRequestRelation.getRequestId());
-                if (dbMzyRequest != null) {
-                    Integer leftNum = mzyRequestService.getApLeftNum(dbMzyRequest);
-                    mzyRequestMapper.setLeftNum(dbMzyRequest.getId(), leftNum);
+                if(thMzyReqrec == null) {
+                    if( !Constants.AM.equals(dbMzyReqrec.getAmpm().trim()) && !Constants.PM.equals(dbMzyReqrec.getAmpm().trim())){
+                        apTime = null;
+                    }
+                    mzyRequestMapper.updateLeftNumById(reqrecRequestRelation.getRequestId(), apTime);
+                    MzyRequest dbMzyRequest = mzyRequestMapper.selectMzyRequestById(reqrecRequestRelation.getRequestId());
+                    if (dbMzyRequest != null) {
+                        Integer leftNum = mzyRequestService.getApLeftNum(dbMzyRequest);
+                        mzyRequestMapper.setLeftNum(dbMzyRequest.getId(), leftNum);
+                    }
                 }
             }
             dbMzyReqrec.setTimes(-dbMzyReqrec.getTimes());
@@ -708,7 +715,9 @@ public class MzyReqrecServiceImpl implements MzyReqrecService {
             if (!(Arrays.asList(Constants.BRZZJF_CODE, Constants.HLWYY_CODE).contains(opId) || (YesNoEnum.YES.code.equals(mzyReqrec.getRefundType()) && Arrays.asList(Constants.BYJZ, Constants.YLK, Constants.JHZF).contains(dbMzyReqrec.getPaymode())))) {
                 dbMzyReqrec.setPaymode(Constants.CASH);
             }
-            mzyReqrecMapper.insertMzyReqrec(dbMzyReqrec);
+            if(thMzyReqrec == null){
+                mzyReqrecMapper.insertMzyReqrec(dbMzyReqrec);
+            }
             reqrecRequestRelationMapper.selectReqrecRequestRelation(dbMzyReqrec.getSerialNo());
             Clinic clinic = new Clinic();
             clinic.setPatientId(mzyReqrec.getPatientId());