From 983d8a5fdeace0591da69902f95b475ee7f724a0 Mon Sep 17 00:00:00 2001 From: zjj <zjj123456> Date: 星期六, 09 十一月 2024 18:05:07 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/model/protocol/StaProtocol.java | 9 + src/main/java/com/zy/asrs/entity/WrkMastSta.java | 9 ++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 132 +++++++++++++++++++++++++++----- src/main/java/com/zy/asrs/entity/CombParam.java | 1 src/main/resources/mapper/WrkMastMapper.xml | 2 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 49 +++++++++++ src/main/resources/mapper/WrkMastStaMapper.xml | 2 7 files changed, 176 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/CombParam.java b/src/main/java/com/zy/asrs/entity/CombParam.java index 74e7ea9..a3571f1 100644 --- a/src/main/java/com/zy/asrs/entity/CombParam.java +++ b/src/main/java/com/zy/asrs/entity/CombParam.java @@ -40,6 +40,7 @@ private Double anfme; private Double weight; + private String memo; } diff --git a/src/main/java/com/zy/asrs/entity/WrkMastSta.java b/src/main/java/com/zy/asrs/entity/WrkMastSta.java index b539964..de673a8 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMastSta.java +++ b/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( diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 72aaee6..493e6a0 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/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"); // 鎷f枡 + 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){ //鐏岃绔欓渶瑕佽幏鍙栬緭閫佺嚎鐗╂枡浠g爜 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"); // 鎷f枡 + 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("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",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("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", 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)); } } diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index 7fe38fc..0fecace 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -20,6 +20,8 @@ // ---------------------------------------------------------------- // 鐩爣绔� private Short staNo; + //鐩爣绔� + private Short staNoEnd; // ---------------------------------------------------------------- // 鐗╂枡浠g爜 @@ -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; // ---------------------------------------------------------------- // 鑷姩 diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index c7dba53..1816798 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/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)); + } + } /** * 蹇冭烦 diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml index 13479b9..13a0a46 100644 --- a/src/main/resources/mapper/WrkMastMapper.xml +++ b/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 diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml index 58fc03f..9a87a99 100644 --- a/src/main/resources/mapper/WrkMastStaMapper.xml +++ b/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"> -- Gitblit v1.9.1