自动化立体仓库 - WMS系统
Junjie
2025-07-17 98d33bd648770ce2f81a25d5fb16ead6610e3774
#pda支持取消组托
3个文件已修改
1个文件已添加
71 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MobileController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/CombCancelParam.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/MobileService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -337,6 +337,13 @@
        return R.ok().add(map);
    }
    @RequestMapping("/comb/cancel")
    @ManagerAuth(memo = "取消组托")
    public R combCancel(@RequestBody CombCancelParam param) {
        mobileService.combCancel(param, getUserId());
        return R.ok("取消组托成功");
    }
    @RequestMapping("/comb/auth")
    @ManagerAuth(memo = "组托")
    public R comb(@RequestBody CombParam combParam) {
src/main/java/com/zy/asrs/entity/param/CombCancelParam.java
New file
@@ -0,0 +1,11 @@
package com.zy.asrs.entity.param;
import lombok.Data;
@Data
public class CombCancelParam {
    // 托盘条码
    private String barcode;
}
src/main/java/com/zy/asrs/service/MobileService.java
@@ -47,6 +47,11 @@
    void comb(CombParam param, Long userId);
    /**
     * 取消组托
     */
    void combCancel(CombCancelParam param, Long userId);
    /**
     * 上架
     */
    void onSale(CombParam param);
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -27,6 +27,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -715,6 +716,53 @@
    }
    @Override
    public void combCancel(CombCancelParam param, Long userId) {
        if (Cools.isEmpty(param.getBarcode())) {
            throw new CoolException(BaseRes.PARAM);
        }
        List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().
                eq("zpallet", param.getBarcode()));
        if (waitPakins.isEmpty()) {
            throw new CoolException("托盘未组托");
        }
        for (WaitPakin waitPakin : waitPakins) {
            if (!Cools.isEmpty(waitPakin.getOrderNo())) {
                Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, waitPakin.getOrderNo());
                if (Cools.isEmpty(order)) {
                    throw new CoolException("单据编号不存在");
                }
                if (order.getSettle() > 2) {
                    throw new CoolException("单据编号已作业完成");
                }
                // 订单明细数量校验
                OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.TRUE, order.getId(), waitPakin.getMatnr(), waitPakin.getBatch(), waitPakin.getBrand(), waitPakin.getStandby1(), waitPakin.getStandby2(), waitPakin.getStandby3(),
                        waitPakin.getBoxType1(), waitPakin.getBoxType2(), waitPakin.getBoxType3());
                if (orderDetl == null) {
                    continue;
                }
                Double workQty = orderDetl.getWorkQty();
                BigDecimal workQtyDecimal = new BigDecimal(workQty);
                workQtyDecimal = workQtyDecimal.subtract(BigDecimal.valueOf(waitPakin.getAnfme()));
                double newWorkQty = workQtyDecimal.doubleValue();
                if (newWorkQty <= 0) {
                    newWorkQty = 0D;
                }
                orderDetl.setWorkQty(newWorkQty);
                orderDetlService.updateById(orderDetl);
            }
        }
        waitPakinService.delete(new EntityWrapper<WaitPakin>()
                .eq("zpallet", param.getBarcode()));
    }
    // 商品上架
    @Override
    public void onSale(CombParam param) {