自动化立体仓库 - WMS系统
Junjie
2023-07-29 e590b02a84d728251727a6b982de706bf051990e
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -5,7 +5,6 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import com.zy.common.model.StartupDto;
import com.zy.common.service.AgvCommonService;
import lombok.extern.slf4j.Slf4j;
@@ -13,7 +12,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.Date;
import java.util.List;
/**
 * Created by vincent on 2020/6/11
@@ -39,6 +39,8 @@
    private AgvWrkMastService agvWrkMastService;
    @Autowired
    private AgvWrkDetlService agvWrkDetlService;
    @Autowired
    private MatService matService;
    @Override
    public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId) {
@@ -61,11 +63,12 @@
            //生成工作档
            AgvWrkMast wrkMast = createWrkMast(agvBasDevp, agvLocMast, now, userId);
            //生成工作档明细
            createWrkDetl(agvWaitPakinList,wrkMast,userId);
            createWrkDetlReWrite(agvWaitPakinList,wrkMast,userId);
            //更新源站点信息
            updateAgvBasDevp(agvBasDevp);
            //更新目标库位状态
            updateAgvLocMast(agvLocMast);
        });
        return null;
@@ -90,7 +93,7 @@
    /*
    生成工作档明细
     */
    private void createWrkDetl(List<AgvWaitPakin> agvWaitPakinList, AgvWrkMast wrkMast, Long userId){
  /*  private void createWrkDetl(List<AgvWaitPakin> agvWaitPakinList, AgvWrkMast wrkMast, Long userId){
        List<DetlDto> detlDtos = new ArrayList<>();
        agvWaitPakinList.forEach(agvWaitPakin -> {
            DetlDto detlDto = new DetlDto(agvWaitPakin.getMatnr(), agvWaitPakin.getBatch(), agvWaitPakin.getAnfme());
@@ -103,7 +106,33 @@
            }
        });
        agvWrkDetlService.createWorkDetail(wrkMast.getWrkNo(), detlDtos, wrkMast.getBarcode(), userId);
    }*/
    /*
    生成工作档明细
     */
    private void createWrkDetlReWrite(List<AgvWaitPakin> agvWaitPakinList, AgvWrkMast wrkMast, Long userId){
        Date now = new Date();
        agvWaitPakinList.stream().forEach(agvWaitPakin -> {
            Mat mat = matService.selectByMatnr(agvWaitPakin.getMatnr());
            if (Cools.isEmpty(mat)) {
                throw new CoolException(agvWaitPakin.getMatnr() + "商品维护失败");
            }
            AgvWrkDetl wrkDetl = new AgvWrkDetl();
            wrkDetl.sync(mat);
            wrkDetl.setWrkNo(wrkMast.getWrkNo());
            wrkDetl.setOrderNo(agvWaitPakin.getOrderNo());
            wrkDetl.setIoTime(now);
            wrkDetl.setBatch(agvWaitPakin.getBatch());
            wrkDetl.setAnfme(agvWaitPakin.getAnfme()); // 数量
            wrkDetl.setZpallet(agvWaitPakin.getZpallet()); // 托盘条码
            wrkDetl.setAppeUser(userId);
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiUser(userId);
            wrkDetl.setModiTime(now);
            if (!agvWrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作明细失败");
            }
        });
    }
    /*
@@ -115,7 +144,7 @@
        int workNo = agvCommonService.getWorkNo(0);
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(new Date());
        wrkMast.setWrkSts(1L); // 工作状态:生成入库ID
        wrkMast.setWrkSts(201L); // 工作状态:201.生成入库任务ID
        wrkMast.setIoType(1); // 入出库状态:1.入库
        //生成优先级
        wrkMast.setIoPri(300.0);
@@ -136,12 +165,5 @@
        }
        return wrkMast;
    }
    public static void main(String[] args) {
        Set<AgvBasDevp> set = new HashSet<>();
        set.add(null);
        set.add(null);
        System.out.println(set.size());
    }
}