Commit 5ce3372c6b04d4fff9cae9b090a60e9781a48abb
1 parent
9eda1a12
蓝斯接口 模糊查询车辆车牌列表\司机获取当前工作的车辆钥匙信息
Showing
43 changed files
with
1222 additions
and
85 deletions
Bsth-admin/src/main/java/com/ruoyi/controller/dss/KeyBoxController.java
| @@ -8,6 +8,11 @@ import com.ruoyi.common.core.controller.BaseController; | @@ -8,6 +8,11 @@ import com.ruoyi.common.core.controller.BaseController; | ||
| 8 | import com.ruoyi.common.core.domain.ResponseResult; | 8 | import com.ruoyi.common.core.domain.ResponseResult; |
| 9 | import com.ruoyi.common.utils.DateUtils; | 9 | import com.ruoyi.common.utils.DateUtils; |
| 10 | import com.ruoyi.domain.caiinfo.CarInfo; | 10 | import com.ruoyi.domain.caiinfo.CarInfo; |
| 11 | +import com.ruoyi.domain.driver.NewDriver; | ||
| 12 | +import com.ruoyi.domain.dss.key.box.dto.KeyBasicSyncDTO; | ||
| 13 | +import com.ruoyi.domain.dss.key.box.dto.SkipOperationDTO; | ||
| 14 | +import com.ruoyi.domain.dss.key.box.dto.TakeKeyDTO; | ||
| 15 | +import com.ruoyi.domain.dss.key.box.vo.*; | ||
| 11 | import com.ruoyi.domain.dss.key.location.dto.WorkPlateV2DTO; | 16 | import com.ruoyi.domain.dss.key.location.dto.WorkPlateV2DTO; |
| 12 | import com.ruoyi.domain.dss.key.location.vo.WorkPlateV2Vo; | 17 | import com.ruoyi.domain.dss.key.location.vo.WorkPlateV2Vo; |
| 13 | import com.ruoyi.domain.equipment.linke.log.LingangEquipmentLinkeLog; | 18 | import com.ruoyi.domain.equipment.linke.log.LingangEquipmentLinkeLog; |
| @@ -16,14 +21,19 @@ import com.ruoyi.domain.key.info.box.dto.KeyBoxQueryDTO; | @@ -16,14 +21,19 @@ import com.ruoyi.domain.key.info.box.dto.KeyBoxQueryDTO; | ||
| 16 | import com.ruoyi.domain.key.info.box.vo.KeyBoxVo; | 21 | import com.ruoyi.domain.key.info.box.vo.KeyBoxVo; |
| 17 | import com.ruoyi.domain.key.location.LinggangKeyWorkLocation; | 22 | import com.ruoyi.domain.key.location.LinggangKeyWorkLocation; |
| 18 | import com.ruoyi.domain.scheduling.LinggangScheduling; | 23 | import com.ruoyi.domain.scheduling.LinggangScheduling; |
| 24 | +import com.ruoyi.equipment.domain.Equipment; | ||
| 25 | +import com.ruoyi.equipment.service.IEquipmentService; | ||
| 19 | import com.ruoyi.service.carinfo.CarInfoService; | 26 | import com.ruoyi.service.carinfo.CarInfoService; |
| 27 | +import com.ruoyi.service.driver.NewDriverService; | ||
| 20 | import com.ruoyi.service.dss.KeyBoxVoService; | 28 | import com.ruoyi.service.dss.KeyBoxVoService; |
| 21 | import com.ruoyi.service.equipment.linke.log.LingangEquipmentLinkeLogService; | 29 | import com.ruoyi.service.equipment.linke.log.LingangEquipmentLinkeLogService; |
| 22 | import com.ruoyi.service.key.info.KeyInfoService; | 30 | import com.ruoyi.service.key.info.KeyInfoService; |
| 23 | import com.ruoyi.service.key.location.LinggangKeyWorkLocationService; | 31 | import com.ruoyi.service.key.location.LinggangKeyWorkLocationService; |
| 24 | import com.ruoyi.service.scheduling.LinggangSchedulingService; | 32 | import com.ruoyi.service.scheduling.LinggangSchedulingService; |
| 25 | import io.swagger.annotations.Api; | 33 | import io.swagger.annotations.Api; |
| 34 | +import io.swagger.annotations.ApiModelProperty; | ||
| 26 | import io.swagger.annotations.ApiOperation; | 35 | import io.swagger.annotations.ApiOperation; |
| 36 | +import org.apache.commons.collections4.CollectionUtils; | ||
| 27 | import org.springframework.beans.factory.annotation.Autowired; | 37 | import org.springframework.beans.factory.annotation.Autowired; |
| 28 | import org.springframework.validation.BindingResult; | 38 | import org.springframework.validation.BindingResult; |
| 29 | import org.springframework.web.bind.annotation.PostMapping; | 39 | import org.springframework.web.bind.annotation.PostMapping; |
| @@ -33,8 +43,8 @@ import org.springframework.web.bind.annotation.RestController; | @@ -33,8 +43,8 @@ import org.springframework.web.bind.annotation.RestController; | ||
| 33 | 43 | ||
| 34 | import javax.validation.Valid; | 44 | import javax.validation.Valid; |
| 35 | import java.text.ParseException; | 45 | import java.text.ParseException; |
| 36 | -import java.util.Date; | ||
| 37 | -import java.util.Objects; | 46 | +import java.util.*; |
| 47 | +import java.util.stream.Collectors; | ||
| 38 | 48 | ||
| 39 | 49 | ||
| 40 | /** | 50 | /** |
| @@ -59,10 +69,14 @@ public class KeyBoxController extends BaseController { | @@ -59,10 +69,14 @@ public class KeyBoxController extends BaseController { | ||
| 59 | private KeyInfoService keyInfoService; | 69 | private KeyInfoService keyInfoService; |
| 60 | @Autowired | 70 | @Autowired |
| 61 | private CarInfoService carInfoService; | 71 | private CarInfoService carInfoService; |
| 72 | + @Autowired | ||
| 73 | + private IEquipmentService equipmentService; | ||
| 74 | + @Autowired | ||
| 75 | + private NewDriverService newDriverService; | ||
| 62 | 76 | ||
| 63 | @PostMapping(value = "/keybox/findKey") | 77 | @PostMapping(value = "/keybox/findKey") |
| 64 | @ApiOperation("钥匙信息查询") | 78 | @ApiOperation("钥匙信息查询") |
| 65 | - public ResponseResult<KeyBoxVo> listSelect(@Valid @RequestBody KeyBoxQueryDTO request,BindingResult bindingResult) { | 79 | + public ResponseResult<KeyBoxVo> listSelect(@Valid @RequestBody KeyBoxQueryDTO request, BindingResult bindingResult) { |
| 66 | if (bindingResult.hasErrors()) { | 80 | if (bindingResult.hasErrors()) { |
| 67 | return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); | 81 | return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); |
| 68 | } | 82 | } |
| @@ -90,12 +104,12 @@ public class KeyBoxController extends BaseController { | @@ -90,12 +104,12 @@ public class KeyBoxController extends BaseController { | ||
| 90 | 104 | ||
| 91 | KeyInfo keyInfo = queryKeyInfo(scheduling.getKeyInfoId()); | 105 | KeyInfo keyInfo = queryKeyInfo(scheduling.getKeyInfoId()); |
| 92 | if (Objects.isNull(keyInfo)) { | 106 | if (Objects.isNull(keyInfo)) { |
| 93 | - return ResponseResult.error(TipEnum.TIP_404.getCode(), TipEnum.TIP_404.getMsg()); | 107 | + return ResponseResult.error404(); |
| 94 | } | 108 | } |
| 95 | 109 | ||
| 96 | CarInfo carInfo = queryCarInfo(scheduling.getNbbm()); | 110 | CarInfo carInfo = queryCarInfo(scheduling.getNbbm()); |
| 97 | if (Objects.isNull(carInfo)) { | 111 | if (Objects.isNull(carInfo)) { |
| 98 | - return ResponseResult.error(TipEnum.TIP_404.getCode(), TipEnum.TIP_404.getMsg()); | 112 | + return ResponseResult.error404(); |
| 99 | } | 113 | } |
| 100 | 114 | ||
| 101 | WorkPlateV2Vo vo = convertWorkPlateV2Vo(scheduling, workLocation, keyInfo, carInfo); | 115 | WorkPlateV2Vo vo = convertWorkPlateV2Vo(scheduling, workLocation, keyInfo, carInfo); |
| @@ -108,6 +122,94 @@ public class KeyBoxController extends BaseController { | @@ -108,6 +122,94 @@ public class KeyBoxController extends BaseController { | ||
| 108 | 122 | ||
| 109 | } | 123 | } |
| 110 | 124 | ||
| 125 | + @ApiOperation(value = "18.钥匙柜基础信息同步") | ||
| 126 | + @PostMapping(value = "/Device/BasicSync") | ||
| 127 | + public ResponseResult<BasicSyncVo> basicSync(@Valid @RequestBody KeyBasicSyncDTO dto, BindingResult bindingResult) { | ||
| 128 | + if (bindingResult.hasErrors()) { | ||
| 129 | + return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + try { | ||
| 133 | + List<LinggangKeyWorkLocation> workLocations = queryKeyWorkLocation(dto); | ||
| 134 | + if (Objects.isNull(workLocations)) { | ||
| 135 | + logger.info("根据DTO的数据无法查询钥匙存放信息:[{}]", dto); | ||
| 136 | + return ResponseResult.error404(); | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + Set<Long> schedulingIds = workLocations.stream().map(LinggangKeyWorkLocation::getSchedulingId).collect(Collectors.toSet()); | ||
| 140 | + List<LinggangScheduling> schedulings = queryScheduling(schedulingIds); | ||
| 141 | + if (CollectionUtils.isEmpty(schedulings)) { | ||
| 142 | + logger.info("根据DTO的数据无法查询排班信息:[{}]", dto); | ||
| 143 | + return ResponseResult.error404(); | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + Equipment equipment = queryEquipment(dto.getDevice()); | ||
| 147 | + if (Objects.isNull(equipment)) { | ||
| 148 | + logger.info("根据DTO的数据无法查询设备信息:[{}]", dto); | ||
| 149 | + return ResponseResult.error404(); | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + Set<Integer> keyInfoIds = workLocations.stream().map(LinggangKeyWorkLocation::getKeyInfoId).collect(Collectors.toSet()); | ||
| 153 | + List<KeyInfo> keyInfos = queryKeyInfos(keyInfoIds); | ||
| 154 | + if (CollectionUtils.isEmpty(keyInfos)) { | ||
| 155 | + logger.info("根据DTO的数据无法查询钥匙信息:[{}]", dto); | ||
| 156 | + return ResponseResult.error404(); | ||
| 157 | + } | ||
| 158 | + | ||
| 159 | + Set<String> jobCodes = schedulings.stream().map(LinggangScheduling::getJobCode).collect(Collectors.toSet()); | ||
| 160 | + List<NewDriver> drivers = queryDrive(jobCodes); | ||
| 161 | + if (CollectionUtils.isEmpty(drivers)) { | ||
| 162 | + logger.info("根据DTO的数据无法查询司机信息:[{}]", dto); | ||
| 163 | + return ResponseResult.error404(); | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + Set<String> nbbms = schedulings.stream().map(LinggangScheduling::getNbbm).collect(Collectors.toSet()); | ||
| 167 | + List<CarInfo> carInfos = queryCarInfo(nbbms); | ||
| 168 | + if (CollectionUtils.isEmpty(carInfos)) { | ||
| 169 | + logger.info("根据DTO的数据无法查询车辆信息:[{}]", dto); | ||
| 170 | + return ResponseResult.error404(); | ||
| 171 | + } | ||
| 172 | + | ||
| 173 | + BasicSyncVo vo = convertBasicSyncVo(workLocations, schedulings, keyInfos, drivers, carInfos, equipment); | ||
| 174 | + return ResponseResult.success(vo); | ||
| 175 | + } catch (ParseException e) { | ||
| 176 | + logger.error("钥匙柜基础信息同步异常:[{}]", dto, e); | ||
| 177 | + } | ||
| 178 | + return ResponseResult.error(); | ||
| 179 | + } | ||
| 180 | + | ||
| 181 | + @PostMapping(value = "/Driver/SkipOperation") | ||
| 182 | + @ApiOperation(value = "19.人员跳过钥匙柜操作") | ||
| 183 | + public ResponseResult<SkipOperationVo> skipOperation(@Valid SkipOperationDTO dto, BindingResult bindingResult) { | ||
| 184 | + if (bindingResult.hasErrors()) { | ||
| 185 | + return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); | ||
| 186 | + } | ||
| 187 | + Equipment equipment = queryEquipment(dto.getDevice()); | ||
| 188 | + if (Objects.isNull(equipment)) { | ||
| 189 | + logger.info("根据DTO的数据无法查询设备信息:[{}]", dto); | ||
| 190 | + return ResponseResult.error404(); | ||
| 191 | + } | ||
| 192 | + | ||
| 193 | + SkipOperationVo vo = convertSkipOperationVo(equipment); | ||
| 194 | + return ResponseResult.success(vo); | ||
| 195 | + } | ||
| 196 | + | ||
| 197 | + @PostMapping(value = "Driver/TakeKey") | ||
| 198 | + @ApiModelProperty(value = "20.人员领取钥匙") | ||
| 199 | + public ResponseResult<TakeKeyVo> takeKey(@Valid TakeKeyDTO dto, BindingResult bindingResult) { | ||
| 200 | + if (bindingResult.hasErrors()) { | ||
| 201 | + return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); | ||
| 202 | + } | ||
| 203 | + List<LinggangKeyWorkLocation> locations = convert(dto); | ||
| 204 | + ResponseResult<Boolean> responseResult = linggangKeyWorkLocationService.updateTakeKey(locations); | ||
| 205 | + if (Objects.isNull(responseResult)) { | ||
| 206 | + return ResponseResult.error(); | ||
| 207 | + } | ||
| 208 | + TakeKeyVo vo = convertTakeKeyVo(dto, responseResult); | ||
| 209 | + | ||
| 210 | + return new ResponseResult<>(responseResult.getCode(), responseResult.getMsg(), vo); | ||
| 211 | + } | ||
| 212 | + | ||
| 111 | /*** | 213 | /*** |
| 112 | * 查询排班 | 214 | * 查询排班 |
| 113 | * @author liujun | 215 | * @author liujun |
| @@ -127,6 +229,14 @@ public class KeyBoxController extends BaseController { | @@ -127,6 +229,14 @@ public class KeyBoxController extends BaseController { | ||
| 127 | return schedulingService.getOne(scheduling); | 229 | return schedulingService.getOne(scheduling); |
| 128 | } | 230 | } |
| 129 | 231 | ||
| 232 | + private List<LinggangScheduling> queryScheduling(Collection<Long> ids) { | ||
| 233 | + if (CollectionUtils.isEmpty(ids)) { | ||
| 234 | + return Collections.emptyList(); | ||
| 235 | + } | ||
| 236 | + return schedulingService.listByIds(ids); | ||
| 237 | + } | ||
| 238 | + | ||
| 239 | + | ||
| 130 | /*** | 240 | /*** |
| 131 | * 根据排班时间和钥匙ID查询钥匙 | 241 | * 根据排班时间和钥匙ID查询钥匙 |
| 132 | * @author liujun | 242 | * @author liujun |
| @@ -143,10 +253,29 @@ public class KeyBoxController extends BaseController { | @@ -143,10 +253,29 @@ public class KeyBoxController extends BaseController { | ||
| 143 | return linggangKeyWorkLocationService.getOne(workLocation); | 253 | return linggangKeyWorkLocationService.getOne(workLocation); |
| 144 | } | 254 | } |
| 145 | 255 | ||
| 256 | + | ||
| 257 | + private List<LinggangKeyWorkLocation> queryKeyWorkLocation(KeyBasicSyncDTO dto) throws ParseException { | ||
| 258 | + LinggangKeyWorkLocation workLocation = new LinggangKeyWorkLocation(); | ||
| 259 | + | ||
| 260 | + String dateStr = DateUtils.YYYY_MM_DD.format(dto.getTime()); | ||
| 261 | + workLocation.setScheduleDate(DateUtils.YYYY_MM_DD.parse(dateStr)); | ||
| 262 | + workLocation.setDevice(dto.getDevice()); | ||
| 263 | + workLocation.setDelFlag(Boolean.FALSE); | ||
| 264 | + | ||
| 265 | + return linggangKeyWorkLocationService.list(workLocation); | ||
| 266 | + } | ||
| 267 | + | ||
| 146 | private KeyInfo queryKeyInfo(Integer keyId) { | 268 | private KeyInfo queryKeyInfo(Integer keyId) { |
| 147 | return keyInfoService.getById(keyId); | 269 | return keyInfoService.getById(keyId); |
| 148 | } | 270 | } |
| 149 | 271 | ||
| 272 | + private List<KeyInfo> queryKeyInfos(Collection<Integer> ids) { | ||
| 273 | + if (CollectionUtils.isEmpty(ids)) { | ||
| 274 | + return Collections.emptyList(); | ||
| 275 | + } | ||
| 276 | + return keyInfoService.listByIds(ids); | ||
| 277 | + } | ||
| 278 | + | ||
| 150 | private CarInfo queryCarInfo(String nbbm) { | 279 | private CarInfo queryCarInfo(String nbbm) { |
| 151 | CarInfo carInfo = new CarInfo(); | 280 | CarInfo carInfo = new CarInfo(); |
| 152 | carInfo.setNbbm(nbbm); | 281 | carInfo.setNbbm(nbbm); |
| @@ -154,6 +283,24 @@ public class KeyBoxController extends BaseController { | @@ -154,6 +283,24 @@ public class KeyBoxController extends BaseController { | ||
| 154 | return carInfoService.getOne(carInfo); | 283 | return carInfoService.getOne(carInfo); |
| 155 | } | 284 | } |
| 156 | 285 | ||
| 286 | + private Equipment queryEquipment(String deviceId) { | ||
| 287 | + return equipmentService.getOneByDeviceId(deviceId); | ||
| 288 | + } | ||
| 289 | + | ||
| 290 | + private List<NewDriver> queryDrive(Collection<String> jobCods) { | ||
| 291 | + if (CollectionUtils.isEmpty(jobCods)) { | ||
| 292 | + return Collections.emptyList(); | ||
| 293 | + } | ||
| 294 | + return newDriverService.list(jobCods); | ||
| 295 | + } | ||
| 296 | + | ||
| 297 | + private List<CarInfo> queryCarInfo(Collection<String> nbbms) { | ||
| 298 | + if (CollectionUtils.isEmpty(nbbms)) { | ||
| 299 | + return Collections.emptyList(); | ||
| 300 | + } | ||
| 301 | + return carInfoService.list(nbbms); | ||
| 302 | + } | ||
| 303 | + | ||
| 157 | 304 | ||
| 158 | /*** | 305 | /*** |
| 159 | * 保存链接日志 | 306 | * 保存链接日志 |
| @@ -183,4 +330,93 @@ public class KeyBoxController extends BaseController { | @@ -183,4 +330,93 @@ public class KeyBoxController extends BaseController { | ||
| 183 | 330 | ||
| 184 | return vo; | 331 | return vo; |
| 185 | } | 332 | } |
| 333 | + | ||
| 334 | + private BasicSyncVo convertBasicSyncVo(List<LinggangKeyWorkLocation> workLocations, List<LinggangScheduling> schedulings, | ||
| 335 | + List<KeyInfo> keyInfos, List<NewDriver> drivers, List<CarInfo> carInfos, Equipment equipment) { | ||
| 336 | + BasicSyncVo vo = new BasicSyncVo(); | ||
| 337 | + | ||
| 338 | + vo.setDevice(equipment.getDeviceId()); | ||
| 339 | + vo.setDeviceType(equipment.getPromise()); | ||
| 340 | + vo.setTime(workLocations.get(0).getScheduleDate()); | ||
| 341 | + vo.setYardName(equipment.getSiteName()); | ||
| 342 | +// vo.setKeyboxName() | ||
| 343 | + | ||
| 344 | + List<BasicSyncKeyboxVo> keybox = new ArrayList<>(); | ||
| 345 | + BasicSyncKeyboxVo boxvo = new BasicSyncKeyboxVo(); | ||
| 346 | + List<BasicSyncKeyboxKeyItemVo> keyItemVos = workLocations.stream().map(local -> { | ||
| 347 | + Optional<KeyInfo> optional = keyInfos.stream().filter(k -> Objects.equals(k.getId(), local.getKeyInfoId())).findFirst(); | ||
| 348 | + String keyCode = optional.isPresent() ? optional.get().getName() : null; | ||
| 349 | + return new BasicSyncKeyboxKeyItemVo(local.getCabinetNo(), keyCode); | ||
| 350 | + | ||
| 351 | + }).collect(Collectors.toList()); | ||
| 352 | + keybox.add(boxvo); | ||
| 353 | + boxvo.setKeyItem(keyItemVos); | ||
| 354 | + | ||
| 355 | + | ||
| 356 | + List<BasicSyncDriverWorkVo> driverWork = new ArrayList<>(); | ||
| 357 | + BasicSyncDriverWorkVo basicSyncDriverWorkVo = new BasicSyncDriverWorkVo(); | ||
| 358 | + | ||
| 359 | + List<BasicSyncDriverWorkDriverPlanVo> driverPlanVos = schedulings.stream().map(sc -> { | ||
| 360 | + BasicSyncDriverWorkDriverPlanVo driverPlanVo = new BasicSyncDriverWorkDriverPlanVo(); | ||
| 361 | + Optional<NewDriver> optional = drivers.stream().filter(d -> Objects.equals(d.getJobCode(), sc.getJobCode())).findFirst(); | ||
| 362 | + if (optional.isPresent()) { | ||
| 363 | + driverPlanVo.setDriverCode(optional.get().getIcCardCode()); | ||
| 364 | + } | ||
| 365 | + | ||
| 366 | + driverPlanVo.setStaffCode(sc.getJobCode()); | ||
| 367 | + | ||
| 368 | + BasicSyncDriverWorkDriverPlanTimePlateVo planTimePlateVo = new BasicSyncDriverWorkDriverPlanTimePlateVo(); | ||
| 369 | + planTimePlateVo.setKey(sc.getScheduleDate()); | ||
| 370 | + Optional<CarInfo> carInfoOptional = carInfos.stream().filter(c -> Objects.equals(c.getNbbm(), sc.getNbbm())).findFirst(); | ||
| 371 | + if (optional.isPresent()) { | ||
| 372 | + planTimePlateVo.setValue(carInfoOptional.get().getPlateNum()); | ||
| 373 | + } | ||
| 374 | + | ||
| 375 | + | ||
| 376 | + driverPlanVo.setTimePlate(planTimePlateVo); | ||
| 377 | + return driverPlanVo; | ||
| 378 | + }).collect(Collectors.toList()); | ||
| 379 | + | ||
| 380 | + basicSyncDriverWorkVo.setDriverPlan(driverPlanVos); | ||
| 381 | + driverWork.add(basicSyncDriverWorkVo); | ||
| 382 | + | ||
| 383 | + vo.setKeybox(keybox); | ||
| 384 | + vo.setDriverWork(driverWork); | ||
| 385 | + | ||
| 386 | + return vo; | ||
| 387 | + } | ||
| 388 | + | ||
| 389 | + private SkipOperationVo convertSkipOperationVo(Equipment equipment) { | ||
| 390 | + SkipOperationVo vo = new SkipOperationVo(); | ||
| 391 | + vo.setDevice(equipment.getDeviceId()); | ||
| 392 | + vo.setTime(new Date()); | ||
| 393 | + vo.setDeviceType(equipment.getPromise()); | ||
| 394 | + vo.setResult(0); | ||
| 395 | + | ||
| 396 | + return vo; | ||
| 397 | + } | ||
| 398 | + | ||
| 399 | + private List<LinggangKeyWorkLocation> convert(TakeKeyDTO dto) { | ||
| 400 | + if (CollectionUtils.isEmpty(dto.getKeyItem())) { | ||
| 401 | + return Collections.emptyList(); | ||
| 402 | + } | ||
| 403 | + | ||
| 404 | + return dto.getKeyItem().stream().map(item -> { | ||
| 405 | + LinggangKeyWorkLocation location = new LinggangKeyWorkLocation(); | ||
| 406 | + location.setDevice(item.getDevice()); | ||
| 407 | + location.setEventType(item.getState()); | ||
| 408 | + location.setKey(item.getKey()); | ||
| 409 | + location.setScheduleDate(dto.getTime()); | ||
| 410 | + | ||
| 411 | + return location; | ||
| 412 | + }).collect(Collectors.toList()); | ||
| 413 | + } | ||
| 414 | + | ||
| 415 | + private TakeKeyVo convertTakeKeyVo(TakeKeyDTO dto, ResponseResult<Boolean> result) { | ||
| 416 | + TakeKeyVo vo = new TakeKeyVo(); | ||
| 417 | + vo.setDevice(dto.getDevice()); | ||
| 418 | + vo.setTime(new Date()); | ||
| 419 | + vo.setResult(result.isSuccess() ? 0 : 1); | ||
| 420 | + return vo; | ||
| 421 | + } | ||
| 186 | } | 422 | } |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/dto/KeyBasicSyncDTO.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.dto; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.experimental.Accessors; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotEmpty; | ||
| 11 | +import javax.validation.constraints.NotNull; | ||
| 12 | +import java.util.Date; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * @author liujun | ||
| 16 | + * @date 2024年07月17日 9:20 | ||
| 17 | + */ | ||
| 18 | +@Data | ||
| 19 | +@Accessors(chain = true) | ||
| 20 | +@ApiModel(value = "钥匙柜基础信息同步") | ||
| 21 | +@EqualsAndHashCode(callSuper = false) | ||
| 22 | +public class KeyBasicSyncDTO { | ||
| 23 | + @NotEmpty(message = "设备上线号 不能为空") | ||
| 24 | + @ApiModelProperty(value = "设备上线号", required = true) | ||
| 25 | + private String device; | ||
| 26 | + | ||
| 27 | + @NotEmpty(message = "设备类型 不能为空") | ||
| 28 | + @ApiModelProperty(value = "设备类型", required = true) | ||
| 29 | + private String deviceType; | ||
| 30 | + | ||
| 31 | + @NotNull(message = "时间不能为空") | ||
| 32 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 33 | + @ApiModelProperty(value = "时间 格式为:yyyy-MM-dd HH:mm:ss", required = true) | ||
| 34 | + private Date time; | ||
| 35 | + | ||
| 36 | + @ApiModelProperty(value = "场站车位邻近关系版本号 null或与服务器版本号不同时 服务器则下发数据") | ||
| 37 | + private String yardVer; | ||
| 38 | + | ||
| 39 | + @ApiModelProperty(value = "钥匙柜信息版本号 null或与服务器版本号不同时 服务器则下发数据") | ||
| 40 | + private String keyboxVer; | ||
| 41 | + | ||
| 42 | + @ApiModelProperty(value = "场站绑定的车牌号列表版本号 null或与服务器版本号不同时 服务器则下发新场站车辆列表") | ||
| 43 | + private String yardVehiclesVer; | ||
| 44 | + | ||
| 45 | + @ApiModelProperty(value = "多日期排班计划列表版本号 null或与服务器版本号不同时 服务器则下发数据") | ||
| 46 | + private String driverWorkVer; | ||
| 47 | + | ||
| 48 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/dto/SkipOperationDTO.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.dto; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.experimental.Accessors; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotEmpty; | ||
| 11 | +import javax.validation.constraints.NotNull; | ||
| 12 | +import java.util.Date; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * @author liujun | ||
| 16 | + * @date 2024年07月17日 13:01 | ||
| 17 | + */ | ||
| 18 | +@Data | ||
| 19 | +@Accessors(chain = true) | ||
| 20 | +@ApiModel(value = "人员跳过钥匙柜操作") | ||
| 21 | +@EqualsAndHashCode(callSuper = false) | ||
| 22 | +public class SkipOperationDTO implements java.io.Serializable { | ||
| 23 | + | ||
| 24 | + private static final long serialVersionUID = -8021365015913776295L; | ||
| 25 | + | ||
| 26 | + @NotEmpty(message = "设备上线号 不能为空") | ||
| 27 | + @ApiModelProperty(value = "设备上线号", required = true) | ||
| 28 | + private String device; | ||
| 29 | + | ||
| 30 | + @NotEmpty(message = "设备类型 不能为空") | ||
| 31 | + @ApiModelProperty(value = "设备类型", required = true) | ||
| 32 | + private String deviceType; | ||
| 33 | + | ||
| 34 | + @NotEmpty(message = "卡号 不能为空") | ||
| 35 | + @ApiModelProperty(value = "卡号", required = true) | ||
| 36 | + private String driverCode; | ||
| 37 | + | ||
| 38 | + @NotNull(message = "设备时间 不能为空") | ||
| 39 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 40 | + @ApiModelProperty(value = "设备时间", required = true) | ||
| 41 | + private Date time; | ||
| 42 | + | ||
| 43 | + @NotNull(message = "操作类型 不能为空") | ||
| 44 | + @ApiModelProperty(value = "操作类型 0:司机操作,16:管理员操作,17:紧急按键", required = true) | ||
| 45 | + private Integer opeType; | ||
| 46 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/dto/TakeKeyDTO.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.dto; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.experimental.Accessors; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotEmpty; | ||
| 11 | +import javax.validation.constraints.NotNull; | ||
| 12 | +import java.util.Date; | ||
| 13 | +import java.util.List; | ||
| 14 | + | ||
| 15 | +/** | ||
| 16 | + * @author liujun | ||
| 17 | + * @date 2024年07月17日 13:21 | ||
| 18 | + */ | ||
| 19 | +@Data | ||
| 20 | +@Accessors(chain = true) | ||
| 21 | +@ApiModel(value = "人员领取钥匙 Vo") | ||
| 22 | +@EqualsAndHashCode(callSuper = false) | ||
| 23 | +public class TakeKeyDTO implements java.io.Serializable { | ||
| 24 | + | ||
| 25 | + private static final long serialVersionUID = 8333233216662578589L; | ||
| 26 | + | ||
| 27 | + @NotEmpty(message = "设备上线号 不能为空") | ||
| 28 | + @ApiModelProperty(value = "设备上线号", required = true) | ||
| 29 | + private String device; | ||
| 30 | + | ||
| 31 | + @NotEmpty(message = "设备类型 不能为空") | ||
| 32 | + @ApiModelProperty(value = "设备类型", required = true) | ||
| 33 | + private String deviceType; | ||
| 34 | + | ||
| 35 | + @NotEmpty(message = "卡号 不能为空") | ||
| 36 | + @ApiModelProperty(value = "卡号", required = true) | ||
| 37 | + private String driverCode; | ||
| 38 | + | ||
| 39 | + @NotNull(message = "时间不能为空") | ||
| 40 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 41 | + @ApiModelProperty(value = "时间 个数:yyyy-MM-dd HH:mm:ss", required = true) | ||
| 42 | + private Date time; | ||
| 43 | + | ||
| 44 | + @NotNull(message = "领取类型不能为空") | ||
| 45 | + @ApiModelProperty(value = "领取类型;0:司机操作,16管理员操作,17紧急领取,18紧急按钮", required = true) | ||
| 46 | + private Integer opeType; | ||
| 47 | + | ||
| 48 | + @NotEmpty(message = "选择的钥匙位车牌 不能为空") | ||
| 49 | + @ApiModelProperty(value = "选择的钥匙位车牌", required = true) | ||
| 50 | + private String checkPlate; | ||
| 51 | + @ApiModelProperty(value = "领取钥匙信息集合") | ||
| 52 | + private List<TakeKeyKeyItemDTO> keyItem; | ||
| 53 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/dto/TakeKeyKeyItemDTO.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.dto; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.experimental.Accessors; | ||
| 8 | + | ||
| 9 | +import javax.validation.constraints.NotEmpty; | ||
| 10 | +import javax.validation.constraints.NotNull; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * @author liujun | ||
| 14 | + * @date 2024年07月17日 13:23 | ||
| 15 | + */ | ||
| 16 | +@Data | ||
| 17 | +@Accessors(chain = true) | ||
| 18 | +@ApiModel(value = "人员领取钥匙-领取钥匙信息集合 Vo") | ||
| 19 | +@EqualsAndHashCode(callSuper = false) | ||
| 20 | +public class TakeKeyKeyItemDTO implements java.io.Serializable { | ||
| 21 | + | ||
| 22 | + private static final long serialVersionUID = -3382804090614784001L; | ||
| 23 | + | ||
| 24 | + @NotEmpty(message = "主机设备上线号 不能为空") | ||
| 25 | + @ApiModelProperty(value = "主机设备上线号", required = true) | ||
| 26 | + private String device; | ||
| 27 | + | ||
| 28 | + @NotEmpty(message = "钥匙柜名称 不能为空") | ||
| 29 | + @ApiModelProperty(value = "钥匙柜名称", required = true) | ||
| 30 | + private String name; | ||
| 31 | + | ||
| 32 | + @NotEmpty(message = "钥匙位编码 不能为空") | ||
| 33 | + @ApiModelProperty(value = "钥匙位编码", required = true) | ||
| 34 | + private String key; | ||
| 35 | + | ||
| 36 | + @NotEmpty(message = "车位编码 不能为空") | ||
| 37 | + @ApiModelProperty(value = "车位编码", required = true) | ||
| 38 | + private String parkCode; | ||
| 39 | + | ||
| 40 | + @NotEmpty(message = "车牌 不能为空") | ||
| 41 | + @ApiModelProperty(value = "车牌", required = true) | ||
| 42 | + private String plate; | ||
| 43 | + | ||
| 44 | + @NotNull(message = "领取状态 不能为空") | ||
| 45 | + @ApiModelProperty(value = "领取状态;0:取出,16:钥匙未归还,255:异常", required = true) | ||
| 46 | + private Integer state; | ||
| 47 | + | ||
| 48 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/vo/BasicSyncDriverWorkDriverPlanTimePlateVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.vo; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.AllArgsConstructor; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import lombok.NoArgsConstructor; | ||
| 9 | +import lombok.experimental.Accessors; | ||
| 10 | + | ||
| 11 | +import java.util.Date; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * @author liujun | ||
| 15 | + * @date 2024年07月17日 9:44 | ||
| 16 | + */ | ||
| 17 | +@Data | ||
| 18 | +@NoArgsConstructor | ||
| 19 | +@AllArgsConstructor | ||
| 20 | +@Accessors(chain = true) | ||
| 21 | +@ApiModel(value = "钥匙柜基础信息同步-多日期排班计划列表-排班计划列表-司机的计划时间与车牌 VO") | ||
| 22 | +public class BasicSyncDriverWorkDriverPlanTimePlateVo implements java.io.Serializable { | ||
| 23 | + | ||
| 24 | + private static final long serialVersionUID = 9045854142494361214L; | ||
| 25 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 26 | + @ApiModelProperty(value = "时间") | ||
| 27 | + private Date key; | ||
| 28 | + | ||
| 29 | + @ApiModelProperty(value = "车牌号") | ||
| 30 | + private String value; | ||
| 31 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/vo/BasicSyncDriverWorkDriverPlanVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.AllArgsConstructor; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.NoArgsConstructor; | ||
| 8 | +import lombok.experimental.Accessors; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * @author liujun | ||
| 12 | + * @date 2024年07月17日 9:41 | ||
| 13 | + */ | ||
| 14 | +@Data | ||
| 15 | +@NoArgsConstructor | ||
| 16 | +@AllArgsConstructor | ||
| 17 | +@Accessors(chain = true) | ||
| 18 | +@ApiModel(value = "钥匙柜基础信息同步-多日期排班计划列表 VO") | ||
| 19 | +public class BasicSyncDriverWorkDriverPlanVo implements java.io.Serializable { | ||
| 20 | + | ||
| 21 | + private static final long serialVersionUID = -1134646411841966899L; | ||
| 22 | + @ApiModelProperty(value = "司机卡号") | ||
| 23 | + private String driverCode; | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "司机工号") | ||
| 26 | + private String staffCode; | ||
| 27 | + @ApiModelProperty(value = "司机的计划时间与车牌") | ||
| 28 | + private BasicSyncDriverWorkDriverPlanTimePlateVo timePlate; | ||
| 29 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/vo/BasicSyncDriverWorkVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.vo; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.AllArgsConstructor; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import lombok.NoArgsConstructor; | ||
| 9 | +import lombok.experimental.Accessors; | ||
| 10 | + | ||
| 11 | +import java.util.Date; | ||
| 12 | +import java.util.List; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * @author liujun | ||
| 16 | + * @date 2024年07月17日 9:37 | ||
| 17 | + */ | ||
| 18 | +@Data | ||
| 19 | +@NoArgsConstructor | ||
| 20 | +@AllArgsConstructor | ||
| 21 | +@Accessors(chain = true) | ||
| 22 | +@ApiModel(value = "钥匙柜基础信息同步-多日期排班计划列表 VO") | ||
| 23 | +public class BasicSyncDriverWorkVo implements java.io.Serializable { | ||
| 24 | + | ||
| 25 | + | ||
| 26 | + private static final long serialVersionUID = -7427446290039243578L; | ||
| 27 | + | ||
| 28 | + @JsonFormat(pattern = "yyyy-MM-dd") | ||
| 29 | + @ApiModelProperty(value = "计划日期", required = true) | ||
| 30 | + private Date planDate; | ||
| 31 | + | ||
| 32 | + @ApiModelProperty(value = "排班计划列表") | ||
| 33 | + private List<BasicSyncDriverWorkDriverPlanVo> driverPlan; | ||
| 34 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/vo/BasicSyncKeyboxKeyItemVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.AllArgsConstructor; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.NoArgsConstructor; | ||
| 8 | +import lombok.experimental.Accessors; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * @author liujun | ||
| 12 | + * @date 2024年07月17日 9:31 | ||
| 13 | + */ | ||
| 14 | +@Data | ||
| 15 | +@NoArgsConstructor | ||
| 16 | +@AllArgsConstructor | ||
| 17 | +@Accessors(chain = true) | ||
| 18 | +@ApiModel(value = "钥匙柜基础信息同步-场站钥匙柜列表-钥匙位信息列表 VO") | ||
| 19 | +public class BasicSyncKeyboxKeyItemVo { | ||
| 20 | + | ||
| 21 | + @ApiModelProperty(value = "钥匙位编码") | ||
| 22 | + private String key; | ||
| 23 | + | ||
| 24 | + @ApiModelProperty(value = "绑定的场站车位编码") | ||
| 25 | + private String parkCode; | ||
| 26 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/vo/BasicSyncKeyboxVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.AllArgsConstructor; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.NoArgsConstructor; | ||
| 8 | +import lombok.experimental.Accessors; | ||
| 9 | + | ||
| 10 | +import javax.validation.constraints.NotEmpty; | ||
| 11 | +import java.util.List; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * @author liujun | ||
| 15 | + * @date 2024年07月17日 9:30 | ||
| 16 | + */ | ||
| 17 | +@Data | ||
| 18 | +@NoArgsConstructor | ||
| 19 | +@AllArgsConstructor | ||
| 20 | +@Accessors(chain = true) | ||
| 21 | +@ApiModel(value = "钥匙柜基础信息同步-场站钥匙柜列表 VO") | ||
| 22 | +public class BasicSyncKeyboxVo { | ||
| 23 | + @ApiModelProperty(value = "钥匙柜名称") | ||
| 24 | + private String name; | ||
| 25 | + | ||
| 26 | + @NotEmpty(message = "钥匙柜关联的设备上线号 不能为空") | ||
| 27 | + @ApiModelProperty(value = "钥匙柜关联的设备上线号") | ||
| 28 | + private String device; | ||
| 29 | + | ||
| 30 | + @ApiModelProperty(value = "钥匙位信息列表") | ||
| 31 | + private List<BasicSyncKeyboxKeyItemVo> keyItem; | ||
| 32 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/vo/BasicSyncVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.vo; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.AllArgsConstructor; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import lombok.NoArgsConstructor; | ||
| 9 | +import lombok.experimental.Accessors; | ||
| 10 | + | ||
| 11 | +import java.util.Date; | ||
| 12 | +import java.util.List; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * @author liujun | ||
| 16 | + * @date 2024年07月17日 9:49 | ||
| 17 | + */ | ||
| 18 | +@Data | ||
| 19 | +@NoArgsConstructor | ||
| 20 | +@AllArgsConstructor | ||
| 21 | +@Accessors(chain = true) | ||
| 22 | +@ApiModel(value = "钥匙柜基础信息同步 VO") | ||
| 23 | +public class BasicSyncVo implements java.io.Serializable { | ||
| 24 | + | ||
| 25 | + private static final long serialVersionUID = 4531393194482803710L; | ||
| 26 | + | ||
| 27 | + @ApiModelProperty(value = "设备上线号") | ||
| 28 | + private String device; | ||
| 29 | + @ApiModelProperty(value = "设备类型") | ||
| 30 | + private String deviceType; | ||
| 31 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 32 | + @ApiModelProperty(value = "时间") | ||
| 33 | + private Date time; | ||
| 34 | + @ApiModelProperty(value = "场站名称") | ||
| 35 | + private String yardName; | ||
| 36 | + @ApiModelProperty(value = "当前钥匙柜名称") | ||
| 37 | + private String keyboxName; | ||
| 38 | + @ApiModelProperty(value = "场站车位关系版本号 场站车位邻近关系MD5") | ||
| 39 | + private String yardVer; | ||
| 40 | + @ApiModelProperty(value = "钥匙柜信息版本号 场站钥匙柜列表MD5") | ||
| 41 | + private String keyboxVer; | ||
| 42 | + @ApiModelProperty(value = "场站车辆列表版本号 场站绑定的车牌号列表MD5") | ||
| 43 | + private String yardVehiclesVer; | ||
| 44 | + @ApiModelProperty(value = "司机工作内容版本号 多日期排班计划列表MD5") | ||
| 45 | + private String driverWorkVer; | ||
| 46 | + @ApiModelProperty(value = "场站车位邻近关系") | ||
| 47 | + private List<BasicSyncYardVo> yard; | ||
| 48 | + | ||
| 49 | + @ApiModelProperty(value = "场站钥匙柜列表") | ||
| 50 | + private List<BasicSyncKeyboxVo> keybox; | ||
| 51 | + | ||
| 52 | + @ApiModelProperty(value = "场站绑定的车牌号列表") | ||
| 53 | + private List<String> yardVehicles; | ||
| 54 | + | ||
| 55 | + @ApiModelProperty(value = "多日期排班计划列表") | ||
| 56 | + private List<BasicSyncDriverWorkVo> driverWork; | ||
| 57 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/vo/BasicSyncYardVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.AllArgsConstructor; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.NoArgsConstructor; | ||
| 8 | +import lombok.experimental.Accessors; | ||
| 9 | + | ||
| 10 | +import java.util.List; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * @author liujun | ||
| 14 | + * @date 2024年07月17日 9:27 | ||
| 15 | + */ | ||
| 16 | +@Data | ||
| 17 | +@NoArgsConstructor | ||
| 18 | +@AllArgsConstructor | ||
| 19 | +@Accessors(chain = true) | ||
| 20 | +@ApiModel(value = "钥匙柜基础信息同步-场站车位邻近关系 VO") | ||
| 21 | +public class BasicSyncYardVo implements java.io.Serializable{ | ||
| 22 | + | ||
| 23 | + private static final long serialVersionUID = -2557495254945163383L; | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "车位编号") | ||
| 26 | + private String parkCode; | ||
| 27 | + @ApiModelProperty(value = "邻近的车位编号列表 用来紧急取出某车位附件车位的所有钥匙") | ||
| 28 | + private List<String> conIndex; | ||
| 29 | + | ||
| 30 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/vo/SkipOperationVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.vo; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.AllArgsConstructor; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import lombok.NoArgsConstructor; | ||
| 9 | +import lombok.experimental.Accessors; | ||
| 10 | + | ||
| 11 | +import java.util.Date; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * @author liujun | ||
| 15 | + * @date 2024年07月17日 13:06 | ||
| 16 | + */ | ||
| 17 | +@Data | ||
| 18 | +@NoArgsConstructor | ||
| 19 | +@AllArgsConstructor | ||
| 20 | +@Accessors(chain = true) | ||
| 21 | +@ApiModel(value = "人员跳过钥匙柜操作 VO") | ||
| 22 | +public class SkipOperationVo implements java.io.Serializable { | ||
| 23 | + | ||
| 24 | + private static final long serialVersionUID = 5604059279128853933L; | ||
| 25 | + | ||
| 26 | + @ApiModelProperty(value = "设备上线号") | ||
| 27 | + private String device; | ||
| 28 | + @ApiModelProperty(value = "设备类型") | ||
| 29 | + private String deviceType; | ||
| 30 | + | ||
| 31 | + @ApiModelProperty(value = "卡号") | ||
| 32 | + private String driverCode; | ||
| 33 | + | ||
| 34 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 35 | + @ApiModelProperty(value = "服务器时间") | ||
| 36 | + private Date time; | ||
| 37 | + | ||
| 38 | + @ApiModelProperty(value = "处理结果 0成功,1失败") | ||
| 39 | + private Integer result; | ||
| 40 | + | ||
| 41 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/key/box/vo/TakeKeyVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.key.box.vo; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.AllArgsConstructor; | ||
| 7 | +import lombok.Data; | ||
| 8 | +import lombok.NoArgsConstructor; | ||
| 9 | +import lombok.experimental.Accessors; | ||
| 10 | + | ||
| 11 | +import java.util.Date; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * @author liujun | ||
| 15 | + * @date 2024年07月17日 13:38 | ||
| 16 | + */ | ||
| 17 | +@Data | ||
| 18 | +@NoArgsConstructor | ||
| 19 | +@AllArgsConstructor | ||
| 20 | +@Accessors(chain = true) | ||
| 21 | +@ApiModel(value = "人员领取钥匙 VO") | ||
| 22 | +public class TakeKeyVo implements java.io.Serializable { | ||
| 23 | + | ||
| 24 | + private static final long serialVersionUID = -2870019612678673403L; | ||
| 25 | + | ||
| 26 | + @ApiModelProperty(value = "设备上线号") | ||
| 27 | + private String device; | ||
| 28 | + | ||
| 29 | + @ApiModelProperty(value = "设备类型") | ||
| 30 | + private String deviceType; | ||
| 31 | + | ||
| 32 | + @ApiModelProperty(value = "卡号") | ||
| 33 | + private String driverCode; | ||
| 34 | + | ||
| 35 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 36 | + @ApiModelProperty(value = "时间") | ||
| 37 | + private Date time; | ||
| 38 | + | ||
| 39 | + @ApiModelProperty(value = "服务应答 0处理成功,1处理失败") | ||
| 40 | + private Integer result; | ||
| 41 | + | ||
| 42 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/key/info/KeyInfo.java
| 1 | package com.ruoyi.domain.key.info; | 1 | package com.ruoyi.domain.key.info; |
| 2 | 2 | ||
| 3 | import com.baomidou.mybatisplus.annotation.*; | 3 | import com.baomidou.mybatisplus.annotation.*; |
| 4 | +import com.ruoyi.common.annotation.Excel; | ||
| 4 | import lombok.Data; | 5 | import lombok.Data; |
| 5 | -import org.apache.commons.lang3.StringUtils; | ||
| 6 | import lombok.EqualsAndHashCode; | 6 | import lombok.EqualsAndHashCode; |
| 7 | import lombok.experimental.Accessors; | 7 | import lombok.experimental.Accessors; |
| 8 | import lombok.extern.slf4j.Slf4j; | 8 | import lombok.extern.slf4j.Slf4j; |
| 9 | -import com.ruoyi.common.annotation.Excel; | ||
| 10 | 9 | ||
| 11 | @Data | 10 | @Data |
| 12 | @Slf4j | 11 | @Slf4j |
| @@ -80,6 +79,10 @@ public class KeyInfo { | @@ -80,6 +79,10 @@ public class KeyInfo { | ||
| 80 | @Excel(name = "车牌号") | 79 | @Excel(name = "车牌号") |
| 81 | private java.lang.String plateNum; | 80 | private java.lang.String plateNum; |
| 82 | 81 | ||
| 82 | + /***钥匙编码*/ | ||
| 83 | + @Excel(name = "钥匙编码") | ||
| 84 | + private java.lang.String keyCode; | ||
| 85 | + | ||
| 83 | 86 | ||
| 84 | @Override | 87 | @Override |
| 85 | public String toString() { | 88 | public String toString() { |
Bsth-admin/src/main/java/com/ruoyi/domain/key/info/dto/KeyInfoAddDTO.java
| @@ -54,6 +54,10 @@ public class KeyInfoAddDTO implements java.io.Serializable { | @@ -54,6 +54,10 @@ public class KeyInfoAddDTO implements java.io.Serializable { | ||
| 54 | @ApiModelProperty(value = "车牌号") | 54 | @ApiModelProperty(value = "车牌号") |
| 55 | private java.lang.String plateNum; | 55 | private java.lang.String plateNum; |
| 56 | 56 | ||
| 57 | + /***钥匙编码*/ | ||
| 58 | + @ApiModelProperty(value="钥匙编码") | ||
| 59 | + private java.lang.String keyCode; | ||
| 60 | + | ||
| 57 | public void clearStrEmpty() { | 61 | public void clearStrEmpty() { |
| 58 | if (org.apache.commons.lang3.StringUtils.isEmpty(this.name)) { | 62 | if (org.apache.commons.lang3.StringUtils.isEmpty(this.name)) { |
| 59 | this.name = null; | 63 | this.name = null; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/info/dto/KeyInfoQueryDTO.java
| 1 | package com.ruoyi.domain.key.info.dto; | 1 | package com.ruoyi.domain.key.info.dto; |
| 2 | 2 | ||
| 3 | -import com.ruoyi.domain.OrderEntity; | ||
| 4 | import io.swagger.annotations.ApiModel; | 3 | import io.swagger.annotations.ApiModel; |
| 5 | import io.swagger.annotations.ApiModelProperty; | 4 | import io.swagger.annotations.ApiModelProperty; |
| 6 | import lombok.Data; | 5 | import lombok.Data; |
| @@ -53,6 +52,10 @@ public class KeyInfoQueryDTO implements java.io.Serializable { | @@ -53,6 +52,10 @@ public class KeyInfoQueryDTO implements java.io.Serializable { | ||
| 53 | @ApiModelProperty(value = "车牌号") | 52 | @ApiModelProperty(value = "车牌号") |
| 54 | private java.lang.String plateNum; | 53 | private java.lang.String plateNum; |
| 55 | 54 | ||
| 55 | + /***钥匙编码*/ | ||
| 56 | + @ApiModelProperty(value="钥匙编码") | ||
| 57 | + private java.lang.String keyCode; | ||
| 58 | + | ||
| 56 | public void clearStrEmpty() { | 59 | public void clearStrEmpty() { |
| 57 | if (org.apache.commons.lang3.StringUtils.isEmpty(this.name)) { | 60 | if (org.apache.commons.lang3.StringUtils.isEmpty(this.name)) { |
| 58 | this.name = null; | 61 | this.name = null; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/info/dto/KeyInfoUpdateDTO.java
| @@ -54,6 +54,10 @@ public class KeyInfoUpdateDTO implements java.io.Serializable { | @@ -54,6 +54,10 @@ public class KeyInfoUpdateDTO implements java.io.Serializable { | ||
| 54 | @ApiModelProperty(value="车牌号") | 54 | @ApiModelProperty(value="车牌号") |
| 55 | private java.lang.String plateNum; | 55 | private java.lang.String plateNum; |
| 56 | 56 | ||
| 57 | + /***钥匙编码*/ | ||
| 58 | + @ApiModelProperty(value="钥匙编码") | ||
| 59 | + private java.lang.String keyCode; | ||
| 60 | + | ||
| 57 | public void clearStrEmpty(){ | 61 | public void clearStrEmpty(){ |
| 58 | if(org.apache.commons.lang3.StringUtils.isEmpty(this.name)){ | 62 | if(org.apache.commons.lang3.StringUtils.isEmpty(this.name)){ |
| 59 | this.name = null; | 63 | this.name = null; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/info/dto/KeyInfoUpdateStatusDTO.java
| @@ -54,6 +54,10 @@ public class KeyInfoUpdateStatusDTO implements java.io.Serializable { | @@ -54,6 +54,10 @@ public class KeyInfoUpdateStatusDTO implements java.io.Serializable { | ||
| 54 | @ApiModelProperty(value = "车牌号") | 54 | @ApiModelProperty(value = "车牌号") |
| 55 | private java.lang.String plateNum; | 55 | private java.lang.String plateNum; |
| 56 | 56 | ||
| 57 | + /***钥匙编码*/ | ||
| 58 | + @ApiModelProperty(value="钥匙编码") | ||
| 59 | + private java.lang.String keyCode; | ||
| 60 | + | ||
| 57 | public void clearStrEmpty() { | 61 | public void clearStrEmpty() { |
| 58 | if (org.apache.commons.lang3.StringUtils.isEmpty(this.name)) { | 62 | if (org.apache.commons.lang3.StringUtils.isEmpty(this.name)) { |
| 59 | this.name = null; | 63 | this.name = null; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/info/vo/KeyInfoVO.java
| @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; | @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; | ||
| 8 | import lombok.experimental.Accessors; | 8 | import lombok.experimental.Accessors; |
| 9 | 9 | ||
| 10 | @Data | 10 | @Data |
| 11 | -@ApiModel(value="钥匙信息的VO") | 11 | +@ApiModel(value = "钥匙信息的VO") |
| 12 | @Accessors(chain = true) | 12 | @Accessors(chain = true) |
| 13 | @EqualsAndHashCode(callSuper = false) | 13 | @EqualsAndHashCode(callSuper = false) |
| 14 | public class KeyInfoVO implements java.io.Serializable { | 14 | public class KeyInfoVO implements java.io.Serializable { |
| @@ -54,6 +54,10 @@ public class KeyInfoVO implements java.io.Serializable { | @@ -54,6 +54,10 @@ public class KeyInfoVO implements java.io.Serializable { | ||
| 54 | @ApiModelProperty(value = "车牌号") | 54 | @ApiModelProperty(value = "车牌号") |
| 55 | private java.lang.String plateNum; | 55 | private java.lang.String plateNum; |
| 56 | 56 | ||
| 57 | + /***钥匙编码*/ | ||
| 58 | + @ApiModelProperty(value = "钥匙编码") | ||
| 59 | + private java.lang.String keyCode; | ||
| 60 | + | ||
| 57 | 61 | ||
| 58 | @Override | 62 | @Override |
| 59 | public String toString() { | 63 | public String toString() { |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/LinggangKeyWorkLocation.java
| 1 | package com.ruoyi.domain.key.location; | 1 | package com.ruoyi.domain.key.location; |
| 2 | 2 | ||
| 3 | import com.baomidou.mybatisplus.annotation.IdType; | 3 | import com.baomidou.mybatisplus.annotation.IdType; |
| 4 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
| 4 | import com.baomidou.mybatisplus.annotation.TableId; | 5 | import com.baomidou.mybatisplus.annotation.TableId; |
| 5 | import com.baomidou.mybatisplus.annotation.TableName; | 6 | import com.baomidou.mybatisplus.annotation.TableName; |
| 6 | import com.ruoyi.common.annotation.Excel; | 7 | import com.ruoyi.common.annotation.Excel; |
| @@ -11,6 +12,10 @@ import lombok.NoArgsConstructor; | @@ -11,6 +12,10 @@ import lombok.NoArgsConstructor; | ||
| 11 | import lombok.experimental.Accessors; | 12 | import lombok.experimental.Accessors; |
| 12 | import lombok.extern.slf4j.Slf4j; | 13 | import lombok.extern.slf4j.Slf4j; |
| 13 | 14 | ||
| 15 | +import java.util.Arrays; | ||
| 16 | +import java.util.Objects; | ||
| 17 | +import java.util.Optional; | ||
| 18 | + | ||
| 14 | 19 | ||
| 15 | @Data | 20 | @Data |
| 16 | @Slf4j | 21 | @Slf4j |
| @@ -85,6 +90,55 @@ public class LinggangKeyWorkLocation { | @@ -85,6 +90,55 @@ public class LinggangKeyWorkLocation { | ||
| 85 | @Excel(name = "排班时间") | 90 | @Excel(name = "排班时间") |
| 86 | private java.util.Date scheduleDate; | 91 | private java.util.Date scheduleDate; |
| 87 | 92 | ||
| 93 | + /***排班ID*/ | ||
| 94 | + @Excel(name = "排班ID") | ||
| 95 | + private Long schedulingId; | ||
| 96 | + | ||
| 97 | + /** | ||
| 98 | + * 钥匙编码 | ||
| 99 | + */ | ||
| 100 | + @TableField(exist = false) | ||
| 101 | + private String key; | ||
| 102 | + | ||
| 103 | + | ||
| 104 | + public static enum LinggangKeyWorkLocationEventTypeEnum { | ||
| 105 | + TAKE_OUT(0, "取出"), | ||
| 106 | + REPAY(1, "归还"), | ||
| 107 | + ADMINISTRATOR_OPERATION(16, "管理员操作"), | ||
| 108 | + URGENT_COLLECTION(17, "紧急取出"), | ||
| 109 | + | ||
| 110 | + ; | ||
| 111 | + private String label; | ||
| 112 | + private Integer value; | ||
| 113 | + | ||
| 114 | + LinggangKeyWorkLocationEventTypeEnum(Integer value, String label) { | ||
| 115 | + this.value = value; | ||
| 116 | + this.label = label; | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + public String getLabel() { | ||
| 120 | + return label; | ||
| 121 | + } | ||
| 122 | + | ||
| 123 | + public Integer getValue() { | ||
| 124 | + return value; | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + public static LinggangKeyWorkLocationEventTypeEnum getObj(Integer value) { | ||
| 128 | + if (Objects.isNull(value)) { | ||
| 129 | + return null; | ||
| 130 | + } | ||
| 131 | + Optional<LinggangKeyWorkLocationEventTypeEnum> optional = Arrays.stream(LinggangKeyWorkLocationEventTypeEnum.values()) | ||
| 132 | + .filter(l -> Objects.equals(l.getValue(), value)).findFirst(); | ||
| 133 | + return optional.isPresent() ? optional.get() : null; | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + public static String getLabel(Integer value) { | ||
| 137 | + LinggangKeyWorkLocationEventTypeEnum eventTypeEnum = getObj(value); | ||
| 138 | + return Objects.isNull(eventTypeEnum) ? null : eventTypeEnum.getLabel(); | ||
| 139 | + } | ||
| 140 | + } | ||
| 141 | + | ||
| 88 | 142 | ||
| 89 | @Override | 143 | @Override |
| 90 | public String toString() { | 144 | public String toString() { |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/dto/LinggangKeyWorkLocationAddDTO.java
| @@ -55,6 +55,10 @@ public class LinggangKeyWorkLocationAddDTO implements java.io.Serializable { | @@ -55,6 +55,10 @@ public class LinggangKeyWorkLocationAddDTO implements java.io.Serializable { | ||
| 55 | @ApiModelProperty(value="排班时间") | 55 | @ApiModelProperty(value="排班时间") |
| 56 | private java.util.Date scheduleDate; | 56 | private java.util.Date scheduleDate; |
| 57 | 57 | ||
| 58 | + /***排班ID*/ | ||
| 59 | + @ApiModelProperty(value="排班ID") | ||
| 60 | + private Long schedulingId; | ||
| 61 | + | ||
| 58 | /***操作人员*/ | 62 | /***操作人员*/ |
| 59 | @ApiModelProperty(value = "操作人员") | 63 | @ApiModelProperty(value = "操作人员") |
| 60 | private String operator; | 64 | private String operator; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/dto/LinggangKeyWorkLocationQueryDTO.java
| @@ -51,6 +51,10 @@ public class LinggangKeyWorkLocationQueryDTO implements java.io.Serializable { | @@ -51,6 +51,10 @@ public class LinggangKeyWorkLocationQueryDTO implements java.io.Serializable { | ||
| 51 | @ApiModelProperty(value = "钥匙ID", example = "1") | 51 | @ApiModelProperty(value = "钥匙ID", example = "1") |
| 52 | private Integer keyInfoId; | 52 | private Integer keyInfoId; |
| 53 | 53 | ||
| 54 | + /***排班ID*/ | ||
| 55 | + @ApiModelProperty(value="排班ID") | ||
| 56 | + private Long schedulingId; | ||
| 57 | + | ||
| 54 | /***排班时间*/ | 58 | /***排班时间*/ |
| 55 | @ApiModelProperty(value="排班时间") | 59 | @ApiModelProperty(value="排班时间") |
| 56 | private java.util.Date scheduleDate; | 60 | private java.util.Date scheduleDate; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/dto/LinggangKeyWorkLocationUpdateDTO.java
| @@ -54,6 +54,10 @@ public class LinggangKeyWorkLocationUpdateDTO implements java.io.Serializable { | @@ -54,6 +54,10 @@ public class LinggangKeyWorkLocationUpdateDTO implements java.io.Serializable { | ||
| 54 | /***排班时间*/ | 54 | /***排班时间*/ |
| 55 | @ApiModelProperty(value="排班时间") | 55 | @ApiModelProperty(value="排班时间") |
| 56 | private java.util.Date scheduleDate; | 56 | private java.util.Date scheduleDate; |
| 57 | + | ||
| 58 | + /***排班ID*/ | ||
| 59 | + @ApiModelProperty(value="排班ID") | ||
| 60 | + private Long schedulingId; | ||
| 57 | /***操作人员*/ | 61 | /***操作人员*/ |
| 58 | @ApiModelProperty(value = "操作人员") | 62 | @ApiModelProperty(value = "操作人员") |
| 59 | private String operator; | 63 | private String operator; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/dto/LinggangKeyWorkLocationUpdateStatusDTO.java
| @@ -52,8 +52,12 @@ public class LinggangKeyWorkLocationUpdateStatusDTO implements java.io.Serializa | @@ -52,8 +52,12 @@ public class LinggangKeyWorkLocationUpdateStatusDTO implements java.io.Serializa | ||
| 52 | private Integer keyInfoId; | 52 | private Integer keyInfoId; |
| 53 | 53 | ||
| 54 | /***排班时间*/ | 54 | /***排班时间*/ |
| 55 | - @ApiModelProperty(value="排班时间") | 55 | + @ApiModelProperty(value = "排班时间") |
| 56 | private java.util.Date scheduleDate; | 56 | private java.util.Date scheduleDate; |
| 57 | + | ||
| 58 | + /***排班ID*/ | ||
| 59 | + @ApiModelProperty(value = "排班ID") | ||
| 60 | + private Long schedulingId; | ||
| 57 | /***操作人员*/ | 61 | /***操作人员*/ |
| 58 | @ApiModelProperty(value = "操作人员") | 62 | @ApiModelProperty(value = "操作人员") |
| 59 | private String operator; | 63 | private String operator; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/vo/LinggangKeyWorkLocationVO.java
| @@ -60,6 +60,10 @@ public class LinggangKeyWorkLocationVO implements java.io.Serializable { | @@ -60,6 +60,10 @@ public class LinggangKeyWorkLocationVO implements java.io.Serializable { | ||
| 60 | @ApiModelProperty(value = "排班时间") | 60 | @ApiModelProperty(value = "排班时间") |
| 61 | private java.util.Date scheduleDate; | 61 | private java.util.Date scheduleDate; |
| 62 | 62 | ||
| 63 | + /***排班ID*/ | ||
| 64 | + @ApiModelProperty(value = "排班ID") | ||
| 65 | + private Long schedulingId; | ||
| 66 | + | ||
| 63 | 67 | ||
| 64 | @Override | 68 | @Override |
| 65 | public String toString() { | 69 | public String toString() { |
Bsth-admin/src/main/java/com/ruoyi/domain/scheduling/LinggangScheduling.java
| @@ -26,7 +26,7 @@ public class LinggangScheduling { | @@ -26,7 +26,7 @@ public class LinggangScheduling { | ||
| 26 | /***主键*/ | 26 | /***主键*/ |
| 27 | @TableId(value = "id", type = IdType.AUTO) | 27 | @TableId(value = "id", type = IdType.AUTO) |
| 28 | @Excel(name = "主键") | 28 | @Excel(name = "主键") |
| 29 | - private Integer id; | 29 | + private Long id; |
| 30 | 30 | ||
| 31 | 31 | ||
| 32 | /***排班日期*/ | 32 | /***排班日期*/ |
Bsth-admin/src/main/java/com/ruoyi/domain/scheduling/dto/LinggangSchedulingAddDTO.java
| @@ -18,7 +18,7 @@ public class LinggangSchedulingAddDTO implements java.io.Serializable { | @@ -18,7 +18,7 @@ public class LinggangSchedulingAddDTO implements java.io.Serializable { | ||
| 18 | 18 | ||
| 19 | /***主键*/ | 19 | /***主键*/ |
| 20 | @ApiModelProperty(value = "主键", example = "1") | 20 | @ApiModelProperty(value = "主键", example = "1") |
| 21 | - private Integer id; | 21 | + private Long id; |
| 22 | /***排班日期*/ | 22 | /***排班日期*/ |
| 23 | @ApiModelProperty(value = "排班日期") | 23 | @ApiModelProperty(value = "排班日期") |
| 24 | private Date scheduleDate; | 24 | private Date scheduleDate; |
Bsth-admin/src/main/java/com/ruoyi/domain/scheduling/dto/LinggangSchedulingQueryDTO.java
| @@ -18,7 +18,7 @@ public class LinggangSchedulingQueryDTO implements java.io.Serializable { | @@ -18,7 +18,7 @@ public class LinggangSchedulingQueryDTO implements java.io.Serializable { | ||
| 18 | 18 | ||
| 19 | /***主键*/ | 19 | /***主键*/ |
| 20 | @ApiModelProperty(value = "主键", example = "1") | 20 | @ApiModelProperty(value = "主键", example = "1") |
| 21 | - private Integer id; | 21 | + private Long id; |
| 22 | /***排班日期*/ | 22 | /***排班日期*/ |
| 23 | @ApiModelProperty(value = "排班日期") | 23 | @ApiModelProperty(value = "排班日期") |
| 24 | private Date scheduleDate; | 24 | private Date scheduleDate; |
Bsth-admin/src/main/java/com/ruoyi/domain/scheduling/dto/LinggangSchedulingUpdateDTO.java
| @@ -18,7 +18,7 @@ public class LinggangSchedulingUpdateDTO implements java.io.Serializable { | @@ -18,7 +18,7 @@ public class LinggangSchedulingUpdateDTO implements java.io.Serializable { | ||
| 18 | 18 | ||
| 19 | /***主键*/ | 19 | /***主键*/ |
| 20 | @ApiModelProperty(value = "主键", example = "1") | 20 | @ApiModelProperty(value = "主键", example = "1") |
| 21 | - private Integer id; | 21 | + private Long id; |
| 22 | /***排班日期*/ | 22 | /***排班日期*/ |
| 23 | @ApiModelProperty(value = "排班日期") | 23 | @ApiModelProperty(value = "排班日期") |
| 24 | private Date scheduleDate; | 24 | private Date scheduleDate; |
Bsth-admin/src/main/java/com/ruoyi/domain/scheduling/vo/LinggangSchedulingVO.java
| @@ -23,7 +23,7 @@ public class LinggangSchedulingVO implements java.io.Serializable { | @@ -23,7 +23,7 @@ public class LinggangSchedulingVO implements java.io.Serializable { | ||
| 23 | 23 | ||
| 24 | /***主键*/ | 24 | /***主键*/ |
| 25 | @ApiModelProperty(value = "主键", example = "1") | 25 | @ApiModelProperty(value = "主键", example = "1") |
| 26 | - private Integer id; | 26 | + private Long id; |
| 27 | /***排班日期*/ | 27 | /***排班日期*/ |
| 28 | @ApiModelProperty(value = "排班日期") | 28 | @ApiModelProperty(value = "排班日期") |
| 29 | private Date scheduleDate; | 29 | private Date scheduleDate; |
Bsth-admin/src/main/java/com/ruoyi/mapper/key/location/LinggangKeyWorkLocationMapper.java
| @@ -3,6 +3,9 @@ package com.ruoyi.mapper.key.location; | @@ -3,6 +3,9 @@ package com.ruoyi.mapper.key.location; | ||
| 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| 4 | import com.ruoyi.domain.key.location.LinggangKeyWorkLocation; | 4 | import com.ruoyi.domain.key.location.LinggangKeyWorkLocation; |
| 5 | import org.apache.ibatis.annotations.Mapper; | 5 | import org.apache.ibatis.annotations.Mapper; |
| 6 | +import org.apache.ibatis.annotations.Param; | ||
| 7 | + | ||
| 8 | +import java.util.List; | ||
| 6 | 9 | ||
| 7 | 10 | ||
| 8 | @Mapper | 11 | @Mapper |
| @@ -12,4 +15,6 @@ public interface LinggangKeyWorkLocationMapper extends BaseMapper<LinggangKeyWor | @@ -12,4 +15,6 @@ public interface LinggangKeyWorkLocationMapper extends BaseMapper<LinggangKeyWor | ||
| 12 | * 插入有值的列 | 15 | * 插入有值的列 |
| 13 | */ | 16 | */ |
| 14 | int insertSelective(LinggangKeyWorkLocation name); | 17 | int insertSelective(LinggangKeyWorkLocation name); |
| 18 | + | ||
| 19 | + List<LinggangKeyWorkLocation> listOfDeviceKeyIdScheduleDate(@Param("localtions") List<LinggangKeyWorkLocation> locations); | ||
| 15 | } | 20 | } |
| 16 | \ No newline at end of file | 21 | \ No newline at end of file |
Bsth-admin/src/main/java/com/ruoyi/service/carinfo/CarInfoService.java
| 1 | package com.ruoyi.service.carinfo; | 1 | package com.ruoyi.service.carinfo; |
| 2 | 2 | ||
| 3 | -import com.baomidou.mybatisplus.extension.service.IService; | ||
| 4 | import com.baomidou.mybatisplus.core.metadata.IPage; | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; |
| 4 | +import com.baomidou.mybatisplus.extension.service.IService; | ||
| 5 | import com.ruoyi.domain.OrderEntity; | 5 | import com.ruoyi.domain.OrderEntity; |
| 6 | import com.ruoyi.domain.caiinfo.CarInfo; | 6 | import com.ruoyi.domain.caiinfo.CarInfo; |
| 7 | 7 | ||
| @@ -21,6 +21,8 @@ public interface CarInfoService extends IService<CarInfo> { | @@ -21,6 +21,8 @@ public interface CarInfoService extends IService<CarInfo> { | ||
| 21 | List<CarInfo> list(CarInfo entity); | 21 | List<CarInfo> list(CarInfo entity); |
| 22 | 22 | ||
| 23 | List<CarInfo> likePlateNumPlateNumTop30(CarInfo entity); | 23 | List<CarInfo> likePlateNumPlateNumTop30(CarInfo entity); |
| 24 | + /**根据车辆自编号查询车辆信息*/ | ||
| 25 | + List<CarInfo> list(Collection<String> nbbms); | ||
| 24 | 26 | ||
| 25 | /*** | 27 | /*** |
| 26 | *用于页面选择 | 28 | *用于页面选择 |
Bsth-admin/src/main/java/com/ruoyi/service/driver/NewDriverService.java
| @@ -6,6 +6,7 @@ import com.ruoyi.common.TipEnum; | @@ -6,6 +6,7 @@ import com.ruoyi.common.TipEnum; | ||
| 6 | import com.ruoyi.domain.OrderEntity; | 6 | import com.ruoyi.domain.OrderEntity; |
| 7 | import com.ruoyi.domain.driver.NewDriver; | 7 | import com.ruoyi.domain.driver.NewDriver; |
| 8 | 8 | ||
| 9 | +import java.util.Collection; | ||
| 9 | import java.util.List; | 10 | import java.util.List; |
| 10 | 11 | ||
| 11 | 12 | ||
| @@ -20,6 +21,15 @@ public interface NewDriverService extends IService<NewDriver> { | @@ -20,6 +21,15 @@ public interface NewDriverService extends IService<NewDriver> { | ||
| 20 | */ | 21 | */ |
| 21 | List<NewDriver> list(NewDriver entity); | 22 | List<NewDriver> list(NewDriver entity); |
| 22 | 23 | ||
| 24 | + /*** | ||
| 25 | + * 根据工号查询司机 | ||
| 26 | + * @author liujun | ||
| 27 | + * @date 2024/7/17 11:22 | ||
| 28 | + * @param jobCodes | ||
| 29 | + * @return java.util.List<com.ruoyi.domain.driver.NewDriver> | ||
| 30 | + */ | ||
| 31 | + List<NewDriver> list(Collection<String> jobCodes); | ||
| 32 | + | ||
| 23 | List<NewDriver> listOfIds(java.util.Collection<java.lang.String> ids); | 33 | List<NewDriver> listOfIds(java.util.Collection<java.lang.String> ids); |
| 24 | 34 | ||
| 25 | /*** | 35 | /*** |
Bsth-admin/src/main/java/com/ruoyi/service/impl/carinfo/CarInfoServiceImpl.java
| @@ -9,9 +9,9 @@ import com.ruoyi.domain.OrderEntity; | @@ -9,9 +9,9 @@ import com.ruoyi.domain.OrderEntity; | ||
| 9 | import com.ruoyi.domain.caiinfo.CarInfo; | 9 | import com.ruoyi.domain.caiinfo.CarInfo; |
| 10 | import com.ruoyi.mapper.carinfo.CarInfoMapper; | 10 | import com.ruoyi.mapper.carinfo.CarInfoMapper; |
| 11 | import com.ruoyi.service.carinfo.CarInfoService; | 11 | import com.ruoyi.service.carinfo.CarInfoService; |
| 12 | +import org.apache.commons.collections4.CollectionUtils; | ||
| 12 | import org.springframework.beans.factory.annotation.Autowired; | 13 | import org.springframework.beans.factory.annotation.Autowired; |
| 13 | import org.springframework.stereotype.Service; | 14 | import org.springframework.stereotype.Service; |
| 14 | -import org.springframework.util.CollectionUtils; | ||
| 15 | 15 | ||
| 16 | import java.util.Collection; | 16 | import java.util.Collection; |
| 17 | import java.util.Collections; | 17 | import java.util.Collections; |
| @@ -69,6 +69,16 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl | @@ -69,6 +69,16 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl | ||
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | @Override | 71 | @Override |
| 72 | + public List<CarInfo> list(Collection<String> nbbms) { | ||
| 73 | + if (CollectionUtils.isEmpty(nbbms)) { | ||
| 74 | + return Collections.emptyList(); | ||
| 75 | + } | ||
| 76 | + LambdaQueryWrapper<CarInfo> wrapper = new LambdaQueryWrapper<>(); | ||
| 77 | + wrapper.in(CarInfo::getNbbm, nbbms); | ||
| 78 | + return list(wrapper); | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + @Override | ||
| 72 | public List<CarInfo> listOfSelect(CarInfo entity) { | 82 | public List<CarInfo> listOfSelect(CarInfo entity) { |
| 73 | LambdaQueryWrapper<CarInfo> wrapper = new LambdaQueryWrapper<>(entity); | 83 | LambdaQueryWrapper<CarInfo> wrapper = new LambdaQueryWrapper<>(entity); |
| 74 | wrapper.select(CarInfo::getId, CarInfo::getPlateNum); | 84 | wrapper.select(CarInfo::getId, CarInfo::getPlateNum); |
Bsth-admin/src/main/java/com/ruoyi/service/impl/driver/NewDriverServiceImpl.java
| @@ -64,6 +64,16 @@ public class NewDriverServiceImpl extends ServiceImpl<NewDriverMapper, NewDriver | @@ -64,6 +64,16 @@ public class NewDriverServiceImpl extends ServiceImpl<NewDriverMapper, NewDriver | ||
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | @Override | 66 | @Override |
| 67 | + public List<NewDriver> list(Collection<String> jobCodes) { | ||
| 68 | + if (CollectionUtils.isEmpty(jobCodes)) { | ||
| 69 | + return Collections.emptyList(); | ||
| 70 | + } | ||
| 71 | + LambdaQueryWrapper<NewDriver> wrapper = new LambdaQueryWrapper<>(); | ||
| 72 | + wrapper.in(NewDriver::getJobCode, jobCodes); | ||
| 73 | + return list(wrapper); | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + @Override | ||
| 67 | public List<NewDriver> listOfIds(Collection<String> ids) { | 77 | public List<NewDriver> listOfIds(Collection<String> ids) { |
| 68 | if (CollectionUtils.isEmpty(ids)) { | 78 | if (CollectionUtils.isEmpty(ids)) { |
| 69 | return Collections.emptyList(); | 79 | return Collections.emptyList(); |
Bsth-admin/src/main/java/com/ruoyi/service/impl/key/info/KeyInfoServiceImpl.java
| @@ -8,10 +8,12 @@ import com.github.pagehelper.PageHelper; | @@ -8,10 +8,12 @@ import com.github.pagehelper.PageHelper; | ||
| 8 | import com.ruoyi.domain.OrderEntity; | 8 | import com.ruoyi.domain.OrderEntity; |
| 9 | import com.ruoyi.domain.key.info.KeyInfo; | 9 | import com.ruoyi.domain.key.info.KeyInfo; |
| 10 | import com.ruoyi.service.key.info.KeyInfoService; | 10 | import com.ruoyi.service.key.info.KeyInfoService; |
| 11 | +import org.apache.commons.collections4.CollectionUtils; | ||
| 11 | import org.apache.commons.lang3.StringUtils; | 12 | import org.apache.commons.lang3.StringUtils; |
| 12 | import org.springframework.beans.factory.annotation.Autowired; | 13 | import org.springframework.beans.factory.annotation.Autowired; |
| 13 | import org.springframework.stereotype.Service; | 14 | import org.springframework.stereotype.Service; |
| 14 | 15 | ||
| 16 | +import java.util.Collection; | ||
| 15 | import java.util.Collections; | 17 | import java.util.Collections; |
| 16 | import java.util.List; | 18 | import java.util.List; |
| 17 | 19 | ||
| @@ -56,6 +58,16 @@ public class KeyInfoServiceImpl extends ServiceImpl<com.ruoyi.mapper.key.info.Ke | @@ -56,6 +58,16 @@ public class KeyInfoServiceImpl extends ServiceImpl<com.ruoyi.mapper.key.info.Ke | ||
| 56 | } | 58 | } |
| 57 | 59 | ||
| 58 | @Override | 60 | @Override |
| 61 | + public List<KeyInfo> list(Collection<String> codes) { | ||
| 62 | + if (CollectionUtils.isEmpty(codes)) { | ||
| 63 | + return Collections.emptyList(); | ||
| 64 | + } | ||
| 65 | + LambdaQueryWrapper<KeyInfo> wrapper = new LambdaQueryWrapper<>(); | ||
| 66 | + wrapper.in(KeyInfo::getKeyCode, codes); | ||
| 67 | + return list(wrapper); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + @Override | ||
| 59 | public List<KeyInfo> listOfSelect(KeyInfo entity) { | 71 | public List<KeyInfo> listOfSelect(KeyInfo entity) { |
| 60 | LambdaQueryWrapper<KeyInfo> wrapper = new LambdaQueryWrapper<>(entity); | 72 | LambdaQueryWrapper<KeyInfo> wrapper = new LambdaQueryWrapper<>(entity); |
| 61 | wrapper.select(KeyInfo::getId, KeyInfo::getName); | 73 | wrapper.select(KeyInfo::getId, KeyInfo::getName); |
| @@ -175,7 +187,7 @@ public class KeyInfoServiceImpl extends ServiceImpl<com.ruoyi.mapper.key.info.Ke | @@ -175,7 +187,7 @@ public class KeyInfoServiceImpl extends ServiceImpl<com.ruoyi.mapper.key.info.Ke | ||
| 175 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "plateNum")) { | 187 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "plateNum")) { |
| 176 | wrapper.orderByDesc(KeyInfo::getPlateNum); | 188 | wrapper.orderByDesc(KeyInfo::getPlateNum); |
| 177 | } | 189 | } |
| 178 | - }else{ | 190 | + } else { |
| 179 | wrapper.orderByDesc(KeyInfo::getCreateTime); | 191 | wrapper.orderByDesc(KeyInfo::getCreateTime); |
| 180 | } | 192 | } |
| 181 | 193 |
Bsth-admin/src/main/java/com/ruoyi/service/impl/key/location/LinggangKeyWorkLocationServiceImpl.java
| 1 | package com.ruoyi.service.impl.key.location; | 1 | package com.ruoyi.service.impl.key.location; |
| 2 | 2 | ||
| 3 | +import com.alibaba.fastjson2.JSON; | ||
| 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 4 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| 5 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | ||
| 4 | import com.baomidou.mybatisplus.core.metadata.IPage; | 6 | import com.baomidou.mybatisplus.core.metadata.IPage; |
| 5 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 7 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 8 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| 7 | import com.github.pagehelper.PageHelper; | 9 | import com.github.pagehelper.PageHelper; |
| 10 | +import com.ruoyi.common.TipEnum; | ||
| 11 | +import com.ruoyi.common.core.domain.ResponseResult; | ||
| 8 | import com.ruoyi.domain.OrderEntity; | 12 | import com.ruoyi.domain.OrderEntity; |
| 13 | +import com.ruoyi.domain.key.info.KeyInfo; | ||
| 9 | import com.ruoyi.domain.key.location.LinggangKeyWorkLocation; | 14 | import com.ruoyi.domain.key.location.LinggangKeyWorkLocation; |
| 10 | import com.ruoyi.mapper.key.location.LinggangKeyWorkLocationMapper; | 15 | import com.ruoyi.mapper.key.location.LinggangKeyWorkLocationMapper; |
| 16 | +import com.ruoyi.service.key.info.KeyInfoService; | ||
| 11 | import com.ruoyi.service.key.location.LinggangKeyWorkLocationService; | 17 | import com.ruoyi.service.key.location.LinggangKeyWorkLocationService; |
| 18 | +import lombok.extern.slf4j.Slf4j; | ||
| 19 | +import org.apache.commons.collections4.CollectionUtils; | ||
| 20 | +import org.apache.commons.lang3.StringUtils; | ||
| 21 | +import org.apache.commons.lang3.time.DateUtils; | ||
| 12 | import org.springframework.beans.factory.annotation.Autowired; | 22 | import org.springframework.beans.factory.annotation.Autowired; |
| 13 | import org.springframework.stereotype.Service; | 23 | import org.springframework.stereotype.Service; |
| 14 | 24 | ||
| 15 | -import java.util.Collections; | ||
| 16 | -import java.util.List; | 25 | +import java.text.MessageFormat; |
| 26 | +import java.util.*; | ||
| 27 | +import java.util.stream.Collectors; | ||
| 17 | 28 | ||
| 29 | +@Slf4j | ||
| 18 | @Service | 30 | @Service |
| 19 | /**钥匙存放地址 Service实现类*/ | 31 | /**钥匙存放地址 Service实现类*/ |
| 20 | public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyWorkLocationMapper, LinggangKeyWorkLocation> implements LinggangKeyWorkLocationService { | 32 | public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyWorkLocationMapper, LinggangKeyWorkLocation> implements LinggangKeyWorkLocationService { |
| 21 | @Autowired | 33 | @Autowired |
| 22 | private LinggangKeyWorkLocationMapper linggangKeyWorkLocationMapper; | 34 | private LinggangKeyWorkLocationMapper linggangKeyWorkLocationMapper; |
| 35 | + @Autowired | ||
| 36 | + private KeyInfoService keyInfoService; | ||
| 37 | + | ||
| 38 | + private static final String TAKE_KEY_MSG = "设备号:{0},钥匙编号:{1},在{2}的状态已经是:{3},无需在操作"; | ||
| 39 | + private static final String TAKE_KEY_SUCESS = "设备号:{0},钥匙编号:{1},在{2}的状已经更新成功"; | ||
| 40 | + private static final String TAKE_KEY_ERROR = "设备号:{0},钥匙编号:{1},在{2}的状更新失败"; | ||
| 23 | 41 | ||
| 24 | /** | 42 | /** |
| 25 | * 分页查询 | 43 | * 分页查询 |
| @@ -70,6 +88,14 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | @@ -70,6 +88,14 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | ||
| 70 | // return list(wrapper); | 88 | // return list(wrapper); |
| 71 | // } | 89 | // } |
| 72 | 90 | ||
| 91 | + | ||
| 92 | + List<LinggangKeyWorkLocation> listOfDeviceKeyIdScheduleDate(List<LinggangKeyWorkLocation> entities) { | ||
| 93 | + if (CollectionUtils.isEmpty(entities)) { | ||
| 94 | + return Collections.emptyList(); | ||
| 95 | + } | ||
| 96 | + return linggangKeyWorkLocationMapper.listOfDeviceKeyIdScheduleDate(entities); | ||
| 97 | + } | ||
| 98 | + | ||
| 73 | @Override | 99 | @Override |
| 74 | public LinggangKeyWorkLocation getOne(LinggangKeyWorkLocation entity) { | 100 | public LinggangKeyWorkLocation getOne(LinggangKeyWorkLocation entity) { |
| 75 | return getOne(new LambdaQueryWrapper<>(entity)); | 101 | return getOne(new LambdaQueryWrapper<>(entity)); |
| @@ -107,6 +133,55 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | @@ -107,6 +133,55 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | ||
| 107 | return updateById(entity); | 133 | return updateById(entity); |
| 108 | } | 134 | } |
| 109 | 135 | ||
| 136 | + @Override | ||
| 137 | + public ResponseResult<Boolean> updateTakeKey(List<LinggangKeyWorkLocation> locations) { | ||
| 138 | + if (CollectionUtils.isEmpty(locations)) { | ||
| 139 | + return ResponseResult.success(); | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + ResponseResult<List<LinggangKeyWorkLocation>> responseResult = checkTaskKey(locations); | ||
| 143 | + if (!responseResult.isSuccess()) { | ||
| 144 | + return ResponseResult.error(responseResult.getCode(), responseResult.getMsg()); | ||
| 145 | + } | ||
| 146 | + List<LinggangKeyWorkLocation> source = responseResult.getData(); | ||
| 147 | + StringBuilder resultStr = new StringBuilder(); | ||
| 148 | + | ||
| 149 | + List<LinggangKeyWorkLocation> success = new ArrayList<>(); | ||
| 150 | + List<LinggangKeyWorkLocation> error = new ArrayList<>(); | ||
| 151 | + source.forEach(s -> { | ||
| 152 | + boolean flag = update(s); | ||
| 153 | + if (flag) { | ||
| 154 | + success.add(s); | ||
| 155 | + } else { | ||
| 156 | + error.add(s); | ||
| 157 | + } | ||
| 158 | + }); | ||
| 159 | + | ||
| 160 | + String msg = convertMsg(error, TAKE_KEY_ERROR); | ||
| 161 | + if (StringUtils.isNotEmpty(msg)) { | ||
| 162 | + resultStr.append(msg); | ||
| 163 | + resultStr.append(";"); | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + msg = convertMsg(success, TAKE_KEY_SUCESS); | ||
| 167 | + if (StringUtils.isNotEmpty(msg)) { | ||
| 168 | + resultStr.append(msg); | ||
| 169 | + resultStr.append(";"); | ||
| 170 | + return StringUtils.isEmpty(msg)?ResponseResult.success(resultStr.toString()):ResponseResult.error(resultStr.toString()); | ||
| 171 | + } | ||
| 172 | + | ||
| 173 | + | ||
| 174 | + return ResponseResult.error(resultStr.toString()); | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + public boolean update(LinggangKeyWorkLocation location) { | ||
| 178 | + LambdaUpdateWrapper<LinggangKeyWorkLocation> wrapper = new LambdaUpdateWrapper<>(); | ||
| 179 | + wrapper.set(LinggangKeyWorkLocation::getEventType, location.getEventType()).set(LinggangKeyWorkLocation::getUpdateTime,new Date()); | ||
| 180 | + wrapper.eq(LinggangKeyWorkLocation::getId, location.getId()).ne(LinggangKeyWorkLocation::getEventType, location.getEventType()); | ||
| 181 | + | ||
| 182 | + return update(wrapper); | ||
| 183 | + } | ||
| 184 | + | ||
| 110 | /***根据主键删除数据*/ | 185 | /***根据主键删除数据*/ |
| 111 | @Override | 186 | @Override |
| 112 | public boolean deleteById(Long id) { | 187 | public boolean deleteById(Long id) { |
| @@ -131,12 +206,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | @@ -131,12 +206,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | ||
| 131 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "cabinetNo")) { | 206 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "cabinetNo")) { |
| 132 | wrapper.orderByAsc(LinggangKeyWorkLocation::getCabinetNo); | 207 | wrapper.orderByAsc(LinggangKeyWorkLocation::getCabinetNo); |
| 133 | } | 208 | } |
| 134 | - if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "parkingNo")) { | ||
| 135 | - wrapper.orderByAsc(LinggangKeyWorkLocation::getParkingNo); | ||
| 136 | - } | ||
| 137 | - if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "carInfoId")) { | ||
| 138 | - wrapper.orderByAsc(LinggangKeyWorkLocation::getCarInfoId); | ||
| 139 | - } | 209 | + |
| 140 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "createBy")) { | 210 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "createBy")) { |
| 141 | wrapper.orderByAsc(LinggangKeyWorkLocation::getCreateBy); | 211 | wrapper.orderByAsc(LinggangKeyWorkLocation::getCreateBy); |
| 142 | } | 212 | } |
| @@ -168,12 +238,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | @@ -168,12 +238,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | ||
| 168 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "cabinetNo")) { | 238 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "cabinetNo")) { |
| 169 | wrapper.orderByDesc(LinggangKeyWorkLocation::getCabinetNo); | 239 | wrapper.orderByDesc(LinggangKeyWorkLocation::getCabinetNo); |
| 170 | } | 240 | } |
| 171 | - if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "parkingNo")) { | ||
| 172 | - wrapper.orderByDesc(LinggangKeyWorkLocation::getParkingNo); | ||
| 173 | - } | ||
| 174 | - if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "carInfoId")) { | ||
| 175 | - wrapper.orderByDesc(LinggangKeyWorkLocation::getCarInfoId); | ||
| 176 | - } | 241 | + |
| 177 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "createBy")) { | 242 | if (org.apache.commons.lang3.StringUtils.equals(orderEntity.getProp(), "createBy")) { |
| 178 | wrapper.orderByDesc(LinggangKeyWorkLocation::getCreateBy); | 243 | wrapper.orderByDesc(LinggangKeyWorkLocation::getCreateBy); |
| 179 | } | 244 | } |
| @@ -193,4 +258,150 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | @@ -193,4 +258,150 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | ||
| 193 | wrapper.orderByDesc(LinggangKeyWorkLocation::getId); | 258 | wrapper.orderByDesc(LinggangKeyWorkLocation::getId); |
| 194 | } | 259 | } |
| 195 | } | 260 | } |
| 261 | + | ||
| 262 | + private ResponseResult<List<LinggangKeyWorkLocation>> checkTaskKey(List<LinggangKeyWorkLocation> locations) { | ||
| 263 | + Set<String> keyCodes = locations.stream().map(LinggangKeyWorkLocation::getKey).collect(Collectors.toSet()); | ||
| 264 | + List<KeyInfo> keyInfos = keyInfoService.list(keyCodes); | ||
| 265 | + if (CollectionUtils.isEmpty(keyInfos)) { | ||
| 266 | + log.info("无法找到钥匙信息:[{}]", locations); | ||
| 267 | + return ResponseResult.error404("无法找到钥匙信息"); | ||
| 268 | + } | ||
| 269 | + | ||
| 270 | + locations = locations.stream().map(lo -> { | ||
| 271 | + Optional<KeyInfo> optional = keyInfos.stream().filter(k -> Objects.equals(k.getKeyCode(), lo.getKey())).findFirst(); | ||
| 272 | + if (optional.isPresent()) { | ||
| 273 | + lo.setKeyInfoId(optional.get().getId()); | ||
| 274 | + } | ||
| 275 | + | ||
| 276 | + return lo; | ||
| 277 | + }).collect(Collectors.toList()); | ||
| 278 | + | ||
| 279 | + StringBuilder resultStr = new StringBuilder(); | ||
| 280 | + List<LinggangKeyWorkLocation> source = locations.stream().filter(l -> Objects.nonNull(l.getKeyInfoId())).collect(Collectors.toList()); | ||
| 281 | + List<LinggangKeyWorkLocation> target = locations.stream().filter(l -> Objects.isNull(l.getKeyInfoId())).collect(Collectors.toList()); | ||
| 282 | + | ||
| 283 | + if (CollectionUtils.isNotEmpty(target)) { | ||
| 284 | + String msg = convertMsgOfKeyInfo(target); | ||
| 285 | + if (StringUtils.isNotEmpty(msg)) { | ||
| 286 | + resultStr.append(msg); | ||
| 287 | + resultStr.append(";"); | ||
| 288 | + } | ||
| 289 | + } | ||
| 290 | + | ||
| 291 | + if (CollectionUtils.isEmpty(source)) { | ||
| 292 | + return ResponseResult.error404(resultStr.toString()); | ||
| 293 | + } | ||
| 294 | + | ||
| 295 | + List<LinggangKeyWorkLocation> querySource = locations.stream().map(l -> { | ||
| 296 | + LinggangKeyWorkLocation location = new LinggangKeyWorkLocation(); | ||
| 297 | + location.setDevice(l.getDevice()); | ||
| 298 | + location.setKeyInfoId(l.getKeyInfoId()); | ||
| 299 | + location.setScheduleDate(l.getScheduleDate()); | ||
| 300 | + return location; | ||
| 301 | + }).collect(Collectors.toList()); | ||
| 302 | + | ||
| 303 | + List<LinggangKeyWorkLocation> dataSource = listOfDeviceKeyIdScheduleDate(querySource); | ||
| 304 | + if (CollectionUtils.isEmpty(dataSource)) { | ||
| 305 | + log.info("无法找到钥匙存放信息:[{}][{}]", querySource, locations); | ||
| 306 | + resultStr.append("无法找到钥匙存放信息"); | ||
| 307 | + resultStr.append(";"); | ||
| 308 | + return ResponseResult.error404(resultStr.toString()); | ||
| 309 | + } | ||
| 310 | + | ||
| 311 | + List<LinggangKeyWorkLocation> locationList = new ArrayList<>(); | ||
| 312 | + source = source.stream().map(l -> { | ||
| 313 | + Optional<LinggangKeyWorkLocation> optional = dataSource.stream().filter(d -> Objects.equals(d.getKeyInfoId(), l.getKeyInfoId()) && | ||
| 314 | + Objects.equals(d.getDevice(), l.getDevice()) && DateUtils.isSameDay(d.getScheduleDate(), l.getScheduleDate())).findFirst(); | ||
| 315 | + if (optional.isPresent()) { | ||
| 316 | + l.setId(optional.get().getId()); | ||
| 317 | + if (Objects.equals(l.getEventType(), optional.get().getEventType())) { | ||
| 318 | + locationList.add(l); | ||
| 319 | + return null; | ||
| 320 | + } | ||
| 321 | + } | ||
| 322 | + return l; | ||
| 323 | + }).filter(l -> Objects.nonNull(l)).collect(Collectors.toList()); | ||
| 324 | + | ||
| 325 | + if (CollectionUtils.isNotEmpty(locationList)) { | ||
| 326 | + String msg = convertMsgOfKeyInfoLocalEventType(locations); | ||
| 327 | + if (StringUtils.isNotEmpty(msg)) { | ||
| 328 | + resultStr.append(msg); | ||
| 329 | + resultStr.append(";"); | ||
| 330 | + } | ||
| 331 | + } | ||
| 332 | + | ||
| 333 | + if (CollectionUtils.isEmpty(source)) { | ||
| 334 | + log.info("无法找到钥匙存放信息:[{}][{}]", locationList, locations); | ||
| 335 | + return ResponseResult.error404(resultStr.toString()); | ||
| 336 | + } | ||
| 337 | + | ||
| 338 | + target = source.stream().filter(l -> Objects.isNull(l.getId())).collect(Collectors.toList()); | ||
| 339 | + if (CollectionUtils.isNotEmpty(target)) { | ||
| 340 | + String msg = convertMsgOfKeyInfoLocal(target); | ||
| 341 | + if (StringUtils.isNotEmpty(msg)) { | ||
| 342 | + resultStr.append(msg); | ||
| 343 | + resultStr.append(";"); | ||
| 344 | + } | ||
| 345 | + | ||
| 346 | + } | ||
| 347 | + source = source.stream().filter(l -> Objects.nonNull(l.getId())).collect(Collectors.toList()); | ||
| 348 | + if (CollectionUtils.isEmpty(source)) { | ||
| 349 | + return ResponseResult.error404(resultStr.toString()); | ||
| 350 | + } | ||
| 351 | + | ||
| 352 | + return ResponseResult.success(source); | ||
| 353 | + } | ||
| 354 | + | ||
| 355 | + private String convertMsgOfKeyInfo(List<LinggangKeyWorkLocation> target) { | ||
| 356 | + if (CollectionUtils.isEmpty(target)) { | ||
| 357 | + return ""; | ||
| 358 | + } | ||
| 359 | + Set<String> keyCodes = target.stream().map(LinggangKeyWorkLocation::getKey).collect(Collectors.toSet()); | ||
| 360 | + return MessageFormat.format(TipEnum.TIP_5.getMsg(), JSON.toJSONString(keyCodes)); | ||
| 361 | + } | ||
| 362 | + | ||
| 363 | + private String convertMsgOfKeyInfoLocal(List<LinggangKeyWorkLocation> target) { | ||
| 364 | + if (CollectionUtils.isEmpty(target)) { | ||
| 365 | + return ""; | ||
| 366 | + } | ||
| 367 | + List<LinggangKeyWorkLocation> locations = target.stream().map(l -> { | ||
| 368 | + LinggangKeyWorkLocation location = new LinggangKeyWorkLocation(); | ||
| 369 | + location.setKey(l.getKey()); | ||
| 370 | + location.setDevice(l.getDevice()); | ||
| 371 | + return location; | ||
| 372 | + }).collect(Collectors.toList()); | ||
| 373 | + return MessageFormat.format(TipEnum.TIP_6.getMsg(), JSON.toJSONString(locations)); | ||
| 374 | + } | ||
| 375 | + | ||
| 376 | + private String convertMsgOfKeyInfoLocalEventType(List<LinggangKeyWorkLocation> target) { | ||
| 377 | + if (CollectionUtils.isEmpty(target)) { | ||
| 378 | + return ""; | ||
| 379 | + } | ||
| 380 | + | ||
| 381 | + StringBuilder builder = new StringBuilder(); | ||
| 382 | + target.stream().forEach(l -> { | ||
| 383 | + String msg = MessageFormat.format(TAKE_KEY_MSG, l.getDevice(), l.getKey(), com.ruoyi.common.utils.DateUtils.YYYY_MM_DD. | ||
| 384 | + format(l.getScheduleDate()), LinggangKeyWorkLocation.LinggangKeyWorkLocationEventTypeEnum.getLabel(l.getEventType())); | ||
| 385 | + builder.append(msg); | ||
| 386 | + builder.append(";"); | ||
| 387 | + | ||
| 388 | + | ||
| 389 | + }); | ||
| 390 | + return builder.toString(); | ||
| 391 | + } | ||
| 392 | + | ||
| 393 | + private String convertMsg(List<LinggangKeyWorkLocation> target, String info) { | ||
| 394 | + if (CollectionUtils.isEmpty(target)) { | ||
| 395 | + return ""; | ||
| 396 | + } | ||
| 397 | + StringBuilder builder = new StringBuilder(); | ||
| 398 | + target.stream().forEach(l -> { | ||
| 399 | + String msg = MessageFormat.format(info, l.getDevice(), l.getKey(), com.ruoyi.common.utils.DateUtils.YYYY_MM_DD.format(l.getScheduleDate())); | ||
| 400 | + builder.append(msg); | ||
| 401 | + builder.append(";"); | ||
| 402 | + | ||
| 403 | + | ||
| 404 | + }); | ||
| 405 | + return builder.toString(); | ||
| 406 | + } | ||
| 196 | } | 407 | } |
| 197 | \ No newline at end of file | 408 | \ No newline at end of file |
Bsth-admin/src/main/java/com/ruoyi/service/key/info/KeyInfoService.java
| @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; | @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; | ||
| 5 | import com.ruoyi.domain.OrderEntity; | 5 | import com.ruoyi.domain.OrderEntity; |
| 6 | import com.ruoyi.domain.key.info.KeyInfo; | 6 | import com.ruoyi.domain.key.info.KeyInfo; |
| 7 | 7 | ||
| 8 | +import java.util.Collection; | ||
| 8 | import java.util.List; | 9 | import java.util.List; |
| 9 | 10 | ||
| 10 | 11 | ||
| @@ -19,6 +20,8 @@ public interface KeyInfoService extends IService<KeyInfo> { | @@ -19,6 +20,8 @@ public interface KeyInfoService extends IService<KeyInfo> { | ||
| 19 | */ | 20 | */ |
| 20 | List<KeyInfo> list(KeyInfo entity); | 21 | List<KeyInfo> list(KeyInfo entity); |
| 21 | 22 | ||
| 23 | + List<KeyInfo> list(Collection<String> codes); | ||
| 24 | + | ||
| 22 | /*** | 25 | /*** |
| 23 | *用于页面选择 | 26 | *用于页面选择 |
| 24 | */ | 27 | */ |
Bsth-admin/src/main/java/com/ruoyi/service/key/location/LinggangKeyWorkLocationService.java
| @@ -2,6 +2,7 @@ package com.ruoyi.service.key.location; | @@ -2,6 +2,7 @@ package com.ruoyi.service.key.location; | ||
| 2 | 2 | ||
| 3 | import com.baomidou.mybatisplus.core.metadata.IPage; | 3 | import com.baomidou.mybatisplus.core.metadata.IPage; |
| 4 | import com.baomidou.mybatisplus.extension.service.IService; | 4 | import com.baomidou.mybatisplus.extension.service.IService; |
| 5 | +import com.ruoyi.common.core.domain.ResponseResult; | ||
| 5 | import com.ruoyi.domain.OrderEntity; | 6 | import com.ruoyi.domain.OrderEntity; |
| 6 | import com.ruoyi.domain.key.location.LinggangKeyWorkLocation; | 7 | import com.ruoyi.domain.key.location.LinggangKeyWorkLocation; |
| 7 | 8 | ||
| @@ -48,6 +49,15 @@ public interface LinggangKeyWorkLocationService extends IService<LinggangKeyWork | @@ -48,6 +49,15 @@ public interface LinggangKeyWorkLocationService extends IService<LinggangKeyWork | ||
| 48 | */ | 49 | */ |
| 49 | boolean updateByPrimaryKey(LinggangKeyWorkLocation entity); | 50 | boolean updateByPrimaryKey(LinggangKeyWorkLocation entity); |
| 50 | 51 | ||
| 52 | + /*** | ||
| 53 | + * 取钥匙 | ||
| 54 | + * @author liujun | ||
| 55 | + * @date 2024/7/17 13:58 | ||
| 56 | + * @param locations | ||
| 57 | + * @return com.ruoyi.common.core.domain.ResponseResult<T> | ||
| 58 | + */ | ||
| 59 | + ResponseResult<Boolean> updateTakeKey(List<LinggangKeyWorkLocation> locations); | ||
| 60 | + | ||
| 51 | boolean deleteById(Long id); | 61 | boolean deleteById(Long id); |
| 52 | 62 | ||
| 53 | } | 63 | } |
| 54 | \ No newline at end of file | 64 | \ No newline at end of file |
Bsth-admin/src/main/resources/mapper/key/info/KeyInfoMapper.xml
| @@ -14,6 +14,7 @@ | @@ -14,6 +14,7 @@ | ||
| 14 | <result column="device_id" jdbcType="INTEGER" property="deviceId"/> | 14 | <result column="device_id" jdbcType="INTEGER" property="deviceId"/> |
| 15 | <result column="cabinetNo" jdbcType="INTEGER" property="cabinetno"/> | 15 | <result column="cabinetNo" jdbcType="INTEGER" property="cabinetno"/> |
| 16 | <result column="plate_Num" jdbcType="VARCHAR" property="plateNum"/> | 16 | <result column="plate_Num" jdbcType="VARCHAR" property="plateNum"/> |
| 17 | + <result column="key_code" jdbcType="VARCHAR" property="keyCode"/> | ||
| 17 | </resultMap> | 18 | </resultMap> |
| 18 | 19 | ||
| 19 | <insert id="insertSelective" keyColumn="id" keyProperty="id" useGeneratedKeys="true" | 20 | <insert id="insertSelective" keyColumn="id" keyProperty="id" useGeneratedKeys="true" |
| @@ -24,12 +25,12 @@ | @@ -24,12 +25,12 @@ | ||
| 24 | 25 | ||
| 25 | <sql id="columns"> | 26 | <sql id="columns"> |
| 26 | id | 27 | id |
| 27 | - , name , status , del_flag , create_By , create_Time , updateBy , update_Time , yard_Id , device_id , cabinetNo , plate_Num | 28 | + , name , status , del_flag , create_By , create_Time , updateBy , update_Time , yard_Id , device_id , cabinetNo , plate_Num , key_code |
| 28 | </sql> | 29 | </sql> |
| 29 | 30 | ||
| 30 | <sql id="insert_columns"> | 31 | <sql id="insert_columns"> |
| 31 | id | 32 | id |
| 32 | - , name , status , del_flag , create_By , create_Time , updateBy , update_Time , yard_Id , device_id , cabinetNo , plate_Num | 33 | + , name , status , del_flag , create_By , create_Time , updateBy , update_Time , yard_Id , device_id , cabinetNo , plate_Num , key_code |
| 33 | </sql> | 34 | </sql> |
| 34 | 35 | ||
| 35 | <sql id="insert_values"> | 36 | <sql id="insert_values"> |
| @@ -45,7 +46,8 @@ | @@ -45,7 +46,8 @@ | ||
| 45 | #{yardId}, | 46 | #{yardId}, |
| 46 | #{deviceId}, | 47 | #{deviceId}, |
| 47 | #{cabinetno}, | 48 | #{cabinetno}, |
| 48 | - #{plateNum} | 49 | + #{plateNum}, |
| 50 | + #{keyCode} | ||
| 49 | </sql> | 51 | </sql> |
| 50 | 52 | ||
| 51 | <sql id="insertSelectiveColumn"> | 53 | <sql id="insertSelectiveColumn"> |
| @@ -62,6 +64,7 @@ | @@ -62,6 +64,7 @@ | ||
| 62 | <if test="null!=deviceId">device_id,</if> | 64 | <if test="null!=deviceId">device_id,</if> |
| 63 | <if test="null!=cabinetno">cabinetNo,</if> | 65 | <if test="null!=cabinetno">cabinetNo,</if> |
| 64 | <if test="null!=plateNum">plate_Num,</if> | 66 | <if test="null!=plateNum">plate_Num,</if> |
| 67 | + <if test="null!=keyCode">key_code,</if> | ||
| 65 | </trim> | 68 | </trim> |
| 66 | </sql> | 69 | </sql> |
| 67 | 70 | ||
| @@ -79,6 +82,7 @@ | @@ -79,6 +82,7 @@ | ||
| 79 | <if test="null!=deviceId">#{deviceId,jdbcType=INTEGER},</if> | 82 | <if test="null!=deviceId">#{deviceId,jdbcType=INTEGER},</if> |
| 80 | <if test="null!=cabinetno">#{cabinetno,jdbcType=INTEGER},</if> | 83 | <if test="null!=cabinetno">#{cabinetno,jdbcType=INTEGER},</if> |
| 81 | <if test="null!=plateNum">#{plateNum,jdbcType=VARCHAR},</if> | 84 | <if test="null!=plateNum">#{plateNum,jdbcType=VARCHAR},</if> |
| 85 | + <if test="null!=keyCode">#{keyCode,jdbcType=VARCHAR},</if> | ||
| 82 | </trim> | 86 | </trim> |
| 83 | </sql> | 87 | </sql> |
| 84 | 88 | ||
| @@ -96,6 +100,7 @@ | @@ -96,6 +100,7 @@ | ||
| 96 | <if test="null!=deviceId">device_id = #{deviceId,jdbcType=INTEGER},</if> | 100 | <if test="null!=deviceId">device_id = #{deviceId,jdbcType=INTEGER},</if> |
| 97 | <if test="null!=cabinetno">cabinetNo = #{cabinetno,jdbcType=INTEGER},</if> | 101 | <if test="null!=cabinetno">cabinetNo = #{cabinetno,jdbcType=INTEGER},</if> |
| 98 | <if test="null!=plateNum">plate_Num = #{plateNum,jdbcType=VARCHAR},</if> | 102 | <if test="null!=plateNum">plate_Num = #{plateNum,jdbcType=VARCHAR},</if> |
| 103 | + <if test="null!=keyCode">key_code = #{keyCode,jdbcType=VARCHAR},</if> | ||
| 99 | </set> | 104 | </set> |
| 100 | </sql> | 105 | </sql> |
| 101 | 106 | ||
| @@ -112,5 +117,6 @@ | @@ -112,5 +117,6 @@ | ||
| 112 | <if test="null!=deviceId">AND device_id = #{deviceId,jdbcType=INTEGER},</if> | 117 | <if test="null!=deviceId">AND device_id = #{deviceId,jdbcType=INTEGER},</if> |
| 113 | <if test="null!=cabinetno">AND cabinetNo = #{cabinetno,jdbcType=INTEGER},</if> | 118 | <if test="null!=cabinetno">AND cabinetNo = #{cabinetno,jdbcType=INTEGER},</if> |
| 114 | <if test="null!=plateNum">AND plate_Num = #{plateNum,jdbcType=VARCHAR},</if> | 119 | <if test="null!=plateNum">AND plate_Num = #{plateNum,jdbcType=VARCHAR},</if> |
| 120 | + <if test="null!=keyCode">AND key_code = #{keyCode,jdbcType=VARCHAR},</if> | ||
| 115 | </sql> | 121 | </sql> |
| 116 | </mapper> | 122 | </mapper> |
| 117 | \ No newline at end of file | 123 | \ No newline at end of file |
Bsth-admin/src/main/resources/mapper/key/location/LinggangKeyWorkLocationMapper.xml
| @@ -15,22 +15,32 @@ | @@ -15,22 +15,32 @@ | ||
| 15 | <result column="event_Type" jdbcType="INTEGER" property="eventType"/> | 15 | <result column="event_Type" jdbcType="INTEGER" property="eventType"/> |
| 16 | <result column="key_info_id" jdbcType="INTEGER" property="keyInfoId"/> | 16 | <result column="key_info_id" jdbcType="INTEGER" property="keyInfoId"/> |
| 17 | <result column="schedule_date" jdbcType="TIMESTAMP" property="scheduleDate"/> | 17 | <result column="schedule_date" jdbcType="TIMESTAMP" property="scheduleDate"/> |
| 18 | + <result column="scheduling_id" jdbcType="VARCHAR" property="schedulingId"/> | ||
| 18 | </resultMap> | 19 | </resultMap> |
| 19 | 20 | ||
| 20 | <insert id="insertSelective" keyColumn="id" keyProperty="id" useGeneratedKeys="true" | 21 | <insert id="insertSelective" keyColumn="id" keyProperty="id" useGeneratedKeys="true" |
| 21 | parameterType="com.ruoyi.domain.key.location.LinggangKeyWorkLocation"> | 22 | parameterType="com.ruoyi.domain.key.location.LinggangKeyWorkLocation"> |
| 22 | - INSERT INTO key_work_location <include refid="insertSelectiveColumn"></include> | 23 | + INSERT INTO key_work_location |
| 24 | + <include refid="insertSelectiveColumn"></include> | ||
| 23 | <include refid="insertSelectiveValue"></include> | 25 | <include refid="insertSelectiveValue"></include> |
| 24 | </insert> | 26 | </insert> |
| 27 | + <select id="listOfDeviceKeyIdScheduleDate" resultMap="BaseResultMap"> | ||
| 28 | + select <include refid="columns"></include> from key_work_location | ||
| 29 | + where del_flag = 0 and( | ||
| 30 | + <foreach collection="localtions" item="item" separator="or" open="(" close=")"> | ||
| 31 | + device=#{item.device} and key_info_id=#{item.keyInfoId} and schedule_date=#{item.scheduleDate} | ||
| 32 | + </foreach> | ||
| 33 | + ) | ||
| 34 | + </select> | ||
| 25 | 35 | ||
| 26 | <sql id="columns"> | 36 | <sql id="columns"> |
| 27 | id | 37 | id |
| 28 | - , yard_Id , yard_Name , device , cabinet_No , create_by , create_time , update_by , update_time , del_flag , event_Type , key_info_id , schedule_date | 38 | + , yard_Id , yard_Name , device , cabinet_No , create_by , create_time , update_by , update_time , del_flag , event_Type , key_info_id , schedule_date , scheduling_id |
| 29 | </sql> | 39 | </sql> |
| 30 | 40 | ||
| 31 | <sql id="insert_columns"> | 41 | <sql id="insert_columns"> |
| 32 | id | 42 | id |
| 33 | - , yard_Id , yard_Name , device , cabinet_No , create_by , create_time , update_by , update_time , del_flag , event_Type , key_info_id , schedule_date | 43 | + , yard_Id , yard_Name , device , cabinet_No , create_by , create_time , update_by , update_time , del_flag , event_Type , key_info_id , schedule_date , scheduling_id |
| 34 | </sql> | 44 | </sql> |
| 35 | 45 | ||
| 36 | <sql id="insert_values"> | 46 | <sql id="insert_values"> |
| @@ -47,7 +57,8 @@ | @@ -47,7 +57,8 @@ | ||
| 47 | #{delFlag}, | 57 | #{delFlag}, |
| 48 | #{eventType}, | 58 | #{eventType}, |
| 49 | #{keyInfoId}, | 59 | #{keyInfoId}, |
| 50 | - #{scheduleDate} | 60 | + #{scheduleDate}, |
| 61 | + #{schedulingId} | ||
| 51 | </sql> | 62 | </sql> |
| 52 | 63 | ||
| 53 | <sql id="insertSelectiveColumn"> | 64 | <sql id="insertSelectiveColumn"> |
| @@ -65,6 +76,7 @@ | @@ -65,6 +76,7 @@ | ||
| 65 | <if test="null!=eventType">event_Type,</if> | 76 | <if test="null!=eventType">event_Type,</if> |
| 66 | <if test="null!=keyInfoId">key_info_id,</if> | 77 | <if test="null!=keyInfoId">key_info_id,</if> |
| 67 | <if test="null!=scheduleDate">schedule_date,</if> | 78 | <if test="null!=scheduleDate">schedule_date,</if> |
| 79 | + <if test="null!=schedulingId">scheduling_id,</if> | ||
| 68 | </trim> | 80 | </trim> |
| 69 | </sql> | 81 | </sql> |
| 70 | 82 | ||
| @@ -83,6 +95,7 @@ | @@ -83,6 +95,7 @@ | ||
| 83 | <if test="null!=eventType">#{eventType,jdbcType=INTEGER},</if> | 95 | <if test="null!=eventType">#{eventType,jdbcType=INTEGER},</if> |
| 84 | <if test="null!=keyInfoId">#{keyInfoId,jdbcType=INTEGER},</if> | 96 | <if test="null!=keyInfoId">#{keyInfoId,jdbcType=INTEGER},</if> |
| 85 | <if test="null!=scheduleDate">#{scheduleDate,jdbcType=TIMESTAMP},</if> | 97 | <if test="null!=scheduleDate">#{scheduleDate,jdbcType=TIMESTAMP},</if> |
| 98 | + <if test="null!=schedulingId">#{schedulingId,jdbcType=VARCHAR},</if> | ||
| 86 | </trim> | 99 | </trim> |
| 87 | </sql> | 100 | </sql> |
| 88 | 101 | ||
| @@ -101,6 +114,7 @@ | @@ -101,6 +114,7 @@ | ||
| 101 | <if test="null!=eventType">event_Type = #{eventType,jdbcType=INTEGER},</if> | 114 | <if test="null!=eventType">event_Type = #{eventType,jdbcType=INTEGER},</if> |
| 102 | <if test="null!=keyInfoId">key_info_id = #{keyInfoId,jdbcType=INTEGER},</if> | 115 | <if test="null!=keyInfoId">key_info_id = #{keyInfoId,jdbcType=INTEGER},</if> |
| 103 | <if test="null!=scheduleDate">schedule_date = #{scheduleDate,jdbcType=TIMESTAMP},</if> | 116 | <if test="null!=scheduleDate">schedule_date = #{scheduleDate,jdbcType=TIMESTAMP},</if> |
| 117 | + <if test="null!=schedulingId">scheduling_id = #{schedulingId,jdbcType=VARCHAR},</if> | ||
| 104 | </set> | 118 | </set> |
| 105 | </sql> | 119 | </sql> |
| 106 | 120 | ||
| @@ -118,5 +132,6 @@ | @@ -118,5 +132,6 @@ | ||
| 118 | <if test="null!=eventType">AND event_Type = #{eventType,jdbcType=INTEGER},</if> | 132 | <if test="null!=eventType">AND event_Type = #{eventType,jdbcType=INTEGER},</if> |
| 119 | <if test="null!=keyInfoId">AND key_info_id = #{keyInfoId,jdbcType=INTEGER},</if> | 133 | <if test="null!=keyInfoId">AND key_info_id = #{keyInfoId,jdbcType=INTEGER},</if> |
| 120 | <if test="null!=scheduleDate">AND schedule_date = #{scheduleDate,jdbcType=TIMESTAMP},</if> | 134 | <if test="null!=scheduleDate">AND schedule_date = #{scheduleDate,jdbcType=TIMESTAMP},</if> |
| 135 | + <if test="null!=schedulingId">AND scheduling_id = #{schedulingId,jdbcType=VARCHAR},</if> | ||
| 121 | </sql> | 136 | </sql> |
| 122 | </mapper> | 137 | </mapper> |
| 123 | \ No newline at end of file | 138 | \ No newline at end of file |
Bsth-common/src/main/java/com/ruoyi/common/core/domain/ResponseResult.java
| @@ -8,8 +8,8 @@ import java.util.Objects; | @@ -8,8 +8,8 @@ import java.util.Objects; | ||
| 8 | * @author liujun | 8 | * @author liujun |
| 9 | * @date 2024年07月12日 11:33 | 9 | * @date 2024年07月12日 11:33 |
| 10 | */ | 10 | */ |
| 11 | -public class ResponseResult <T>{ | ||
| 12 | - private int code= 500; | 11 | +public class ResponseResult<T> { |
| 12 | + private int code = 500; | ||
| 13 | private String msg; | 13 | private String msg; |
| 14 | private T data; | 14 | private T data; |
| 15 | 15 | ||
| @@ -37,18 +37,16 @@ public class ResponseResult <T>{ | @@ -37,18 +37,16 @@ public class ResponseResult <T>{ | ||
| 37 | this.data = data; | 37 | this.data = data; |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | - public ResponseResult() | ||
| 41 | - { | 40 | + public ResponseResult() { |
| 42 | } | 41 | } |
| 43 | 42 | ||
| 44 | /** | 43 | /** |
| 45 | * 初始化一个新创建的 AjaxResult 对象 | 44 | * 初始化一个新创建的 AjaxResult 对象 |
| 46 | * | 45 | * |
| 47 | * @param code 状态码 | 46 | * @param code 状态码 |
| 48 | - * @param msg 返回内容 | 47 | + * @param msg 返回内容 |
| 49 | */ | 48 | */ |
| 50 | - public ResponseResult(int code, String msg) | ||
| 51 | - { | 49 | + public ResponseResult(int code, String msg) { |
| 52 | this.code = code; | 50 | this.code = code; |
| 53 | this.msg = msg; | 51 | this.msg = msg; |
| 54 | } | 52 | } |
| @@ -58,8 +56,7 @@ public class ResponseResult <T>{ | @@ -58,8 +56,7 @@ public class ResponseResult <T>{ | ||
| 58 | * | 56 | * |
| 59 | * @param code 状态码 | 57 | * @param code 状态码 |
| 60 | */ | 58 | */ |
| 61 | - public ResponseResult(int code) | ||
| 62 | - { | 59 | + public ResponseResult(int code) { |
| 63 | this.code = code; | 60 | this.code = code; |
| 64 | } | 61 | } |
| 65 | 62 | ||
| @@ -67,14 +64,13 @@ public class ResponseResult <T>{ | @@ -67,14 +64,13 @@ public class ResponseResult <T>{ | ||
| 67 | * 初始化一个新创建的 AjaxResult 对象 | 64 | * 初始化一个新创建的 AjaxResult 对象 |
| 68 | * | 65 | * |
| 69 | * @param code 状态码 | 66 | * @param code 状态码 |
| 70 | - * @param msg 返回内容 | 67 | + * @param msg 返回内容 |
| 71 | * @param data 数据对象 | 68 | * @param data 数据对象 |
| 72 | */ | 69 | */ |
| 73 | - public ResponseResult(int code, String msg, T data) | ||
| 74 | - { | 70 | + public ResponseResult(int code, String msg, T data) { |
| 75 | this.code = code; | 71 | this.code = code; |
| 76 | this.msg = msg; | 72 | this.msg = msg; |
| 77 | - this.data= data; | 73 | + this.data = data; |
| 78 | 74 | ||
| 79 | } | 75 | } |
| 80 | 76 | ||
| @@ -83,8 +79,7 @@ public class ResponseResult <T>{ | @@ -83,8 +79,7 @@ public class ResponseResult <T>{ | ||
| 83 | * | 79 | * |
| 84 | * @return 成功消息 | 80 | * @return 成功消息 |
| 85 | */ | 81 | */ |
| 86 | - public static <T>ResponseResult<T> success() | ||
| 87 | - { | 82 | + public static <T> ResponseResult<T> success() { |
| 88 | return ResponseResult.success("操作成功"); | 83 | return ResponseResult.success("操作成功"); |
| 89 | } | 84 | } |
| 90 | 85 | ||
| @@ -93,8 +88,7 @@ public class ResponseResult <T>{ | @@ -93,8 +88,7 @@ public class ResponseResult <T>{ | ||
| 93 | * | 88 | * |
| 94 | * @return 成功消息 | 89 | * @return 成功消息 |
| 95 | */ | 90 | */ |
| 96 | - public static <T>ResponseResult<T> success(T data) | ||
| 97 | - { | 91 | + public static <T> ResponseResult<T> success(T data) { |
| 98 | return ResponseResult.success("操作成功", data); | 92 | return ResponseResult.success("操作成功", data); |
| 99 | } | 93 | } |
| 100 | 94 | ||
| @@ -104,20 +98,18 @@ public class ResponseResult <T>{ | @@ -104,20 +98,18 @@ public class ResponseResult <T>{ | ||
| 104 | * @param msg 返回内容 | 98 | * @param msg 返回内容 |
| 105 | * @return 成功消息 | 99 | * @return 成功消息 |
| 106 | */ | 100 | */ |
| 107 | - public static <T>ResponseResult<T> success(String msg) | ||
| 108 | - { | 101 | + public static <T> ResponseResult<T> success(String msg) { |
| 109 | return ResponseResult.success(msg, null); | 102 | return ResponseResult.success(msg, null); |
| 110 | } | 103 | } |
| 111 | 104 | ||
| 112 | /** | 105 | /** |
| 113 | * 返回成功消息 | 106 | * 返回成功消息 |
| 114 | * | 107 | * |
| 115 | - * @param msg 返回内容 | 108 | + * @param msg 返回内容 |
| 116 | * @param data 数据对象 | 109 | * @param data 数据对象 |
| 117 | * @return 成功消息 | 110 | * @return 成功消息 |
| 118 | */ | 111 | */ |
| 119 | - public static <T>ResponseResult<T> success(String msg, T data) | ||
| 120 | - { | 112 | + public static <T> ResponseResult<T> success(String msg, T data) { |
| 121 | return new ResponseResult(HttpStatus.SUCCESS, msg, data); | 113 | return new ResponseResult(HttpStatus.SUCCESS, msg, data); |
| 122 | } | 114 | } |
| 123 | 115 | ||
| @@ -127,20 +119,18 @@ public class ResponseResult <T>{ | @@ -127,20 +119,18 @@ public class ResponseResult <T>{ | ||
| 127 | * @param msg 返回内容 | 119 | * @param msg 返回内容 |
| 128 | * @return 警告消息 | 120 | * @return 警告消息 |
| 129 | */ | 121 | */ |
| 130 | - public static <T>ResponseResult<T> warn(String msg) | ||
| 131 | - { | 122 | + public static <T> ResponseResult<T> warn(String msg) { |
| 132 | return ResponseResult.warn(msg, null); | 123 | return ResponseResult.warn(msg, null); |
| 133 | } | 124 | } |
| 134 | 125 | ||
| 135 | /** | 126 | /** |
| 136 | * 返回警告消息 | 127 | * 返回警告消息 |
| 137 | * | 128 | * |
| 138 | - * @param msg 返回内容 | 129 | + * @param msg 返回内容 |
| 139 | * @param data 数据对象 | 130 | * @param data 数据对象 |
| 140 | * @return 警告消息 | 131 | * @return 警告消息 |
| 141 | */ | 132 | */ |
| 142 | - public static <T>ResponseResult<T> warn(String msg, Object data) | ||
| 143 | - { | 133 | + public static <T> ResponseResult<T> warn(String msg, Object data) { |
| 144 | return new ResponseResult(HttpStatus.WARN, msg, data); | 134 | return new ResponseResult(HttpStatus.WARN, msg, data); |
| 145 | } | 135 | } |
| 146 | 136 | ||
| @@ -149,8 +139,7 @@ public class ResponseResult <T>{ | @@ -149,8 +139,7 @@ public class ResponseResult <T>{ | ||
| 149 | * | 139 | * |
| 150 | * @return 错误消息 | 140 | * @return 错误消息 |
| 151 | */ | 141 | */ |
| 152 | - public static <T>ResponseResult<T> error() | ||
| 153 | - { | 142 | + public static <T> ResponseResult<T> error() { |
| 154 | return ResponseResult.error("操作失败"); | 143 | return ResponseResult.error("操作失败"); |
| 155 | } | 144 | } |
| 156 | 145 | ||
| @@ -160,20 +149,18 @@ public class ResponseResult <T>{ | @@ -160,20 +149,18 @@ public class ResponseResult <T>{ | ||
| 160 | * @param msg 返回内容 | 149 | * @param msg 返回内容 |
| 161 | * @return 错误消息 | 150 | * @return 错误消息 |
| 162 | */ | 151 | */ |
| 163 | - public static <T>ResponseResult<T> error(String msg) | ||
| 164 | - { | 152 | + public static <T> ResponseResult<T> error(String msg) { |
| 165 | return ResponseResult.error(msg, null); | 153 | return ResponseResult.error(msg, null); |
| 166 | } | 154 | } |
| 167 | 155 | ||
| 168 | /** | 156 | /** |
| 169 | * 返回错误消息 | 157 | * 返回错误消息 |
| 170 | * | 158 | * |
| 171 | - * @param msg 返回内容 | 159 | + * @param msg 返回内容 |
| 172 | * @param data 数据对象 | 160 | * @param data 数据对象 |
| 173 | * @return 错误消息 | 161 | * @return 错误消息 |
| 174 | */ | 162 | */ |
| 175 | - public static <T>ResponseResult<T> error(String msg, Object data) | ||
| 176 | - { | 163 | + public static <T> ResponseResult<T> error(String msg, Object data) { |
| 177 | return new ResponseResult(HttpStatus.ERROR, msg, data); | 164 | return new ResponseResult(HttpStatus.ERROR, msg, data); |
| 178 | } | 165 | } |
| 179 | 166 | ||
| @@ -181,21 +168,31 @@ public class ResponseResult <T>{ | @@ -181,21 +168,31 @@ public class ResponseResult <T>{ | ||
| 181 | * 返回错误消息 | 168 | * 返回错误消息 |
| 182 | * | 169 | * |
| 183 | * @param code 状态码 | 170 | * @param code 状态码 |
| 184 | - * @param msg 返回内容 | 171 | + * @param msg 返回内容 |
| 185 | * @return 错误消息 | 172 | * @return 错误消息 |
| 186 | */ | 173 | */ |
| 187 | - public static <T>ResponseResult<T> error(int code, String msg) | ||
| 188 | - { | 174 | + public static <T> ResponseResult<T> error(int code, String msg) { |
| 189 | return new ResponseResult(code, msg, null); | 175 | return new ResponseResult(code, msg, null); |
| 190 | } | 176 | } |
| 191 | 177 | ||
| 192 | /** | 178 | /** |
| 179 | + * 返回错误消息 | ||
| 180 | + * | ||
| 181 | + * @return 错误消息 | ||
| 182 | + */ | ||
| 183 | + public static <T> ResponseResult<T> error404() { | ||
| 184 | + return error404("Not Found"); | ||
| 185 | + } | ||
| 186 | + public static <T> ResponseResult<T> error404(String msg) { | ||
| 187 | + return new ResponseResult(404, msg, null); | ||
| 188 | + } | ||
| 189 | + | ||
| 190 | + /** | ||
| 193 | * 是否为成功消息 | 191 | * 是否为成功消息 |
| 194 | * | 192 | * |
| 195 | * @return 结果 | 193 | * @return 结果 |
| 196 | */ | 194 | */ |
| 197 | - public boolean isSuccess() | ||
| 198 | - { | 195 | + public boolean isSuccess() { |
| 199 | return Objects.equals(HttpStatus.SUCCESS, this.getCode()); | 196 | return Objects.equals(HttpStatus.SUCCESS, this.getCode()); |
| 200 | } | 197 | } |
| 201 | 198 | ||
| @@ -204,9 +201,8 @@ public class ResponseResult <T>{ | @@ -204,9 +201,8 @@ public class ResponseResult <T>{ | ||
| 204 | * | 201 | * |
| 205 | * @return 结果 | 202 | * @return 结果 |
| 206 | */ | 203 | */ |
| 207 | - public boolean isWarn() | ||
| 208 | - { | ||
| 209 | - return Objects.equals(HttpStatus.WARN,this.getCode()); | 204 | + public boolean isWarn() { |
| 205 | + return Objects.equals(HttpStatus.WARN, this.getCode()); | ||
| 210 | } | 206 | } |
| 211 | 207 | ||
| 212 | /** | 208 | /** |
| @@ -214,11 +210,9 @@ public class ResponseResult <T>{ | @@ -214,11 +210,9 @@ public class ResponseResult <T>{ | ||
| 214 | * | 210 | * |
| 215 | * @return 结果 | 211 | * @return 结果 |
| 216 | */ | 212 | */ |
| 217 | - public boolean isError() | ||
| 218 | - { | ||
| 219 | - return Objects.equals(HttpStatus.ERROR,this.getCode()); | 213 | + public boolean isError() { |
| 214 | + return Objects.equals(HttpStatus.ERROR, this.getCode()); | ||
| 220 | } | 215 | } |
| 221 | 216 | ||
| 222 | 217 | ||
| 223 | - | ||
| 224 | } | 218 | } |