自动化立体仓库 - WMS系统
#
tzsk
2024-06-25 177a3333cc199eb069f4997f06f3ec6ef290fd97
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -73,8 +73,7 @@
    入库
     */
    @Transactional
    @Synchronized
    public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor) {
    public synchronized StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor) {
        Date now = new Date();
@@ -217,9 +216,14 @@
                //agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo()));
                //修改库存信息
                agvWrkDetlList.forEach(agvWrkDetl -> {
                    if(agvWrkDetl.getAnfme() <= 0){
                        return;
                    }
                    AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
                    //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
                    double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
                    agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
                });
@@ -254,7 +258,7 @@
        taskDtos.forEach(taskDto -> {
            //判断是否有重复料想的工作当
            List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectByContainerCode(taskDto.getLocDtos().get(0).getContainerCode());
            AgvWrkMast agvWrkMastList = agvWrkMastService.selectByContainerCode(taskDto.getLocDtos().get(0).getContainerCode());
            if(!Cools.isEmpty(agvWrkMastList)){
                return;
            }
@@ -402,6 +406,7 @@
                        adjDetl.setBatch(locDetl.getBatch());
                        adjDetl.setOriQty(locDetl.getAnfme());
                        adjDetl.setAdjQty(adjust.getCount());
                        adjDetl.setMemo(locDetl.getSuppCode());
                        adjDetl.setModiTime(now);
                        adjDetl.setModiUser(userId);
                        adjDetl.setAppeTime(now);
@@ -531,11 +536,13 @@
        }
        //拣料入库 盘点入库不可取消
        if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
            throw new CoolException("当前任务不可取消");
            if (userId != 9527) {
                throw new CoolException("当前任务不可取消");
            }
        }
        //入库取消
        if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){
        if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
            //源站点
            String devNo = wrkMast.getSourceLocNo();
            //目标库位
@@ -592,6 +599,25 @@
    }
    @Override
    public void changeToOutWrkMast(String workNo, Long userId) {
        AgvWrkMast agvWrkMast = agvWrkMastService.selectById(workNo);
        if (Cools.isEmpty(agvWrkMast)){
            throw new CoolException(workNo+"工作档不存在");
        }
        if (agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53){
            throw new CoolException(workNo+"入库任务无法转出库");
        }
        agvWrkMast.setIoType(101);
        agvWrkMast.setWrkSts(206L);
        agvWrkMast.setModiTime(new Date());
        agvWrkMast.setModiUser(userId);
        agvWrkMastService.updateById(agvWrkMast);
    }
    /*
    更新目标库位信息
     */