自动化立体仓库 - WCS系统
#
luxiaotao1123
2020-08-25 46f16aa85b0d41e812f8352003f54427a35e94e2
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -10,6 +10,7 @@
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
@@ -26,6 +27,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -39,6 +41,7 @@
 */
@Slf4j
@Service("mainService")
@Transactional
public class MainServiceImpl {
    @Autowired
@@ -65,7 +68,7 @@
    /**
     * 入库站,根据条码扫描生成入库工作档,工作状态 2
     */
    @Transactional
    @Async
    public void generateStoreWrkFile() {
        // 根据输送线plc遍历
        for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -88,7 +91,7 @@
                        continue;
                    }
                    // 获取入库通知档
                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("barcode", barcode));
                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
                    if (waitPakins.isEmpty()) {
                        log.warn("无此入库条码数据。条码号={}", barcode);
                        continue;
@@ -163,6 +166,7 @@
    /**
     * 拣料、并板、盘点再入库
     */
    @Async
    public void stnToCrnStnPick(){
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历拣料入库口
@@ -240,6 +244,7 @@
    /**
     * 堆垛机站出库到出库站
     */
    @Async
    public void crnStnToOutStn() {
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历拣料入库口
@@ -298,6 +303,7 @@
    /**
     * 入出库  ===>>  堆垛机入出库作业下发
     */
    @Async
    public void crnIoExecute(){
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
@@ -339,7 +345,8 @@
    /**
     * 入库  ===>>  堆垛机站到库位
     */
    private void crnStnToLoc(CrnSlave slave){
    @Async
    public void crnStnToLoc(CrnSlave slave){
        for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
            boolean flag = false;
            // 获取堆垛机入库站信息
@@ -404,7 +411,8 @@
    /**
     * 出库  ===>>  库位到堆垛机站
     */
    private void locToCrnStn(CrnSlave slave){
    @Async
    public void locToCrnStn(CrnSlave slave){
        for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
            // 获取工作状态为11(生成出库ID)的出库工作档
            WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId());
@@ -467,7 +475,8 @@
    /**
     * 库位移转
     */
    private void locToLoc(CrnSlave slave){
    @Async
    public void locToLoc(CrnSlave slave){
        // 获取工作档信息
        WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId());
        if (null == wrkMast) {
@@ -514,6 +523,7 @@
    /**
     * 执行对工作档的完成操作
     */
    @Async
    public void storeFinished() {
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
@@ -545,6 +555,12 @@
                        log.error("堆垛机复位命令下发失败,工作号={}", wrkMast.getWrkNo());
                    }
                }
                // 完成通知档
                if (wrkMastMapper.updateWaitPakInStep2(wrkMast.getBarcode()) == 0) {
                    log.error("入库通知档修改结束状态失败,workNo=[{}]", wrkMast.getWrkNo());
                }
            }
        }
    }
@@ -562,6 +578,7 @@
    /**
     * 空栈板初始化入库,叉车入库站放货
     */
    @Async
    public void storeEmptyPlt(){
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历空板入库口