|  |  | 
 |  |  | import com.zy.asrs.domain.enums.NotifyMsgType; | 
 |  |  | import com.zy.asrs.domain.param.*; | 
 |  |  | import com.zy.asrs.entity.ApiLog; | 
 |  |  | import com.zy.asrs.entity.DeviceConfig; | 
 |  |  | import com.zy.asrs.entity.LocMast; | 
 |  |  | import com.zy.asrs.entity.WrkMast; | 
 |  |  | import com.zy.asrs.service.ApiLogService; | 
 |  |  | import com.zy.asrs.service.DeviceConfigService; | 
 |  |  | import com.zy.asrs.service.LocMastService; | 
 |  |  | import com.zy.asrs.service.WrkMastService; | 
 |  |  | import com.zy.asrs.utils.NotifyUtils; | 
 |  |  | import com.zy.common.annotations.OpenApiLog; | 
 |  |  | import com.zy.common.service.CommonService; | 
 |  |  | import com.zy.core.cache.SlaveConnection; | 
 |  |  | import com.zy.core.dispatcher.ShuttleDispatchUtils; | 
 |  |  | import com.zy.core.enums.SlaveType; | 
 |  |  | import com.zy.core.model.ForkLiftSlave; | 
 |  |  | import com.zy.core.model.ShuttleSlave; | 
 |  |  | import com.zy.core.enums.WrkIoType; | 
 |  |  | import com.zy.core.model.protocol.ForkLiftProtocol; | 
 |  |  | import com.zy.core.model.protocol.ShuttleProtocol; | 
 |  |  | import com.zy.core.properties.SlaveProperties; | 
 |  |  | import com.zy.core.thread.ForkLiftThread; | 
 |  |  | import com.zy.core.thread.ShuttleThread; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private NotifyUtils notifyUtils; | 
 |  |  |     @Autowired | 
 |  |  |     private SlaveProperties slaveProperties; | 
 |  |  |     @Autowired | 
 |  |  |     private ApiLogService apiLogService; | 
 |  |  |     @Autowired | 
 |  |  |     private LocMastService locMastService; | 
 |  |  |     @Autowired | 
 |  |  |     private WrkMastService wrkMastService; | 
 |  |  |     @Autowired | 
 |  |  |     private DeviceConfigService deviceConfigService; | 
 |  |  |  | 
 |  |  |     @PostMapping("/createMoveTask") | 
 |  |  |     @OpenApiLog(memo = "小车移动任务") | 
 |  |  | 
 |  |  |         HashMap<String, Object> map = new HashMap<>(); | 
 |  |  |         //获取小车数据 | 
 |  |  |         ArrayList<ShuttleProtocol> shuttleProtocols = new ArrayList<>(); | 
 |  |  |         for (ShuttleSlave slave : slaveProperties.getShuttle()) { | 
 |  |  |             ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId()); | 
 |  |  |         List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() | 
 |  |  |                 .eq("device_type", String.valueOf(SlaveType.Shuttle))); | 
 |  |  |         for (DeviceConfig device : shuttleList) { | 
 |  |  |             ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo()); | 
 |  |  |             if (shuttleThread == null) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  | 
 |  |  |  | 
 |  |  |         //获取货叉提升机数据 | 
 |  |  |         ArrayList<ForkLiftProtocol> forkLiftProtocols = new ArrayList<>(); | 
 |  |  |         for (ForkLiftSlave slave : slaveProperties.getForkLift()) { | 
 |  |  |             ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, slave.getId()); | 
 |  |  |         List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() | 
 |  |  |                 .eq("device_type", String.valueOf(SlaveType.ForkLift))); | 
 |  |  |         for (DeviceConfig device : forkLiftList) { | 
 |  |  |             ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo()); | 
 |  |  |             if (forkLiftThread == null) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  | 
 |  |  |  | 
 |  |  |         apiLogService.insert(new ApiLog( | 
 |  |  |                 null | 
 |  |  |                 , "获取指定库位信息" | 
 |  |  |                 , "/getLocInformation" | 
 |  |  |                 , "获取全部库位信息" | 
 |  |  |                 , "/getAllLocInformation" | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  | 
 |  |  |  | 
 |  |  |         apiLogService.insert(new ApiLog( | 
 |  |  |                 null | 
 |  |  |                 , "获取指定库位信息" | 
 |  |  |                 , "/getLocInformation" | 
 |  |  |                 , "小车集合" | 
 |  |  |                 , "/shuttleGather" | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , JSON.toJSONString(param) | 
 |  |  |                 , JSON.toJSONString(shuttleGather) | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  | 
 |  |  |         return R.ok().add(shuttleGather); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PostMapping("/shuttleDemo") | 
 |  |  |     @OpenApiLog(memo = "小车演示") | 
 |  |  |     public R shuttleDemo(@RequestBody ShuttleDemoParam param) { | 
 |  |  |         shuttleDispatchUtils.shuttleDemo(param); | 
 |  |  |  | 
 |  |  |         apiLogService.insert(new ApiLog( | 
 |  |  |                 null | 
 |  |  |                 , "小车演示" | 
 |  |  |                 , "/shuttleDemo" | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , JSON.toJSONString(param) | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , 1 | 
 |  |  |                 , new Date() | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |         )); | 
 |  |  |  | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PostMapping("/queryTask") | 
 |  |  |     @OpenApiLog(memo = "查询任务") | 
 |  |  |     public R queryTask(@RequestBody QueryTaskParam param) { | 
 |  |  |         EntityWrapper<WrkMast> wrapper = new EntityWrapper<>(); | 
 |  |  |         if(param.getTaskNo() != null) { | 
 |  |  |             wrapper.eq("wms_wrk_no", param.getTaskNo()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if(param.getTaskType() != null) { | 
 |  |  |             WrkIoType ioType = WrkIoType.get(param.getTaskType()); | 
 |  |  |             if(ioType == null) { | 
 |  |  |                 return R.error("任务类型不存在"); | 
 |  |  |             } | 
 |  |  |             wrapper.eq("io_type", ioType.id); | 
 |  |  |         } | 
 |  |  |         List<WrkMast> wrkMasts = wrkMastService.selectList(wrapper); | 
 |  |  |         apiLogService.insert(new ApiLog( | 
 |  |  |                 null | 
 |  |  |                 , "查询任务" | 
 |  |  |                 , "/queryTask" | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , JSON.toJSONString(param) | 
 |  |  |                 , JSON.toJSONString(wrkMasts) | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |                 , 1 | 
 |  |  |                 , new Date() | 
 |  |  |                 , null | 
 |  |  |                 , null | 
 |  |  |         )); | 
 |  |  |  | 
 |  |  |         return R.ok().add(wrkMasts); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @GetMapping("/test") | 
 |  |  |     public R test() { | 
 |  |  |         notifyUtils.notify("task", 1, "9999", "W9999", NotifyMsgType.SHUTTLE_MOVING, "data"); |