Ver código fonte

feat: bug修改

xdd 1 mês atrás
pai
commit
7fdee7e3c9

+ 91 - 95
fs-service/src/main/java/com/fs/his/service/impl/FsPrescribeServiceImpl.java

@@ -31,6 +31,7 @@ import com.fs.im.service.IImService;
 import com.fs.system.oss.CloudStorageService;
 import com.fs.system.oss.OSSFactory;
 import com.google.zxing.WriterException;
+import jodd.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -404,99 +405,91 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
         }
         FsStoreOrder fsStoreOrder = storeOrderService.selectFsStoreOrderByOrderId(f.getStoreOrderId());
         FsInquiryOrderVO order = fsInquiryOrderMapper.selectFsInquiryOrderVOByOrderId(f.getInquiryOrderId());
-        if (f.getPrescribeImgUrl()==null||f.getPrescribeImgUrl().equals("")){
-            FsPrescribeDrug d = new FsPrescribeDrug();
-            d.setPrescribeId(f.getPrescribeId());
-            List<FsPrescribeDrug> list = fsPrescribeDrugMapper.selectFsPrescribeDrugList(d);
-//            List<FsPrescribeDrug> list =new ArrayList<>();
-//            for (FsPrescribeDrug fsPrescribeDrug : FsPrescribeDruglist) {
-//                if (fsPrescribeDrug.getIsDrug()!=null&&fsPrescribeDrug.getIsDrug()!=0){
-//                    list.add(fsPrescribeDrug);
-//                }else if (fsPrescribeDrug.getIsDrug()==null){
-//                    list.add(fsPrescribeDrug);
-//                }
-//            }
-            if(CollectionUtils.isEmpty(list)) {
-                log.error(String.format("[生成处方图片] 当前处方单 %d 找不到药品数据 %s",PrescribeId,JSON.toJSONString(list)));
-                throw new IllegalArgumentException(String.format("[生成处方图片] 当前处方单 %d 找不到药品数据 %s",PrescribeId,JSON.toJSONString(list)));
-            }
-            if (f.getPrescribeType()==1){
-                PrescribeXyImgParam o = new PrescribeXyImgParam();
-                o.setTotalPrice(fsStoreOrder.getPayPrice());
-                o.setTime(f.getCreateTime());
-                o.setPrescribeId(f.getPrescribeCode());
-                o.setPatientName(f.getPatientName());
-                o.setPatientGender(f.getPatientGender());
-                o.setPatientAge(f.getPatientAge());
-                o.setOutpatientId(f.getPrescribeCode());
-                o.setUrl(f.getPrescribeDoctorSignUrl());
-                o.setDrugDoctorUrl(f.getDrugDoctorSignUrl());
-                if (order!=null){
-                    o.setBedId(order.getDeptName());
-                }else {
-                    o.setBedId("中医科");
-                }
-                String remark="";
-                if (f.getUsageJson()!=null){
-                    FsPrescribeUsageDTO usage = JSONUtil.toBean(f.getUsageJson(), FsPrescribeUsageDTO.class);
-                    remark=usage.getRemark();
-                }
-                if (StringUtils.isNotBlank(remark)){
-                    o.setRemark(remark);
-                }else {
-                    o.setRemark("请按照用药说明书服用药品,如有不适,请及时就医!");
-                }
-                o.setHistoryAllergic(f.getHistoryAllergic());
-                o.setDiagnose(f.getDiagnose());
-                o.setPrescribeDrug(list); // 在这里添加处方药品列表的值
-                o.setDoctorName(f.getDoctorName());
-                o.setAuditDoctor(f.getDoctorDrugName());
-                o.setDispatcher("");
-                o.setCheckDoctor("");
-                o.setDoctorName(f.getDoctorName());
-                String s = getFsPrescribeXyImg(o);
-                FsPrescribe fsPrescribe = new FsPrescribe();
-                fsPrescribe.setPrescribeImgUrl(s);
-                fsPrescribe.setPrescribeId(f.getPrescribeId());
-                fsPrescribeMapper.updateFsPrescribe(fsPrescribe);
-                return s;
-            }else if (f.getPrescribeType()==2){
 
+        FsPrescribeDrug d = new FsPrescribeDrug();
+        d.setPrescribeId(f.getPrescribeId());
+        List<FsPrescribeDrug> list = fsPrescribeDrugMapper.selectFsPrescribeDrugList(d);
+
+        if(CollectionUtils.isEmpty(list)) {
+            log.error(String.format("[生成处方图片] 当前处方单 %d 找不到药品数据 %s",PrescribeId,JSON.toJSONString(list)));
+            throw new IllegalArgumentException(String.format("[生成处方图片] 当前处方单 %d 找不到药品数据 %s",PrescribeId,JSON.toJSONString(list)));
+        }
+        if (f.getPrescribeType()==1){
+            PrescribeXyImgParam o = new PrescribeXyImgParam();
+            o.setTotalPrice(fsStoreOrder.getPayPrice());
+            o.setTime(f.getCreateTime());
+            o.setPrescribeId(f.getPrescribeCode());
+            o.setPatientName(f.getPatientName());
+            o.setPatientGender(f.getPatientGender());
+            o.setPatientAge(f.getPatientAge());
+            o.setOutpatientId(f.getPrescribeCode());
+            o.setUrl(f.getPrescribeDoctorSignUrl());
+            o.setDrugDoctorUrl(f.getDrugDoctorSignUrl());
+            if (order!=null){
+                o.setBedId(order.getDeptName());
+            }else {
+                o.setBedId("中医科");
+            }
+            String remark="";
+            if (f.getUsageJson()!=null){
                 FsPrescribeUsageDTO usage = JSONUtil.toBean(f.getUsageJson(), FsPrescribeUsageDTO.class);
+                remark=usage.getRemark();
+            }
+            if (StringUtils.isNotBlank(remark)){
+                o.setRemark(remark);
+            }else {
+                o.setRemark("请按照用药说明书服用药品,如有不适,请及时就医!");
+            }
+            o.setHistoryAllergic(f.getHistoryAllergic());
+            o.setDiagnose(f.getDiagnose());
+            o.setPrescribeDrug(list); // 在这里添加处方药品列表的值
+            o.setDoctorName(f.getDoctorName());
+            o.setAuditDoctor(f.getDoctorDrugName());
+            o.setDispatcher("");
+            o.setCheckDoctor("");
+            o.setDoctorName(f.getDoctorName());
+            String s = getFsPrescribeXyImg(o);
+            FsPrescribe fsPrescribe = new FsPrescribe();
+            fsPrescribe.setPrescribeImgUrl(s);
+            fsPrescribe.setPrescribeId(f.getPrescribeId());
+            fsPrescribeMapper.updateFsPrescribe(fsPrescribe);
+            return s;
+        }else if (f.getPrescribeType()==2){
 
-                // 设置字段值
-                PrescribeZyImgParam o = new PrescribeZyImgParam();
-                o.setTime(f.getCreateTime());
-
-                o.setPrescribeId(f.getPrescribeCode());
-                o.setPatientName(f.getPatientName());
-                o.setPatientGender(f.getPatientGender());
-                o.setPatientAge(f.getPatientAge());
-                o.setPatientTel(f.getPatientTel());
-                o.setPrescribeDoctorName(f.getPrescribeDoctorName());
-                o.setUserName(fsStoreOrder.getUserName()); //发货地址
-                o.setUserPhone(fsStoreOrder.getUserPhone()); //收货人手机
-                o.setUserAddress(fsStoreOrder.getUserAddress()); //收货地址
-                o.setDiagnose(f.getDiagnose());
-                o.setPrescribeDrug(list); // 在这里添加处方药品列表的值
-                o.setEat(usage.getUsageMethod());
-                o.setUsageFrequencyUnit(usage.getUsageFrequencyUnit());
-                o.setRemark(usage.getRemark());
-                o.setDoctorName(f.getDoctorName());
-                o.setCheck(f.getDoctorDrugName());
-                if (usage.getCounts()!=null){
-                    o.setSize(usage.getCounts().toString());
-                }
-                o.setUrl(f.getPrescribeDoctorSignUrl());
-                o.setDrugDoctorUrl(f.getDrugDoctorSignUrl());
-                o.setTotalPrice(fsStoreOrder.getPayPrice());
-                String s = getFsPrescribeZyImg(o);
-                FsPrescribe fsPrescribe = new FsPrescribe();
-                fsPrescribe.setPrescribeImgUrl(s);
-                fsPrescribe.setPrescribeId(f.getPrescribeId());
-                fsPrescribeMapper.updateFsPrescribe(fsPrescribe);
-                return s;
+            FsPrescribeUsageDTO usage = JSONUtil.toBean(f.getUsageJson(), FsPrescribeUsageDTO.class);
+
+            // 设置字段值
+            PrescribeZyImgParam o = new PrescribeZyImgParam();
+            o.setTime(f.getCreateTime());
+
+            o.setPrescribeId(f.getPrescribeCode());
+            o.setPatientName(f.getPatientName());
+            o.setPatientGender(f.getPatientGender());
+            o.setPatientAge(f.getPatientAge());
+            o.setPatientTel(f.getPatientTel());
+            o.setPrescribeDoctorName(f.getPrescribeDoctorName());
+            o.setUserName(fsStoreOrder.getUserName()); //发货地址
+            o.setUserPhone(fsStoreOrder.getUserPhone()); //收货人手机
+            o.setUserAddress(fsStoreOrder.getUserAddress()); //收货地址
+            o.setDiagnose(f.getDiagnose());
+            o.setPrescribeDrug(list); // 在这里添加处方药品列表的值
+            o.setEat(usage.getUsageMethod());
+            o.setUsageFrequencyUnit(usage.getUsageFrequencyUnit());
+            o.setRemark(usage.getRemark());
+            o.setDoctorName(f.getDoctorName());
+            o.setCheck(f.getDoctorDrugName());
+            if (usage.getCounts()!=null){
+                o.setSize(usage.getCounts().toString());
             }
+            o.setUrl(f.getPrescribeDoctorSignUrl());
+            o.setDrugDoctorUrl(f.getDrugDoctorSignUrl());
+            o.setTotalPrice(fsStoreOrder.getPayPrice());
+            String s = getFsPrescribeZyImg(o);
+            FsPrescribe fsPrescribe = new FsPrescribe();
+            fsPrescribe.setPrescribeImgUrl(s);
+            fsPrescribe.setPrescribeId(f.getPrescribeId());
+            fsPrescribeMapper.updateFsPrescribe(fsPrescribe);
+            return s;
         }
         return f.getPrescribeImgUrl();
     }
@@ -935,12 +928,6 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
                 log.error("生成处方订单和处方图片失败!参数: {}",param,e);
             }
 
-            try{
-                sendImMsg(fsPrescribeService, fsPrescribe.getPrescribeId());
-            }catch (Exception e) {
-                log.error("发送IM失败 {}",fsPrescribe,e);
-            }
-
         }
     }
 
@@ -995,6 +982,7 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
 
                 // 已生成
                 fsPrescribe.setStoreOrderPaid(2);
+                fsPrescribeMapper.updateFsPrescribe(fsPrescribe);
                 log.info("处方单号: {} 图片生成成功", prescribeId);
             } catch (Exception e) {
                 log.error("处方单号: {} 图片生成失败, 错误信息: {}", prescribeId, e.getMessage(), e);
@@ -1036,6 +1024,14 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
             throw e;
         }
 
+
+        try{
+            // 发送IM
+            sendImMsg(fsPrescribeService, param.getPrescribeId());
+        }catch (Exception e) {
+            log.error("发送IM失败 {}",param,e);
+        }
+
         log.info("完成生成订单和处方单,处方单ID: {}", param.getPrescribeId());
     }