浏览代码

优化代码

xiaochan 3 年之前
父节点
当前提交
6cbe77e9f2

+ 5 - 0
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/YizhuLuRuController.java

@@ -99,6 +99,11 @@ public class YizhuLuRuController {
         return server.baoCunMuBan(param);
     }
 
+    @DeleteMapping("/deleteADoctorSOrderTemplate")
+    public ResultVo<String> deleteADoctorSOrderTemplate(@RequestParam("patternCode") String patternCode) {
+        return server.deleteADoctorSOrderTemplate(patternCode);
+    }
+
     @GetMapping("/muBanCaoZuo")
     public ResultVo<String> muBanCaoZuo(@RequestParam("patternCode") String patternCode,
                                         @RequestParam("patternName") String patternName,

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

@@ -644,8 +644,8 @@ public interface YiZhuLuRuDao {
     List<YzActOrder> huoQuMuBanShuJu(String code);
 
 
-    @Select("select pattern_code," +
-            "       rtrim(input_type) input_type " +
+    @Select("select top 1 pattern_code," +
+            "       rtrim(input_type) as input_type " +
             "from yz_OrderPattern with (NOLOCK) " +
             "where pattern_name = #{patternName} " +
             "  and input_id = #{inputId}" +
@@ -756,6 +756,9 @@ public interface YiZhuLuRuDao {
                       @Param("patternCode") String patternCode,
                       @Param("sortNo") Integer sortNo);
 
+    @Select("select rtrim(dept_code) from a_employee_mi where code = '${code}'")
+    String userDeptCode(@Param("code") String code);
+
     @Delete("/* 父模板 */  " +
             "delete yz_OrderPattern " +
             "where pattern_code = #{patternCode}; " +

+ 12 - 2
src/main/java/thyyxxk/webserver/entity/datamodify/YzActOrder.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import thyyxxk.webserver.utils.StringTrim;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -29,6 +30,11 @@ public class YzActOrder implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 一组医嘱的标识
+     */
+    private String orderGroup;
+
     private BigDecimal actOrderNo;
 
     private BigDecimal actOrderNoTf;
@@ -290,7 +296,9 @@ public class YzActOrder implements Serializable {
 
     /* 费用标志 自备标志 1 自备 2 嘱托 3 基数药 */
     public String getSelfBuyName() {
-        if (selfBuy == null) return "";
+        if (selfBuy == null) {
+            return "";
+        }
         switch (selfBuy) {
             case "1":
                 return "自备";
@@ -304,7 +312,9 @@ public class YzActOrder implements Serializable {
     }
 
     public String getDrugFlagName() {
-        if (drugFlag == null) return "";
+        if (drugFlag == null) {
+            return "";
+        }
         switch (drugFlag) {
             case "d":
                 return "西药";

+ 0 - 1
src/main/java/thyyxxk/webserver/entity/medicalinsurance/setllistupld/UpldCollection.java

@@ -10,7 +10,6 @@ import java.util.List;
  * 【4101】医疗保障基金结算清单信息上传数据包
  */
 @Data
-@StringTrim
 public class UpldCollection implements Serializable {
 
     private static final long serialVersionUID = -1356332402476125608L;

+ 3 - 1
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/yizhuluru/YzOrderPattern.java

@@ -105,7 +105,9 @@ public class YzOrderPattern {
     public Boolean getYiBeiShouCang() {
         if (yiBeiShouCang == null) {
             return false;
-        } else return yiBeiShouCang > 0;
+        } else {
+            return yiBeiShouCang > 0;
+        }
     }
 
     private List<XinZhenYzActOrder> list;

+ 1 - 0
src/main/java/thyyxxk/webserver/service/medicalinsurance/SetlListUpldService.java

@@ -104,6 +104,7 @@ public class SetlListUpldService {
             if (StringUtil.isBlank(upldCollection.getData().getSetlinfo().getConerName())) {
                 throw new BizException(ExceptionEnum.INTERNAL_SERVER_ERROR, "患者联系人姓名不能为空。");
             }
+
         }
         if (ListUtil.notBlank(upldCollection.getData().getOprninfo())) {
             for (OprninfoUpld item : upldCollection.getData().getOprninfo()) {

+ 57 - 12
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/YiZhuLuRuServer.java

@@ -81,6 +81,7 @@ public class YiZhuLuRuServer {
      * @param param 查询条件
      * @return 返回分页数据,同时做了树状图,这样会有一个问题,那就是开了套餐的数据查询不出来
      */
+    @StringTrim
     public ResultVo<IPage<YzActOrder>> huoQuYiZhuShuJu(YiZhuFeiYongChaXunTiaoJian param) {
         QueryWrapper<?> qw = new QueryWrapper<>();
         qw.eq("inpatient_no", param.getPatNo())
@@ -96,15 +97,8 @@ public class YiZhuLuRuServer {
         if (StringUtil.notBlank(param.getFrequCode())) {
             qw.eq("frequ_code", param.getFrequCode());
         }
-        List<Integer> zhaungTai = new ArrayList<Integer>() {
-            private static final long serialVersionUID = 1194053908853933514L;
+        List<Integer> zhaungTai = Arrays.asList(1, 2, 5);
 
-            {
-                add(1);
-                add(2);
-                add(5);
-            }
-        };
         if (zhaungTai.contains(param.getZhuangTai())) {
             qw.eq("status_flag", param.getZhuangTai());
         } else if (param.getZhuangTai() == 3) {
@@ -165,8 +159,10 @@ public class YiZhuLuRuServer {
                 wuFuJiYiZhu.remove(item.getActOrderNo());
                 if (actOrder.getChildren() == null) {
                     actOrder.setChildren(new ArrayList<>());
+                    actOrder.setOrderGroup("┌");
                 }
                 item.setIsChildren(true);
+                item.setOrderGroup("丨");
                 actOrder.getChildren().add(item);
             }
         }
@@ -176,6 +172,11 @@ public class YiZhuLuRuServer {
         // 删除前后空格
         EntityStringTrim.beanAttributeValueTrimList(tree);
         page.setRecords(tree);
+        for (YzActOrder zy : tree) {
+            if (ListUtil.notBlank(zy.getChildren())) {
+                zy.getChildren().get(zy.getChildren().size() - 1).setOrderGroup("└");
+            }
+        }
         return ResultVoUtil.success(page);
     }
 
@@ -387,6 +388,7 @@ public class YiZhuLuRuServer {
      * @param xiangMuCode 项目编码
      * @return 返回数据
      */
+    @DS("his")
     private Map<String, XinZhenYzActOrder> getProjectInformation(Set<String> xiangMuCode) {
         if (!xiangMuCode.isEmpty()) {
             return dao.huoQuXiangMuXinXi(xiangMuCode).stream().collect(
@@ -401,6 +403,7 @@ public class YiZhuLuRuServer {
      * @param yaoPingCode 药品编码
      * @return 返回数据
      */
+    @DS("his")
     private Map<String, XinZhenYzActOrder> getDrugInformation(Set<String> yaoPingCode) {
         if (!yaoPingCode.isEmpty()) {
             return dao.huoQuYaoPinXinXi(yaoPingCode).stream().collect(
@@ -678,7 +681,7 @@ public class YiZhuLuRuServer {
                     yzActOrder.setChildren(new ArrayList<>());
                 }
                 yzActOrder.getChildren().add(item);
-            } else if (!map.containsKey(item.getId())) {
+            } else if (!tree.contains(item)) {
                 item.setParentNo(null);
                 tree.add(item);
             }
@@ -715,8 +718,11 @@ public class YiZhuLuRuServer {
             param.setPatternCode(publicServer.getPatternCode());
         }
 
-        param.setPyCode(PingYinUtils.pyShouZiMuDaXie(param.getPatternName()));
-        param.setDCode(PingYinUtils.getWBCode(param.getPatternName()));
+        String py = PingYinUtils.pyShouZiMuDaXie(param.getPatternName());
+        String wb = PingYinUtils.getWBCode(param.getPatternName());
+
+        param.setPyCode(py.length() > 9 ? py.substring(0, 9) : py);
+        param.setDCode(wb.length() > 9 ? wb.substring(0, 9) : wb);
         param.setInputId(TokenUtil.getTokenUserId());
 
         XinZhenYiZhu xinZhenYiZhu = new XinZhenYiZhu();
@@ -734,6 +740,45 @@ public class YiZhuLuRuServer {
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "创建模板成功。");
     }
 
+
+    /**
+     * 删除医嘱模板
+     *
+     * @param patternCode 模板的编码
+     * @return 提示
+     */
+    public ResultVo<String> deleteADoctorSOrderTemplate(String patternCode) {
+        if (StringUtil.isBlank(patternCode)) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "模板编号为空。");
+        }
+        YzOrderPattern yzOrderPattern = dao.huoQuMuBanXinXi(patternCode);
+        EntityStringTrim.beanAttributeValueTrim(yzOrderPattern);
+        if (yzOrderPattern == null) {
+            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "没有查询到对应的模板信息。");
+        }
+        String inputId = TokenUtil.getTokenUserId();
+        List<Integer> role = publicServer.getRoleCode().getData();
+        if (publicServer.noNeedRule(role, 43)) {
+            if (inputId.equals(yzOrderPattern.getInputId().trim())) {
+                // 删除父模板以及下面的子模板 数据
+                dao.shanChuMuBan(yzOrderPattern.getPatternCode());
+                return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "删除成功。");
+            }
+            // 11 是科室主任, 主任可以删除本科室的模板
+            if (publicServer.needRule(11) && "2".equals(yzOrderPattern.getInputType())) {
+                if (dao.userDeptCode(inputId).equals(yzOrderPattern.getDeptCode())) {
+                    dao.shanChuMuBan(yzOrderPattern.getPatternCode());
+                    return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "删除成功。");
+                }
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "您没有权限删除这个模板。");
+            }
+        }
+
+        log.info("删除医嘱模板==> 操作人:{},模板编码:{}", TokenUtil.getTokenUserId(), patternCode);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
+    }
+
+
     /**
      * 删除或修改模板
      *
@@ -745,7 +790,7 @@ public class YiZhuLuRuServer {
      */
     public ResultVo<String> muBanCaoZuo(String patternCode, String patternName, String deptCode, Integer sortNo, Integer flag) {
         if (StringUtil.isBlank(patternCode)) {
-            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "项目编码为空。");
+            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "模板编码为空。");
         }
         YzOrderPattern yzOrderPattern = dao.huoQuMuBanXinXi(patternCode);
         if (yzOrderPattern == null) {

+ 4 - 3
src/main/java/thyyxxk/webserver/utils/StringTrim.java

@@ -2,9 +2,10 @@ package thyyxxk.webserver.utils;
 
 import java.lang.annotation.*;
 
-@Documented
+/**
+ * @author xc
+ */
+@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.TYPE, ElementType.PARAMETER})
 @Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.TYPE})
 public @interface StringTrim {
-
 }

+ 31 - 40
src/main/java/thyyxxk/webserver/utils/StringTrimUtil.java

@@ -4,13 +4,14 @@ package thyyxxk.webserver.utils;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.annotation.AfterReturning;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.*;
 import org.aspectj.lang.reflect.MethodSignature;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 import thyyxxk.webserver.entity.ResultVo;
 
+import java.io.IOException;
 import java.lang.reflect.Field;
 
 
@@ -22,53 +23,43 @@ import java.lang.reflect.Field;
  * @author xc
  * @date 2022-01-07 16:07
  */
-@Configuration
-@Aspect
 @Slf4j
+@Component
+@Aspect
 public class StringTrimUtil {
+    //    lombok
     @Pointcut("@annotation(thyyxxk.webserver.utils.StringTrim)")
-    public void test() {
+    public void stringTrim() {
     }
 
     //在事件通知类型中申明returning即可获取返回值
-    @AfterReturning(value = "test()", returning = "res")
-    public void logMethodCall(JoinPoint jp, Object res) throws Throwable {
-//        String name = jp.getSignature().getName();
-//        log.info("姓名:{}", name);
-
-//        Object[] args = jp.getArgs();
-//        for (Object arg : args) {
-//            log.info("入参数:{}", arg);
-//        }
-        if (res != null) {
-            @SuppressWarnings("rawtypes")
-            ResultVo resultVo = (ResultVo) res;
+    @Before("stringTrim()")
+    public void doBefore(JoinPoint joinPoint) {
+        log.info("  切面类  ---!");
+        log.info("数据:{}", joinPoint.getArgs());
+    }
 
-            log.info("值:{}", resultVo);
-            if (resultVo.getData() != null) {
-                Field[] fields = resultVo.getData().getClass().getDeclaredFields();
-                for (Field f : fields) {
-                    String key = f.getName();
-                    String getFieldValue = "get" + key.substring(0, 1).toUpperCase() + key.substring(1);
-                    Field field = IPage.class.getField(getFieldValue);
-                    log.info("field:{}", field);
-                }
-            }
-//            Field[] fields = res.getClass().getDeclaredFields();
-//            for (Field f : fields) {
-//                String key = f.getName();
-//                log.info("key:{}", "get" + key.substring(0, 1).toUpperCase() + key.substring(1));
-//            }
-        }
+    @Around("stringTrim()")
+    public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
+        log.info("  切面类  --- ! around");
+        return joinPoint.proceed();
+    }
 
+    @After("stringTrim()")
+    public void checkAfter(JoinPoint joinPoint) {
+        log.info("数据:{}", joinPoint.getArgs());
+        log.info("数据:{}", joinPoint.getTarget());
+        log.info("  切面类  --- ! checkAfter");
+    }
 
-        // 获取注解
-        MethodSignature signature = (MethodSignature) jp.getSignature();
-        StringTrim an = signature.getMethod().getAnnotation(StringTrim.class);
-        log.info("st:{}", an);
+    @AfterReturning("stringTrim()")
+    public void afterReturning(JoinPoint joinPoint) {
+        log.info("切面类 --- ! afterReturning ");
+    }
 
-        log.info("AfterReturning通知开始-获取数据:{}", res);
-        log.info("AfterReturning通知开始-获取数据:{}", res);
+    @AfterThrowing("stringTrim()")
+    public void afterThrowing(JoinPoint joinPoint) {
+        log.info("切面类 --- ! 错误信息 ");
     }
 
 }