首页 > 其他分享 >预警报告的修改,填报信息提醒

预警报告的修改,填报信息提醒

时间:2023-05-05 10:46:19浏览次数:35  
标签:删除 填报 预警 list4 修改 add put null

摘要:

预警报告的修改

预警报告返回的数据要根据前端那个模板还决定返回的格式。所以我修改了返回数据的格式,好让前端来调用这个接口返回的数据。首先看见模板返回的是三个参数是名字,备注,异常情况。我这里返回的异常的情况很多。所以要统一的发送出去。所以我就将异常的情况都存到一个list中,其中一些没有异常的存进去的就是一个null,然后将其中null都删除掉。

     List<String> list4 = new ArrayList();
       list4.add(a);
       list4.add(b);
       list4.add(c);
       list4.add(d);
       list4.add(e);
       list4.add(f);
       list4.add(g);
       list4.add(h);
       list4.add(i);
       list4.add(j);
       list4.add(k);
       list4.add(l);
       list4.add(m);
       list4.add(n);

//去重
       list4 = list4.stream().distinct().collect(Collectors.toList());
       //删除集合中某一元素值
       for (int z = 0;z<list4.size();z++){
           if (list4.get(z)==null){
               list4.remove(z);
//               z=z-1;
          }
      }

       //将其中包含null,的去掉
      String o = a+","+b+","+c+","+d+","+e+","+f+","+g+","+h+","+i+","+j+","+k+","+l+","+m+","+n;
       o = o.replace("null,","");


       map2.put("abnormal",list4);
       if (list4.size()==0){
           map2.put("remarks","指标正常。");
      }else {
           map2.put("remarks","指标异常,请及时关注。");
      }

首先使用for循环删除其中null的元素,是删除不干净的,因为一旦删除一个元素,后面的元素就会向前进一位,这时候就两种方法就是在删除的同时,将其list的下标减一,这样就不会放过任何一个元素的判断。

 

 

填报的提示信息

当填报的时间到了一周或者是一个月的话,我就返回一些提示的数据给前端的,我的想法是弄成消息推送,但是不能实时的推送啊,如何调用接口一定要又一个事件。所以如何做不成消息推送,就弄一个弹框。我考虑到了当第一次填报是没有的,是添加个人的数据,其中就包括了填报的内容,但是月时间字段和周时间的字段是空的,所以就要判断一下这个字段。

 @Autowired
   private ITbUserService iTbUserService;
   /**
    * 填报的提示消息
    * @param userId
    * @return
    */
   @Override
   public Map<String,String> getFillingReminder(Long userId) {
       Map<String,String> map = new HashMap();

       //到用户表中找到指定的患者
       LambdaQueryWrapper<TbUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
       lambdaQueryWrapper.eq(TbUser::getUserId,userId);
       TbUser one = iTbUserService.getOne(lambdaQueryWrapper);


       String s = String.valueOf(one.getMonthlyTime());
       String s1 = String.valueOf(one.getWeeklyTime());
       //————————————————每周填报的消息通知——————————————————
       if (s1 !="null"){
           //周报填报时间
           Date weeklyTime = one.getWeeklyTime();

           //算出当前一周的时间差
           long l1 = new Date().getTime() - weeklyTime.getTime();
           //有多少天数
           long l3 = l1 / (86400000L);

           if (l3>=7){
               map.put("weeklyTime","请填写每周填报");
          }else {
               map.put("weeklyTime","未到填写的时间");
          }
      }else {
           //当周填报的时间未空的时候就返回一个空
           map.put("weeklyTime","请认真填写各项指标");
      }
 //————————————————每月填报的消息通知——————————————————
       if (s!="null"){
           //月季填报时间
           Date monthlyTime = one.getMonthlyTime();

           //算出当前一个月的时间差
           long l = new Date().getTime() - monthlyTime.getTime();
           //有多少天数
           long l2 = l / (86400000L);

           if (l2>=30){
               map.put("monthlyTime","请填写月季填报");
          }else {
               map.put("monthlyTime","未到填写的时间");
          }
      }else {
           map.put("monthlyTime","请认真填写各项指标");
      }

       return map;
  }

 

问题及解决

业务层的类名出现重复的bug

问题的分析:这个值班的医生是若依系统自带的数据库,其中就是登录到后台管理的一些信息,所以这里的两个实体类及业务层之类id没有导入到项目代码中。我生成了其类,复制到IDEA中。一运行就出现了这个报错

报错的信息:其中的SysUserServiceImpl,和其他的目录的中的类出现了重复的现象

解决:我直接将其改一个名字就解决了,这个bug,我一开始以为是路径出现重复的原因

 

 

 

学习重点及理解

如何将list中指定的一些元素删除掉

我找到了三种的方法:

  • 首先使用for循环删除其中null的元素,是删除不干净的,因为一旦删除一个元素,后面的元素就会向前进一位,这时候在删除的同时,将其list的下标减一,这样就不会放过任何一个元素的判断。

    • for (int z = 0;z<list4.size();z++){
               if (list4.get(z)==null){
                   list4.remove(z);
                  z=z-1;
              }
          }
  • 方法二:也是用for循环,但是要从后面开始删除,这个是原因避免第一种方法的弊端,你将元素从后面开始判断,不管下标前进。每个元素都是会判断一遍

    • for (int z = list4.size();z>0;z--){
                if (list4.get(z)==null){
                    list4.remove(z);
                }
            }
  • 方法三:就是将其中的去重再删除,这个方法是(不推荐)的因为在你知道其中就这哪些参数的时候,到是还可以。因为去重的话会对list中的所有的元素都进行去重,但是你只是想去重其中的一个。将其中的null去重后,只剩下一个,再用for循环判断删除的。

    • list4 = list4.stream().distinct().collect(Collectors.toList());
           //删除集合中某一元素值
           for (int z = 0;z<list4.size();z++){
               if (list4.get(z)==null){
                   list4.remove(z);
              }
          }

       

扩展学习

面试题

  • spring boot 配置文件有哪几种类型?它们有什么区别?

    • 配置文件有 . properties 格式和 . yml 格式,它们主要的区别是书法风格不同。

    • . properties 配置如下:

      • spring.RabbitMQ.port=5672
    • . yml 配置如下:

      • spring:
          RabbitMQ:
              port: 5672
    • yml 格式不支持 @PropertySource 注解导入。

     

  • spring boot 有哪些方式可以实现热部署?

    • 使用 devtools 启动热部署,添加 devtools 库,在配置文件中把 spring. devtools. restart. enabled 设置为 true; 使用 Intellij Idea 编辑器,勾上自动编译或手动重新编译。

 

 

总结

今天的学习的状态不是很好,中午没有休息下午的就很犯困。今天修改了一些的接口的要改进的地方。遇到了一个技术上的不足,项目已经部署到服务器了,但是小程序移动端连不到服务器。

标签:删除,填报,预警,list4,修改,add,put,null
From: https://www.cnblogs.com/ikunba/p/17373429.html

相关文章

  • 修改docker的cgroup driver为systemd
    简单来说修改docker的cgroupdriver为systemd的原因是因为在文档CRIinstallation中的相关说明:“使用systemd作为initsystem的Linux的发行版,使用systemd作为docker的cgroupdriver可以确保服务器节点在资源紧张的情况更加稳定”。但是在修改后发现自己的docker服务无法正常启动,以......
  • Intellij IDEA、 Pycharm 格式化换行,竖线修改
    IntellijIDEA、Pycharm等开发工具,超过竖线,Ctrl+L格式化时,就会换行格式化后,现在的显示器分辨率高,这样右边一大片空白,看起来很不舒服File->Settings->Editor->CodeStyle->Hardwrapat值调整(调到合适的值)......
  • android中修改progressbar的两种方法
    1.创建自定义进度条样式在res/values/styles.xml文件中创建一个自定义样式来指定进度条的颜色。例如,以下样式设置进度的前景色为蓝色,背景色为灰色:<stylename="CustomProgressBar"parent="@android:style/Widget.ProgressBar.Horizontal"><itemname="android:progressDr......
  • SQL Server 修改自增列的标识值
    DBCCCHECKIDENT检查指定表中当前标识值,如有必要,则更改标识值。123456DBCCCHECKIDENT   (      table_name         [,{NORESEED|{RESEED[,new_reseed_value]}}] ) [ WITH NO_INFOMSGS]    参数:tab......
  • CentOS 下修改 WordPress 文件上传大小限制
    CentOS下可以通过修改php.ini来设置WordPress 文件上传大小限制。默认的php.ini文件是在/etc下。(对应的包:php-common)修改下面的几个参数:upload_max_filesize=64Mpost_max_size=64Mmax_execution_time=300修改后重启httpd。$servicehttpdrestart这样上传文......
  • Vue3数据无法显示/数据无法修改
    问题描述:昨天朋友问了我一个关于Vue3的问题,给他解答后,想起貌似自己当初也曾被这个问题困惑过,只不过被善用搜索引擎后找到了问题所在。现在考虑到可能有些朋友搜不到解决方法,所以现在用它的表现形式作为标题,可能更便于搜索到。现在重现一下这个问题:<divv-for="(item,idx)inl......
  • github修改好代码后上传已有仓库
    github修改好代码后上传已有仓库在GitHub上修改代码并将其推送到已有仓库的步骤如下:确保您的本地代码与GitHub仓库中的代码是同步的。您可以使用gitpull命令从远程仓库中获取最新代码并将其合并到您的本地代码中。如果您在本地进行了修改,请确保将其推送到远程仓库之前进行提交......
  • Nacos修改权重报错caused: errCode: 500, errMsg: do metadata operation failed ;caus
    今天修改Nacos权重时报错如下:caused:errCode:500, caused:errCode:500,errMsg:dometadataoperationfailed;caused:com.alibaba.nacos.con。解决方案:停掉nacos服务将nacos文件夹下data中的protocol文件夹删除重启nacos服务即可 ......
  • Windows中批量修改DNS记录
    最近由于公网映射的IP需要更换,有一批DNS记录需要修改。对于使用Windows管理的DNS记录,可以使用Powershell批量导出记录更新后再批量修改。首先使用Powershell将DNS服务器上test.local这个区域里的所有A记录导出Get-DnsServerResourceRecord-ComputerNameITM-ZoneNametest.loc......
  • oracle修改用户密码的方法
    Oracle用户名及默认密码 修改oracle用户的密码有以下方法:普通用户 (1)通过alteruser语法来进行修改,这也是最常见的方式:(2)第二种方式,是通过password命令来修改:从安全性角度来说,推荐大家通过第二种方式来修改用户密码,这样可防止明文密码泄露。sys用户......