1
zhang
2025-08-12 1d5dea48f866528cb4c26be9eadf315e3ce0262f
src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -1,10 +1,11 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
import com.zy.common.service.CommonService;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.utils.News;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
@@ -16,7 +17,6 @@
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -27,7 +27,7 @@
 * Created by vincent on 2020/8/6
 */
@Slf4j
@Service("mainService")
@Service("ctuMainService")
@Transactional
public class CtuMainServiceImpl {
@@ -36,8 +36,12 @@
    @Autowired
    private SlaveProperties slaveProperties;
    @Autowired
    private WrkMastMapper wrkMastMapper;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private WrkMastService wrkMastService;
@@ -62,28 +66,49 @@
                    staProtocol = staProtocol.clone();
                }
                // 判断是否满足条件
                if (!staProtocol.isLoading()) {
                    continue;
                }
                if (staProtocol.isAutoing() && staProtocol.isInEnable()
                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
                        && staProtocol.isPakMk()) {
//                if (!staProtocol.isLoading()) {
//                    continue;
//                }
                // && staProtocol.isInEnable()
                if (staProtocol.isAutoing() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
                    WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo());
                    if (wrkMast.getWrkSts() == 106) {
                    if (wrkMast != null) {
                        //下发移动任务,并生成入库工作档
                        WrkMast in = new WrkMast();
                        wrkMast.setWrkSts(223L);
                        wrkMast.setModiTime(new Date());
                        wrkMastService.updateById(wrkMast);
                        in.setSourceLocNo("1007");
                        in.setLocNo(wrkMast.getSourceLocNo());
                        in.setIoType(10);
                        in.setIoTime(new Date());
                        in.setWrkSts(1L); // 工作状态:11.生成出库ID
                        in.setIoPri(13D); // 优先级:13
                        in.setFullPlt("Y"); // 满板:Y
                        in.setPicking("N"); // 拣料
                        in.setExitMk("N"); // 退出
                        in.setEmptyMk("Y"); // 空板
                        in.setLinkMis("N");
                        in.setAppeTime(new Date());
                        in.setModiTime(new Date());
                        in.setBarcode(wrkMast.getBarcode());
                        in.setPlcWrkNo(wrkMast.getPlcWrkNo());
                        wrkMastService.insert(in);
                        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
                        locMast.setLocSts("S");
                        locMast.setModiTime(new Date());
                        locMastService.selectById(locMast);
                    }
                }
            }
        }
    }
                    } else {
                        log.info("" + mark + " - " + staProtocol.getWorkNo() + " - 找不到对应的工作档");
                    }
                }
            }
        }
    }
    /**
     * 出库站到拣料站
     * 出库
     */
    public synchronized void generateStoreWrkFile0(Integer mark) {
    public synchronized void out(Integer mark) {
        // 根据输送线plc遍历
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历入库口
@@ -100,13 +125,12 @@
                if (!staProtocol.isLoading()) {
                    continue;
                }
                if (staProtocol.isAutoing() && staProtocol.isOutEnable()
                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
                        && staProtocol.isPakMk()) {
                //&& staProtocol.isOutEnable()
                if (staProtocol.isAutoing() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && staProtocol.isPakMk()) {
                    News.warnNoLog("" + mark + " - 0" + " - 开始执行");
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", staProtocol.getSiteId()).eq("wrk_sts", 105));
                    // 106也算上,以后106-》107用于更新库存
                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("loc_no", "1001").in("wrk_sts", 106,107));
                    if (wrkMast == null) {
                        continue;
                    }
@@ -114,14 +138,14 @@
                    // 命令下发区 --------------------------------------------------------------------------
                    // 更新站点信息 且 下发plc命令
                    staProtocol.setWorkNo(wrkMast.getWrkNo());
                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                    staProtocol.setWorkNo(wrkMast.getPlcWrkNo());
                    staProtocol.setStaNo((short) 1004);
                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    log.info("输送线下发3:{},{}", wrkMast.getWrkNo(), wrkMast.getStaNo());
                    log.info("输送线下发3:{},{}", wrkMast.getWrkNo(), 1004);
                    if (result) {
                        // 更新工作主档
                        wrkMast.setWrkSts(106L);
                        wrkMast.setWrkSts(108L);
                        wrkMast.setModiTime(new Date());
                        if (wrkMastMapper.updateById(wrkMast) == 0) {
                            News.error("" + mark + " - 1" + " - 更新工作档失败!!! [工作号:{}]", wrkMast.getWrkNo());
@@ -131,9 +155,7 @@
                    }
                } else {
                    News.errorNoLog("" + mark + " - 6" + " - 站点信息不符合入库条件!!!" + " 自动信号:" + staProtocol.isLoading() + "、可入信号:" + staProtocol.isInEnable()
                            + "、空板信号:" + staProtocol.isEmptyMk() + "、工作号:" + staProtocol.getWorkNo()
                            + "、锁定标记" + staProtocol.isPakMk() + "、入库印记:" + staProtocol.getStamp());
                    News.errorNoLog("" + mark + " - 6" + " - 站点信息不符合入库条件!!!" + " 自动信号:" + staProtocol.isLoading() + "、可入信号:" + staProtocol.isInEnable() + "、空板信号:" + staProtocol.isEmptyMk() + "、工作号:" + staProtocol.getWorkNo() + "、锁定标记" + staProtocol.isPakMk() + "、入库印记:" + staProtocol.getStamp());
                }
            }
        }