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