奇怪需求之奇怪设计

报表可输入需求

a系统数据报表REPORT_A,共有10个字段,其中三项需手动输入,7项从已知数据表x中取出。B从b系统接口定时任务更新,现要求REPORT_A展示实时数据,同时三项属性被修改,计算汇总数据。

设计思路

从X中取出数据,每次用户查询时计算一次,用唯一属性作为是否已存入依据。将此数据保存或更新到数据库表REPORT_A。将前端查询条件去查REPORT_A。
关键点 用户操作和系统操作的唯一性

优化

将后端结算结果处理后返回,减少一次查库。那么如何保证用户键入的三项属性被写入前台,同时满足用户更改的需求?

伪代码

java 复制代码
 1. listFromX=> calculateXList 
 2. => (唯一属性非ID)currentDBList =>
 3.	currentDBList  ID和三项属性  CopyTo  calculateXList  
 4. => return calculateXList

单图最新需求

文件存储: 数据库表仅存文件地址/group/xxx ;访问域名取系统实时配置 imgAddress

前端el-upload如下:limit=1,在已有图时无法继续上传替换

html 复制代码
<el-upload style="float: left"
              :show-file-list="false"
              action="/api/xxx/put-file"
              accept=".jpg,.jpeg,.png"
              :limit="9"
              :on-progress="() => isUploading = row.id"
              :on-success="attachementsSuccess"
              multiple>
              <el-button size="mini" type="primary" :icon="isUploading === row.id?'el-icon-loading':''"
                         :disabled="isUploading === row.id"
              >点击上传
</el-upload>

设计思路

前端: 取得上传文件服务器成功返回文件地址数组imgGroupArray**,反转取第一个返回给后端**;

javascript 复制代码
     attachementsSuccess(res, file, fileList) {
        let fl = fileList.map(resFile => {
          if (resFile.response) {
            return resFile.response.data.link;
          }
        });
        //取最新一张照片存储,isUploading 为当前数据ID
        fl.reverse();
        let newFileOnlyOne = [];
        newFileOnlyOne.push(fl[0]);
        update({id: this.isUploading ,attachements: newFileOnlyOne}).then(() => {
          this.$message.success('图片上传成功');
          this.isUploading = -1;
          this.refreshData();
        })
      }

后端:将attachements取出;若包含域名此旧图,仅有/group则为新图将附件表ByID记录删除,写入新ID(此处不考虑服务器资源)

相关推荐
寻星探路11 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
曹牧13 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法14 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty72514 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎14 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄14 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿15 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds15 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹15 小时前
【Java基础】多态 | 打卡day2
java·开发语言
Re.不晚15 小时前
JAVA进阶之路——无奖问答挑战2
java·开发语言