zoukankan      html  css  js  c++  java
  • 2016.12.13

      @Override//把查询到的结果集与查询的字段一一对应组成map,并设置产品的有效期后, 把map放入到list集合中去...
        public List<Map<String, Object>> queryOrderProductInfo(Integer orderId) {
            String[] fields = {"productCat", "productName", "size", "quantity", "lotNo", "localPrice"};
            Query query = entityManager.createNativeQuery("SELECT " + StringUtils.join(fields, ",") +
                    "
     from selleck.selleck_orderproduct" +
                    "
     where orderId=:orderId" +
                    "
     order by indexId"
            );
            query.setParameter("orderId", orderId);
            List<Object[]> list =  query.getResultList();
            if (list.isEmpty()) {
                return  new ArrayList<>();
            } else {
                List<Map<String, Object>> result = new ArrayList<>(list.size());
                list.forEach(v ->{
                    Map<String, Object> valueMap = new HashMap<>();
                    for (int i = 0; i < fields.length; i++){
                        valueMap.put(fields[i], v[i]);
                    }
                    fillExpDate(valueMap); //根据产品的cat号和批次号lotNo,设置产品的有效期
                    result.add(valueMap);
                });
                return  result;
            }
        }
    
        private void fillExpDate(Map<String, Object> product) { // 根据产品的cat号和批次号lotNo,设置产品的有效期! S打头的; B打头的!
            try{
                String cat = ((String)product.get("productCat")).toUpperCase();
                String lotNo = (String)product.get("lotNo");
                if (StringUtils.isNotBlank(lotNo)) {
                    if (cat.startsWith("S")){ //  S通过cat+lotNo去查询!添加日期,如果在201511之前统统改成2018 11 ,之后加三年
                        Query query = entityManager.createNativeQuery("select addDate from selleck.craft where lotNo=:lotNo");
                        query.setParameter("lotNo", cat + lotNo);
                        List<Object> list = query.getResultList();
                        if (list.size() > 0) {
                            Date dbDate = (Date) list.get(0);
                            LocalDate craftAddDate =  LocalDate.parse(new SimpleDateFormat("yyyy-MM-dd").format(dbDate));
                            LocalDate barrierDate = LocalDate.of(2015, 1, 1); // 临界日期 ---2015 年 1 月 1日
                            if (craftAddDate.isBefore(barrierDate)) {
                                craftAddDate = craftAddDate.withYear(2018); //2015 1 1 之前的有效期自动改为 2018 年 1月 1日
                            } else {
                                craftAddDate = craftAddDate.plusYears(3);
                            }
                            String expDate = craftAddDate.getMonth() + " " + craftAddDate.getYear();
                            product.put("expDate", expDate);
                        }
                    } else if (cat.startsWith("B")) { //B 通过cat和lotNo去查询! B打头的没有加3年一说!直接拿到即可
                        Query query = entityManager.createNativeQuery("select expDate from selleck.selleck_size_batch where cat=:cat and lotNo=:lotNo order by expDate desc");
                        query.setParameter("cat", cat);
                        query.setParameter("lotNo", lotNo);
                        List<Object> list = query.getResultList();
                        if (list.size() > 0) {
                            String dbDate = (String) list.get(0);
                            if (dbDate.length() == 6) {
                                LocalDate date =  LocalDate.parse(dbDate.substring(0, 4) + "-" + dbDate.substring(4) + "-15");
                                String expDate = date.getMonth() + " " + date.getYear();
                                product.put("expDate", expDate);
                            }
                        }
                    }
                }
            }catch (Exception ignore){}
        }
    }
    
  • 相关阅读:
    易用网页下载器V0.1
    重复造轮之权限管理系统
    网页格式化排版代码,专用信息采集后的内容整理
    随机点名软件
    PHP导入Excel表格,读取Excel的内容到数组。
    汉字的书写效果的实现
    php的一个断点续传下载实现
    sentry的安装和使用以及各种问题处理
    CentOS下安装Redis及Redis的PHP扩展
    用ASP.NET_Regsql.exe创建Session数据库
  • 原文地址:https://www.cnblogs.com/bravolove/p/6169935.html
Copyright © 2011-2022 走看看