自动化立体仓库 - WMS系统
#
LSH
2023-02-14 c46f9c28f8d40d2a4efcc7ef6e528661d97a4be0
src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -14,6 +14,7 @@
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;
@@ -294,64 +295,81 @@
                       @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);
        List<LocDetl> groupLocDetl = locDetlService.selectGroupPage(param, curr, limit);
        for (LocDetl locDetl : groupLocDetl) {
        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);
@@ -359,8 +377,8 @@
        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) {