自动化立体仓库 - WCS系统
#
LSH
2023-05-31 9fb4e68cdb138ae3ac4026f875c84c04747873f3
#
7个文件已修改
61 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkDetlService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkDetlMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -14,6 +14,7 @@
public interface WrkDetlMapper extends BaseMapper<WrkDetl> {
    List<WrkDetl> findByWorkNo(Integer workNo);
    WrkDetl devpPackNo(@Param("workNo")Integer workNo);
    int updateIoTime(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime);
src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -12,6 +12,7 @@
    void createWorkDetail(Integer workNo, List<WaitPakin> waitPakins, String barcode);
    List<WrkDetl> findByWorkNo(Integer workNo);
    WrkDetl devpPackNo(Integer workNo);
    boolean updateIoTime(Integer workNo, Date ioTime);
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2243,4 +2243,30 @@
        }
    }
    /**
     * 103站点有物下发pack码
     */
    @Transactional
    public void packDevp() {
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
                BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("bas_devp",103));
                if (Cools.isEmpty(basDevp)){
                    log.error("103站点查询失败-MainServiceImpl.java-2255行");
                }
                if (basDevp.getAutoing().equals("Y") && basDevp.getWrkNo()>0 && basDevp.getLoading().equals("Y") && basDevp.getInEnable().equals("Y")){
                    WrkDetl wrkDetl = wrkDetlService.devpPackNo(basDevp.getWrkNo());
                    if (Cools.isEmpty(wrkDetl)){
                        log.error("103站点查询失败-MainServiceImpl.java-2255行");
                    }
                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4,wrkDetl.getMatnr()));
                }
            }
        } catch (Exception e) {
            log.error("103  ===>> 给输送线发送Pack码失败", e);
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
}
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -54,6 +54,11 @@
    }
    @Override
    public WrkDetl devpPackNo(Integer workNo) {
        return this.baseMapper.devpPackNo(workNo);
    }
    @Override
    public boolean updateIoTime(Integer workNo, Date ioTime) {
        return this.baseMapper.updateIoTime(workNo, ioTime) > 0;
    }
src/main/java/com/zy/core/MainProcess.java
@@ -71,6 +71,9 @@
//                    //火警,给堆垛机发送火警警报
//                    mainService.fierCrn();
                    //103站点有物下发pack码
                    mainService.packDevp();
                } catch (Exception e) {
                    e.printStackTrace();
                }
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -80,6 +80,10 @@
                    case 2:
                        write((StaProtocol)task.getData());
                        break;
                    // 写数据 103站点写入PACK码
                    case 4:
                        write103((String)task.getData());
                        break;
                    //复位测试信号
                    case 3:
                        StaProtocol staProtocol = (StaProtocol)task.getData();
@@ -238,6 +242,24 @@
    }
    /**
     * 写入 pack码 =====> 单站点写入
     */
    private void write103(String packNo){
        try{
            OperateResult write = siemensS7Net.Write("DB100.", packNo);
            if (!write.IsSuccess) {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(packNo)));
                log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(packNo));
            } else {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(packNo)));
                log.info("输送线命令下发 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSON(packNo));
            }
        }catch (Exception e){
            log.error("103站点写入数据失败,输送线线程write103");
        }
    }
    /**
     * 写入 ID+目标站 =====> 单站点写入
     */
    private void write(StaProtocol staProtocol) throws InterruptedException {
src/main/resources/mapper/WrkDetlMapper.xml
@@ -50,6 +50,9 @@
    <select id="findByWorkNo" resultMap="BaseResultMap">
        select wrk_no, mat_no, mat_name, qty from asr_wrk_detl where 1=1 and wrk_no = #{workNo}
    </select>
    <select id="devpPackNo" resultMap="BaseResultMap">
        select top 1 * from asr_wrk_detl_log where 1=1 and wrk_no = #{workNo} order by io_time desc
    </select>
    <update id="updateIoTime">
        update asr_wrk_detl