自动化立体仓库 - WMS系统
cl
1 天以前 20b72a000801cf006bfe1f487baabc110594832f
重量
9个文件已修改
45 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocMast.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMast.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/ErpPakinReportParam.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkErpReportHandler.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/param/SearchLocParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -60,9 +60,6 @@
    private LocMastService locMastService;
    @Autowired
    private ReportQueryMapper reportQueryMapper;
    @Autowired
    private WorkService workService;
//    @PostMapping("/order/matSync/default/v1")
////    @AppAuth(memo = "商品信息同步接口")
//    public synchronized R syncMatInfo(@RequestHeader(required = false) String appkey,
@@ -480,10 +477,11 @@
     */
    @PostMapping("/outOrder")
    public synchronized R outOrder (@RequestBody ArrayList<OutTaskParam> params){
    public synchronized R outOrder(@RequestBody ArrayList<OutTaskParam> params, HttpServletRequest request) {
        if (Cools.isEmpty(params)) {
            return R.error("请求参数不能为空");
        }
        request.setAttribute("cache", params);
        Set<String> orderIds = new LinkedHashSet<>();
        for (OutTaskParam outTaskParam : params) {
            if (Cools.isEmpty(outTaskParam) || Cools.isEmpty(outTaskParam.getOrderId())) {
@@ -509,7 +507,7 @@
            Collections.sort(seqs);
            for (int i = 0; i < seqs.size(); i++) {
                if (!String.valueOf(seqs.get(i)).equals(String.valueOf(i + 1))) {
                    return R.error("出库单「" + oid + "」序号不连续");
                    return R.error("出库单「" + oid + "」序号不连贯");
                }
            }
        }
src/main/java/com/zy/asrs/entity/LocMast.java
@@ -14,6 +14,7 @@
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -162,7 +163,7 @@
    @ApiModelProperty(value= "")
    @TableField("sc_weight")
    private Double scWeight;
    private BigDecimal scWeight;
    @ApiModelProperty(value= "")
    @TableField("inv_wh")
src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -13,6 +13,7 @@
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -272,7 +273,7 @@
    @ApiModelProperty(value= "")
    @TableField("sc_weight")
    private Double scWeight;
    private BigDecimal scWeight;
    @ApiModelProperty(value= "")
    @TableField("log_mk")
src/main/java/com/zy/asrs/entity/param/ErpPakinReportParam.java
@@ -2,6 +2,8 @@
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ErpPakinReportParam {
@@ -11,7 +13,7 @@
    private String locId;
    private Double weight;
    private BigDecimal weight;
    private String createTime;
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1685,7 +1685,7 @@
        }
        LocTypeDto locTypeDto = new LocTypeDto();
        locTypeDto.setLocType1((short) 1);
        return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list);
        return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list, null);
    }
    @Override
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("20"));
        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();
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -19,6 +19,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -528,6 +529,7 @@
                    if (locMast.getLocSts().equals("R")) {
                        locMast.setLocSts("O");
                        locMast.setBarcode("");
                        locMast.setScWeight(BigDecimal.ZERO);
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        if (!locMastService.updateById(locMast)) {
@@ -577,6 +579,7 @@
                    if (locMast.getLocSts().equals("R")) {
                        locMast.setLocSts("O");
                        locMast.setBarcode("");
                        locMast.setScWeight(BigDecimal.ZERO);
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        if (!locMastService.updateById(locMast)) {
src/main/java/com/zy/common/web/WcsController.java
@@ -20,6 +20,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -135,7 +136,7 @@
                locTypeDto.setLocType2((short) 1);
            }
            StartupDto dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
            StartupDto dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins,param.getWeight());
            log.info("WCS入库接口返参:{},托盘码:{}", dto, param.getBarcode());
            return R.ok().add(dto);
        } finally {
@@ -444,7 +445,7 @@
     * 全板入库
     */
    @Transactional
    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) {
    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins, BigDecimal weight) {
        long startTime = System.currentTimeMillis();
        try {
            // 源站点状态检测
@@ -478,6 +479,7 @@
            wrkMast.setExitMk("N"); // 退出
            wrkMast.setEmptyMk("N"); // 空板
            wrkMast.setLinkMis("Y");
            wrkMast.setScWeight(weight);
            // 把 referenceId/orderNo 透传到工作主档,便于作业完成后继续回传给 IoT。
            wrkMast.setUserNo(waitPakins.get(0).getOrderNo());
            wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型
@@ -496,6 +498,7 @@
                wrkDetl.setIoTime(wrkMast.getIoTime());
                wrkDetl.setAppeTime(now);
                wrkDetl.setModiTime(now);
                wrkDetl.setWeight(waitPakin.getWeight());
                if (!wrkDetlService.insert(wrkDetl)) {
                    throw new CoolException("保存工作明细失败");
                }
@@ -521,6 +524,7 @@
            if (locMast.getLocSts().equals("O")) {
                locMast.setLocSts("S"); // S.入库预约
                locMast.setModiTime(now);
                locMast.setScWeight(weight);
                if (!locMastService.updateById(locMast)) {
                    throw new CoolException("改变库位状态失败");
                }
src/main/java/com/zy/common/web/param/SearchLocParam.java
@@ -2,6 +2,7 @@
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -18,4 +19,5 @@
    private Integer ioType;
    private Integer outArea;
    private BigDecimal weight;
}