自动化立体仓库 - WMS系统
zhangc
2024-12-06 03b0ea7369dcba72b560ec80f941f9d29ff7b9a5
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -1,10 +1,8 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
@@ -22,6 +20,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -116,7 +115,7 @@
     */
    @Override
    @Transactional
    public String pickAgain(PickParam pickParams, Long userId) {
    public synchronized String pickAgain(PickParam pickParams, Long userId) {
        Date now = new Date();
        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", pickParams.getLocNo()));
@@ -127,6 +126,7 @@
        }
        for (PickParam.Pick pick : pickParams.getPicks()) {
            if (pick.getCount().equals(0D)) continue;
            Double count = 0.0D;
            AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()).eq("supp_code",pick.getSuppCode()));
@@ -156,7 +156,15 @@
                agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("matnr",agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode()).eq("supp_code",pick.getSuppCode()));
            }
            // 库存校验
            Optional<AgvLocDetl> first = agvLocDetls.stream().filter(agvLocDetl -> agvLocDetl.getThreeCode().equals(pick.getThreeCode()))
                    .filter(agvLocDetl -> agvLocDetl.getMatnr().equals(pick.getMatnr())).findFirst();
            if (first.isPresent()) {
                AgvLocDetl agvLocDetl = first.get();
                if (agvLocDetl.getAnfme() < agvWrkDetl.getAnfme()) {
                    throw new CoolException("拣料数量不能大于库存数量");
                }
            }
            // 更新订单
            OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()));
@@ -204,7 +212,6 @@
            syncWaitPakin(detlDto,"",param.getBarcode(),userId,now);
        });
    }
    /*
@@ -626,6 +633,7 @@
        agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",oldWrkNo));
        return "ok";
    }
    /*
       调拨进场
    */
@@ -668,6 +676,7 @@
        //删除AGV工作档
        return "ok";
    }
    /*
       空架离场
    */
@@ -697,6 +706,7 @@
        agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"O","",agvWrkMast.getWhsType().shortValue());
        return "ok";
    }
    /*
       空架进场
    */
@@ -725,6 +735,7 @@
        agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",param.getBarcode(),agvWrkMast.getWhsType().shortValue());
        return "ok";
    }
    /*
     * 转手动回流
    */
@@ -770,7 +781,6 @@
        agvWrkMast.setIoTime(now);
        if (!agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no",agvWrkMast.getWrkNo()))) {
            throw new CoolException("更新工作档失败");
        }
@@ -803,7 +813,6 @@
        });
        return "ok";
    }
    /*
@@ -865,6 +874,7 @@
        agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",oldWrkNo));
        return "ok";
    }
    /*
   更新目标库位信息
    */