From 5005f4916ae1240cf4cd91bb4ed82be43598f568 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期二, 10 六月 2025 20:10:32 +0800 Subject: [PATCH] 自动充放电自动化流程 --- src/main/resources/mapper/BattWarehouseMapper.xml | 32 +++++++ src/main/java/com/whyc/service/BattWarehouseService.java | 42 +++++++++- src/main/java/com/whyc/mapper/BattWarehouseMapper.java | 5 + src/main/java/com/whyc/schedule/WmsTaskSchedule.java | 134 +++++++++++++++++++++++++++++++-- 4 files changed, 198 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/whyc/mapper/BattWarehouseMapper.java b/src/main/java/com/whyc/mapper/BattWarehouseMapper.java index 83b9a45..2ca31cf 100644 --- a/src/main/java/com/whyc/mapper/BattWarehouseMapper.java +++ b/src/main/java/com/whyc/mapper/BattWarehouseMapper.java @@ -5,6 +5,9 @@ import java.util.List; public interface BattWarehouseMapper extends CustomMapper<BattWarehouse> { - void updateBatchById(List<BattWarehouse> list); + void updateActivateBatchById(List<BattWarehouse> list); + void updateChargeBatchById(List<BattWarehouse> list); + + void updateDischargeBatchById(List<BattWarehouse> list); } diff --git a/src/main/java/com/whyc/schedule/WmsTaskSchedule.java b/src/main/java/com/whyc/schedule/WmsTaskSchedule.java index 634fbb9..e4be4b4 100644 --- a/src/main/java/com/whyc/schedule/WmsTaskSchedule.java +++ b/src/main/java/com/whyc/schedule/WmsTaskSchedule.java @@ -41,7 +41,11 @@ @Autowired private WmsService wmsService; - /**姣忓ぉ鏃╀笂9鐐规墽琛屼竴娆�*/ + /** + * 浠撳偍搴撴墍鏈夌數姹犵殑娲诲寲浠诲姟,浠诲姟涔嬪墠杩樻鏌ュ苟鍔犲叆 涔嬪墠鏈斁鍏ヤ粨鍌ㄥ簱琛ㄤ腑鐨勫崟浣� + * 娲诲寲鍛ㄦ湡: 鍦ㄥ弬鏁拌〃閲岃缃� + * 姣忓ぉ鏃╀笂9鐐规墽琛屼竴娆� + * */ //@Scheduled(cron= "0 0 9 * * ?") public void checkAndActivate() { //鏌ヨ鏁版嵁搴撹褰曠殑浠撳簱鍐呮墍鏈夌殑鐢垫睜 @@ -61,6 +65,8 @@ battWarehouse.setMonId(Integer.valueOf(item.getPalletCode())); battWarehouse.setStorageTime(now); battWarehouse.setOnPlan(0); + battWarehouse.setChargeOnPlan(0); + battWarehouse.setDischargeOnPlan(0); String volStr = item.getV().replace("v", ""); int vol = Integer.parseInt(volStr); battWarehouse.setVol(vol); @@ -76,8 +82,8 @@ //鏌ヨ闇�瑕佹椿鍖栫殑鐢垫睜鍒楄〃 List<BattWarehouse> list = battWarehouseService.getActivateList(); - //閫氳繃鐢靛帇杩涜鍒嗙粍list - Map<Integer, List<BattWarehouse>> mapToActivate = list.stream().collect(Collectors.groupingBy(BattWarehouse::getVol)); + /*//閫氳繃鐢靛帇杩涜鍒嗙粍list + Map<Integer, List<BattWarehouse>> mapToActivate = list.stream().filter(item->item.getVol() == 2).collect(Collectors.groupingBy(BattWarehouse::getVol)); Set<Integer> volSet = mapToActivate.keySet(); //姘歌繙鍙涓�绫荤數鍘嬭繘琛屾椿鍖栦换鍔′笅鍙�!!!鍥犱负杩炵画涓嬪彂娲诲寲,鍚庣画鐨勪細澶辫触 Integer vol; @@ -88,7 +94,14 @@ }else{ //鏈缁堟 return; + }*/ + if(list.size() == 0){ + //娌℃湁闇�瑕佹椿鍖栫殑鐢垫睜 + return; } + int vol =2; + String[] activateParameterStr = null; + list = list.stream().filter(item -> item.getVol() == 2).collect(Collectors.toList()); //鏌ヨ鏄惁瀛樺湪姝e湪杩涜鐨勪换鍔� List<Task> ongoingList = taskService.getOngoingList(); if (ongoingList.size() == 0) { @@ -116,25 +129,26 @@ // cCap: 10, // 棰勫厖瀹归噺0.1AH-闇�瑕佹牴鎹閲忓疄闄呰缃� 绛変簬瀹為檯瀹归噺 // tTimes: 1, // 鍏呮斁娆℃暟 // standTime: 1, // 闈欑疆鏃堕棿 - // startType: 1, // 娴嬭瘯璧风偣-榛樿鍏呯數 + // startType: 1, // 娴嬭瘯璧风偣-榛樿鍏呯數. 娴嬭瘯璧风偣:0鏀剧數,1鍏呯數 //} if(vol == 2) { activateParameterStr = new String[]{ "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "1", "1", "1" }; } - //TODO 6V寰呮彁渚� + //鏆備笉鑰冭檻6V鍜�12V,鍙瓨鍦�2V + /*//6V寰呮彁渚� else if(vol==6){ activateParameterStr = new String[]{ "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "1", "1", "1" }; } - //TODO 12V寰呮彁渚� + //12V寰呮彁渚� else if(vol==12){ activateParameterStr = new String[]{ "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "1", "1", "1" }; - } + }*/ List<String> activateParameter = Arrays.asList(activateParameterStr); wmsPalletDto.setActivateParameter(activateParameter); Response response = wmsService.sendTask(wmsPalletDto); @@ -149,7 +163,111 @@ item.setTaskNo(taskNoList.get(i)); } //鎵归噺鏇存柊BattWarehouse - battWarehouseService.updateBatchById(list); + battWarehouseService.updateActivateBatchById(list); + } + } + } + + } + + /** + * 浠撳偍搴撴墍鏈夌數姹犵殑鍏呯數浠诲姟 + * 鍏呯數鍛ㄦ湡:1涓湀 + * 浼犲叆鐨勬椿鍖栧弬鏁�:cTime=0,startType=1 + * 姣忓ぉ鏃╀笂10鐐规墽琛屼竴娆� + * */ + //@Scheduled(cron= "0 0 10 * * ?") + public void checkAndCharge() { + //鏌ヨ闇�瑕佸厖鐢电殑鐢垫睜鍒楄〃 + List<BattWarehouse> list = battWarehouseService.getChargeList(); + list = list.stream().filter(item -> item.getVol() == 2).collect(Collectors.toList()); + if(list.size() == 0){ + //娌℃湁闇�瑕佸厖鐢电殑鐢垫睜 + return; + } + + //鏌ヨ鏄惁瀛樺湪姝e湪杩涜鐨勪换鍔� + List<Task> ongoingList = taskService.getOngoingList(); + if (ongoingList.size() == 0) { + //娌℃湁姝e湪杩涜鐨勬椿鍖栦换鍔�,鍒欎笅鍙戞椿鍖栦换鍔� + WmsPalletDto wmsPalletDto = new WmsPalletDto(); + wmsPalletDto.setDes(3); + List<String> pallets = list.stream().map(item -> String.valueOf(item.getMonId())).collect(Collectors.toList()); + //pallets浠嶭ist绫诲瀷杞琇inkedList绫诲瀷 + LinkedList<String> palletsLinked = new LinkedList<>(pallets); + wmsPalletDto.setPallets(palletsLinked); + //娲诲寲鍙傛暟璁剧疆 + String[] activateParameterStr = new String[]{ + "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "0", "1", "1" + }; + + List<String> activateParameter = Arrays.asList(activateParameterStr); + wmsPalletDto.setActivateParameter(activateParameter); + Response response = wmsService.sendTask(wmsPalletDto); + if (response.getCode() == 1) { + WmsResponse responseInside = (WmsResponse) response.getData(); + if(responseInside.getCode() == 0){//涓嬪彂鎴愬姛 + LinkedList<String> taskNoList = responseInside.getTask_no(); + //杩涜鏍囧織浣嶅拰浠诲姟缂栧彿鐨勬洿鏂� + for (int i = 0; i < taskNoList.size(); i++) { + BattWarehouse item = list.get(i); + item.setChargeOnPlan(1); + item.setChargeTaskNo(taskNoList.get(i)); + } + //鎵归噺鏇存柊BattWarehouse + battWarehouseService.updateChargeBatchById(list); + } + } + } + + } + + /** + * 浠撳偍搴撴墍鏈夌數姹犵殑鏀剧數浠诲姟 + * 鏀剧數鍛ㄦ湡:2涓湀 + * 浼犲叆鐨勬椿鍖栧弬鏁�:cTime=0,startType=0 + * 姣忓ぉ鏃╀笂11鐐规墽琛屼竴娆� + * */ + //@Scheduled(cron= "0 0 11 * * ?") + public void checkAndDischarge() { + //鏌ヨ闇�瑕佹斁鐢电殑鐢垫睜鍒楄〃 + List<BattWarehouse> list = battWarehouseService.getDischargeList(); + list = list.stream().filter(item -> item.getVol() == 2).collect(Collectors.toList()); + if(list.size() == 0){ + //娌℃湁闇�瑕佹斁鐢电殑鐢垫睜 + return; + } + + //鏌ヨ鏄惁瀛樺湪姝e湪杩涜鐨勪换鍔� + List<Task> ongoingList = taskService.getOngoingList(); + if (ongoingList.size() == 0) { + //娌℃湁姝e湪杩涜鐨勬椿鍖栦换鍔�,鍒欎笅鍙戞椿鍖栦换鍔� + WmsPalletDto wmsPalletDto = new WmsPalletDto(); + wmsPalletDto.setDes(3); + List<String> pallets = list.stream().map(item -> String.valueOf(item.getMonId())).collect(Collectors.toList()); + //pallets浠嶭ist绫诲瀷杞琇inkedList绫诲瀷 + LinkedList<String> palletsLinked = new LinkedList<>(pallets); + wmsPalletDto.setPallets(palletsLinked); + //娲诲寲鍙傛暟璁剧疆 + String[] activateParameterStr = new String[]{ + "1", "350", "200", "10", "350", "1800", "3500", "10", "350", "175", "2350", "2250", "3500", "0", "1", "0" + }; + + List<String> activateParameter = Arrays.asList(activateParameterStr); + wmsPalletDto.setActivateParameter(activateParameter); + Response response = wmsService.sendTask(wmsPalletDto); + if (response.getCode() == 1) { + WmsResponse responseInside = (WmsResponse) response.getData(); + if(responseInside.getCode() == 0){//涓嬪彂鎴愬姛 + LinkedList<String> taskNoList = responseInside.getTask_no(); + //杩涜鏍囧織浣嶅拰浠诲姟缂栧彿鐨勬洿鏂� + for (int i = 0; i < taskNoList.size(); i++) { + BattWarehouse item = list.get(i); + item.setDischargeOnPlan(1); + item.setDischargeTaskNo(taskNoList.get(i)); + } + //鎵归噺鏇存柊BattWarehouse + battWarehouseService.updateDischargeBatchById(list); } } } diff --git a/src/main/java/com/whyc/service/BattWarehouseService.java b/src/main/java/com/whyc/service/BattWarehouseService.java index 47f566b..f35bfab 100644 --- a/src/main/java/com/whyc/service/BattWarehouseService.java +++ b/src/main/java/com/whyc/service/BattWarehouseService.java @@ -34,12 +34,36 @@ PageParam param = pageParamService.getActivatePeriod(); Integer period = param.getValue(); Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE,-period); + calendar.add(Calendar.DAY_OF_MONTH,-period); QueryWrapper<BattWarehouse> query = Wrappers.query(); query.eq("on_plan",0); - //涓烘椿鍖栬繃 鎴栬�� 娲诲寲鏃堕棿瓒呰繃娲诲寲鍛ㄦ湡 - query.isNull("activate_time").or().le("activate_time",calendar); + //鏈椿鍖栬繃 鎴栬�� 娲诲寲鏃堕棿瓒呰繃娲诲寲鍛ㄦ湡 + query.isNull("activate_time").or().le("activate_time",calendar.getTime()); + return mapper.selectList(query); + } + + public List<BattWarehouse> getChargeList() { + Integer period = 1; + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH,-period); + + QueryWrapper<BattWarehouse> query = Wrappers.query(); + query.eq("charge_on_plan",0); + //鏈厖鐢佃繃 鎴栬�� 鍏呯數鏃堕棿瓒呰繃鍏呯數鍛ㄦ湡 + query.isNull("charge_time").or().le("charge_time",calendar.getTime()); + return mapper.selectList(query); + } + + public List<BattWarehouse> getDischargeList() { + Integer period = 2; + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH,-period); + + QueryWrapper<BattWarehouse> query = Wrappers.query(); + query.eq("discharge_on_plan",0); + //鏈斁鐢佃繃 鎴栬�� 鏀剧數鏃堕棿瓒呰繃鏀剧數鍛ㄦ湡 + query.isNull("discharge_time").or().le("discharge_time",calendar.getTime()); return mapper.selectList(query); } @@ -51,8 +75,16 @@ mapper.insertBatchSomeColumn(listNew); } - public void updateBatchById(List<BattWarehouse> list) { - mapper.updateBatchById(list); + public void updateActivateBatchById(List<BattWarehouse> list) { + mapper.updateActivateBatchById(list); + } + + public void updateChargeBatchById(List<BattWarehouse> list) { + mapper.updateChargeBatchById(list); + } + + public void updateDischargeBatchById(List<BattWarehouse> list) { + mapper.updateDischargeBatchById(list); } public BattWarehouse getByTaskNo(String taskNo) { diff --git a/src/main/resources/mapper/BattWarehouseMapper.xml b/src/main/resources/mapper/BattWarehouseMapper.xml index 8d45cc9..4bd1737 100644 --- a/src/main/resources/mapper/BattWarehouseMapper.xml +++ b/src/main/resources/mapper/BattWarehouseMapper.xml @@ -3,7 +3,7 @@ <mapper namespace="com.whyc.mapper.BattWarehouseMapper" > - <update id="updateBatchById"> + <update id="updateActivateBatchById"> <foreach collection="list" item="item" index="index" separator=";"> update tb_batt_warehouse <set> @@ -17,4 +17,34 @@ where id = #{item.id} </foreach> </update> + + <update id="updateChargeBatchById"> + <foreach collection="list" item="item" index="index" separator=";"> + update tb_batt_warehouse + <set> + <if test="item.chargeTaskNo != null"> + charge_task_no = #{item.chargeTaskNo}, + </if> + <if test="item.chargeOnPlan != null"> + charge_on_plan = #{item.chargeOnPlan}, + </if> + </set> + where id = #{item.id} + </foreach> + </update> + + <update id="updateDischargeBatchById"> + <foreach collection="list" item="item" index="index" separator=";"> + update tb_batt_warehouse + <set> + <if test="item.dischargeTaskNo != null"> + discharge_task_no = #{item.dischargeTaskNo}, + </if> + <if test="item.dischargeOnPlan != null"> + discharge_on_plan = #{item.dischargeOnPlan}, + </if> + </set> + where id = #{item.id} + </foreach> + </update> </mapper> \ No newline at end of file -- Gitblit v1.9.1