自动化立体仓库 - WMS系统
cl
2 天以前 ad8574ad9f939f52ef31c843fb841a2afcc5fe2e
src/main/java/com/zy/asrs/task/handler/WorkErpReportHandler.java
@@ -22,6 +22,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@@ -92,8 +93,6 @@
        }
        String newLocId = row + "-" + col + "-" + lev;
        param.setLocId(newLocId);
        // TODO:模擬寫死重量1000KG,需後續刪除
        param.setWeight(1000.0);
        String request = JSON.toJSONString(param);
        String response = "";
@@ -159,13 +158,20 @@
        param.setPalletId(resolvePalletId(wrkMast, wrkDetls));
        param.setAnfme(sumAnfme(wrkDetls));
        param.setLocId(wrkMast.getLocNo());
        param.setWeight(sumWeight(wrkDetls));
//        param.setWeight(sumWeight(wrkDetls));
        param.setWeight(adjustErpReportWeight(wrkMast.getScWeight()));
        param.setCreateTime(formatDate(resolveCreateTime(wrkMast)));
        param.setBizNo(resolveBizNo(wrkDetls, waitPakin));
        param.setStartTime(formatDate(resolveStartTime(wrkMast, waitPakin)));
        return param;
    }
    /** 上报 ERP 重量:称重减固定值,负则按 0 */
    private static BigDecimal adjustErpReportWeight(BigDecimal scWeight) {
        BigDecimal base = scWeight == null ? BigDecimal.ZERO : scWeight;
        BigDecimal v = base.subtract(new BigDecimal("10"));
        return v.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : v;
    }
    private String resolvePalletId(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
        if (!Cools.isEmpty(wrkMast.getBarcode())) {
            return wrkMast.getBarcode();
@@ -188,17 +194,17 @@
        return total;
    }
    private Double sumWeight(List<WrkDetl> wrkDetls) {
        double total = 0D;
        for (WrkDetl wrkDetl : wrkDetls) {
            if (Cools.isEmpty(wrkDetl.getWeight())) {
                continue;
            }
            double qty = Cools.isEmpty(wrkDetl.getAnfme()) ? 1D : wrkDetl.getAnfme();
            total += wrkDetl.getWeight() * qty;
        }
        return total;
    }
//    private Double sumWeight(List<WrkDetl> wrkDetls) {
//        double total = 0D;
//        for (WrkDetl wrkDetl : wrkDetls) {
//            if (Cools.isEmpty(wrkDetl.getWeight())) {
//                continue;
//            }
//            double qty = Cools.isEmpty(wrkDetl.getAnfme()) ? 1D : wrkDetl.getAnfme();
//            total += wrkDetl.getWeight() * qty;
//        }
//        return total;
//    }
    private Date resolveCreateTime(WrkMast wrkMast) {
        if (!Cools.isEmpty(wrkMast.getCrnEndTime())) {