自动化立体仓库 - WMS系统
Administrator
4 天以前 42bb7c4d621ce4ebe1c1d12203bf874f0b0b296e
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -37,6 +37,7 @@
    private static final boolean auth = true;
    private static final String  sign_arm_order = "|s|LABEL_";
    private static final String  sign_arm_sku = "|sku|LABEL_";
    private static final long MILLIS_PER_MINUTE = 60L * 1000L;
    public static final ArrayList<String> APP_KEY_LIST = new ArrayList<String>() {{
        add("ea1f0459efc02a79f046f982767939ae");
    }};
@@ -527,6 +528,7 @@
     */
    @PostMapping("/outOrder")
    public synchronized R outOrder(@RequestBody ArrayList<OutTaskParam> params, HttpServletRequest request) {
        int count = params.size();
        if (Cools.isEmpty(params)) {
            return R.error("请求参数不能为空");
        }
@@ -644,7 +646,7 @@
            return R.error("没有找到托盘码对应库位:" + String.join(",", badPalletIds)).add(missingLoc);
        }
        return openService.outOrderBatch(linesByBatchSeq);
        return openService.outOrderBatch(linesByBatchSeq,count);
    }
    /**
@@ -980,23 +982,22 @@
        String supp = "";
        //该订单累计入出库件数
        Integer ioType = wrkMast.getIoType();
        Integer suppCount = 0;
        Integer sum = 0;
        if (ioType != null && ioType < 100) {
            Date endTime = new Date();
            Date startTime = resolveBusinessDayStart(endTime);
            Long inboundCount = wrkMastLogService.countInboundHistoryBySourceStaNo(startTime, endTime, resolveInboundStationNo(wrkMast));
            supp = String.valueOf(inboundCount);
            supp = String.valueOf(resolveInboundSupp(wrkMast));
            map.put("supp", supp);
        }else {
            List<WrkMast> orderNo = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("user_no", wrkMast.getUserNo()));
            List<WrkMastLog> userNo = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().eq("user_no", wrkMast.getUserNo()).eq("wrk_sts",15L));
            if (userNo != null && userNo.size() > 0) {
                count = userNo.size()+1;
            String[] split = wrkDetls.get(0).getSupp().split("/");
            if (split != null && split.length > 0) {
                sum = Integer.valueOf(split[split.length - 1]);
            }else {
                sum = Integer.valueOf(wrkDetls.get(0).getSupp());
            }
            if (orderNo != null && orderNo.size() > 0) {
                count=orderNo.size()+count;
            }
            supp = count + "";
            List<WrkMast> userNo = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("user_no", wrkMast.getUserNo()).in("wrk_sts",11,12,21,22,25));
            suppCount = sum - userNo.size()+1;
            map.put("supp", suppCount + "/" + sum);
        }
        map.put("supp", supp);
        //耗时
        Long costTime = resolveCostTime(wrkMast);
@@ -1005,35 +1006,46 @@
        return R.ok().add(map);
    }
    private Long resolveCostTime(WrkMast wrkMast) {
    Long resolveCostTime(WrkMast wrkMast) {
        return resolveCostTime(wrkMast, new Date());
    }
    Long resolveCostTime(WrkMast wrkMast, Date now) {
        if (wrkMast == null || wrkMast.getIoType() == null) {
            return 0L;
        }
        Date endTime = new Date();
        Date startTime = resolveBusinessDayStart(endTime);
        Integer wrkSts = wrkMast.getIoType() < 100 ? 5 : 15;
        return wrkMastLogService.sumCostTimeByWrkSts(startTime, endTime, wrkSts);
        if (wrkMast.getIoType() < 100) {
            if (Cools.isEmpty(wrkMast.getTrainNo())) {
                return 0L;
            }
            return minutesBetween(wrkMastService.firstInboundCreateTimeByTrainNo(wrkMast.getTrainNo()), resolveTaskCreateTime(wrkMast));
        }
        return minutesBetween(resolveTaskCreateTime(wrkMast), now);
    }
    private Integer resolveInboundStationNo(WrkMast wrkMast) {
    int resolveInboundSupp(WrkMast wrkMast) {
        if (wrkMast == null || wrkMast.getIoType() == null || wrkMast.getIoType() >= 100 || Cools.isEmpty(wrkMast.getTrainNo())) {
            return 0;
        }
        return wrkMastService.finishedInboundPalletCountByTrainNo(wrkMast.getTrainNo());
    }
    private Date resolveTaskCreateTime(WrkMast wrkMast) {
        if (wrkMast == null) {
            return null;
        }
        return wrkMast.getSourceStaNo() == null ? wrkMast.getStaNo() : wrkMast.getSourceStaNo();
        return wrkMast.getAppeTime() == null ? wrkMast.getIoTime() : wrkMast.getAppeTime();
    }
    private Date resolveBusinessDayStart(Date now) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(now);
        calendar.set(Calendar.HOUR_OF_DAY, 8);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        if (now.before(calendar.getTime())) {
            calendar.add(Calendar.DATE, -1);
    private Long minutesBetween(Date startTime, Date endTime) {
        if (startTime == null || endTime == null) {
            return 0L;
        }
        return calendar.getTime();
        long diff = endTime.getTime() - startTime.getTime();
        if (diff <= 0) {
            return 0L;
        }
        return diff / MILLIS_PER_MINUTE;
    }
}