自动化立体仓库 - WMS系统
zhangc
2025-01-10 1da002910c1d9d44cd195bd24d951b4942a4e29c
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -17,10 +17,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -91,6 +88,17 @@
        //查看工作档是否有相同货架,存在则抛出异常
        if (!Cools.isEmpty(agvWrkMastService.selectByContainerCode(param.getBarcode()))) {
            throw new CoolException(param.getBarcode() + "货架码已存在AGV工作档中");
        }
        //判断是否有相同明细
        List<CombParam.CombMat> combMats = param.getCombMats();
        Map<String, String> data = new HashMap<>();
        for (CombParam.CombMat combMat : combMats) {
            String matnr = combMat.getMatnr();
            String csocode = combMat.getCsocode();
            if (data.get(matnr + csocode) != null) {
                throw new CoolException("明细中存在相同物料号和订单号");
            }
            data.put(matnr + csocode, matnr + csocode);
        }
        if (Cools.isEmpty(param.getOrderNo())) {
@@ -691,6 +699,9 @@
            throw new CoolException("请输入货架码");
        }
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", param.getDevNo()));
        if (agvWrkMast == null) {
            throw new CoolException("当前货架码没有任务");
        }
        Integer oldWrkNo = agvWrkMast.getWrkNo();
        if (Cools.isEmpty(agvWrkMast)) {
            throw new CoolException("工作档中没有此站点任务");
@@ -746,6 +757,9 @@
    public String handBack(AgvMobileStartPakin param, Long userId) {
        Date now = new Date();
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", param.getDevNo()));
        if (agvWrkMast == null){
            throw new CoolException("工作档中没有此站点任务");
        }
        agvWrkMast.setIoType(113);
        agvWrkMast.setModiUser(userId);
        agvWrkMast.setModiTime(now);
@@ -774,6 +788,9 @@
        agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
        String sourceLocNo = agvWrkMast.getSourceLocNo();
        AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false);
        if (newLocMast==null){
            throw new CoolException("无可用库位");
        }
        agvWrkMast.setSourceLocNo(agvWrkMast.getLocNo());
        agvWrkMast.setLocNo(newLocMast.getLocNo());
        agvWrkMast.setIoType(57);