Просмотр исходного кода

解决门诊处方保存失败

hurugang 2 лет назад
Родитель
Сommit
1e25e30e4b

+ 9 - 1
src/main/java/cn/hnthyy/thmz/controller/mz/MzChargeDetailController.java

@@ -1561,6 +1561,7 @@ public class MzChargeDetailController {
     @RequestMapping(value = "/savePrescription", method = {RequestMethod.POST})
     public Map<String, Object> savePrescription(@RequestBody MzPrescriptionVo mzPrescriptionVo, HttpServletRequest httpServletRequest) {
         Map<String, Object> resultMap = new HashMap<>();
+        Clinic clinic=null;
         try {
             //原方法开始
 //    User tokenUser = TokenUtil.getUser(httpServletRequest);
@@ -1648,7 +1649,7 @@ public class MzChargeDetailController {
             if (commonResult.is()) {
                 return resultMap;
             }
-            Clinic clinic = commonResult.getClinic();
+            clinic = commonResult.getClinic();
             Clinic insertClinic = mzChargeDetailService.savePrescription(mzPrescriptionVo, clinic);
             if (insertClinic != null && insertClinic.getId() != null) {
                 resultMap.put("code", 0);
@@ -1670,6 +1671,13 @@ public class MzChargeDetailController {
             resultMap.put("message", "门诊处方保存失败,请联系管理员");
             log.error("系统异常,错误信息{}", e);
             log.error(JsonUtil.object2Json(mzPrescriptionVo));
+            //保存就诊记录带id 因为跨数据库回滚失败零时方案,不做正常保存
+            if(clinic!=null){
+                Clinic dbClinic=clinicService.queryById(clinic.getId());
+                if(dbClinic==null){
+                    clinicService.saveClinicWithId(clinic);
+                }
+            }
             return resultMap;
         }
     }

+ 10 - 0
src/main/java/cn/hnthyy/thmz/mapper/thmz/ClinicMapper.java

@@ -8,6 +8,16 @@ import java.util.Map;
 
 public interface ClinicMapper {
 
+    /**
+     * 保存就诊记录带id 因为跨数据库回滚失败零时方案,不做正常保存
+     *
+     * @param clinic
+     * @return
+     */
+    @Insert("INSERT IGNORE INTO t_clinic(id,patient_id, patient_name, times, receipt_no,dept_code,doctor_code,icd_code,icd_text,op_id,op_day,first_or_not,clinic_status,jz_flag,zgmztczf,exp_content) VALUES " +
+            "(#{id},#{patientId}, #{patientName}, #{times}, #{receiptNo},#{deptCode},#{doctorCode},#{icdCode},#{icdText},#{opId},#{opDay},#{firstOrNot},#{clinicStatus},#{jzFlag},#{zgmztczf},#{expContent})")
+    int insertClinicWithId(Clinic clinic);
+
     /**
      * 保存就诊记录
      *

+ 4 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/mz/MzChargeDetailServiceImpl.java

@@ -1157,6 +1157,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
             }
         }
         if (mzPrescriptionVo.getMzChargeDetailList() != null && mzPrescriptionVo.getMzChargeDetailList().size() > 0) {
+            log.error(JsonUtil.object2Json(mzPrescriptionVo.getMzChargeDetailList()));
             getMzChargeDetailService().saveMzChargeDetail(mzPrescriptionVo.getMzChargeDetailList());
         }
         if (StringUtils.isNotBlank(mzPrescriptionVo.getSerialNo())) {
@@ -2126,6 +2127,9 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
 //                if (StringUtils.isBlank(mzChargeDetail.getSupplyExec())) {
 //                    throw new MzException("保存处方失败,第" + itemNo + "行药品给药方式执行科室不能为空");
 //                }
+                if (StringUtils.isNotBlank(mzChargeDetail.getDrugUnit()) && "null".equals(mzChargeDetail.getDrugUnit())) {
+                    mzChargeDetail.setDrugUnit(null);
+                }
                 if (needPatient) {
                     //设置处方类型
                     String jzFlag = orderNoMap.get(mzChargeDetail.getOrderNo());

+ 6 - 0
src/main/java/cn/hnthyy/thmz/service/impl/thmz/ClinicServiceImpl.java

@@ -58,6 +58,12 @@ public class ClinicServiceImpl implements ClinicService {
     @SuppressWarnings("all")
     @Autowired
     private MzyRequestMapper mzyRequestMapper;
+
+    @Override
+    public int saveClinicWithId(Clinic clinic) {
+        return clinicMapper.insertClinicWithId(clinic);
+    }
+
     @Override
     public int saveClinic(Clinic clinic) {
         //存在就不插入

+ 7 - 0
src/main/java/cn/hnthyy/thmz/service/thmz/ClinicService.java

@@ -8,6 +8,13 @@ import java.util.List;
 import java.util.Map;
 
 public interface ClinicService {
+    /**
+     * 保存就诊记录带id 因为跨数据库回滚失败零时方案,不做正常保存
+     *
+     * @param clinic
+     * @return
+     */
+    int saveClinicWithId(Clinic clinic);
 
     /**
      * 保存就诊记录