From 73bb5617e6aeb4ee8f7dfd4ad54b61d477969d86 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期二, 10 六月 2025 20:22:06 +0800 Subject: [PATCH] 自动充放电自动化流程 --- src/main/java/com/whyc/service/WmsService.java | 175 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 140 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/whyc/service/WmsService.java b/src/main/java/com/whyc/service/WmsService.java index c2aaae1..12c177d 100644 --- a/src/main/java/com/whyc/service/WmsService.java +++ b/src/main/java/com/whyc/service/WmsService.java @@ -4,7 +4,8 @@ import com.github.pagehelper.PageInfo; import com.google.gson.reflect.TypeToken; import com.whyc.dto.*; -import com.whyc.pojo.db_param.PageParam; +import com.whyc.pojo.db_abe_ram.AbeInf; +import com.whyc.pojo.db_wms.BattWarehouse; import com.whyc.pojo.db_wms.Task; import com.whyc.util.HttpUtil; import com.whyc.util.JsonUtil; @@ -13,7 +14,9 @@ import org.springframework.stereotype.Service; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service public class WmsService { @@ -22,7 +25,10 @@ private TaskService taskService; @Autowired - private PageParamService paramService; + private AbeInfService abeInfService; + + @Autowired + private BattWarehouseService battWarehouseService; public Response getMaterialList() { String httpUrl = "http://192.168.10.133:8051"+"/api/Wms_material/get_all"; @@ -60,22 +66,82 @@ String dataStr = (String) response.getData(); WmsResponse responseInside = JsonUtil.getGson().fromJson(dataStr, WmsResponse.class); response.set(1,responseInside); - //瀵逛笅鍙戠殑浠诲姟杩涜鏁版嵁搴撳瓨鍌� - Task task = new Task(); - task.setTaskNo(responseInside.getTask_no()); - task.setDes(palletDto.getDes()); - //灏嗗瓧绗︿覆鍒楄〃杞负1缁勫瓧绗︿覆,姣忎釜鍏冪礌鐢ㄩ�楀彿鍒嗗壊 - List<String> pallets = palletDto.getPallets(); - task.setPallets(String.join(",", pallets)); + if(responseInside.getCode() ==0) { + //瀵逛笅鍙戠殑浠诲姟杩涜鏁版嵁搴撳瓨鍌� + Date date = new Date(); + List<String> pallets = palletDto.getPallets(); + List<String> taskNos = responseInside.getTask_no(); + for (int i = 0; i < pallets.size(); i++) { + String pallet = pallets.get(i); + String taskNo = taskNos.get(i); + Task task = new Task(); + task.setTaskNo(taskNo); + task.setPallets(pallet); + task.setDes(palletDto.getDes()); - List<String> activateParameter = palletDto.getActivateParameter(); - task.setActivateParameter(String.join(",",activateParameter)); + if (palletDto.getDes() == 3) { //娲诲寲,濉叆娲诲寲鍙傛暟 + List<String> activateParameter = palletDto.getActivateParameter(); + task.setActivateParameter(String.join(",", activateParameter)); + } + task.setCreateTime(date); - Date date = new Date(); - task.setCreateTime(date); + taskService.add(task); - taskService.add(task); + } + } + } + return response; + } + + public Response sendTaskInbound(WmsTaskDto taskDto) { + String httpUrl = "http://192.168.10.133:8051"+"/api/wms_task/inbound"; + Response response = HttpUtil.doPost(httpUrl, JsonUtil.getGson().toJson(taskDto)); + //瀵圭粨鏋滆繘琛屽鐞� + if(response.getCode() == 1){ //璇锋眰鎴愬姛,data鏈夋甯告暟鎹� + String dataStr = (String) response.getData(); + WmsTaskResponse responseInside = JsonUtil.getGson().fromJson(dataStr, WmsTaskResponse.class); + response.set(1,responseInside); + if(responseInside.getCode() ==0) { + //瀵逛笅鍙戠殑浠诲姟杩涜鏁版嵁搴撳瓨鍌� + Date date = new Date(); + String pallet = taskDto.getPallet_code(); + String startLocationCode = taskDto.getStartlocation_code(); + //1=鎼繍绌烘墭,2=鎼繍鐢垫睜. 杞寲鍒板瓧娈礑es涓�,1001=鎼繍绌烘墭,1002=鎼繍鐢垫睜 + Integer type = taskDto.getType(); + String taskNo = (String) responseInside.getTask_no().get(0); + + Task task = new Task(); + task.setTaskNo(taskNo); + task.setPallets(pallet); + task.setStartLocationCode(startLocationCode); + task.setDes(type ==1?1001:1002); + + task.setCreateTime(date); + + taskService.add(task); + + + } + } + return response; + } + + public Response cancelTask(WmsTaskCancelDto stopDto) { + String httpUrl = "http://192.168.10.133:8051"+"/api/wms_task/force_send"; + Response response = HttpUtil.doPost(httpUrl, JsonUtil.getGson().toJson(stopDto)); + //瀵圭粨鏋滆繘琛屽鐞� + if(response.getCode() == 1){ //璇锋眰鎴愬姛,data鏈夋甯告暟鎹� + String dataStr = (String) response.getData(); + WmsResponseTaskCancelDto responseInside = JsonUtil.getGson().fromJson(dataStr, WmsResponseTaskCancelDto.class); + response.set(1,responseInside); + if(responseInside.getCode() ==0) { + //鍙栨秷鎴愬姛,浠诲姟闇�瑕佹坊鍔犲畬缁撴椂闂� + Task task = new Task(); + task.setTaskNo(stopDto.getTask_no()); + task.setEndTime(new Date()); + taskService.update(task); + } } return response; } @@ -86,37 +152,50 @@ //瀵圭粨鏋滆繘琛屽鐞� if(response.getCode() == 1){ //璇锋眰鎴愬姛,data鏈夋甯告暟鎹� String dataStr = (String) response.getData(); - //鎴彇dataStr涓�"data:"鍚庣殑瀛楃涓� + /*//鎴彇dataStr涓�"data:"鍚庣殑瀛楃涓� int index = dataStr.indexOf("data"); dataStr = dataStr.substring(index+6, dataStr.length()-3); - //WmsLocationDto wmsLocationDto = JsonUtil.getGson().fromJson(dataStr, WmsLocationDto.class); - List<WmsLocationDto> wmsLocationDtoList = JsonUtil.getGson().fromJson(dataStr, new TypeToken<List<WmsLocationDto>>(){}.getType()); + //WmsLocationDto wmsLocationDto = JsonUtil.getGson().fromJson(dataStr, WmsLocationDto.class);*/ + WmsResponse<List<WmsLocationDto>> wmsResponse = JsonUtil.getGson().fromJson(dataStr, new TypeToken<WmsResponse<List<WmsLocationDto>>>(){}.getType()); + List<WmsLocationDto> wmsLocationDtoList = wmsResponse.getData(); response.set(1,wmsLocationDtoList); } return response; } - public Response getPalletList() { + public Response getPalletList(int MaterialType, int PalletStatus) { String httpUrl = "http://192.168.10.133:8051"+"/api/Wms_pallet/get_all"; - Response response = HttpUtil.doGet(httpUrl, (String) null); + + Map<String,Integer> queryMap = new HashMap<>(); + queryMap.put("MaterialType",MaterialType); + queryMap.put("PalletStatus",PalletStatus); + Response response = HttpUtil.doGet(httpUrl, HttpUtil.urlEncode(queryMap)); //瀵圭粨鏋滆繘琛屽鐞� if(response.getCode() == 1){ //璇锋眰鎴愬姛,data鏈夋甯告暟鎹� String dataStr = (String) response.getData(); + /* //鎴彇dataStr涓�"data:"鍚庣殑瀛楃涓� int index = dataStr.indexOf("data"); dataStr = dataStr.substring(index+6, dataStr.length()-3); - //WmsLocationDto wmsLocationDto = JsonUtil.getGson().fromJson(dataStr, WmsLocationDto.class); - List<WmsPallet> wmsPalletList = JsonUtil.getGson().fromJson(dataStr, new TypeToken<List<WmsPallet>>(){}.getType()); + List<WmsPallet> wmsPalletList = JsonUtil.getGson().fromJson(dataStr, new TypeToken<List<WmsPallet>>(){}.getType());*/ + WmsResponse<List<WmsPallet>> wmsResponse = JsonUtil.getGson().fromJson(dataStr, new TypeToken<WmsResponse<List<WmsPallet>>>(){}.getType()); + List<WmsPallet> wmsPalletList = wmsResponse.getData(); response.set(1,wmsPalletList); } return response; } public Response sendTaskStatus(TaskDto taskDto) { + String taskNo = taskDto.getTask_no(); + //閫氳繃taskNo浠庢暟鎹簱鏌ユ壘瀵瑰簲鐨勮褰� + Task taskInDB = taskService.getByTaskNo(taskNo); + if(taskInDB == null){ + return new Response<>().setII(1,"浠诲姟涓婃姤澶辫触锛屾棤娉曞畾浣嶅埌浠诲姟锛屼换鍔″彲鑳戒笉鏄�氳繃鐩戞帶骞冲彴涓嬪彂"); + } Task task = new Task(); - task.setTaskNo(taskDto.getTask_no()); + task.setTaskNo(taskNo); task.setTaskType(taskDto.getTask_type()); - //TODO 杩欎釜鍦版柟璧峰鐐圭殑瀹氫箟,杩愯杩囩▼涓渶瑕佸叧娉�,浠ュ強缂栫爜瀵瑰簲鐨勫叿浣撲綅缃�,闇�瑕佷粬浠彁渚� + //杩欎釜鍦版柟璧峰鐐圭殑瀹氫箟,杩愯杩囩▼涓渶瑕佸叧娉�,浠ュ強缂栫爜瀵瑰簲鐨勫叿浣撲綅缃�,闇�瑕佷粬浠彁渚� task.setStartLocationCode(taskDto.getStart_location_code()); task.setEndLocationCode(taskDto.getEnd_location_code()); @@ -124,7 +203,7 @@ task.setStatusTime(ThreadLocalUtil.parse(taskDto.getStatus_time(),1)); //瀵规帴鏀跺埌鐨勪换鍔¤繘琛岄�昏緫鍒ゆ柇鍜屾暟鎹瓨鍌� - String taskNo = task.getTaskNo(); + //String taskNo = task.getTaskNo(); //taskType=4,鍏ュ簱娴嬪帇浠诲姟,杩欎釜涓轰粨鍌ㄨ嚜鍔ㄨЕ鍙戠殑浠诲姟,闈炰富鍔ㄥ钩鍙颁笅杈�, // 闇�瑕佹墜鍔ㄦ坊鍔犱换鍔$被鍨�,鍜岀數姹犵粍缂栧彿 Integer taskType = task.getTaskType(); @@ -138,25 +217,51 @@ case 1: case 11: case 21: { - String pallet = task.getPallets(); - if(pallet == null){ - pallet = taskService.getByTaskNo(taskNo).getPallets(); - } - //鏇存柊鐢垫睜缂栧彿 - PageParam pageParam = new PageParam(); - pageParam.setId(3); - pageParam.setValue(Integer.valueOf(pallet)); - paramService.updateById(pageParam); - //鏇存柊浠诲姟鏃堕棿 task.setPickUpStartTime(statusTime); }break; case 2: case 12: case 22: task.setPickUpTime(statusTime);break; case 13: - case 23: task.setActivationChamberStartTime(statusTime);break; + case 23: { + /*String pallet = task.getPallets(); + if(pallet == null){ + pallet = taskService.getByTaskNo(taskNo).getPallets(); + }*/ + String pallet = taskInDB.getPallets(); + //鏇存柊鐢垫睜鍗曚綋缂栧彿鍜屼换鍔$紪鍙� + AbeInf abeInf = abeInfService.get(); + abeInf.setAbeMonId(Integer.valueOf(pallet)); + abeInf.setTaskNo(taskNo); + abeInfService.updateById(abeInf); + //璁剧疆鏀剧疆鍒版椿鍖栦粨鐨勫紑濮嬫椂闂� + task.setActivationChamberStartTime(statusTime); + }break; case 14: + //寮�濮嬪彇娲诲寲缁撴潫鐨勭數姹�,濡傛灉浠诲姟缂栧彿鍦ㄦ洿鏂扮數姹犱粨搴撲腑瀛樺湪,鍒欐洿鏂版椿鍖栨椂闂翠负褰撳墠鏃堕棿 + BattWarehouse battWarehouse =battWarehouseService.getByTaskNo(taskNo); + if(battWarehouse != null){ + String activateTaskNo = battWarehouse.getTaskNo(); + String chargeTaskNo = battWarehouse.getChargeTaskNo(); + String dischargeTaskNo = battWarehouse.getDischargeTaskNo(); + if(activateTaskNo.equals(taskNo)) { + //濡傛灉鏄椿鍖栦换鍔�,鍒欐洿鏂版暟鎹簱涓浠诲姟瀹屾垚鏃堕棿 + battWarehouseService.finishActivationById(battWarehouse.getId()); + } + else if (chargeTaskNo.equals(taskNo)) { + //濡傛灉鏄厖鐢典换鍔�,鍒欐洿鏂版暟鎹簱涓浠诲姟瀹屾垚鏃堕棿 + battWarehouseService.finishChargeById(battWarehouse.getId()); + } + else if (dischargeTaskNo.equals(taskNo)) { + //濡傛灉鏄斁鐢典换鍔�,鍒欐洿鏂版暟鎹簱涓浠诲姟瀹屾垚鏃堕棿 + battWarehouseService.finishDischargeById(battWarehouse.getId()); + } + } + task.setActivationChamberPickUpTime(statusTime);break; case 24: + //娴嬪帇浠诲姟,寮�濮嬪彇娴嬪帇缁撴潫鐨勭數姹�. 璇诲彇abe_inf琛ㄤ腑鐨勫唴闃�,鎻掑叆鍒颁换鍔¢噷 + AbeInf abeInf = abeInfService.get(); + task.setNowMonRes(abeInf.getNowMonRes()); task.setActivationChamberPickUpTime(statusTime);break; case 15: case 25: -- Gitblit v1.9.1