|  |  | 
 |  |  | import com.core.common.R; | 
 |  |  | import com.zy.asrs.entity.LocDetl; | 
 |  |  | import com.zy.asrs.entity.Mat; | 
 |  |  | import com.zy.asrs.entity.param.AbnormalLocDetlParam; | 
 |  |  | import com.zy.asrs.mapper.LocDetlMapper; | 
 |  |  | import com.zy.asrs.service.LocDetlService; | 
 |  |  | import com.zy.asrs.service.MatService; | 
 |  |  | 
 |  |  |                        @RequestParam(required = false) String condition, | 
 |  |  |                        @RequestParam Map<String, Object> param) { | 
 |  |  |  | 
 |  |  |         List<LocDetl> result = new ArrayList<>(); | 
 |  |  | //        List<LocDetl> result = new ArrayList<>(); | 
 |  |  |         List<AbnormalLocDetlParam> result = new ArrayList<>(); | 
 |  |  | //        excludeTrash(param); | 
 |  |  |         param.put("curr", curr); | 
 |  |  |         param.put("limit", limit); | 
 |  |  |         Page<LocDetl> groupLocDetl = locDetlService.getStockStatis2(toPage(1, 10000, param, LocDetl.class)); | 
 |  |  | //        List<LocDetl> groupLocDetl = locDetlService.selectGroupPage(param, curr, limit); | 
 |  |  |         for (LocDetl locDetl : groupLocDetl.getRecords()) { | 
 |  |  |             AbnormalLocDetlParam abnormalLocDetlParam = new AbnormalLocDetlParam(); | 
 |  |  |             Mat mat = matService.selectOne(new EntityWrapper<Mat>() | 
 |  |  |                     .eq("matnr", locDetl.getMatnr())); | 
 |  |  |             locDetl.setStoreMax(mat.getStoreMax()); | 
 |  |  |             locDetl.setStoreMaxDate(mat.getStoreMaxDate()); | 
 |  |  |             locDetl.setStoreMin(mat.getStoreMin()); | 
 |  |  |             if (Cools.isEmpty(mat) | 
 |  |  |                     || Cools.isEmpty(mat.getStoreMax()) | 
 |  |  |                     || Cools.isEmpty(mat.getStoreMaxDate()) | 
 |  |  |                     || Cools.isEmpty(mat.getStoreMin())) { | 
 |  |  |                 continue; | 
 |  |  |             } else if (Cools.isEmpty(locDetl.getBatch())) { | 
 |  |  |                 continue; | 
 |  |  |             } else if (locDetl.getBatch().length() != 8) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             try { | 
 |  |  |                 SimpleDateFormat simple = new SimpleDateFormat("yyyyMMdd"); | 
 |  |  |                 Date maxDate = simple.parse(locDetl.getBatch()); | 
 |  |  |                 long time = maxDate.getTime(); | 
 |  |  |                 Date now = new Date(); | 
 |  |  |                 long time1 = now.getTime(); | 
 |  |  |                 locDetl.setNowTime((int) ((time1 - time) / (1000 * 60 * 60 * 24))); | 
 |  |  |             } catch (ParseException e) { | 
 |  |  |                 e.printStackTrace(); | 
 |  |  |             } | 
 |  |  |             if (locDetl.getAnfme() > mat.getStoreMax()) { | 
 |  |  |                 result.add(locDetl); | 
 |  |  |                 continue; | 
 |  |  |             } else if (locDetl.getAnfme() < mat.getStoreMin()) { | 
 |  |  |                 result.add(locDetl); | 
 |  |  |             if (Cools.isEmpty(mat)) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             try { | 
 |  |  |                 SimpleDateFormat simple = new SimpleDateFormat("yyyyMMdd"); | 
 |  |  |                 Date maxDate = simple.parse(locDetl.getBatch()); | 
 |  |  |                 Calendar calendar = new GregorianCalendar(); | 
 |  |  |                 calendar.setTime(maxDate); | 
 |  |  |                 // 把日期往后增加一天,整数  往后推,负数往前移动 | 
 |  |  |                 calendar.add(Calendar.DATE, mat.getStoreMaxDate()); | 
 |  |  |                 // 这个时间就是日期往后推一天的结果 | 
 |  |  |                 maxDate = calendar.getTime(); | 
 |  |  |                 Date now = new Date(); | 
 |  |  |                 if (now.compareTo(maxDate) > 0) { | 
 |  |  |                     result.add(locDetl); | 
 |  |  |  | 
 |  |  |             if (!Cools.isEmpty(mat.getStoreMax()) | 
 |  |  |                     || !Cools.isEmpty(mat.getStoreMin())) { | 
 |  |  |                 abnormalLocDetlParam.setStoreMax(mat.getStoreMax()); | 
 |  |  |                 abnormalLocDetlParam.setStoreMaxDate(mat.getStoreMaxDate()); | 
 |  |  |                 abnormalLocDetlParam.setStoreMin(mat.getStoreMin()); | 
 |  |  |                 abnormalLocDetlParam.setAnfme(locDetl.getAnfme()); | 
 |  |  |                 abnormalLocDetlParam.setMaktx(mat.getMaktx()); | 
 |  |  |                 abnormalLocDetlParam.setMatnr(mat.getMatnr()); | 
 |  |  |                 abnormalLocDetlParam.setSpecs(mat.getSpecs()); | 
 |  |  |                 abnormalLocDetlParam.setBatch(locDetl.getBatch()); | 
 |  |  |  | 
 |  |  | //                SimpleDateFormat simple = new SimpleDateFormat("yyyyMMdd"); | 
 |  |  | //                Date maxDate = simple.parse(locDetl.getBatch()); | 
 |  |  | //                long time = maxDate.getTime(); | 
 |  |  | //                Date now = new Date(); | 
 |  |  | //                long time1 = now.getTime(); | 
 |  |  | //                abnormalLocDetlParam.setNowTime((int) ((time1 - time) / (1000 * 60 * 60 * 24))); | 
 |  |  |  | 
 |  |  |                 if (!Cools.isEmpty(mat.getStoreMax()) && locDetl.getAnfme() > mat.getStoreMax()) { | 
 |  |  |                     result.add(abnormalLocDetlParam); | 
 |  |  |                     continue; | 
 |  |  |                 } else if (!Cools.isEmpty(mat.getStoreMin()) && locDetl.getAnfme() < mat.getStoreMin()) { | 
 |  |  |                     result.add(abnormalLocDetlParam); | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |             } catch (Exception e) { | 
 |  |  |                 continue; | 
 |  |  |             } else if (!Cools.isEmpty(mat.getStoreMaxDate())) { | 
 |  |  |                 if (Cools.isEmpty(locDetl.getBatch())) { | 
 |  |  |                     continue; | 
 |  |  |                 } else if (locDetl.getBatch().length() != 8) { | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 try { | 
 |  |  |                     SimpleDateFormat simple = new SimpleDateFormat("yyyyMMdd"); | 
 |  |  |                     Date maxDate = simple.parse(locDetl.getBatch()); | 
 |  |  |                     Calendar calendar = new GregorianCalendar(); | 
 |  |  |                     calendar.setTime(maxDate); | 
 |  |  |                     // 把日期往后增加一天,整数  往后推,负数往前移动 | 
 |  |  |                     calendar.add(Calendar.DATE, mat.getStoreMaxDate()); | 
 |  |  |                     // 这个时间就是日期往后推一天的结果 | 
 |  |  |                     maxDate = calendar.getTime(); | 
 |  |  |                     Date now = new Date(); | 
 |  |  |                     abnormalLocDetlParam.setStoreMax(mat.getStoreMax()); | 
 |  |  |                     abnormalLocDetlParam.setStoreMaxDate(mat.getStoreMaxDate()); | 
 |  |  |                     abnormalLocDetlParam.setStoreMin(mat.getStoreMin()); | 
 |  |  |                     abnormalLocDetlParam.setAnfme(locDetl.getAnfme()); | 
 |  |  |                     abnormalLocDetlParam.setMaktx(mat.getMaktx()); | 
 |  |  |                     abnormalLocDetlParam.setMatnr(mat.getMatnr()); | 
 |  |  |                     abnormalLocDetlParam.setSpecs(mat.getSpecs()); | 
 |  |  |                     abnormalLocDetlParam.setBatch(locDetl.getBatch()); | 
 |  |  |                     if (now.compareTo(maxDate) > 0) { | 
 |  |  |                         result.add(abnormalLocDetlParam); | 
 |  |  |                     } | 
 |  |  |                 } catch (Exception e) { | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Page<LocDetl> locDetlPage = new Page<>(); | 
 |  |  |         Page<AbnormalLocDetlParam> locDetlPage = new Page<>(); | 
 |  |  |         locDetlPage.setRecords(paging(result, curr, limit)); | 
 |  |  |         locDetlPage.setTotal(result.size()); | 
 |  |  |         locDetlPage.setCurrent(curr); | 
 |  |  | 
 |  |  |         return R.ok(locDetlPage); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private List<LocDetl> paging(List<LocDetl> result, Integer curr, Integer limit) { | 
 |  |  |         List<LocDetl> pageRecord = new ArrayList<LocDetl>(); | 
 |  |  |     private List<AbnormalLocDetlParam> paging(List<AbnormalLocDetlParam> result, Integer curr, Integer limit) { | 
 |  |  |         List<AbnormalLocDetlParam> pageRecord = new ArrayList<AbnormalLocDetlParam>(); | 
 |  |  |         int minIndex = (curr - 1) * limit; | 
 |  |  |         int maxIndex = (curr * limit) - 1; | 
 |  |  |         if (result.size() < maxIndex) { |