自动化立体仓库 - WMS系统
cl
昨天 2a9d8dd3ef7c52a3399c2a1a55799826faea62e8
src/main/java/com/zy/common/web/WcsController.java
@@ -15,11 +15,14 @@
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.common.web.param.SearchLocParam;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -57,8 +60,12 @@
    @PostMapping("/pakin/loc/v1")
    @ResponseBody
    public synchronized R getLocNo(@RequestBody SearchLocParam param) {
    public synchronized R getLocNo(@RequestBody SearchLocParam param, HttpServletRequest request) {
        long startTime = System.currentTimeMillis();
        if (param != null && request != null) {
            log.info("[getLocNo] cache: {}", JSON.toJSONString(param));
            request.setAttribute("cache", param);
        }
        String barcode = param == null ? null : param.getBarcode();
        Integer sourceStaNo = param == null ? null : param.getSourceStaNo();
        try {
@@ -135,7 +142,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 +451,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 +485,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 +504,7 @@
                wrkDetl.setIoTime(wrkMast.getIoTime());
                wrkDetl.setAppeTime(now);
                wrkDetl.setModiTime(now);
                wrkDetl.setWeight(wrkMast.getScWeight());
                if (!wrkDetlService.insert(wrkDetl)) {
                    throw new CoolException("保存工作明细失败");
                }
@@ -521,6 +530,7 @@
            if (locMast.getLocSts().equals("O")) {
                locMast.setLocSts("S"); // S.入库预约
                locMast.setModiTime(now);
                locMast.setScWeight(weight);
                if (!locMastService.updateById(locMast)) {
                    throw new CoolException("改变库位状态失败");
                }