From 506b9ea416e08db32ddd93362bd3a915061de3c7 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期四, 10 三月 2022 11:04:03 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 82 ++++++++++++++++++++++++++++++++++++---- src/main/java/com/zy/asrs/entity/WrkMast.java | 7 +++ src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 2 + src/main/resources/mapper/WrkMastMapper.xml | 5 ++ 4 files changed, 87 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java index e896efc..3438b83 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMast.java +++ b/src/main/java/com/zy/asrs/entity/WrkMast.java @@ -67,6 +67,13 @@ @TableField("crn_no") private Integer crnNo; + /** + * 绌挎杞� + */ + @ApiModelProperty(value= "绌挎杞�") + @TableField("ste_no") + private Integer steNo; + @ApiModelProperty(value= "") @TableField("sheet_no") private String sheetNo; diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java index 66e8e6d..2f73757 100644 --- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java @@ -35,6 +35,8 @@ WrkMast selectPakInStep45(@Param("workNo")Integer workNo); + WrkMast selectPakInStep8(@Param("workNo")Integer workNo); + // 鎷f枡鍐嶅叆搴撴椂锛岀珯鐐规湁鐗╀笖闇�姹傛椂鏌ヨ // @Select("select top 1 * from asr_wrk_mast where wrk_no=#{workNo} and wrk_sts=14 and (io_type=103 or io_type=107 or io_type=104)") WrkMast selectPickStep(@Param("barcode")String barcode); 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 2b49984..250d4ac 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -577,8 +577,7 @@ } // 娌℃湁灏忚溅 } else { - // 鍫嗗灈鏈哄叆搴� - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + // 鍫嗗灈鏈哄叆搴� 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� @@ -599,7 +598,7 @@ wrkMast.setCrnStrTime(now); wrkMast.setModiTime(now); if (wrkMastMapper.updateById(wrkMast) == 0) { - log.error("淇敼宸ヤ綔妗g姸鎬� {} => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkSts$(), wrkMast.getWrkNo()); + log.error("淇敼宸ヤ綔妗g姸鎬� {} => 7.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkSts$(), wrkMast.getWrkNo()); } return true; } @@ -607,9 +606,52 @@ // 鐩爣搴撲綅 ===>> 闈炴渶澶栧眰搴撲綅 } else { - // 鍒ゆ柇灏忚溅鏄惁鍦ㄥ綋鍓嶇粍搴撲綅锛屽鏋滄槸鍒欏爢鍨涙満灏嗚揣鐗╂斁缃皬杞︿笂锛屽鏋滀笉鏄紝鍒欑洿鎺ュ爢鍨涙満鎼Щ灏忚溅鑷冲綋鍓嶇粍鐨勬渶澶栧眰搴撲綅 + // 鍒ゆ柇灏忚溅鏄惁鍦ㄥ綋鍓嶇粍搴撲綅锛屽鏋滄槸鍒欏皢绌挎杞︾Щ鑷虫渶澶栧眰锛岀瓑寰呭爢鍨涙満鏀捐揣锛涘鏋滀笉鏄紝鍒欏爢鍨涙満瀵绘壘绌挎杞︼紝骞舵斁缃綋鍓嶇粍鏈�澶栧眰 Integer steNo = this.hasCarOfIdle(wrkMast.getLocNo()); + // 鏈夊皬杞� + if (steNo != null) { + // 灏忚溅琛岃蛋鍒板爢鍨涙満寰呮惉绉荤偣 + if (wrkMast.getWrkSts() == 2L) { + this.letCarBeReady(wrkMast, steNo); + } + // 鍫嗗灈鏈哄皢璐ф斁鑷冲皬杞︿笂 3.灏忚溅寰呮惉 ===>> 7.鍚婅溅鍏ュ簱涓� + if (wrkMast.getWrkSts() == 3L) { + // 灏忚溅澶勪簬绌洪棽 + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); + SteProtocol steProtocol = steThread.getSteProtocol(); + if (steProtocol == null) { continue; } + if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) { + // 鍫嗗灈鏈哄叆搴� 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue()); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 ===>> 7.鍚婅溅鍏ュ簱涓� + Date now = new Date(); + wrkMast.setWrkSts(7L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 7.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + return true; + } + } + } + // 娌℃湁灏忚溅 + } else { + } } @@ -626,8 +668,6 @@ /** * 褰撳墠搴撲綅缁勬槸鍚﹀瓨鍦ㄧ┖闂插皬杞� - * @param locNo - * @return */ public Integer hasCarOfIdle(String locNo) { for (SteSlave ste : slaveProperties.getSte()) { @@ -666,6 +706,7 @@ // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.灏忚溅寰呮惉 Date now = new Date(); wrkMast.setWrkSts(3L); + wrkMast.setSteNo(steNo); wrkMast.setCrnStrTime(now); wrkMast.setModiTime(now); if (wrkMastMapper.updateById(wrkMast) == 0) { @@ -937,6 +978,23 @@ } /** + * 绌挎杞﹀叆搴� + */ + public void carGenerateStore() { + for (SteSlave ste : slaveProperties.getSte()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); + SteProtocol steProtocol = steThread.getSteProtocol(); + if (steProtocol == null) { continue; } + if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) { + + wrkMastMapper.selectPakInStep8() + + } + } + } + + /** * 鍫嗗灈鏈洪拡瀵逛簬灏忚溅杩佺Щ宸ヤ綔鐨勫畬鎴� */ @Async @@ -991,10 +1049,16 @@ log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); continue; } - // 鍏ュ簱 + 搴撲綅杞Щ ==> 9.鍏ュ簱瀹屾垚 + // 鍏ュ簱 + 搴撲綅杞Щ if (wrkMast.getWrkSts() == 7 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)){ - wrkMast.setWrkSts(9L); - } else { + if (locMastService.isOutMost(wrkMast.getLocNo())) { + // ==> 9.鍏ュ簱瀹屾垚 + wrkMast.setWrkSts(9L); + } else { + // ==> 8.灏忚溅鎼叆搴� + wrkMast.setWrkSts(8L); + } + } else { continue; } Date now = new Date(); diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml index 3deca06..1ec0f17 100644 --- a/src/main/resources/mapper/WrkMastMapper.xml +++ b/src/main/resources/mapper/WrkMastMapper.xml @@ -12,6 +12,7 @@ <result column="wrk_sts" property="wrkSts" /> <result column="io_type" property="ioType" /> <result column="crn_no" property="crnNo" /> + <result column="ste_no" property="steNo" /> <result column="sheet_no" property="sheetNo" /> <result column="io_pri" property="ioPri" /> <result column="wrk_date" property="wrkDate" /> @@ -99,6 +100,10 @@ select top 1 * from dbo.asr_wrk_mast where wrk_no=#{workNo} and wrk_sts = 7 </select> + <select id="selectPakInStep8" resultMap="BaseResultMap"> + select top 1 * from dbo.asr_wrk_mast where wrk_no=#{workNo} and wrk_sts = 8 + </select> + <select id="selectPickStep" resultMap="BaseResultMap"> select top 1 * from asr_wrk_mast where barcode=#{barcode} and wrk_sts=14 and (io_type=103 or io_type=107 or io_type=104) </select> -- Gitblit v1.9.1