zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/EmptyPlateOutParam.java
New file @@ -0,0 +1,36 @@ package com.zy.asrs.common.domain.param; import lombok.Data; import java.util.List; /** * Created by vincent on 2020/6/13 */ @Data public class EmptyPlateOutParam { // 出站口 private Integer outSite; // AGV出站口 private String stationCode; // 库位号集合 private List<String> locNos; public Integer getOutSite() { return outSite; } public void setOutSite(Integer outSite) { this.outSite = outSite; } public List<String> getLocNos() { return locNos; } public void setLocNos(List<String> locNos) { this.locNos = locNos; } } zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
@@ -325,6 +325,7 @@ startupDto.setSourceStaNo(sourceStaNo); startupDto.setStaNo(staNo.getDevNo()); startupDto.setLocNo(locMast.getLocNo()); startupDto.setCrnNo(locMast.getCrnNo()); return startupDto; } } zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
@@ -3,6 +3,7 @@ import com.zy.asrs.common.domain.dto.LocDetlDto; import com.zy.asrs.common.domain.dto.TaskDto; import com.zy.asrs.common.domain.enums.IoWorkType; import com.zy.asrs.common.domain.param.EmptyPlateOutParam; import com.zy.asrs.common.domain.param.FullStoreParam; import com.zy.asrs.common.domain.param.LocDetlAdjustParam; import com.zy.asrs.common.domain.param.StockOutParam; @@ -31,6 +32,11 @@ void startupFullTakeStore(StockOutParam param, Long userId, Long hostId); /** * 空板出库 */ void emptyPlateOut(EmptyPlateOutParam param, Long userId, Long hostId); /** * 手动完成工作档 */ void completeWrkMast(String workNo, Long userId, Long hostId); zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
@@ -5,6 +5,7 @@ import com.zy.asrs.common.domain.entity.StaDesc; import com.zy.asrs.common.domain.enums.IoWorkType; import com.zy.asrs.common.domain.enums.WorkNoType; import com.zy.asrs.common.domain.param.EmptyPlateOutParam; import com.zy.asrs.common.domain.param.FullStoreParam; import com.zy.asrs.common.domain.param.LocDetlAdjustParam; import com.zy.asrs.common.domain.param.StockOutParam; @@ -227,6 +228,70 @@ } @Override public void emptyPlateOut(EmptyPlateOutParam param, Long userId, Long hostId) { if (Cools.isEmpty(param.getOutSite())) { throw new CoolException("站点不存在"); } for (String locNo : param.getLocNos()) { // 获取工作号 int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); // 获取库位 LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>() .eq(LocMast::getLocNo, locNo) .eq(LocMast::getHostId, hostId)); if (Cools.isEmpty(locMast)) { throw new CoolException(locNo+"库位不存在"); } if (!locMast.getLocSts().equals("D")){ throw new CoolException("所选库位存在状态不为D的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$()); } // 获取源站 StaDesc staDesc = staDescService.getOne(new LambdaQueryWrapper<StaDesc>() .eq(StaDesc::getTypeNo, 110) .eq(StaDesc::getStnNo, param.getOutSite()) .eq(StaDesc::getDeviceNo, locMast.getCrnNo())); Integer sourceStaNo = staDesc.getDeviceStn(); if (Cools.isEmpty(sourceStaNo)) { throw new CoolException("检索源站失败"); } Date now = new Date(); // 保存工作档 WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); wrkMast.setIoTime(now); wrkMast.setWrkSts(101L); // 工作状态:101.生成出库ID wrkMast.setIoType(110); // 入出库状态: 110.空板出库 wrkMast.setIoPri(10D); wrkMast.setSourceStaNo(sourceStaNo); // 源站 wrkMast.setStaNo(param.getOutSite()); // 目标站 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locNo); // 源库位 wrkMast.setFullPlt("N"); // 满板:Y wrkMast.setPicking("N"); // 拣料 wrkMast.setExitMk("N"); // 退出 wrkMast.setEmptyMk("Y"); // 空板 wrkMast.setAppeUser(String.valueOf(userId)); wrkMast.setAppeTime(now); wrkMast.setModiUser(String.valueOf(userId)); wrkMast.setModiTime(now); wrkMast.setHostId(hostId); boolean res = wrkMastService.save(wrkMast); if (!res) { throw new CoolException("保存工作档失败"); } // 更新库位状态 D.空板 -> R.出库预约 if (locMast.getLocSts().equals("D")){ locMast.setLocSts("R"); locMast.setModiUser(userId); locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { throw new CoolException("更新库位状态失败"); } } } } @Override @Transactional public void stockOut(Integer staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, Long hostId) { Date now = new Date(); zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
@@ -1,5 +1,6 @@ package com.zy.asrs.wms.controller; import com.zy.asrs.common.domain.param.EmptyPlateOutParam; import com.zy.asrs.common.domain.param.FullStoreParam; import com.zy.asrs.common.domain.param.LocDetlAdjustParam; import com.zy.asrs.common.domain.param.StockOutParam; @@ -99,6 +100,13 @@ return R.ok("出库启动成功"); } @RequestMapping("/empty/plate/out/start") @ManagerAuth(memo = "空板出库") public R emptyPlateOutStart(EmptyPlateOutParam param) { workService.emptyPlateOut(param, getUserId(), getHostId()); return R.ok("出库启动成功"); } @RequestMapping("/hand/control/wrkMast") @ManagerAuth(memo = "手动处理工作档") public R handControlWrkMast(@RequestParam String workNo,