#
luxiaotao1123
2020-08-19 85c26be519f3ccb1db247ee1bbe970e8afe30680
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -26,6 +26,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 +40,7 @@
 */
@Slf4j
@Service("mainService")
@Transactional
public class MainServiceImpl {
    @Autowired
@@ -65,7 +67,7 @@
    /**
     * 入库站,根据条码扫描生成入库工作档,工作状态 2
     */
    @Transactional
    @Async
    public void generateStoreWrkFile() {
        // 根据输送线plc遍历
        for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -88,7 +90,7 @@
                        continue;
                    }
                    // 获取入库通知档
                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("barcode", barcode));
                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode));
                    if (waitPakins.isEmpty()) {
                        log.warn("无此入库条码数据。条码号={}", barcode);
                        continue;
@@ -133,6 +135,10 @@
                    if (!locMastService.updateById(locMast)){
                        throw new CoolException("改变库位状态失败");
                    }
                    // 将入库通知档修改为已启动
                    if (wrkMastMapper.updateWaitPakInStep1(barcode) == 0) {
                        throw new CoolException("修改入库通知档状态为已启动");
                    }
                    // 命令下发区 --------------------------------------------------------------------------
@@ -159,6 +165,7 @@
    /**
     * 拣料、并板、盘点再入库
     */
    @Async
    public void stnToCrnStnPick(){
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历拣料入库口
@@ -236,6 +243,7 @@
    /**
     * 堆垛机站出库到出库站
     */
    @Async
    public void crnStnToOutStn() {
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历拣料入库口
@@ -294,6 +302,7 @@
    /**
     * 入出库  ===>>  堆垛机入出库作业下发
     */
    @Async
    public void crnIoExecute(){
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
@@ -335,7 +344,8 @@
    /**
     * 入库  ===>>  堆垛机站到库位
     */
    private void crnStnToLoc(CrnSlave slave){
    @Async
    public void crnStnToLoc(CrnSlave slave){
        for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
            boolean flag = false;
            // 获取堆垛机入库站信息
@@ -400,7 +410,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());
@@ -463,7 +474,8 @@
    /**
     * 库位移转
     */
    private void locToLoc(CrnSlave slave){
    @Async
    public void locToLoc(CrnSlave slave){
        // 获取工作档信息
        WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId());
        if (null == wrkMast) {
@@ -510,13 +522,14 @@
    /**
     * 执行对工作档的完成操作
     */
    @Async
    public void storeFinished() {
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
            //  状态:等待确认 并且  任务完成位 = 1
            if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.taskFinish == 1 && crnProtocol.getTaskNo() != 0) {
            if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
                // 获取入库待确认工作档
                WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
                if (wrkMast == null) {
@@ -558,6 +571,7 @@
    /**
     * 空栈板初始化入库,叉车入库站放货
     */
    @Async
    public void storeEmptyPlt(){
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历空板入库口