自动化立体仓库 - WMS系统
#
whycq
2024-10-30 d350136e80016d9559f608710de65e827936771d
src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -5,6 +5,7 @@
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
@@ -47,6 +48,10 @@
    private AgvWrkMastService agvWrkMastService;
    @Autowired
    private AgvWrkDetlService agvWrkDetlService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private FlowLogService flowLogService;
    /*
@@ -276,6 +281,7 @@
        String matnr = params.get("matnr");
        String floor = params.get("floor");
        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("three_code", threeCode).eq("matnr", matnr));
        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr);
@@ -294,7 +300,7 @@
                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no","F1"));
            } else {
                // 如果是加工单 只在 lev1 = 1 查库存
                if ("JG".equals(orderNo.substring(0,2))) {
                if (orderDetl.getSource().equals(35)) {
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("lev1",1).eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
                } else {
                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
@@ -372,9 +378,7 @@
        if((!Cools.eq("F",agvLocMastByContainerCode.getLocSts())
                && !Cools.eq("D",agvLocMastByContainerCode.getLocSts()))
                || (!Cools.eq("F",agvLocMastByLocNo.getLocSts())
        if((!Cools.eq("F",agvLocMastByLocNo.getLocSts())
                && !Cools.eq("D",agvLocMastByLocNo.getLocSts()))){
            return R.error("库位状态不为F或者D,无法维护");
@@ -427,7 +431,13 @@
        }
        if((listByLocNo == null && listByContainerCode == null) || listByLocNo.equals(listByContainerCode)){
            return R.ok("该库位与货架库存一致,无需维护");
            //agvLocMastByContainerCode.setBarcode(agvLocMastByLocNo.getBarcode());
            //agvLocMastService.updateById(agvLocMastByContainerCode);
            agvLocMastByLocNo.setBarcode(containerCode);
            agvLocMastService.updateById(agvLocMastByLocNo);
            //return R.ok("该库位与货架库存一致,无需维护");
            return R.ok("维护成功");
        }
@@ -540,6 +550,7 @@
            }
            AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), 30,floor);
            // 同步调拨单
            long flowId = snowflakeIdWorker.nextId();
            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
            for (AgvLocDetl agvLocDetl : agvLocDetls) {
                AgvWrkDetl wrkDetl = new AgvWrkDetl();
@@ -554,8 +565,35 @@
                if (!agvWrkDetlService.insert(wrkDetl)) {
                    throw new CoolException("保存工作明细失败");
                }
                // 更新订单
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
                FlowLog flowLog = new FlowLog();
                flowLog.setFid(String.valueOf(flowId));
                flowLog.setSpare2(wrkMast.getWrkNo().toString());
                flowLog.setLocNo(wrkMast.getSourceLocNo());
                flowLog.setSpare1(barcode);
                flowLog.setOpType(5L);
                flowLog.setOrderNo(orderDetl.getOrderNo());
                flowLog.setThreeCode(orderDetl.getThreeCode());
                flowLog.setMatnr(agvLocDetl.getMatnr());
                flowLog.setMaktx(agvLocDetl.getMaktx());
                flowLog.setOrderPrevious(orderDetl.getAnfme());
                flowLog.setOrderCurrent(orderDetl.getAnfme());
                flowLog.setOrderChanged(0.0);
                flowLog.setQtyPrevious(orderDetl.getQty());
                flowLog.setQtyCurrent(orderDetl.getQty() + agvLocDetl.getAnfme());
                flowLog.setQtyChanged(agvLocDetl.getAnfme());
                flowLog.setLocPrevious(agvLocDetl.getAnfme());
                flowLog.setLocCurrent(0.0d);
                flowLog.setLocChanged(agvLocDetl.getAnfme());
                flowLog.setUserId(getUserId());
                flowLog.setAppeTime(now);
                if (!flowLogService.insert(flowLog)) {
                    throw new CoolException("同步半成品调拨单流水记录失败");
                }
                orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
                if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
                    throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
@@ -696,6 +734,7 @@
        return R.ok();
    }
    public static void main(String[] args) {
        List<AgvLocDetl> agvLocDetls1 = new ArrayList<>();
        List<AgvLocDetl> agvLocDetls2 = new ArrayList<>();