LSH
2023-09-08 7f1b7dcd78cf25a06fdcad8fb70330668b45d1b0
#流程改动
4个文件已修改
233 ■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 187 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -229,23 +229,23 @@
    /**
     * 查找是否存在出库工作中等待RGV搬运的任务
     */
    List<WrkMast> selectDischargingMachineOutputTray();
//    List<WrkMast> selectDischargingMachineOutputTray();
    /**
     * 码垛完成驱动托盘下一步扫码入库
     */
    List<WrkMast> selectStackingCompletionDriveTray();
    /**
     * 码垛完成驱动托盘下一步扫码入库
     * @param wrkNo
     */
    @Update("update asr_wrk_mast set wrk_sts=44 where 1=1 and wrk_no=#{wrkNo}")
    int updateStackingCompletionDriveTray(@Param("wrkNo")Integer wrkNo);
//    List<WrkMast> selectStackingCompletionDriveTray();
//    /**
//     * 码垛完成驱动托盘下一步扫码入库
//     * @param wrkNo
//     */
//    @Update("update asr_wrk_mast set wrk_sts=44 where 1=1 and wrk_no=#{wrkNo}")
//    int updateStackingCompletionDriveTray(@Param("wrkNo")Integer wrkNo);
    int selectConfigCount10468N();
//    int selectConfigCount10468N();
    // update Config  -- Y
    @Update("update sys_config set value='Y' where 1=1 and id=10468 and value = 'N'")
    int updateConfig10468Y();
//    @Update("update sys_config set value='Y' where 1=1 and id=10468 and value = 'N'")
//    int updateConfig10468Y();
    /*=========================================== 自动补空板相关 ========================================*/
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
import com.zy.asrs.mapper.BasRgvErrMapper;
import com.zy.asrs.mapper.WaitPakinMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
@@ -69,6 +70,8 @@
    private WrkMastMapper wrkMastMapper;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private WaitPakinMapper waitPakinMapper;
    @Autowired
    private LocMastService locMastService;
    @Autowired
@@ -2492,12 +2495,7 @@
                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
                        SearchLocParam param = new SearchLocParam();
                        if (emptyInSta.getStaNo().equals(214)){
                            //拆盘机处空板扫码,驱动托盘向码垛位,不入库
                            param.setIoType(201);
                        }else {
                            param.setIoType(10);
                        }
                        param.setIoType(10);
                        param.setSourceStaNo(emptyInSta.getStaNo());
                        param.setLocType1(locTypeDto.getLocType1());
                        String response = new HttpHandler.Builder()
@@ -3209,111 +3207,122 @@
        }
    }
    /**
     * 其他  ===>> 码垛位自动补充空板:驱动拆盘机输出托盘
     */
    public synchronized void dischargingMachineOutputTray() {
        try {
            List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray();
            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){
                return;
            }
//    /**
//     * 其他  ===>> 码垛位自动补充空板:驱动拆盘机输出托盘
//     */
//    public synchronized void dischargingMachineOutputTray() {
//        try {
//            List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray();
//            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){
//                return;
//            }
//
//            // 获取入库站信息
//            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
//            StaProtocol staProtocol = devpThread.getStation().get(213);
//            if (staProtocol == null) {
//                log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点查询失败");
//                return;
//            } else {
//                staProtocol = staProtocol.clone();
//            }
//
//            if (!staProtocol.isLoading()){
//                log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点无物,正在自动调出空板!");
//                int i = wrkMastMapper.selectConfigCount10468N();
//                if (i==1){
//                    wrkMastMapper.updateConfig10468Y();
//                }
//                return;
//            }else {
//                int i = wrkMastMapper.selectConfigCount10468N();
//                if (i==0){
//                    return;
//                }
//            }
//            StaProtocol staProtocol214 = devpThread.getStation().get(214);
//            // 判断是否满足入库条件
//            if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk() && staProtocol214.getWorkNo()==0) {
//                staProtocol.setWorkNo((short)9999);
//                staProtocol.setStaNo((short)214);
//                devpThread.setPakMk(staProtocol.getSiteId(), false);
//                boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
//                if (!result) {
//                    throw new CoolException("更新plc站点信息失败==>码垛位自动补充空板:驱动拆盘机输出托盘!");
//                }
//                log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发成功:工作号9999、目标站214!");
//            }else {
//                log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点状态不符合!");
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//        }
//    }
            // 获取入库站信息
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            StaProtocol staProtocol = devpThread.getStation().get(213);
            if (staProtocol == null) {
                log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点查询失败");
                return;
            } else {
                staProtocol = staProtocol.clone();
            }
            if (!staProtocol.isLoading()){
                log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点无物,正在自动调出空板!");
                int i = wrkMastMapper.selectConfigCount10468N();
                if (i==1){
                    wrkMastMapper.updateConfig10468Y();
                }
                return;
            }else {
                int i = wrkMastMapper.selectConfigCount10468N();
                if (i==0){
                    return;
                }
            }
            StaProtocol staProtocol214 = devpThread.getStation().get(214);
            // 判断是否满足入库条件
            if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk() && staProtocol214.getWorkNo()==0) {
                staProtocol.setWorkNo((short)9999);
                staProtocol.setStaNo((short)214);
                devpThread.setPakMk(staProtocol.getSiteId(), false);
                boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
                if (!result) {
                    throw new CoolException("更新plc站点信息失败==>码垛位自动补充空板:驱动拆盘机输出托盘!");
                }
                log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发成功:工作号9999、目标站214!");
            }else {
                log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点状态不符合!");
            }
        }catch (Exception e){
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
//    /**
//     * 其他  ===>> 拆盘机处空板扫码,驱动托盘向码垛位,不入库
//     */
//    public synchronized void scanBarcodeEmptyBoard() {
//        try {
//
//        }catch (Exception e){
//            e.printStackTrace();
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//        }
//    }
    /**
     * 其他  ===>> 拆盘机处空板扫码,驱动托盘向码垛位,不入库
     */
    public synchronized void scanBarcodeEmptyBoard() {
        try {
        }catch (Exception e){
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
    /**
     * 其他  ===>> 码垛完成驱动托盘下一步扫码入库
     * 其他  ===>> 码垛完成驱动托盘进入下一步(入库前扫码)
     */
    public synchronized void stackingCompletionDriveTray() {
        try {
            List<WrkMast> wrkMasts = wrkMastMapper.selectStackingCompletionDriveTray();
            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()==0){
                return;
            }
            for (WrkMast wrkMast : wrkMasts){
                wrkMast.setWrkSts(44L);
            int[] staNos=new int[]{216,220};
            for (int staNo : staNos){
                BasDevp basDevp = basDevpService.selectById(staNo);
                if (basDevp.getWrkNo()!=9992 || Cools.isEmpty(basDevp.getBarcode())){
                    continue;
                }
                Integer zpallet = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()).eq("status","N"));
                if (zpallet<=0){
                    continue;
                }
                // 获取入库站信息
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo());
                StaProtocol staProtocol = devpThread.getStation().get(staNo);
                if (staProtocol == null) {
                    log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点查询失败");
                    return;
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                // 入出库模式判断
//                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
//                    continue;
//                }
                if (!staProtocol.isLoading()){
                    log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点无物,正在自动调出空板!");
                    return;
                    log.info("站点无物,正在自动调出空板!");
                    continue;
                }
                // 判断是否满足入库条件
                if (staProtocol.isAutoing() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo().shortValue()) && staProtocol.isPakMk()) {
                if (staProtocol.isAutoing()
                        && staProtocol.isLoading()
                        && staProtocol.isInEnable()
                        && !staProtocol.isEmptyMk()
                        && staProtocol.getWorkNo() == 9992
                ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
                    staProtocol.setWorkNo((short)9999);
                    int staNo = wrkMast.getStaNo() + 1;
                    staNo = staNo + 1;
                    staProtocol.setStaNo((short)staNo);
                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                    boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
                    if (!result) {
                        throw new CoolException("更新plc站点信息失败==>码垛位自动补充空板:驱动拆盘机输出托盘!");
                        throw new CoolException("更新plc站点信息失败==>驱动码垛位托盘前进失败!");
                    }
                    log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发成功:工作号9999、目标站214!");
                    wrkMastMapper.updateStackingCompletionDriveTray(wrkMast.getWrkNo());
                }else {
                    log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点状态不符合!");
                }
            }
        }catch (Exception e){
src/main/java/com/zy/core/MainProcess.java
@@ -75,6 +75,10 @@
//                    mainService.rgvDestStnToCrnStn();
//                    // 出库  ===>>  RGV出库站到系统出库站
//                    mainService.rgvOutDStnToOutStn();
                    /////////////////////////////////////RGV调度/////////////////////////////////////
                    // 异常信息记录
@@ -101,7 +105,7 @@
//                    }
                    //码垛位自动补充空板:驱动拆盘机输出托盘
                    mainService.dischargingMachineOutputTray();
//                    mainService.dischargingMachineOutputTray();
//                    //拆盘机处空板扫码,驱动托盘向码垛位,不入库
//                    mainService.scanBarcodeEmptyBoard();
src/main/resources/mapper/WrkMastMapper.xml
@@ -285,18 +285,18 @@
    <!-- ==============================================RGV任务绑定相关 ============================================== -->
    <!-- ==============================================自动补空板相关 ============================================== -->
    <select id="selectDischargingMachineOutputTray" resultMap="BaseResultMap">
        select * from dbo.asr_wrk_mast where 1=1 and io_type = 201
    </select>
<!--    <select id="selectDischargingMachineOutputTray" resultMap="BaseResultMap">-->
<!--        select * from dbo.asr_wrk_mast where 1=1 and io_type = 201-->
<!--    </select>-->
    <select id="selectStackingCompletionDriveTray" resultMap="BaseResultMap">
        select * from dbo.asr_wrk_mast where 1=1 and io_type = 201 and wrk_sts = 43
    </select>
<!--    <select id="selectStackingCompletionDriveTray" resultMap="BaseResultMap">-->
<!--        select * from dbo.asr_wrk_mast where 1=1 and io_type = 201 and wrk_sts = 43-->
<!--    </select>-->
    <select id="selectConfigCount10468N" resultType="java.lang.Integer">
        SELECT COUNT(1) FROM dbo.sys_config Where 1=1 and id=10468 and value = 'N'
    </select>
<!--    <select id="selectConfigCount10468N" resultType="java.lang.Integer">-->
<!--        SELECT COUNT(1) FROM dbo.sys_config Where 1=1 and id=10468 and value = 'N'-->
<!--    </select>-->
    <!-- ==============================================自动补空板相关 ============================================== -->