src/main/java/com/zy/asrs/entity/CombParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/WrkMastSta.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/protocol/StaProtocol.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensDevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkMastStaMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/CombParam.java
@@ -40,6 +40,7 @@ private Double anfme; private Double weight; private String memo; } src/main/java/com/zy/asrs/entity/WrkMastSta.java
@@ -158,9 +158,14 @@ @ApiModelProperty(value= "") @TableField("weight2") private Double weight2; @ApiModelProperty(value= "") private String memo; @ApiModelProperty(value= "") private String memo2; public WrkMastSta() {} public WrkMastSta(Long wrkNo,Integer wrkStart,Integer wrkEnd,Integer staStart,Integer staEnd,Date createTime,Date updateTime,Integer type,Integer wrkSts,Integer lineNumber,Integer wrkType,Date bignTime,Integer wrkCrn) { public WrkMastSta(Long wrkNo,Integer wrkStart,Integer wrkEnd,Integer staStart,Integer staEnd,Date createTime,Date updateTime,Integer type,Integer wrkSts,Integer lineNumber,Integer wrkType,Date bignTime,Integer wrkCrn,String memo,String memo2) { this.wrkNo = wrkNo; this.wrkStart = wrkStart; this.wrkEnd = wrkEnd; @@ -174,6 +179,8 @@ this.wrkType = wrkType; this.bignTime = bignTime; this.wrkCrn = wrkCrn; this.memo = memo; this.memo = memo2; } // WrkMastSta wrkMastSta = new WrkMastSta( src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2537,10 +2537,13 @@ String batch2 = ""; short type = 0; short type2 = 0; short anfme = 1; short anfme2 = 1; short anfme = 4; short anfme2 = 4; Double weight = 0d; Double weight2 = 0d; Double weight11 = 0d; String memo = ""; String memo2 = ""; List<RgvSlave.Sta> inStn1 = rgvSlave.getInStn(); if (rgvProtocol.getColumnNumber()>4){ @@ -2587,6 +2590,42 @@ sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2103); } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 2) { sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2002); } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 4) { if (staProtocol.getStaNoEnd() == 3007 || staProtocol.getStaNoEnd() == 3012){ sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2103); } else if (staProtocol.getStaNoEnd() == 2001 ){ sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2002); } else { log.error("4007站点,桶型4,非法目标站!!!!!!"+staProtocol.getStaNoEnd().toString()); continue; } workNo1 = commonService.getWorkNo(3); Date now = new Date(); // 保存工作档 WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo1); wrkMast.setIoTime(now); wrkMast.setWrkSts(101L); // 工作状态:101.初始 wrkMast.setIoType(199); // 入出库状态: 199.转移 wrkMast.setIoPri(15D); wrkMast.setCrnNo(0); wrkMast.setSourceStaNo(4007); // 源站 wrkMast.setStaNo(staProtocol.getStaNoEnd().intValue()); // 目标站 wrkMast.setFullPlt("N"); // 满板 wrkMast.setPicking("N"); // 拣料 wrkMast.setExitMk("N"); // 退出 wrkMast.setEmptyMk("Y"); // 空板 wrkMast.setBarcode("KB888888"); // 托盘码 wrkMast.setLinkMis("N"); wrkMast.setCtnNo("Y"); // 入库阻塞库位移转标记 wrkMast.setAppeTime(now); wrkMast.setModiTime(now); int res = wrkMastMapper.insert(wrkMast); if (res == 0) { // throw new CoolException(""); log.error("4007站点,桶型4,保存工作档主档失败!!!!!!"+now.toString()); continue; } } else if (inStn.getSourceStaNo() == 2102 && staProtocol.isFullPlt()) { sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2301); } else { @@ -2604,14 +2643,15 @@ if (inStn.getSourcePlcId() == 4 || inStn.getSourcePlcId() ==5){ //灌装站需要获取输送线物料代码 matnr = staProtocol.getMatnr(); batch = staProtocol.getBatch(); anfme = staProtocol.getAnfme().shortValue(); anfme2 = staProtocol.getAnfme2().shortValue(); weight = staProtocol.getWeight1(); weight2 = staProtocol.getWeight2(); anfme = Cools.isEmpty(staProtocol.getAnfme()) ? anfme:staProtocol.getAnfme().shortValue(); weight11 = staProtocol.getWeight1(); weight = weight11; String memoBool = staProtocol.isBan()? "存在":"不存在"; memo = memoBool+"半桶"; } devpThread.setPakMk(inStn.getSourceStaNo(),false); break; } } @@ -2655,7 +2695,43 @@ sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2103); } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 2) { sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2002); }else if (inStn.getSourceStaNo() == 2102 && staProtocol.isFullPlt()) { } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 4) { if (staProtocol.getStaNoEnd() == 3007 || staProtocol.getStaNoEnd() == 3012){ sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2103); } else if (staProtocol.getStaNoEnd() == 2001 ){ sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2002); } else { log.error("4007站点,桶型4,非法目标站!!!!!!"+staProtocol.getStaNoEnd().toString()); continue; } workNo2 = commonService.getWorkNo(3); Date now = new Date(); // 保存工作档 WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo2); wrkMast.setIoTime(now); wrkMast.setWrkSts(101L); // 工作状态:101.初始 wrkMast.setIoType(199); // 入出库状态: 199.转移 wrkMast.setIoPri(15D); wrkMast.setCrnNo(0); wrkMast.setSourceStaNo(4007); // 源站 wrkMast.setStaNo(staProtocol.getStaNoEnd().intValue()); // 目标站 wrkMast.setFullPlt("N"); // 满板 wrkMast.setPicking("N"); // 拣料 wrkMast.setExitMk("N"); // 退出 wrkMast.setEmptyMk("Y"); // 空板 wrkMast.setBarcode("KB888888"); // 托盘码 wrkMast.setLinkMis("N"); wrkMast.setCtnNo("Y"); // 入库阻塞库位移转标记 wrkMast.setAppeTime(now); wrkMast.setModiTime(now); int res = wrkMastMapper.insert(wrkMast); if (res == 0) { // throw new CoolException(""); log.error("4007站点,桶型4,保存工作档主档失败!!!!!!"+now.toString()); continue; } } else if (inStn.getSourceStaNo() == 2102 && staProtocol.isFullPlt()) { sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2301); } else { sta2 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo()); @@ -2673,6 +2749,11 @@ if (inStn.getSourcePlcId() == 4){ matnr2 = staProtocol.getMatnr(); batch2 = staProtocol.getBatch(); anfme2 = Cools.isEmpty(staProtocol.getAnfme2()) ? anfme2:staProtocol.getAnfme2().shortValue(); weight11 = staProtocol.getWeight1(); weight2 = weight11; String memoBool = staProtocol.isBan()? "存在":"不存在"; memo2 = memoBool+"半桶"; } devpThread.setPakMk(inStn.getSourceStaNo(),false); break; @@ -2720,15 +2801,11 @@ command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 任务模式: all取放货 } command.setCommand(false); rgvTaskSave(command); rgvTaskSave(command,memo,memo2); MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(2, command)); log.info("rgv任务下发:"+JSON.toJSONString(command)); } } } } @@ -2771,10 +2848,15 @@ WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1()); if (Cools.isEmpty(wrkMast)){ log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); }else { } else { if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){ Date date = new Date(); wrkMast.setWrkSts(14L); wrkMast.setModiTime(date); wrkMastService.updateById(wrkMast); } else if (wrkMast.getIoType()==199){ Date date = new Date(); wrkMast.setWrkSts(105L); wrkMast.setModiTime(date); wrkMastService.updateById(wrkMast); } @@ -3050,6 +3132,11 @@ wrkMast.setWrkSts(14L); wrkMast.setModiTime(date); wrkMastService.updateById(wrkMast); } else if (wrkMast.getIoType()==199 && wrkMast.getStaNo()==2001){ Date date = new Date(); wrkMast.setWrkSts(105L); wrkMast.setModiTime(date); wrkMastService.updateById(wrkMast); } } @@ -3114,7 +3201,7 @@ } } public boolean rgvTaskSave(RgvCommand command){ public boolean rgvTaskSave(RgvCommand command,String memo,String memo2){ // Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1()); if (command.getTaskNo1() > 0){ List<WrkMastSta> wrkMastSta1 = wrkMastStaService.selectBywrkNoHistoricalTasks(command.getRgvNo(),command.getTaskNo1()); @@ -3159,6 +3246,8 @@ wrkMastSta.setAnfme2(command.getAnfme2().intValue()); wrkMastSta.setWeight(command.getWeight()); wrkMastSta.setWeight2(command.getWeight2()); wrkMastSta.setMemo(memo); wrkMastSta.setMemo2(memo2); return wrkMastStaService.insert(wrkMastSta); } @@ -3305,6 +3394,7 @@ public void CreateComb(String barcode,Integer code,Integer wrkNo,String batch,DevpSlave.Sta inSta) throws IOException { Double anfme = 0d; Double weight = 0d; String memo = ""; WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkNo)); if (Cools.isEmpty(wrkMastSta)){ @@ -3320,12 +3410,14 @@ anfme = wrkMastSta.getAnfme2().doubleValue(); code = wrkMastSta.getMatnr2(); weight = wrkMastSta.getWeight2(); memo = wrkMastSta.getMemo2(); } }else { batch = wrkMastSta.getBatch(); anfme = wrkMastSta.getAnfme().doubleValue(); code = wrkMastSta.getMatnr1(); weight = wrkMastSta.getWeight(); memo = wrkMastSta.getMemo(); } MatnrCode matnrCode = matnrCodeService.selectByCode(code); if (Cools.isEmpty(matnrCode)){ @@ -3338,6 +3430,8 @@ combMat.setMatnr(matnrCode.getMatnr()); combMat.setBatch(batch); combMat.setAnfme(anfme); combMat.setWeight(weight); combMat.setMemo(memo); combMats.add(combMat); combParam.setCombMats(combMats); @@ -3354,12 +3448,8 @@ }else { log.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/mobile/comb/auth", JSON.toJSONString(combParam), response); // log.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode); //条码为空或者不符合,退库到 LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); if (ledThread != null) { String errorMsg = "扫码失败,请重试"; MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); } //条码为空或者不符合,退库信号下发 boolean result = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, null)); } } src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -20,6 +20,8 @@ // ---------------------------------------------------------------- // 目标站 private Short staNo; //目标站 private Short staNoEnd; // ---------------------------------------------------------------- // 物料代码 @@ -27,8 +29,11 @@ private String batch; private Double anfme; private Double anfme2; private Double weight1; private Double weight2; private Double weight1 = 0.0; private Double weight2 = 0.0; private Double weight3 = 0.0; private Double weight4 = 0.0; private boolean ban = false; // ---------------------------------------------------------------- // 自动 src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -254,6 +254,14 @@ } break; // 写数据 ID+目标站 2106特供 case 3: switch (slave.getId()){ case 2: write2106((StaProtocol)task.getData());break; } break; default: break; } @@ -608,7 +616,7 @@ int staNoSize = staNos.size(); OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size() * 8)); result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size()*30)); result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size()*38)); if (result.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 站点编号 @@ -617,12 +625,18 @@ Integer matnr = siemensS7Net.getByteTransform().TransInt32(result.Content, i * 4 + 4); short amount = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 8); String batch = siemensS7Net.getByteTransform().TransString(result.Content, i * 4+10, 20, "UTF-8"); short staEnd = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 30); short ban = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 32); Integer w1 = siemensS7Net.getByteTransform().TransInt32(result.Content, i * 4 + 34); StaProtocol staProtocol = station.get(siteId); if (null == staProtocol) { staProtocol = new StaProtocol(); staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } staProtocol.setSiteId(siteId); staProtocol.setAutoing(status[0]); // 自动 staProtocol.setLoading(status[1]); // 有物 staProtocol.setInEnable(status[2]); // 可入 @@ -631,6 +645,13 @@ staProtocol.setTongType(tongType); staProtocol.setBatch(batch); staProtocol.setAmount(amount); int i1 = w1 / 100; staProtocol.setWeight1((double) i1); // staProtocol.setWeight2(w2); // staProtocol.setWeight3(w3); // staProtocol.setWeight4(w4); staProtocol.setStaNoEnd(staEnd); staProtocol.setBan(ban == 1); staProtocol.setLow(true); @@ -674,7 +695,7 @@ int staNoSize = staNos.size(); OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size() * 8)); result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size()*28)); result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size()*34)); if (result.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 站点编号 @@ -683,12 +704,17 @@ Integer matnr = siemensS7Net.getByteTransform().TransInt32(result.Content, i * 4 + 2); short amount = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 6); String batch = siemensS7Net.getByteTransform().TransString(result.Content, i * 4+8, 20, "UTF-8"); short ban = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 28); Integer w1 = siemensS7Net.getByteTransform().TransInt32(result.Content, i * 4 + 30); StaProtocol staProtocol = station.get(siteId); if (null == staProtocol) { staProtocol = new StaProtocol(); staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } staProtocol.setSiteId(siteId); staProtocol.setAutoing(status[0]); // 自动 staProtocol.setLoading(status[1]); // 有物 staProtocol.setInEnable(status[2]); // 可入 @@ -697,7 +723,9 @@ staProtocol.setAmount(amount); staProtocol.setBatch(batch); staProtocol.setLow(true); int i1 = w1 / 100; staProtocol.setWeight1((double) i1); staProtocol.setBan(ban == 1); if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { @@ -785,6 +813,21 @@ log.info("输送线命令下发 [id:{}] >>>>> 命令下发: {}", slave.getId(), JSON.toJSON(staProtocol)); } } /** * 写入 ID+目标站 =====> 单站点写入 */ private void write2106(StaProtocol staProtocol) throws InterruptedException { OperateResult write = siemensS7Net.Write("DB100.210", (short) 2); // 条码重复回退 if (!write.IsSuccess) { OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(staProtocol))); log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol)); } else { OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); log.info("输送线命令下发 [id:{}] >>>>> 命令下发: {}", slave.getId(), JSON.toJSON(staProtocol)); } } /** * 心跳 src/main/resources/mapper/WrkMastMapper.xml
@@ -205,7 +205,7 @@ </select> <select id="selectByWrkNo" resultMap="BaseResultMap"> select top 1 * from dbo.asr_wrk_mast where wrk_no = #{wrkNo} and (wrk_sts = 13 or wrk_sts = 2) order by io_pri desc,io_time,wrk_no asc select top 1 * from dbo.asr_wrk_mast where wrk_no = #{wrkNo} and (wrk_sts = 13 or wrk_sts = 2 or io_type = 199) order by io_pri desc,io_time,wrk_no asc </select> <select id="selectCrn5Task2" resultMap="BaseResultMap"> select * from dbo.asr_wrk_mast where wrk_sts=1 and io_type=1 and crn_no=5 order by io_pri desc,io_time,wrk_no ASC src/main/resources/mapper/WrkMastStaMapper.xml
@@ -26,6 +26,8 @@ <result column="batch2" property="batch2"/> <result column="anfme" property="anfme"/> <result column="anfme2" property="anfme2"/> <result column="memo" property="memo"/> <result column="memo2" property="memo2"/> </resultMap> <select id="selectByRgvNoandWrkNo" resultMap="BaseResultMap">