LIJU vor 2 Wochen
Ursprung
Commit
da1ca4cdd4

+ 4 - 1
src/main/java/cn/hnthyy/thmz/controller/mz/MzPharmacyController.java

@@ -315,7 +315,10 @@ public class MzPharmacyController {
                 log.info("追溯码转移成功,退药处理完成");
             } catch (Exception e) {
                 log.error("追溯码转移失败,但不影响退药处理,错误信息:{}", e.getMessage(), e);
-                // 追溯码转移失败不影响退药主流程,只记录日志
+                // 追溯码转移失败时返回失败状态
+                resultMap.put("code", -1);
+                resultMap.put("message", "退药处理失败:追溯码转移失败" + e.getMessage());
+                return resultMap;
             }
 
             return resultMap;

+ 15 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/mz/MzDrugTracCodgServiceImpl.java

@@ -107,7 +107,22 @@ public class MzDrugTracCodgServiceImpl implements MzDrugTracCodgService {
             codg.setSerial(vo.getSerial());
             codg.setItemNo(vo.getItemNo());
             codg.setGroupNo(vo.getGroupNo());
+            // 添加realNo条件,使用绝对值
+            codg.setRealNo(Math.abs(vo.getRealNo()));
+            
+            // 首先尝试使用完整条件查询
             List<MzDrugTracCodg> l = mzDrugTracCodgMapper.selectMzDrugTracCodgData(codg);
+            
+            // 如果没找到,尝试简化条件查询(只使用基本条件)
+            if(l.isEmpty()) {
+                MzDrugTracCodg simpleCodg = new MzDrugTracCodg();
+                simpleCodg.setPatientId(vo.getPatientId());
+                simpleCodg.setTimes(vo.getTimes());
+                simpleCodg.setReceiptNo(vo.getReceiptNo());
+                simpleCodg.setItemNo(vo.getItemNo());
+                l = mzDrugTracCodgMapper.selectMzDrugTracCodgData(simpleCodg);
+            }
+            
             list.addAll(l);
         }
         if(!list.isEmpty()){