| | |
| | | List<LocDetl> list = locDetlService.selectList(wrapper); |
| | | List<AbnormalLocDetlParam> result = new ArrayList<>(); |
| | | |
| | | Page<LocDetl> groupLocDetl = locDetlService.getStockStatis2(toPage(1, 10000, param, LocDetl.class)); |
| | | for (LocDetl locDetl : groupLocDetl.getRecords()) { |
| | | // 使用完整的明细数据,而不是分组数据 |
| | | for (LocDetl locDetl : list) { |
| | | AbnormalLocDetlParam abnormalLocDetlParam = new AbnormalLocDetlParam(); |
| | | Mat mat = matService.selectOne(new EntityWrapper<Mat>() |
| | | .eq("matnr", locDetl.getMatnr())); |
| | | if (Cools.isEmpty(mat)) { |
| | | continue; |
| | | } |
| | | 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))); |
| | | // 设置基本信息(无论是否异常) |
| | | 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 (!Cools.isEmpty(mat.getStoreMax()) && locDetl.getAnfme() > mat.getStoreMax()) { |
| | | result.add(abnormalLocDetlParam); |
| | | } else if (!Cools.isEmpty(mat.getStoreMin()) && locDetl.getAnfme() < mat.getStoreMin()) { |
| | | result.add(abnormalLocDetlParam); |
| | | } |
| | | // 设置导出需要的其他字段 |
| | | abnormalLocDetlParam.setLocNo(locDetl.getLocNo()); |
| | | abnormalLocDetlParam.setZpallet(locDetl.getZpallet()); |
| | | abnormalLocDetlParam.setOrderNo(locDetl.getOrderNo()); |
| | | abnormalLocDetlParam.setModiTime(locDetl.getModiTime()); |
| | | |
| | | // 计算库龄(实际在库天数) |
| | | if (locDetl.getAppeTime() != null) { |
| | | long diff = System.currentTimeMillis() - locDetl.getAppeTime().getTime(); |
| | | int days = (int) (diff / (1000 * 60 * 60 * 24)); |
| | | abnormalLocDetlParam.setNowTime(days); |
| | | } |
| | | |
| | | // 确保所有字段都有值,避免空值导致导出异常 |
| | | if (abnormalLocDetlParam.getLocNo() == null) abnormalLocDetlParam.setLocNo(""); |
| | | if (abnormalLocDetlParam.getZpallet() == null) abnormalLocDetlParam.setZpallet(""); |
| | | if (abnormalLocDetlParam.getOrderNo() == null) abnormalLocDetlParam.setOrderNo(""); |
| | | if (abnormalLocDetlParam.getSpecs() == null) abnormalLocDetlParam.setSpecs(""); |
| | | |
| | | // 总是添加到结果列表 |
| | | result.add(abnormalLocDetlParam); |
| | | } |
| | | |
| | | return R.ok(exportSupport(result, fields)); |
| | | } |
| | | |