1、序列码上显示from to
form to 来自于custom,以及其他的比如工厂 RDC
设置的时候都是code,展示的需要展示name。
并且一个name 可能有多个code
设置一张表loction进行维护,custon数据过来的时候 获取其中的code 和name save到loction表
code 设置唯一索引。
然后展示的时候,根据code去查询name即可
2、根据发货地查询
这个入库单过来的时候,发货地 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; } }