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/common/model/LocTypeDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/DevpSlave.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/protocol/StaProtocol.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/BarcodeThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensDevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -109,7 +109,7 @@ Integer selectExistInEmpty(); @Select("select * from asr_wrk_mast where crn_no=#{crnNo} and wrk_sts=11 and io_type>100 order by io_pri desc,io_time desc,wrk_no ASC") // @Select("select * from asr_wrk_mast where crn_no=#{crnNo} and wrk_sts=11 and io_type>100 order by io_pri desc,io_time desc,wrk_no ASC") public List<WrkMast> selectWrkIoType(@Param("crnNo") Integer crnNo); public List<WrkMast> selectWaitPakIn(@Param("wrkNos")List<Integer> wrkNos); src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -90,6 +90,8 @@ @Value("${wms.url}") private String wmsUrl; public short wrkNo = 10000; /** * 组托 * 入库站,根据条码扫描生成入库工作档,工作状态 2 @@ -116,23 +118,51 @@ continue; } String barcode = barcodeThread.getBarcode(); //9998退回,9996空板 if (!Cools.isEmpty(barcode) && (staProtocol.getWorkNo() != 9998 || staProtocol.getWorkNo() != 9996)) { // log.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode); if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) { String errorMsg = "15站扫码失败,已退回14站"; staProtocol.setWorkNo((short) 9998); staProtocol.setStaNo((short) 14); devpThread.setPakMk(staProtocol.getSiteId(), false); // led 异常显示 if (ledThread != null) { News.error(methodName + ":扫码失败,请重试"); MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); } // 尺寸检测异常 boolean back = false; String errMsg = ""; if (staProtocol.isFrontErr()) { errMsg = "前超限"; back = true; } if (!back && staProtocol.isBackErr()) { errMsg = "后超限"; back = true; } if (!back && staProtocol.isHighErr()) { errMsg = "高超限"; back = true; } if (!back && staProtocol.isLeftErr()) { errMsg = "左超限"; back = true; } if (!back && staProtocol.isRightErr()) { errMsg = "右超限"; back = true; } if (!back && staProtocol.isWeightErr()) { errMsg = "超重"; back = true; } if (!back && staProtocol.isBarcodeErr()) { errMsg = "扫码失败"; back = true; } // 退回 if (back) { // News.warn("扫码入库失败,{}入库站因{}异常,托盘已被退回", inSta.getStaNo(), errMsg); if (!staProtocol.isLoading()){ continue; } } else { continue; if (!staProtocol.isPakMk()) { continue; } staProtocol.setWorkNo(wrkNo); wrkNo++; staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } // 判断是否满足入库条件 src/main/java/com/zy/common/model/LocTypeDto.java
@@ -29,15 +29,11 @@ } public LocTypeDto(StaProtocol staProtocol) { // if (staProtocol.isHigh() == staProtocol.isLow()) { // throw new CoolException("plc高低检测异常"); // } // if (staProtocol.isLow()) { // this.locType1 = 1; // 低库位 // } else { // this.locType1 = 2; // 高库位 // } this.locType1 = 1; if (!staProtocol.isWeight()) { this.locType1 = 1; // 轻货 } else { this.locType1 = 2; // 重货 } } /** src/main/java/com/zy/core/model/DevpSlave.java
@@ -36,6 +36,8 @@ private Integer led; private Integer backSta; } } src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -46,6 +46,8 @@ // 低 private boolean low; private boolean weight; // 锁定标记 private boolean pakMk = true; @@ -58,6 +60,29 @@ //允许空托出库 private String allowEmptyOut; // 外形检测 ------------------------------------------------------------------------ // 前超限 private boolean frontErr = false; // 后超限 private boolean backErr = false; // 高超限 private boolean highErr = false; // 左超限 private boolean leftErr = false; // 右超限 private boolean rightErr = false; // 超重 private boolean weightErr = false; // 扫码失败 private boolean barcodeErr = false; public BasDevp toSqlModel(){ BasDevp basDevp = new BasDevp(); basDevp.setDevNo(siteId); src/main/java/com/zy/core/thread/BarcodeThread.java
@@ -37,7 +37,7 @@ this.barcode.delete(0, this.barcode.length()); this.barcode.append(barcode); if(!Cools.isEmpty(barcode)) { News.info(methodName + ":{}号条码器,检索数据:{}", slave.getId(), this.barcode); // News.info(methodName + ":{}号条码器,检索数据:{}", slave.getId(), this.barcode); JSONObject jsonObject = new JSONObject(); jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F)); jsonObject.put("barcode", barcode); src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -63,6 +63,15 @@ add(308);add(309);add(310);add(311); add(312); }}; public static final ArrayList<Integer> staNosErr1 = new ArrayList<Integer>() {{ add(101); add(103); add(105); }}; public static final ArrayList<Integer> staNosErr2 = new ArrayList<Integer>() {{ add(201); add(203); add(205); }}; public static final ArrayList<Integer> staNosErr3 = new ArrayList<Integer>() {{ add(301); add(303); add(305); }}; private ArrayList<Integer> getStaNo() { switch (slave.getId()) { case 1: @@ -71,6 +80,18 @@ return staNos2; case 3: return staNos3; default: throw new CoolException("获取站点失败!"); } } private ArrayList<Integer> getStaNoErr() { switch (slave.getId()) { case 1: return staNosErr1; case 2: return staNosErr2; case 3: return staNosErr3; default: throw new CoolException("获取站点失败!"); } @@ -173,9 +194,7 @@ // System.out.println(i); } Integer siteId = staNos.get(i); // 站点编号 // if(siteId==206){ // System.out.println(1); // } StaProtocol staProtocol = station.get(siteId); if (null == staProtocol) { staProtocol = new StaProtocol(); @@ -195,10 +214,28 @@ staProtocol.setFullPlt(status[5]); // 满托盘 staProtocol.setHigh(status[6]); // 高库位 staProtocol.setLow(status[7]); // 低库位 staProtocol.setWeight(status[8]); //是否为重货 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); } } } //外形检测 ArrayList<Integer> staNoErrs = getStaNoErr(); int staNoErrsSize = staNoErrs.size(); OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.800", (short) (staNoErrsSize*8)); if (resultErr.IsSuccess){ for (int i = 0;i<3;i++){ Integer siteId = staNoErrs.get(i); // 站点编号 boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1); StaProtocol staProtocol = station.get(siteId); staProtocol.setFrontErr(status[0]); staProtocol.setBackErr(status[1]); staProtocol.setHighErr(status[2]); staProtocol.setLeftErr(status[3]); staProtocol.setRightErr(status[4]); staProtocol.setWeightErr(status[5]); staProtocol.setBarcodeErr(status[6]); } } @@ -285,16 +322,10 @@ return; } int index = staNos.indexOf(staProtocol.getSiteId()); // int[] array = new int[2]; // array[0] = staProtocol.getWorkNo(); // array[1] = staProtocol.getStaNo(); OperateResult write1 = siemensS7Net.Write("DB100." + (index*6+4),staProtocol.getStaNo()); OperateResult write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue()); // OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 工作号 // Thread.sleep(500); // OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 目标站 if (!write.IsSuccess && !write1.IsSuccess) { staProtocol = station.get(staProtocol.getSiteId()); src/main/resources/application.yml
@@ -213,16 +213,19 @@ staNo: 101 barcode: ${wcs-slave.barcode[0].id} led: ${wcs-slave.led[0].id} backSta: 100 # 入库口2 inSta[1]: staNo: 103 barcode: ${wcs-slave.barcode[1].id} led: ${wcs-slave.led[1].id} backSta: 102 # 入库口3 inSta[2]: staNo: 105 barcode: ${wcs-slave.barcode[2].id} led: ${wcs-slave.led[2].id} backSta: 104 # 空板入库口1 emptyInSta[0]: staNo: 101 @@ -265,16 +268,19 @@ staNo: 201 barcode: ${wcs-slave.barcode[3].id} led: ${wcs-slave.led[3].id} backSta: 200 # 入库口2 inSta[1]: staNo: 203 barcode: ${wcs-slave.barcode[4].id} led: ${wcs-slave.led[4].id} backSta: 202 # 入库口3 inSta[2]: staNo: 205 barcode: ${wcs-slave.barcode[5].id} led: ${wcs-slave.led[5].id} backSta: 204 # 空板入库口1 emptyInSta[0]: staNo: 201 @@ -317,16 +323,19 @@ staNo: 301 barcode: ${wcs-slave.barcode[6].id} led: ${wcs-slave.led[6].id} backSta: 300 # 入库口2 inSta[1]: staNo: 303 barcode: ${wcs-slave.barcode[7].id} led: ${wcs-slave.led[7].id} backSta: 302 # 入库口3 inSta[2]: staNo: 305 barcode: ${wcs-slave.barcode[8].id} led: ${wcs-slave.led[8].id} backSta: 304 # 空板入库口1 emptyInSta[0]: staNo: 301 src/main/resources/mapper/WrkMastMapper.xml
@@ -194,4 +194,9 @@ and wrk_sts = 2 and io_type in (1,10,53,57) order by io_pri desc,io_time desc,wrk_no ASC </select> <select id="selectWrkIoType" resultMap="BaseResultMap"> select * from asr_wrk_mast where crn_no=#{crnNo} and wrk_sts=11 and io_type>100 order by io_pri desc,io_time desc,wrk_no ASC </select> </mapper>