src/main/java/com/zy/asrs/controller/CrnController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/MainProcess.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/console.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -117,7 +117,7 @@ vo.setXLocation(crnProtocol.getWalkPos() == 1?"是":"否"); // 走行定位 vo.setYLocation(crnProtocol.getLiftPosType().equals(CrnLiftPosType.NONE)?"否":"是"); // 升降定位 vo.setStop(crnProtocol.getCrnTemp1().stop?"是":"否"); // 急停 vo.setWorkNo(crnProtocol.getAlarm()); // 异常码 vo.setWarnCode(String.valueOf(crnProtocol.getAlarm())); // 异常码 list.add(vo); } return R.ok().add(list); @@ -141,7 +141,7 @@ CrnMsgTableVo vo = new CrnMsgTableVo(); vo.setCrnNo(crn.getId()); // 堆垛机号 vo.setWorkNo(crnProtocol.getTaskNo()); // 任务号 BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); if (null != crnError) { vo.setError(crnError.getErrorCode() + crnError.getErrName()); } src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -21,6 +21,8 @@ // @Select("select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=2 and barcode=#{barcode} and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC") WrkMast selectPakInStep1(@Param("sourceStaNo")Integer sourceStaNo, @Param("barcode")String barcode); WrkMast selectPakInStep11(@Param("sourceStaNo")Integer sourceStaNo); // 入库第二步,当托盘物料在堆垛机入库站时时查询 // @Select("select top 1 * from dbo.asr_wrk_mast where wrk_sts=2 and crn_no=#{crnNo} and wrk_no=#{workNo} and (io_type=1 or io_type=10 or io_type=53 or io_type=54 or io_type=57) order by io_pri desc,io_time,wrk_no ASC") WrkMast selectPakInStep2(@Param("crnNo")Integer crnNo, @Param("workNo")Integer workNo); src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -163,6 +163,54 @@ } /** * 入库站,根据条码扫描生成入库工作档,工作状态 1 ==>> 2 */ @Async public void generateStoreWrkFile2() { // 根据输送线plc遍历 for (DevpSlave devp : slaveProperties.getDevp()) { // 遍历入库口 for (DevpSlave.Sta inSta : devp.getInSta()) { // 获取入库站信息 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); // 判断是否满足入库条件 if (staProtocol.isAutoing() && staProtocol.isLoading() && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) { // 判断重复工作档 WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo()); if (wrkMast == null) { continue; } // 更新工作主档 wrkMast.setWrkSts(2L); // 工作状态:2.设备上走 wrkMast.setModiTime(new Date()); Integer update = wrkMastMapper.updateById(wrkMast); if (update == 0) { throw new CoolException("更新工作档失败"); } // 命令下发区 -------------------------------------------------------------------------- // 更新站点信息 且 下发plc命令 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { throw new CoolException("更新plc站点信息失败"); } staProtocol.setPakMk(false); } } } } /** * 拣料、并板、盘点再入库 @@ -518,6 +566,15 @@ crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 目标库位层 if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); } else { // 修改工作档状态 11.生成出库ID => 12.吊车出库中 Date now = new Date(); wrkMast.setWrkSts(12L); wrkMast.setCrnStrTime(now); wrkMast.setModiTime(now); if (wrkMastMapper.updateById(wrkMast) == 0) { log.error("【库位移转】 修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", wrkMast.getWrkNo()); } } } @@ -564,9 +621,9 @@ } // 完成通知档 if (wrkMastMapper.updateWaitPakInStep2(wrkMast.getBarcode()) == 0) { log.error("入库通知档修改结束状态失败,workNo=[{}]", wrkMast.getWrkNo()); } // if (wrkMastMapper.updateWaitPakInStep2(wrkMast.getBarcode()) == 0) { // log.error("入库通知档修改结束状态失败,workNo=[{}]", wrkMast.getWrkNo()); // } } } src/main/java/com/zy/core/MainProcess.java
@@ -40,7 +40,8 @@ // log.info("WCS 工作中 ....................."); // 入库 ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档 mainService.generateStoreWrkFile(); // mainService.generateStoreWrkFile(); mainService.generateStoreWrkFile2(); // 拣料、并板、盘点再入库 mainService.stnToCrnStnPick(); // 出库 ===>> 堆垛机出库站到出库站 src/main/resources/application.yml
@@ -43,8 +43,8 @@ port: 5015 rack: 0 slot: 0 # 偏移量,当堆垛机站点列号=1时,偏移量=0 offset: 1 # 偏移量,当堆垛机站点列号=1时,偏移量=2 offset: 2 # 堆垛机入库站点 crnInStn[0]: devpPlcId: ${wcs-slave.devp[0].id} @@ -60,7 +60,7 @@ bay: 1 lev: 1 # 堆垛机2 #crn[1]: crn[1]: id: 1 ip: 192.168.3.40 port: 5015 src/main/resources/mapper/WrkMastMapper.xml
@@ -79,6 +79,10 @@ select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=2 and barcode=#{barcode} and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC </select> <select id="selectPakInStep11" resultMap="BaseResultMap"> select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=1 and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC </select> <select id="selectPakInStep2" resultMap="BaseResultMap"> select top 1 * from dbo.asr_wrk_mast where wrk_sts=2 and crn_no=#{crnNo} and wrk_no=#{workNo} and (io_type=1 or io_type=10 or io_type=53 or io_type=54 or io_type=57) order by io_pri desc,io_time,wrk_no ASC </select> src/main/webapp/views/console.html
@@ -108,7 +108,6 @@ <!-- 货架 --> <div class="stock-group"> <div id="site-2" class="site" style="">2</div> <button class="item">1</button> <button class="item">2</button> <button class="item">3</button> <button class="item">4</button> @@ -169,7 +168,6 @@ <!-- 货架 --> <div class="stock-group"> <div id="site-4" class="site" style="">4</div> <button class="item">1</button> <button class="item">2</button> <button class="item">3</button> <button class="item">4</button> @@ -227,7 +225,6 @@ <!-- 货架 --> <div class="stock-group"> <div id="site-6" class="site" style="">6</div> <button class="item">1</button> <button class="item">2</button> <button class="item">3</button> <button class="item">4</button> @@ -288,7 +285,6 @@ <!-- 货架 --> <div class="stock-group"> <div id="site-8" class="site" style="">8</div> <button class="item">1</button> <button class="item">2</button> <button class="item">3</button> <button class="item">4</button> @@ -683,7 +679,8 @@ var crnEl = $("#crn-"+crns[i].crnId); crnEl.attr("class", "machine " + crns[i].crnStatus); // crnAnimate(crns[i].crnId, crns[i].offset); crnEl.animate({left: (crns[i].bay * ($('.item').eq(0).width()+4)) +'px'}, 1000); var unit = $('.item').eq(0).width()+4; crnEl.animate({left: (crns[i].bay * unit + 20) +'px'}, 1000); } } else if (res.code === 403){ window.location.href = baseUrl+"/login";