自动化立体仓库 - WMS系统
skyouc
12 小时以前 37db2b025903d3c7023604f3f10bc393da20af64
no message
7个文件已修改
97 ■■■■■ 已修改文件
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasStationDetl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/AgvCallParams.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/CompleteParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -131,7 +131,7 @@
        newOrder.setNumber(params.getDispatch_no());
        // 箱号
        newOrder.setItemName(params.getPm_tktid());
        newOrder.setSettle(OrderSettle.ORDER_SETTLE_INIT.type);
        newOrder.setSettle(OrderSettle.ORDER_SETTLE_HOLDING.type);
        newOrder.setStatus(CommonEnum.COMMON_ENUM_Y.type);
        // 订单时间
        newOrder.setOrderTime(DateUtils.convert(new Date(), "yyyy-MM-dd HH:mm:ss"));
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -337,7 +337,7 @@
        if (Objects.isNull(combParam)) {
            return R.error("参数不能为空!!");
        }
        mobileService.combInPub(combParam, getUserId());
        mobileService.combInPub(combParam, 10031L);
        return R.ok("上架成功");
    }
@@ -358,7 +358,7 @@
    @RequestMapping("/pack/comb/auth")
    @ManagerAuth(memo = "下线组托")
    public R packComb(@RequestBody CombParam combParam){
        mobileService.packComb(combParam, getUserId());
        mobileService.packComb(combParam, 10031L);
        return R.ok("组托成功");
    }
src/main/java/com/zy/asrs/entity/BasStationDetl.java
@@ -35,7 +35,7 @@
     */
    @ApiModelProperty(value= "站点编码")
    @TableField("dev_no")
    private Integer devNo;
    private String devNo;
    /**
     * 数量
@@ -302,7 +302,7 @@
    public BasStationDetl() {}
    public BasStationDetl(Long id,Integer devNo,Double anfme,String zpallet,String matnr,String maktx,String batch,String orderNo,String specs,String model,String color,String brand,String unit,Double price,String sku,Double units,String barcode,String origin,String manu,String manuDate,String itemNum,Double safeQty,Double weight,Double manLength,Double volume,String threeCode,String supp,String suppCode,Integer beBatch,String deadTime,Integer deadWarn,Integer source,Integer inspect,Integer danger,Long modiUser,Date modiTime,Long appeUser,Date appeTime,String memo,Long lineNumber,String standby1,String standby2,String standby3,String boxType1,String boxType2,String boxType3) {
    public BasStationDetl(Long id,String devNo,Double anfme,String zpallet,String matnr,String maktx,String batch,String orderNo,String specs,String model,String color,String brand,String unit,Double price,String sku,Double units,String barcode,String origin,String manu,String manuDate,String itemNum,Double safeQty,Double weight,Double manLength,Double volume,String threeCode,String supp,String suppCode,Integer beBatch,String deadTime,Integer deadWarn,Integer source,Integer inspect,Integer danger,Long modiUser,Date modiTime,Long appeUser,Date appeTime,String memo,Long lineNumber,String standby1,String standby2,String standby3,String boxType1,String boxType2,String boxType3) {
        this.id = id;
        this.devNo = devNo;
        this.anfme = anfme;
src/main/java/com/zy/asrs/entity/param/AgvCallParams.java
@@ -23,6 +23,9 @@
    @ApiModelProperty("托盘码")
    private String barcode;
    @ApiModelProperty("台车托盘")
    private String carBarcode;
    @ApiModelProperty("BS编码")
    private String bsCode;
src/main/java/com/zy/asrs/entity/param/CompleteParam.java
@@ -14,6 +14,8 @@
    private String station;
    private String carBarcode;
    private Integer IoType;
}
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -593,9 +593,14 @@
            throw new CoolException("条码长度不是8位===>>" + param.getBarcode());
        }
        if (Objects.isNull(param.getType())) {
            param.setType("0");
        }
        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()));
        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>()
                        .eq(!Objects.isNull(param.getType()), "type", param.getType())
                .eq("zpallet", param.getBarcode()));
        if (countLoc > 0 || countWrk > 0 || countwait > 0) {
            throw new CoolException("组托档/工作档/库存条码数据已存在===>>" + param.getBarcode());
        }
@@ -726,6 +731,8 @@
                waitPakin.setOrderId(detlDto.getOrderId());
                waitPakin.setBatch(detlDto.getBatch());     // 序列码
                waitPakin.setZpallet(param.getBarcode());   // 托盘码
                waitPakin.setThreeCode(detlDto.getThreeCode());
                waitPakin.setSuppCode(detlDto.getStandby1());
                waitPakin.setIoStatus("N");     // 入出状态
                waitPakin.setAnfme(detlDto.getAnfme());  // 数量
                waitPakin.setStatus("Y");    // 状态
@@ -1272,6 +1279,7 @@
     * @version 1.0
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R OutCallAgv(AgvCallParams params, Long userId) {
        /**获取入库最早的一条数据**/
        LocCache locCaches = locCacheService.selectOne(new EntityWrapper<LocCache>()
@@ -1344,7 +1352,6 @@
        if (Objects.isNull(params.getOrgSite())) {
            throw new CoolException("源站点不能为空!!");
        }
        List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("barcode", params.getBarcode()));
        if (!tasks.isEmpty()) {
            throw new CoolException("托盘码已生成任务");
@@ -1388,8 +1395,8 @@
     */
    @Override
    public R combCacehList(AgvCallParams params) {
        if (Objects.isNull(params.getBarcode())) {
            throw new CoolException("托盘码不能为空!!");
        if (Objects.isNull(params.getCarBarcode())) {
            throw new CoolException("台车托盘码不能为空!!");
        }
        if (Objects.isNull(params.getBsCode())) {
            throw new CoolException("BS码不能为空!!");
@@ -1397,14 +1404,15 @@
        Task task = taskService.selectOne(new EntityWrapper<Task>()
                .eq("io_type", TaskIOType.PICK_OUT.type)
                .eq("wrk_sts", 14)
                .eq("barcode", params.getBarcode()));
                .eq("barcode", params.getCarBarcode()));
        if (Objects.isNull(task)) {
            throw new CoolException("数据错误:任务信息存在!!");
        }
        List<TaskDetl> taskDetl = taskDetlService.selectList(new EntityWrapper<TaskDetl>()
                .eq("three_code", params.getBsCode())
                .eq("zpallet", params.getBarcode()));
                .eq("wrk_no", task.getWrkNo())
                .eq("zpallet", params.getCarBarcode()));
        if (Objects.isNull(taskDetl) || taskDetl.isEmpty()) {
            throw new CoolException("当前BS编码不存在!!");
@@ -1472,7 +1480,7 @@
            waitPakin.setBatch(detlDto.getBatch());
            waitPakin.setZpallet(param.getBarcode());
            //设置组托类型
            waitPakin.setType(CommonEnum.COMMON_ENUM_Y.type + "");
            waitPakin.setType(param.getType());
            waitPakin.setIoStatus("N");
            waitPakin.setAnfme(detlDto.getAnfme());
            waitPakin.setThreeCode(detlDto.getThreeCode());
@@ -1511,7 +1519,9 @@
            throw new CoolException("站点不能为空!!");
        }
        //TODO 修改缓存站点状态及数据
        Task task = taskService.selectOne(new EntityWrapper<Task>().eq("barcode", param.getBarcode()));
        Task task = taskService.selectOne(new EntityWrapper<Task>()
                .eq("wrk_sts", 14L)
                .eq("barcode", param.getCarBarcode()));
        if (Objects.isNull(task)) {
            throw new CoolException("数据错误,任务不存在!!");
        }
@@ -1530,10 +1540,7 @@
        if (!basStationService.updateById(station)) {
            throw new CoolException("站点状态修改失败!");
        }
        if (!basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()))) {
            throw new CoolException("站点删除失败!");
        }
        basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()));
        //任务完成
        task.setWrkSts(15L);
@@ -1542,7 +1549,7 @@
            throw new CoolException("AGV任务完成失败!!");
        }
        List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("barcodee", param.getBarcode()));
        List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
        if (Objects.isNull(waitPakins) || waitPakins.isEmpty()) {
            throw new CoolException("数据错误,组拖档已不存在!!");
        }
@@ -1561,7 +1568,8 @@
    public void generateCrnInTask(List<WaitPakin> waitPakins, BasStation station, Short locType,  Long userId) {
        Date now = new Date();
        StationRela rela = stationRelaService.selectOne(new EntityWrapper<StationRela>()
                .eq("dev_no", station.getDevNo())
                .eq("agv_sta", station.getDevNo())
                .orderAsc(Arrays.asList("crn_sta"))
                .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
        if (Objects.isNull(rela)) {
@@ -1617,7 +1625,7 @@
        });
        // 更新入库通知档 ioStatus ===>> Y
        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
                .eq("zpallet", pakin.getBarcode());
                .eq("zpallet", pakin.getZpallet());
        WaitPakin setParam = new WaitPakin();
        setParam.setLocNo(dto.getLocNo());
        setParam.setIoStatus("Y");
@@ -1666,7 +1674,7 @@
        }
        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
                .eq("area_id", basAreas.getId())
                .eq("loc_id", locCaches.getId()));
                .eq("loc_no", locCaches.getLocNo()));
        if (Objects.isNull(locDetls) || locDetls.isEmpty()) {
            throw new CoolException("库存明细不存在!!");
        }
@@ -1756,15 +1764,14 @@
                    .orderAsc(Arrays.asList("row1", "bay1", "lev1"))
                    .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
            locMasts.add(locMast);
            //空板出库
            generateTask(locMasts, TaskIOType.EMPTY_OUT.type, basDevp, userId);
        } else {
            if (!locMasts.isEmpty()) {
                //生成堆垛机出库任务
                generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId);
            }
            //生成堆垛机出库任务
            generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId);
//            if (!locMasts.isEmpty()) {
//
//            }
        }
    }
@@ -1832,7 +1839,7 @@
            }
            // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中
            locMast = locMastService.selectById(locMast.getLocNo());
            if (locMast.getLocSts().equals(LocStsType.LOC_STS_TYPE_F.type)) {
            if (locMast.getLocSts().equals(LocStsType.LOC_STS_TYPE_F.type) || locMast.getLocSts().equals(LocStsType.LOC_STS_TYPE_D.type)) {
                locMast.setLocSts(ioType == 101 ? "R" : "P");
                locMast.setModiUser(userId);
                locMast.setModiTime(now);
@@ -1900,12 +1907,11 @@
                        .setModel(pakin.getModel())
                        .setAppeTime(new Date())
                        .setModiUser(userId);
                taskDetls.add(wrkDetl);
                //保存工作档明细
                if (!taskDetlService.insert(wrkDetl)) {
                    throw new CoolException("保存工作档明细失败");
                }
            });
            //保存工作档明细
            if (!taskDetlService.insertBatch(taskDetls)) {
                throw new CoolException("保存工作档明细失败");
            }
        }
        loc.setLocSts(LocStsType.LOC_STS_TYPE_R.type);
@@ -1940,6 +1946,11 @@
        List<WaitPakin> pakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode));
        if (Objects.isNull(pakins) || pakins.isEmpty()) {
            throw new CoolException("组托信息不存在!!");
        }
        List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("barcode", barcode));
        if (!tasks.isEmpty()) {
            throw new CoolException("托盘已在任务执行中..");
        }
        // 获取工作号
        int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
@@ -2014,7 +2025,11 @@
        // 修改目标站点信息
        BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", orgSite));
        if (station.getLocSts().equals("O")) {
        if (Objects.isNull(station)) {
            throw new CoolException("站点不存在!!");
        }
        if (station.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
            station.setLocSts("R"); // S.入库预约
            station.setBarcode(barcode);
            station.setModiTime(new Date());
src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -6,6 +6,7 @@
import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.mapper.TaskMapper;
import com.zy.asrs.service.*;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
@@ -52,8 +53,16 @@
        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
            throw new CoolException("当前工作档已完成");
        }
        // 入库 + 库位转移
        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType() == 11)) {
            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo()));
            if (!Objects.isNull(station)) {
                station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
                if (!basStationService.updateById(station)) {
                    throw new CoolException("站点状态修改失败!!");
                }
            }
            wrkMast.setWrkSts(4L);
            // 出库
        } else if (wrkMast.getWrkSts() > 10) {