ferrero项目记录

1、序列码上显示from to

form to 来自于custom,以及其他的比如工厂 RDC

设置的时候都是code,展示的需要展示name。

并且一个name 可能有多个code

设置一张表loction进行维护,custon数据过来的时候 获取其中的code 和name save到loction表

code 设置唯一索引。

然后展示的时候,根据code去查询name即可

2、根据发货地查询

 

d

 

 

这个入库单过来的时候,发货地 from存储的是code,展示的时候是name。

所以搜索的时候将name转换成code,根据code去表里查询。并且一个name可能有多个code,

所以根据name查询到多个code,然后 in 查询即可。

如果一开始就知道所有的code,存储入库单的时候就可以存储code 和name 这样可以直接查询入库单表

 

List<String> codes = getlocCode(param.getFrom());
            String snListString = codes.stream().collect(Collectors.joining(","));
            log.info("code="+snListString);
            query.addCriteria(Criteria.where("from").in(codes));

 private List<String> getlocCode(String name){
        List<Location> byName = locationRepository.findByName(name);
        List<String> codes = byName.stream().map(Location::getName).collect(Collectors.toList());

        if(ListUtil.isNotEmpty(codes)){
            return codes;
        }else{
            log.info("根据name"+name+"未查询到Loc");
            List<String> names = new ArrayList<>();
            names.add(name);
            return names;
        }
    }

 

3、

 

 查询订单的批次。。

我都能查错。。细心点一个个的查。double check 一下

 

3、数据导出不一致,只根据单号导出 和用时间以及RDC导出数据发现数据不一致

 

 

原因是因为根据单号导出的时候只根据单号,但是根据时间查询的时候 不仅仅是单号也会查from 才会查询到,导致两边数据不一致

应该按照时间查询,也只查询单号。

 

 

 

5、做一个复杂的功能,一定要细心地测试

做的时候也要多思考,确保逻辑准确性

不然随便测试一下,觉得ok了,然后上线,粗线问题。更加麻烦。

影响效率,影响心情。

做导出报表,DN号,有位置,from to,我用的是SN里的from to 其实就错了,应该是订单里的

 

 

sku 数据很多但是其中只有部分是需要我们维护的,然后我竟然用了两个字段去判断是否是我们维护的。

 

和客户说一个东西ok了,起码自己先看一下有没有问题,别直接说ok了,但是一打开却又问题

 

 

【执行顺序问题导致bug】

需要统计HU的数量,查询语句

 

db.getCollection('serialNumber').count({"parentSn":"01400916113122802110180470936746","toLocation":"MATU","aggreLevelName":"Carton"})

 

查询结果都是0,但是根据数据来看不应该是0. 

最后发现问题了,因为再我查询结果之后,才做了修改sn的to为MATU,所以查询的时候数据都是0。跳转数据即可。

不然看数据库发现数据是对的,为啥查询不出来。。结合逻辑

 

 

 

 

 

 

 

posted @ 2019-09-04 09:30  lyon♪♫  阅读(172)  评论(0编辑  收藏  举报