| | |
| | | package com.whyc.service; |
| | | |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.dto.WmsLocationDto; |
| | | import com.whyc.dto.WmsMaterialDto; |
| | | import com.whyc.dto.WmsPalletDto; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.whyc.dto.*; |
| | | import com.whyc.pojo.db_abe_ram.AbeInf; |
| | | import com.whyc.pojo.db_param.PageParam; |
| | | import com.whyc.pojo.db_wms.Task; |
| | | import com.whyc.util.HttpUtil; |
| | | import com.whyc.util.JsonUtil; |
| | | import com.whyc.util.ThreadLocalUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import sun.applet.Main; |
| | | |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Service |
| | | public class WmsService { |
| | | |
| | | /** |
| | | * TODO ip和端口待确定调整 |
| | | * @return |
| | | */ |
| | | @Autowired |
| | | private TaskService taskService; |
| | | |
| | | @Autowired |
| | | private AbeInfService abeInfService; |
| | | |
| | | public Response getMaterialList() { |
| | | String httpUrl = "http://192.168.1.100:8080"+"/api/Wms_material/get_all"; |
| | | String httpUrl = "http://192.168.10.133:8051"+"/api/Wms_material/get_all"; |
| | | Response response = HttpUtil.doGet(httpUrl, (String) null); |
| | | //对结果进行处理 |
| | | if(response.getCode() == 1){ //请求成功,data有正常数据 |
| | | String dataStr = (String) response.getData(); |
| | | WmsMaterialDto wmsMaterialDto = JsonUtil.getGson().fromJson(dataStr, WmsMaterialDto.class); |
| | | response.set(1,wmsMaterialDto); |
| | | //WmsMaterialDto wmsMaterialDto = JsonUtil.getGson().fromJson(dataStr, WmsMaterialDto.class); |
| | | List<WmsMaterialDto> wmsMaterialDtoList = JsonUtil.getGson().fromJson(dataStr, new TypeToken<List<WmsMaterialDto>>(){}.getType()); |
| | | response.set(1,wmsMaterialDtoList); |
| | | } |
| | | return response; |
| | | } |
| | |
| | | */ |
| | | |
| | | public Response sendTask(WmsPalletDto palletDto) { |
| | | String httpUrl = "http://192.168.1.100:8080"+"/api/Wms_pallet/WmsOutTask"; |
| | | String httpUrl = "http://192.168.10.133:8051"+"/api/Wms_pallet/WmsOutTask"; |
| | | Response response = HttpUtil.doPost(httpUrl, JsonUtil.getGson().toJson(palletDto)); |
| | | //对结果进行处理 |
| | | if(response.getCode() == 1){ //请求成功,data有正常数据 |
| | | String dataStr = (String) response.getData(); |
| | | Response responseInside = JsonUtil.getGson().fromJson(dataStr, Response.class); |
| | | WmsResponse responseInside = JsonUtil.getGson().fromJson(dataStr, WmsResponse.class); |
| | | response.set(1,responseInside); |
| | | 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()); |
| | | |
| | | if (palletDto.getDes() == 3) { //活化,填入活化参数 |
| | | List<String> activateParameter = palletDto.getActivateParameter(); |
| | | task.setActivateParameter(String.join(",", activateParameter)); |
| | | } |
| | | task.setCreateTime(date); |
| | | |
| | | taskService.add(task); |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | | return response; |
| | | } |
| | | |
| | | public Response getLocationList() { |
| | | String httpUrl = "http://192.168.1.100:8080"+"/api/wms_location/get_all"; |
| | | String httpUrl = "http://192.168.10.133:8051"+"/api/wms_location/get_all"; |
| | | Response response = HttpUtil.doGet(httpUrl, (String) null); |
| | | //对结果进行处理 |
| | | if(response.getCode() == 1){ //请求成功,data有正常数据 |
| | | String dataStr = (String) response.getData(); |
| | | WmsLocationDto wmsLocationDto = JsonUtil.getGson().fromJson(dataStr, WmsLocationDto.class); |
| | | response.set(1,wmsLocationDto); |
| | | /*//截取dataStr中"data:"后的字符串 |
| | | int index = dataStr.indexOf("data"); |
| | | dataStr = dataStr.substring(index+6, dataStr.length()-3); |
| | | //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(int MaterialType, int PalletStatus) { |
| | | String httpUrl = "http://192.168.10.133:8051"+"/api/Wms_pallet/get_all"; |
| | | |
| | | 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); |
| | | 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(taskNo); |
| | | task.setTaskType(taskDto.getTask_type()); |
| | | //这个地方起始点的定义,运行过程中需要关注,以及编码对应的具体位置,需要他们提供 |
| | | task.setStartLocationCode(taskDto.getStart_location_code()); |
| | | task.setEndLocationCode(taskDto.getEnd_location_code()); |
| | | |
| | | task.setStatus(taskDto.getStatus()); |
| | | task.setStatusTime(ThreadLocalUtil.parse(taskDto.getStatus_time(),1)); |
| | | |
| | | //对接收到的任务进行逻辑判断和数据存储 |
| | | //String taskNo = task.getTaskNo(); |
| | | //taskType=4,入库测压任务,这个为仓储自动触发的任务,非主动平台下达, |
| | | // 需要手动添加任务类型,和电池组编号 |
| | | Integer taskType = task.getTaskType(); |
| | | if(taskType == 4){ |
| | | task.setDes(2); |
| | | task.setPallets(taskDto.getPallet()); |
| | | } |
| | | Integer status = task.getStatus(); |
| | | Date statusTime = task.getStatusTime(); |
| | | switch (status){ |
| | | case 1: |
| | | case 11: |
| | | case 21: { |
| | | task.setPickUpStartTime(statusTime); |
| | | }break; |
| | | case 2: |
| | | case 12: |
| | | case 22: task.setPickUpTime(statusTime);break; |
| | | case 13: |
| | | 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: |
| | | case 24: |
| | | task.setActivationChamberPickUpTime(statusTime);break; |
| | | case 15: |
| | | case 25: |
| | | task.setActivationChamberEndTime(statusTime);break; |
| | | case 4: |
| | | case 16: |
| | | case 26: |
| | | task.setBackFinishTime(statusTime); |
| | | task.setEndTime(new Date()); |
| | | break; |
| | | default: |
| | | throw new IllegalArgumentException("status字段未定义,无法被识别: " + status); |
| | | } |
| | | taskService.update(task); |
| | | |
| | | return new Response().setII(1,"上报状态完成"); |
| | | } |
| | | |
| | | public Response getFinishedPage(int pageNum, int pageSize) { |
| | | PageHelper helper = new PageHelper(); |
| | | helper.startPage(pageNum,pageSize); |
| | | List<Task> tasks = taskService.getFinishedList(); |
| | | PageInfo<Task> pageInfo = new PageInfo<>(tasks); |
| | | return new Response().set(1,pageInfo); |
| | | } |
| | | |
| | | public Response getOngoingList() { |
| | | List<Task> taskList = taskService.getOngoingList(); |
| | | return new Response().set(1,taskList); |
| | | } |
| | | } |