#
Junjie
2024-04-03 e4e76d2c4bdb815a198ec5e7a3da40ed19c48157
#
8个文件已修改
98 ■■■■■ 已修改文件
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/DevpThread.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SiemensDevpThread.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java
@@ -51,8 +51,8 @@
//                    mainService.initRealtimeBasMap();
//                    // 拣料、并板、盘点再入库
////                    mainService.stnToCrnStnPick();
//                    // 出库 =====>>
//                    mainService.generateOutboundWrkMast();
                    // 出库 =====>>
                    mainService.generateOutboundWrkMast();
                    // 解析入库工作档
                    mainService.analyzeInBoundTask();
//                    // 异常信息记录
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java
@@ -20,4 +20,6 @@
    List<Task> selectWaitAnalyzeInBoundTask();
    List<Task> selectPakOut();
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wcs.core.entity.Task;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -17,4 +18,6 @@
    List<Task> selectWaitAnalyzeInBoundTask();
    List<Task> selectPakOut();
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -1,5 +1,6 @@
package com.zy.asrs.wcs.core.service.impl;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wcs.core.entity.Task;
import com.zy.asrs.wcs.core.kernel.AnalyzeService;
import com.zy.asrs.wcs.core.model.enums.TaskStsType;
@@ -7,6 +8,10 @@
import com.zy.asrs.wcs.rcs.News;
import com.zy.asrs.wcs.core.entity.Motion;
import com.zy.asrs.wcs.core.service.MotionService;
import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
import com.zy.asrs.wcs.rcs.thread.DevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -58,4 +63,64 @@
        }
    }
    /**
     * 出库 ====>> 同一时间一台穿梭车只能有一个出库任务
     */
    public synchronized void generateOutboundWrkMast() {
        List<Task> tasks = taskService.selectPakOut();
        if (tasks.isEmpty()) {
            return;
        }
        for (Task task : tasks) {
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            StaProtocol staProtocol = devpThread.getStation().get(Integer.parseInt(task.getOriginSite()));//源站
            StaProtocol staProtocol1 = devpThread.getStation().get(Integer.parseInt(task.getDestSite()));//目标站
            if (staProtocol == null || staProtocol1 == null) {
                continue;
            } else {
                staProtocol = staProtocol.clone();
                staProtocol1 = staProtocol1.clone();
            }
//            // 查询站点详细信息
//            BasDevp staDetl = basDevpService.selectById(outSta.getStaNo());
//            if (staDetl == null) {
//                log.error("出库 ===>> 站点在数据库不存在, 站点编号={}", outSta.getStaNo());
//                continue;
//            }
            // 判断堆垛机出库站状态
            if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
                if (!(staProtocol1.isAutoing() && !staProtocol1.isLoading() && staProtocol1.getWorkNo() == 0 && staProtocol1.isOutEnable())) {
                    continue;
                }
//                //同库位组校验
//                List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo());
//                List<LocMast> outerLocMasts = locMastService.selectNotEmptyLocNos(outerLoc);
//                if (!outerLocMasts.isEmpty()) {
//                    News.info("{}任务,浅库位存在货物,系统等待中", wrkMast.getWrkNo());
//                    continue;//浅库位存在未执行任务
//                }
                // generate motion list
                List<Motion> motionList = analyzeService.generateMotion(task);
                if (Cools.isEmpty(motionList)) {
                    log.error("出库 ===>> 暂时没有空闲小车, 任务号={}", task.getTaskNo());
                    continue;
                }
                motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()));
                // 更新工作主档
                task.setTaskSts(TaskStsType.ANALYZE_OUTBOUND.sts); // 工作状态
                task.setUpdateTime(new Date());
                if (!taskService.updateById(task)) {
                    News.error("更新工作档失败!!! [工作号:{}]", task.getTaskNo());
                }
            }
        }
    }
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java
@@ -69,4 +69,9 @@
    public List<Task> selectWaitAnalyzeInBoundTask() {
        return this.baseMapper.selectWaitAnalyzeInBoundTask();
    }
    @Override
    public List<Task> selectPakOut() {
        return this.baseMapper.selectPakOut();
    }
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/DevpThread.java
@@ -1,7 +1,13 @@
package com.zy.asrs.wcs.rcs.thread;
import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
import java.util.Map;
public interface DevpThread extends ThreadHandler{
    Map<Integer, StaProtocol> getStation();
    boolean writeWorkNo(int siteId, short workNo);//写入工作号
    boolean writeStaNo(int siteId,short staNo);//写入目标站
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SiemensDevpThread.java
@@ -243,4 +243,9 @@
        }
        return false;
    }
    @Override
    public Map<Integer, StaProtocol> getStation() {
        return this.station;
    }
}
zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml
@@ -28,4 +28,12 @@
        select * from wcs_task where task_ctg = 1 and task_sts = 1
    </select>
    <select id="selectPakOut" resultType="com.zy.asrs.wcs.core.entity.Task">
        select * from wcs_task
        where task_sts=101
        and (task_ctg=101 or task_ctg=110)
        order by priority desc,start_time,task_no asc
    </select>
</mapper>