跳到主要内容

6-电控栈位表&&钢刀

1.新增校验位

新增:刮刀类型,M1,安装面别和默认安装点校验

1.1 刮刀类型

栈位表上传,抓取产品编码A,若A在产品主数据配置中的工艺类型是锡膏(红胶),安装点为GD,则其刮刀编码要校验为S(P)

如果产品主数据没有配置则报错提示:产品主数据未配置工艺类型,请确认!

1.2 M1

栈位表上传,若安装点为M1,则判断组件(刮刀编码)是否和产品A对应的产品主数据中的锡膏红胶品牌型号前半段是否匹配,如:220300060匹配220300060-红胶HT-130DL-工艺指定前面重复的部分,不匹配报错。

1.3 安装面

栈位表上传,若其资源最后一位是1(2),则安装面必须为A(B),产品主数据中也必须为A(B),不匹配报错。

1.4 默认安装点

安装面单独是T或S的情况下报错

2.刮刀生产工艺和刮刀材质需求

  • 前端新增专用钢刮刀材质
  • 输入刮刀条码,截取第一个逗号前的编码,取第四位为工艺类型
  • 工艺类型对应:S,Z对应锡膏,P对应红胶
  • 导入的解析中安装工艺类型带出锡膏或者红胶

3.SMT栈位表批量变更操作

原本页面的导出是导出页面数据及其对应的详情,即1->n的关系,现新增一个单独导出目录的导出功能,及导出当前页面看到的信息(不包括详情)。新增几个查询条件。

  • 前端新增组件,后端新增接口实现导出功能
  • 后端数据筛选过滤,原本是1->n导出
  • 查询条件同样需要进行过滤

4.开发手记

4.1 Java的Stream

Stream可以用来快速处理List类型的数据,避免繁杂的for循环和条件控制

typeResult.stream()
.filter(map->map.get("xxx")!=null)
.anyMatch(map->"xx".equals(map.get("xx").toString()));

通过Stream流打开处理,filter进行过滤,anyMatch相当于遍历每一个Map数据进行处理,其中使用Lambda表达式

4.2 VO,DTO

**VO(View Object):**视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

**DTO(Data Transfer Object):**数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。

简单来说:

  • VO用于封装前端需要展示的数据,数据库查询出来可能10个字段,但是为了不展示一些没必要的数据和不暴露数据库结构,需要减少一些字段,只返回需要的数据,使用VO封装
  • DTO用于前后端交互的数据传输,前端传参可能是一个完整的List和一些cookie保存的信息,后端使用JSON接收对象,往往使用DTO类型,开发中通常有时候会是DTO里面封装这VO