#
Junjie
2024-05-22 b8b193fddead0318eca4ee81167e873df622854c
#
4个文件已修改
1个文件已添加
116 ■■■■■ 已修改文件
zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/EmptyPlateOutParam.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,