Ver Fonte

检查批量打印的功能

xiaochan há 3 meses atrás
pai
commit
f5152fd851

+ 7 - 1
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/JianYanJianChaController.java

@@ -97,7 +97,7 @@ public class JianYanJianChaController {
     }
 
     @PostMapping("/baoCunJianYanJianCha")
-    public ResultVo<String> baoCunJianYanJianCha(@RequestBody @Validated TianJiaJianChaJianYan param) {
+    public ResultVo<List<Integer>> baoCunJianYanJianCha(@RequestBody @Validated TianJiaJianChaJianYan param) {
         return server.baoCunJianYanJianCha(param);
     }
 
@@ -185,4 +185,10 @@ public class JianYanJianChaController {
         return server.getExamineIllustrate(orderCode, isCheck);
     }
 
+    @PostMapping("/printListReqNo")
+    @PassToken
+    private ResultVo<Object> printListReqNo(@RequestBody List<Integer> reqNo) {
+        return server.printListReqNo(reqNo);
+    }
+
 }

+ 2 - 2
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/JianYanJianChaDao.java

@@ -92,8 +92,8 @@ public interface JianYanJianChaDao {
     List<YshYjReq> huoQuShengQingXiangQing(@Param("ew") QueryWrapper<YshYjReq> reqNo);
 
     @Select("select top 1 sex, " +
-            "       home_street," +
-            "       home_tel," +
+            "       rtrim(home_street) as  home_street," +
+            "       rtrim(home_tel) as home_tel," +
             "       responceTypeName = (select responce_type_name = (select rtrim(name) from zy_zd_responce_type where code = responce_type) \n" +
             "from zy_actpatient with (NOLOCK) \n" +
             "where inpatient_no = #{patNo}) " +

+ 2 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/JcZdClass.java

@@ -71,6 +71,8 @@ public class JcZdClass {
      */
     private String comment8;
 
+    private String commentAll;
+
     /**
      * 子级
      */

+ 43 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/vo/PrintYshReqVo.java

@@ -0,0 +1,43 @@
+package thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class PrintYshReqVo {
+    private String title;
+    private String name;
+    private String patNo;
+    private Integer sex;
+    private String age;
+    private String bedNo;
+    private String homeStreet;
+    private String homeTel;
+    private String inpatientNo;
+
+    private String reqComment;
+    private String reqTzComment;
+    private String reqOtherResult;
+    private String diagText;
+    private String responceTypeName;
+
+    /**
+     * 注意事项
+     */
+    private String precautions;
+
+    private List<Item> items;
+
+    @Data
+    public static class Item {
+        private Integer reqNo;
+        private String itemName;
+    }
+}

+ 85 - 20
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/JianYanJianChaShenQingService.java

@@ -21,6 +21,7 @@ import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.*;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.dto.JyJcCheckItemDto;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.vo.PrintYshReqVo;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.vo.ViewInspectionItemDetailsVo;
 import thyyxxk.webserver.entity.zhuyuanyisheng.query.ChaXunJianChaHeJianYan;
 import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.PatientTemp;
@@ -118,23 +119,18 @@ public class JianYanJianChaShenQingService {
         req.setHomeStreet(patient.getHomeStreet());
         //联系电话
         req.setHomeTel(patient.getHomeTel());
-        // 医保身份
-
         map.put("title", jc.getComm());
 
-        Map<String, Field> fieldMap = ReflectUtil.getFieldMap(JcZdClass.class);
-        for (Map.Entry<String, Field> item : fieldMap.entrySet()) {
-            String name = item.getKey();
-            if (name.startsWith("comment")) {
-                String value = ReflectUtil.invoke(jc, StringUtil.getMethodName(name));
-                if (StringUtil.notBlank(value)) {
-                    log.info("value:{}", value);
-                }
-
-            }
-        }
-
-
+//        Map<String, Field> fieldMap = ReflectUtil.getFieldMap(JcZdClass.class);
+//        for (Map.Entry<String, Field> item : fieldMap.entrySet()) {
+//            String name = item.getKey();
+//            if (name.startsWith("comment")) {
+//                String value = ReflectUtil.invoke(jc, StringUtil.getMethodName(name));
+//                if (StringUtil.notBlank(value)) {
+//                    log.info("value:{}", value);
+//                }
+//            }
+//        }
         Field[] fields = jc.getClass().getDeclaredFields();
         for (Field field : fields) {
             field.setAccessible(true);
@@ -154,15 +150,82 @@ public class JianYanJianChaShenQingService {
         return ResultVoUtil.success(map);
     }
 
-    private ResultVo<Object> printListReqNo(List<Integer> reqNo) {
-        List<YshYjReq> reqList = dao.huoQuShengQingXiangQing(new QueryWrapper<YshYjReq>().eq("req_no", reqNo));
+    public ResultVo<Object> printListReqNo(List<Integer> reqNo) {
+        List<YshYjReq> reqList = dao.huoQuShengQingXiangQing(new QueryWrapper<YshYjReq>().in("req_no", reqNo));
         if (ListUtil.isBlank(reqList)) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有查询到有效信息,可能已经被删除了。");
         }
         YshYjReq req = reqList.get(0);
         PatientTemp patient = dao.huoQuHuanZheXinXi(req.getInpatientNo());
 
-        return null;
+        Map<String, List<YshYjReq>> orderType = reqList.stream().collect(
+                Collectors.groupingBy(YshYjReq::getOrderType, Collectors.toList())
+        );
+        //临时缓存
+        CacheOnce<JcZdClass> cacheOnce = new CacheOnce<>();
+        // 返回值
+        List<PrintYshReqVo> rstList = new ArrayList<>();
+        for (Map.Entry<String, List<YshYjReq>> item : orderType.entrySet()) {
+            YshYjReq itemYsh = item.getValue().get(0);
+            PrintYshReqVo vo = printPageData(patient, itemYsh);
+            JcZdClass temp = getCacheJcClass(cacheOnce, itemYsh.getOrderType());
+            vo.setPrecautions(temp.getCommentAll());
+            vo.setTitle(temp.getComm());
+            item.getValue().forEach(i -> {
+                PrintYshReqVo.Item voItem = new PrintYshReqVo.Item();
+                voItem.setItemName(i.getOrderName());
+                voItem.setReqNo(i.getReqNo());
+                if (vo.getItems() == null) {
+                    vo.setItems(new ArrayList<>());
+                }
+                vo.getItems().add(voItem);
+            });
+            rstList.add(vo);
+        }
+        return R.ok(rstList);
+    }
+
+    private JcZdClass getCacheJcClass(CacheOnce<JcZdClass> cacheOnce, String key) {
+        return cacheOnce.get(key, (keyStr) -> {
+            StringBuilder zhuYiShiXiang = new StringBuilder();
+            JcZdClass jcZdClass = dao.daYingXiangQing(key);
+            if (jcZdClass == null) {
+                JcZdClass aa = new JcZdClass();
+                aa.setCommentAll("");
+                aa.setComm("检查申请单");
+                return aa;
+            }
+            Map<String, Field> fieldMap = ReflectUtil.getFieldMap(JcZdClass.class);
+            for (Map.Entry<String, Field> item : fieldMap.entrySet()) {
+                String name = item.getKey();
+                if (name.startsWith("comment")) {
+                    String value = ReflectUtil.invoke(jcZdClass, StringUtil.getMethodName(name));
+                    if (StringUtil.notBlank(value)) {
+                        zhuYiShiXiang.append(value.trim()).append("\n");
+                    }
+                }
+            }
+            jcZdClass.setCommentAll(zhuYiShiXiang.toString());
+            return jcZdClass;
+        });
+    }
+
+
+    private PrintYshReqVo printPageData(PatientTemp patient, YshYjReq req) {
+        return PrintYshReqVo.builder()
+                .age(req.getPAge())
+                .name(req.getPName())
+                .sex(patient.getSex())
+                .homeStreet(patient.getHomeStreet())
+                .homeTel(patient.getHomeTel())
+                .reqComment(req.getReqComment())
+                .reqTzComment(req.getReqTzComment())
+                .reqOtherResult(req.getReqOtherResult())
+                .bedNo(req.getBedNo())
+                .diagText(req.getDiagText())
+                .inpatientNo(req.getInpatientNo())
+                .responceTypeName(patient.getResponceTypeName())
+                .build();
     }
 
     public ResultVo<List<JcZdClass>> getTemplateGrouping(Integer itemType, Integer templateType) {
@@ -388,7 +451,7 @@ public class JianYanJianChaShenQingService {
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE);
     }
 
-    public ResultVo<String> baoCunJianYanJianCha(TianJiaJianChaJianYan param) {
+    public ResultVo<List<Integer>> baoCunJianYanJianCha(TianJiaJianChaJianYan param) {
         if (ListUtil.isBlank(param.getList())) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请选择需要保存的数据。");
         }
@@ -509,14 +572,16 @@ public class JianYanJianChaShenQingService {
         if (StringUtil.notBlank(cuoWuXinXi.toString())) {
             throw new BizException(ExceptionEnum.LOGICAL_HTML_ERROR, String.valueOf(cuoWuXinXi));
         }
+        List<Integer> reqNos = new ArrayList<>();
         // 生成 医嘱号和申请号
         for (YshYjReq item : param.getList()) {
             item.setActOrderNo(publicServer.getActOrderNo());
             item.setReqNo(publicServer.getReqPageNo());
+            reqNos.add(item.getReqNo());
         }
 
         insertData(param, huanZheXinXi, content);
-        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE, "操作成功", reqNos);
     }
 
     private Map<String, List<JyJcCheckItemDto>> getItemInfo(Set<String> itemCodes, Boolean isCheck) {