自动化立体仓库 - WMS系统
whycq
2024-05-16 df88dca7312e0a25d1e495e7bded5488f923514d
# 手动调拨
4个文件已修改
88 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvMobileController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/AgvMobileService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -404,6 +404,14 @@
        return R.ok();
    }
    @PostMapping("/hand/control/allocationOut")
    @Transactional
    @ManagerAuth(memo = "调拨离场")
    public R allocationOut(@RequestBody AgvMobileStartPakin param){
        agvMobileService.allocationOut(param, getUserId());
        return R.ok();
    }
    public static void main(String[] args) {
        List<AgvLocDetl> agvLocDetls1 = new ArrayList<>();
        List<AgvLocDetl> agvLocDetls2 = new ArrayList<>();
src/main/java/com/zy/asrs/service/AgvMobileService.java
@@ -1,10 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.AgvBasDevp;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.LocMoveParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
import com.zy.asrs.entity.param.PickParam;
import com.zy.asrs.entity.param.*;
import java.util.List;
@@ -41,4 +38,9 @@
     */
    String handControlLocMove(LocMoveParam param, Long userId);
    /**
     * 调拨离场
     */
    String allocationOut(AgvMobileStartPakin param, Long userId);
}
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -7,10 +7,7 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.LocMoveParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
import com.zy.asrs.entity.param.PickParam;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import com.zy.common.service.AgvCommonService;
@@ -55,6 +52,10 @@
    private AgvLocMastService agvLocMastService;
    @Autowired
    private AgvCommonService agvCommonService;
    @Autowired
    private AgvWrkMastLogService agvWrkMastLogService;
    @Autowired
    private AgvWrkDetlLogService agvWrkDetlLogService;
    /*
@@ -449,6 +450,63 @@
    }
    /*
       调拨离场
    */
    @Override
    @Transactional
    public String allocationOut(AgvMobileStartPakin param, Long userId) {
        Date now = new Date();
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", param.getDevNo()));
        if (Cools.isEmpty(agvWrkMast)) {
            throw new CoolException("工作档中没有此站点任务");
        }
        //生成AGV工作历史档 + 生成AGV工作明细历史档
        agvWrkMastLogService.save(agvWrkMast);
        agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
        //生成工作档
        AgvWrkMast mast = new AgvWrkMast();
        //工作状态
        mast.setWrkSts(210L);
        //入出库类型
        mast.setIoType(111);
        mast.setIoTime(now);
        //优先级
        mast.setIoPri(300.0);
        //源站点
        mast.setSourceLocNo("");
        //目标站点
        mast.setLocNo("");
        //容器编码
        mast.setBarcode(agvWrkMast.getBarcode());
        //容器类型
        mast.setWhsType(30);
        // 目标楼层
        mast.setPauseMk(agvWrkMast.getPauseMk());
        mast.setAppeUser(userId);
        mast.setAppeTime(now);
        mast.setModiUser(userId);
        mast.setModiTime(now);
        if (!agvWrkMastService.insertByIncrease(mast)) {
            throw new CoolException("保存工作档失败");
        }
        // 更新工作明细
        List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
        for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
            agvWrkDetl.setWrkNo(mast.getWrkNo());
            if (!agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()))) {
                throw new CoolException("更新工作明细失败");
            }
        }
        // 更新站点状态
        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
        // 更新源库位状态
        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
        //删除AGV工作档
        agvWrkMastService.deleteById(agvWrkMast);
        return "ok";
    }
    /*
   更新目标库位信息
    */
    private void updateAgvLocMast(AgvLocMast locMast, String locSts){
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -119,7 +119,7 @@
        //生成工作档
        AgvWrkMast mast = new AgvWrkMast();
        //工作状态
        mast.setWrkSts(201L);
        mast.setWrkSts(21L);
        //入出库类型
        mast.setIoType(111);
        mast.setIoTime(now);
@@ -134,7 +134,7 @@
        //容器类型
        mast.setWhsType(30);
        // 目标楼层
        mast.setPreHave(agvLocMast.getLocType3().toString());
        mast.setPauseMk(agvLocMast.getLocType3().toString());
        mast.setAppeUser(9527L);
        mast.setAppeTime(now);