Commit b9a40c498360ab989152396e720a65c7eb00f152
1 parent
5ce3372c
蓝斯接口 模糊查询车辆车牌列表\司机获取当前工作的车辆钥匙信息
Showing
22 changed files
with
577 additions
and
26 deletions
Bsth-admin/src/main/java/com/ruoyi/controller/dss/DssDriverController.java
| 1 | package com.ruoyi.controller.dss; | 1 | package com.ruoyi.controller.dss; |
| 2 | 2 | ||
| 3 | import cn.hutool.core.convert.Convert; | 3 | import cn.hutool.core.convert.Convert; |
| 4 | +import com.baomidou.mybatisplus.core.metadata.IPage; | ||
| 5 | +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||
| 4 | import com.ruoyi.common.core.controller.BaseController; | 6 | import com.ruoyi.common.core.controller.BaseController; |
| 5 | import com.ruoyi.common.core.domain.AjaxResult; | 7 | import com.ruoyi.common.core.domain.AjaxResult; |
| 6 | import com.ruoyi.common.core.domain.ResponseResult; | 8 | import com.ruoyi.common.core.domain.ResponseResult; |
| 7 | import com.ruoyi.common.core.domain.entity.SysDictData; | 9 | import com.ruoyi.common.core.domain.entity.SysDictData; |
| 8 | import com.ruoyi.common.exception.file.FileUploadException; | 10 | import com.ruoyi.common.exception.file.FileUploadException; |
| 11 | +import com.ruoyi.domain.OrderEntity; | ||
| 12 | +import com.ruoyi.domain.caiinfo.CarInfo; | ||
| 9 | import com.ruoyi.domain.driver.NewDriver; | 13 | import com.ruoyi.domain.driver.NewDriver; |
| 10 | import com.ruoyi.domain.driver.dss.syn.DrivePosEnum; | 14 | import com.ruoyi.domain.driver.dss.syn.DrivePosEnum; |
| 11 | import com.ruoyi.domain.driver.dss.syn.login.dto.LoginDriverDTO; | 15 | import com.ruoyi.domain.driver.dss.syn.login.dto.LoginDriverDTO; |
| 12 | import com.ruoyi.domain.driver.dss.syn.login.vo.LoginDriverVo; | 16 | import com.ruoyi.domain.driver.dss.syn.login.vo.LoginDriverVo; |
| 13 | import com.ruoyi.domain.driver.dss.syn.login.vo.LoginUserInfoVo; | 17 | import com.ruoyi.domain.driver.dss.syn.login.vo.LoginUserInfoVo; |
| 18 | +import com.ruoyi.domain.dss.driver.dto.GetBeforeWorkListDTO; | ||
| 19 | +import com.ruoyi.domain.dss.driver.dto.GetBusPlanListDTO; | ||
| 20 | +import com.ruoyi.domain.dss.driver.vo.GetBeforeWorkListVo; | ||
| 21 | +import com.ruoyi.domain.dss.driver.vo.GetBusPlanListVo; | ||
| 14 | import com.ruoyi.domain.dss.sign.dto.DssGetWineRecordDTO; | 22 | import com.ruoyi.domain.dss.sign.dto.DssGetWineRecordDTO; |
| 15 | import com.ruoyi.domain.dss.sign.dto.DssSignDTO; | 23 | import com.ruoyi.domain.dss.sign.dto.DssSignDTO; |
| 16 | import com.ruoyi.domain.dss.sign.dto.DssSignOutDTO; | 24 | import com.ruoyi.domain.dss.sign.dto.DssSignOutDTO; |
| 17 | import com.ruoyi.domain.dss.sign.vo.DssSignVo; | 25 | import com.ruoyi.domain.dss.sign.vo.DssSignVo; |
| 18 | import com.ruoyi.domain.dss.sign.vo.GetWineRecordVo; | 26 | import com.ruoyi.domain.dss.sign.vo.GetWineRecordVo; |
| 19 | import com.ruoyi.domain.dss.sign.vo.SignOutVo; | 27 | import com.ruoyi.domain.dss.sign.vo.SignOutVo; |
| 28 | +import com.ruoyi.domain.scheduling.LinggangScheduling; | ||
| 29 | +import com.ruoyi.equipment.domain.Equipment; | ||
| 30 | +import com.ruoyi.equipment.service.IEquipmentService; | ||
| 20 | import com.ruoyi.in.domain.SignIn; | 31 | import com.ruoyi.in.domain.SignIn; |
| 21 | import com.ruoyi.in.service.ISignInService; | 32 | import com.ruoyi.in.service.ISignInService; |
| 22 | import com.ruoyi.pojo.response.SignInResponseVo; | 33 | import com.ruoyi.pojo.response.SignInResponseVo; |
| 34 | +import com.ruoyi.service.carinfo.CarInfoService; | ||
| 23 | import com.ruoyi.service.driver.NewDriverService; | 35 | import com.ruoyi.service.driver.NewDriverService; |
| 24 | import com.ruoyi.service.dss.FaceService; | 36 | import com.ruoyi.service.dss.FaceService; |
| 37 | +import com.ruoyi.service.scheduling.LinggangSchedulingService; | ||
| 25 | import com.ruoyi.system.service.ISysDictDataService; | 38 | import com.ruoyi.system.service.ISysDictDataService; |
| 26 | import io.swagger.annotations.Api; | 39 | import io.swagger.annotations.Api; |
| 27 | import io.swagger.annotations.ApiOperation; | 40 | import io.swagger.annotations.ApiOperation; |
| 28 | import lombok.extern.slf4j.Slf4j; | 41 | import lombok.extern.slf4j.Slf4j; |
| 42 | +import org.apache.commons.collections4.CollectionUtils; | ||
| 29 | import org.apache.commons.lang3.StringUtils; | 43 | import org.apache.commons.lang3.StringUtils; |
| 44 | +import org.apache.commons.lang3.time.DateUtils; | ||
| 30 | import org.springframework.beans.factory.annotation.Autowired; | 45 | import org.springframework.beans.factory.annotation.Autowired; |
| 31 | import org.springframework.validation.BindingResult; | 46 | import org.springframework.validation.BindingResult; |
| 32 | import org.springframework.web.bind.annotation.*; | 47 | import org.springframework.web.bind.annotation.*; |
| 33 | 48 | ||
| 34 | import javax.validation.Valid; | 49 | import javax.validation.Valid; |
| 35 | import java.io.IOException; | 50 | import java.io.IOException; |
| 36 | -import java.util.HashSet; | ||
| 37 | -import java.util.Objects; | ||
| 38 | -import java.util.Set; | 51 | +import java.util.*; |
| 52 | +import java.util.stream.Collectors; | ||
| 39 | 53 | ||
| 40 | /** | 54 | /** |
| 41 | * @author liujun | 55 | * @author liujun |
| @@ -43,7 +57,7 @@ import java.util.Set; | @@ -43,7 +57,7 @@ import java.util.Set; | ||
| 43 | */ | 57 | */ |
| 44 | @RestController | 58 | @RestController |
| 45 | @Slf4j | 59 | @Slf4j |
| 46 | -@RequestMapping("/dss/Driver") | 60 | +@RequestMapping("/dss") |
| 47 | @Api(tags = "【蓝斯一期】人员信息") | 61 | @Api(tags = "【蓝斯一期】人员信息") |
| 48 | public class DssDriverController extends BaseController { | 62 | public class DssDriverController extends BaseController { |
| 49 | @Autowired | 63 | @Autowired |
| @@ -54,8 +68,14 @@ public class DssDriverController extends BaseController { | @@ -54,8 +68,14 @@ public class DssDriverController extends BaseController { | ||
| 54 | private ISignInService signInService; | 68 | private ISignInService signInService; |
| 55 | @Autowired | 69 | @Autowired |
| 56 | private FaceService faceService; | 70 | private FaceService faceService; |
| 71 | + @Autowired | ||
| 72 | + private LinggangSchedulingService schedulingService; | ||
| 73 | + @Autowired | ||
| 74 | + private CarInfoService carInfoService; | ||
| 75 | + @Autowired | ||
| 76 | + private IEquipmentService equipmentService; | ||
| 57 | 77 | ||
| 58 | - @PostMapping(value = "Login") | 78 | + @PostMapping(value = "/Driver/Login") |
| 59 | @ApiOperation("人员登录设备") | 79 | @ApiOperation("人员登录设备") |
| 60 | public ResponseResult<LoginDriverVo> login(@Valid @RequestBody LoginDriverDTO loginDriverDTO, BindingResult bindingResult) { | 80 | public ResponseResult<LoginDriverVo> login(@Valid @RequestBody LoginDriverDTO loginDriverDTO, BindingResult bindingResult) { |
| 61 | if (bindingResult.hasErrors()) { | 81 | if (bindingResult.hasErrors()) { |
| @@ -70,7 +90,7 @@ public class DssDriverController extends BaseController { | @@ -70,7 +90,7 @@ public class DssDriverController extends BaseController { | ||
| 70 | return ResponseResult.success(convertNewDriver(driver)); | 90 | return ResponseResult.success(convertNewDriver(driver)); |
| 71 | } | 91 | } |
| 72 | 92 | ||
| 73 | - @PostMapping(value = "SignIn") | 93 | + @PostMapping(value = "/Driver/SignIn") |
| 74 | @ApiOperation("人员签到") | 94 | @ApiOperation("人员签到") |
| 75 | public ResponseResult<DssSignVo> sign(@Valid @RequestBody DssSignDTO dto, BindingResult bindingResult) { | 95 | public ResponseResult<DssSignVo> sign(@Valid @RequestBody DssSignDTO dto, BindingResult bindingResult) { |
| 76 | if (bindingResult.hasErrors()) { | 96 | if (bindingResult.hasErrors()) { |
| @@ -94,7 +114,7 @@ public class DssDriverController extends BaseController { | @@ -94,7 +114,7 @@ public class DssDriverController extends BaseController { | ||
| 94 | } | 114 | } |
| 95 | 115 | ||
| 96 | 116 | ||
| 97 | - @PostMapping(value = "SignOut") | 117 | + @PostMapping(value = "/Driver/SignOut") |
| 98 | @ApiOperation("人员签退") | 118 | @ApiOperation("人员签退") |
| 99 | public ResponseResult<SignOutVo> signOut(@Valid @RequestBody DssSignOutDTO dto, BindingResult bindingResult) { | 119 | public ResponseResult<SignOutVo> signOut(@Valid @RequestBody DssSignOutDTO dto, BindingResult bindingResult) { |
| 100 | if (bindingResult.hasErrors()) { | 120 | if (bindingResult.hasErrors()) { |
| @@ -115,7 +135,7 @@ public class DssDriverController extends BaseController { | @@ -115,7 +135,7 @@ public class DssDriverController extends BaseController { | ||
| 115 | } | 135 | } |
| 116 | } | 136 | } |
| 117 | 137 | ||
| 118 | - @GetMapping(value = "GetWineRecord") | 138 | + @GetMapping(value = "/Driver/GetWineRecord") |
| 119 | @ApiOperation("校验司机酒测记录是否有效") | 139 | @ApiOperation("校验司机酒测记录是否有效") |
| 120 | public ResponseResult<GetWineRecordVo> getWineRecord(@Valid @RequestBody DssGetWineRecordDTO dto, BindingResult bindingResult) { | 140 | public ResponseResult<GetWineRecordVo> getWineRecord(@Valid @RequestBody DssGetWineRecordDTO dto, BindingResult bindingResult) { |
| 121 | if (bindingResult.hasErrors()) { | 141 | if (bindingResult.hasErrors()) { |
| @@ -127,9 +147,68 @@ public class DssDriverController extends BaseController { | @@ -127,9 +147,68 @@ public class DssDriverController extends BaseController { | ||
| 127 | return ResponseResult.success(convertGetWineRecordVo(dataSignIn)); | 147 | return ResponseResult.success(convertGetWineRecordVo(dataSignIn)); |
| 128 | } | 148 | } |
| 129 | 149 | ||
| 150 | + @PostMapping(value = "/Info/GetBusPlanList") | ||
| 151 | + @ApiOperation(value = "22.查询司机排班计划信息") | ||
| 152 | + public ResponseResult<Map<String, Object>> GetBusPlanList(@Valid @RequestBody GetBusPlanListDTO dto, BindingResult bindingResult) { | ||
| 153 | + if (bindingResult.hasErrors()) { | ||
| 154 | + return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); | ||
| 155 | + } | ||
| 130 | 156 | ||
| 157 | + LinggangScheduling scheduling = convertScheduling(dto); | ||
| 158 | + IPage<LinggangScheduling> iPage = schedulingService.pageList(new Page<LinggangScheduling>(dto.getPageNumber(), dto.getPageRow()), scheduling, new OrderEntity()); | ||
| 131 | 159 | ||
| 160 | + if (Objects.isNull(iPage)) { | ||
| 161 | + return ResponseResult.error(); | ||
| 162 | + } | ||
| 163 | + if (CollectionUtils.isNotEmpty(iPage.getRecords())) { | ||
| 164 | + Set<String> nbbm = iPage.getRecords().stream().map(LinggangScheduling::getNbbm).collect(Collectors.toSet()); | ||
| 165 | + List<CarInfo> carInfos = carInfoService.list(nbbm); | ||
| 132 | 166 | ||
| 167 | + Map<String, Object> getBusPlanListVo = convertGetBusPlanListVo(iPage, dto, carInfos); | ||
| 168 | + return ResponseResult.success(getBusPlanListVo); | ||
| 169 | + } | ||
| 170 | + return ResponseResult.success(); | ||
| 171 | + } | ||
| 172 | + | ||
| 173 | + | ||
| 174 | + @PostMapping(value = "/workResult/GetBeforeWorkList") | ||
| 175 | + @ApiOperation(value = "23.获取酒测记录列表") | ||
| 176 | + public ResponseResult<List<GetBeforeWorkListVo>> getBeforeWorkList(@Valid @RequestBody GetBeforeWorkListDTO dto, BindingResult bindingResult) { | ||
| 177 | + if (bindingResult.hasErrors()) { | ||
| 178 | + return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); | ||
| 179 | + } | ||
| 180 | + | ||
| 181 | + NewDriver newDriver = convertGetBeforeWorkListDTO(dto); | ||
| 182 | + SignIn signIn = convertSignIn(dto); | ||
| 183 | + | ||
| 184 | + Set<String> jobCodes = null; | ||
| 185 | + List<NewDriver> drivers = null; | ||
| 186 | + if (Objects.nonNull(newDriver)) { | ||
| 187 | + drivers = newDriverService.listOficRfidAndLikePersonnelNameJobCodeIcCardCode(newDriver); | ||
| 188 | + if (CollectionUtils.isNotEmpty(drivers)) { | ||
| 189 | + jobCodes = drivers.stream().map(NewDriver::getJobCode).collect(Collectors.toSet()); | ||
| 190 | + } | ||
| 191 | + } | ||
| 192 | + List<SignIn> signIns = signInService.selectByEntityOrNewDriverId(signIn, jobCodes); | ||
| 193 | + if (CollectionUtils.isEmpty(signIns)) { | ||
| 194 | + return ResponseResult.success(); | ||
| 195 | + } | ||
| 196 | + | ||
| 197 | + if (CollectionUtils.isEmpty(jobCodes)) { | ||
| 198 | + jobCodes = signIns.stream().map(SignIn::getJobCode).collect(Collectors.toSet()); | ||
| 199 | + drivers = newDriverService.list(jobCodes); | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + Set<Long> schedulingIds = signIns.stream().map(SignIn::getSchedulingId).collect(Collectors.toSet()); | ||
| 203 | + List<LinggangScheduling> schedulings = schedulingService.listByIds(schedulingIds); | ||
| 204 | + | ||
| 205 | + Set<String> deviceIds = signIns.stream().map(SignIn::getDeviceId).collect(Collectors.toSet()); | ||
| 206 | + List<Equipment> equipmentList = equipmentService.listNameAndIDBydeviceIds(deviceIds); | ||
| 207 | + | ||
| 208 | + List<GetBeforeWorkListVo> vos = convertGetBeforeWorkListVos(signIns, drivers, schedulings, equipmentList); | ||
| 209 | + | ||
| 210 | + return ResponseResult.success(vos); | ||
| 211 | + } | ||
| 133 | 212 | ||
| 134 | 213 | ||
| 135 | /*** | 214 | /*** |
| @@ -202,6 +281,64 @@ public class DssDriverController extends BaseController { | @@ -202,6 +281,64 @@ public class DssDriverController extends BaseController { | ||
| 202 | return driver; | 281 | return driver; |
| 203 | } | 282 | } |
| 204 | 283 | ||
| 284 | + private NewDriver convertGetBeforeWorkListDTO(GetBeforeWorkListDTO dto) { | ||
| 285 | + Boolean flag = Boolean.TRUE; | ||
| 286 | + NewDriver newDriver = new NewDriver(); | ||
| 287 | + if (StringUtils.isNotEmpty(dto.getIcCardNo())) { | ||
| 288 | + newDriver.setIcRfid(dto.getIcCardNo()); | ||
| 289 | + flag = Boolean.FALSE; | ||
| 290 | + } | ||
| 291 | + if (StringUtils.isNotEmpty(dto.getDriver())) { | ||
| 292 | + newDriver.setPersonnelName(dto.getDriver()); | ||
| 293 | + newDriver.setJobCode(dto.getDriver()); | ||
| 294 | + newDriver.setIcCardCode(dto.getDriver()); | ||
| 295 | + flag = Boolean.FALSE; | ||
| 296 | + } | ||
| 297 | + | ||
| 298 | + return flag ? null : newDriver; | ||
| 299 | + } | ||
| 300 | + | ||
| 301 | + private SignIn convertSignIn(GetBeforeWorkListDTO dto) { | ||
| 302 | + SignIn signIn = new SignIn(); | ||
| 303 | + Boolean flag = Boolean.TRUE; | ||
| 304 | + if (Objects.nonNull(dto.getCheckTime())) { | ||
| 305 | + signIn.setCreateTime(dto.getCheckTime()); | ||
| 306 | + flag = false; | ||
| 307 | + } | ||
| 308 | + | ||
| 309 | + if (Objects.nonNull(dto.getDrunkStatus())) { | ||
| 310 | + switch (dto.getDrunkStatus()) { | ||
| 311 | + case 0: | ||
| 312 | + signIn.setExType(0); | ||
| 313 | + flag = false; | ||
| 314 | + break; | ||
| 315 | + case 11: | ||
| 316 | + signIn.setExType(44); | ||
| 317 | + flag = false; | ||
| 318 | + break; | ||
| 319 | + | ||
| 320 | + case 12: | ||
| 321 | + signIn.setExType(3); | ||
| 322 | + flag = false; | ||
| 323 | + break; | ||
| 324 | + } | ||
| 325 | + } | ||
| 326 | + | ||
| 327 | + if (Objects.nonNull(dto.getCheckResult())) { | ||
| 328 | + switch (dto.getCheckResult()) { | ||
| 329 | + case 0: | ||
| 330 | + signIn.setStatus(1); | ||
| 331 | + flag = false; | ||
| 332 | + break; | ||
| 333 | + case 1: | ||
| 334 | + signIn.setStatus(2); | ||
| 335 | + flag = false; | ||
| 336 | + break; | ||
| 337 | + } | ||
| 338 | + } | ||
| 339 | + return flag ? null : signIn; | ||
| 340 | + } | ||
| 341 | + | ||
| 205 | private SignIn convertSignIn(DssSignDTO dto) { | 342 | private SignIn convertSignIn(DssSignDTO dto) { |
| 206 | SignIn signIn = new SignIn(); | 343 | SignIn signIn = new SignIn(); |
| 207 | signIn.setDeviceId(dto.getDevice()); | 344 | signIn.setDeviceId(dto.getDevice()); |
| @@ -269,5 +406,83 @@ public class DssDriverController extends BaseController { | @@ -269,5 +406,83 @@ public class DssDriverController extends BaseController { | ||
| 269 | return vo; | 406 | return vo; |
| 270 | } | 407 | } |
| 271 | 408 | ||
| 409 | + private LinggangScheduling convertScheduling(GetBusPlanListDTO dto) { | ||
| 410 | + LinggangScheduling scheduling = new LinggangScheduling(); | ||
| 411 | + if (Objects.equals(0, dto.getDateType())) { | ||
| 412 | + scheduling.setScheduleDate(new Date()); | ||
| 413 | + } else if (Objects.equals(1, dto.getDateType())) { | ||
| 414 | + scheduling.setScheduleDate(DateUtils.addDays(new Date(), 1)); | ||
| 415 | + } | ||
| 416 | + | ||
| 417 | + return scheduling; | ||
| 418 | + } | ||
| 419 | + | ||
| 420 | + private Map<String, Object> convertGetBusPlanListVo(IPage<LinggangScheduling> iPage, GetBusPlanListDTO dto, List<CarInfo> carInfos) { | ||
| 421 | + if (Objects.isNull(iPage)) { | ||
| 422 | + return null; | ||
| 423 | + } | ||
| 424 | + Map<String, Object> result = new HashMap<>(); | ||
| 425 | + result.put("total", iPage.getTotal()); | ||
| 426 | + result.put("size", dto.getPageRow()); | ||
| 427 | + result.put("current", dto.getPageNumber()); | ||
| 428 | + | ||
| 429 | + if (CollectionUtils.isNotEmpty(iPage.getRecords())) { | ||
| 430 | + List<GetBusPlanListVo> vos = iPage.getRecords().stream().map(scheduling -> { | ||
| 431 | + GetBusPlanListVo vo = new GetBusPlanListVo(); | ||
| 432 | + vo.setDriverName(scheduling.getName()); | ||
| 433 | + vo.setSelfCode(scheduling.getNbbm()); | ||
| 434 | + if (CollectionUtils.isNotEmpty(carInfos)) { | ||
| 435 | + Optional<CarInfo> optional = carInfos.stream().filter(c -> Objects.equals(c.getNbbm(), scheduling.getNbbm())).findFirst(); | ||
| 436 | + if (optional.isPresent()) { | ||
| 437 | + vo.setCarNo(optional.get().getPlateNum()); | ||
| 438 | + } | ||
| 439 | + } | ||
| 440 | + vo.setRouteName(scheduling.getLineName()); | ||
| 441 | + vo.setFache(new Date(scheduling.getFcsjT())); | ||
| 442 | + | ||
| 443 | + return vo; | ||
| 444 | + }).collect(Collectors.toList()); | ||
| 445 | + result.put("records", vos); | ||
| 446 | + } | ||
| 447 | + return result; | ||
| 448 | + } | ||
| 449 | + | ||
| 450 | + private List<GetBeforeWorkListVo> convertGetBeforeWorkListVos(List<SignIn> signIns, List<NewDriver> drivers, List<LinggangScheduling> schedulings, | ||
| 451 | + List<Equipment> equipmentList) { | ||
| 452 | + if (CollectionUtils.isEmpty(signIns)) { | ||
| 453 | + return Collections.emptyList(); | ||
| 454 | + } | ||
| 455 | + return signIns.stream().map(s -> { | ||
| 456 | + GetBeforeWorkListVo vo = new GetBeforeWorkListVo(); | ||
| 457 | + vo.setCheckTime(s.getCreateTime()); | ||
| 458 | + if (CollectionUtils.isNotEmpty(schedulings)) { | ||
| 459 | + Optional<LinggangScheduling> optional = schedulings.stream().filter(sc -> Objects.equals(sc.getId(), s.getSchedulingId())).findFirst(); | ||
| 460 | + if (optional.isPresent()) { | ||
| 461 | + vo.setRouteName(optional.get().getLineName()); | ||
| 462 | + } | ||
| 463 | + } | ||
| 464 | + | ||
| 465 | + if (CollectionUtils.isNotEmpty(drivers)) { | ||
| 466 | + Optional<NewDriver> optional = drivers.stream().filter(d -> Objects.equals(d.getJobCode(), s.getJobCode())).findFirst(); | ||
| 467 | + if (optional.isPresent()) { | ||
| 468 | + vo.setStaffId(Convert.toStr(optional.get().getId())); | ||
| 469 | + vo.setStaffName(optional.get().getPersonnelName()); | ||
| 470 | + vo.setIcCardNo(optional.get().getIcCardCode()); | ||
| 471 | + } | ||
| 472 | + } | ||
| 473 | + | ||
| 474 | + if (CollectionUtils.isNotEmpty(equipmentList)) { | ||
| 475 | + Optional<Equipment> optional = equipmentList.stream().filter(e -> Objects.equals(e.getDeviceId(), s.getDeviceId())).findFirst(); | ||
| 476 | + if (optional.isPresent()) { | ||
| 477 | + vo.setDeviceName(optional.get().getSiteName()); | ||
| 478 | + } | ||
| 479 | + } | ||
| 480 | + vo.setCheckResult(Convert.toStr(s.getStatus())); | ||
| 481 | + vo.setDrunkNum(Convert.toStr(s.getAlcoholIntake())); | ||
| 482 | + | ||
| 483 | + return vo; | ||
| 484 | + }).collect(Collectors.toList()); | ||
| 485 | + } | ||
| 486 | + | ||
| 272 | 487 | ||
| 273 | } | 488 | } |
Bsth-admin/src/main/java/com/ruoyi/controller/dss/KeyBoxController.java
| @@ -201,7 +201,23 @@ public class KeyBoxController extends BaseController { | @@ -201,7 +201,23 @@ public class KeyBoxController extends BaseController { | ||
| 201 | return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); | 201 | return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); |
| 202 | } | 202 | } |
| 203 | List<LinggangKeyWorkLocation> locations = convert(dto); | 203 | List<LinggangKeyWorkLocation> locations = convert(dto); |
| 204 | - ResponseResult<Boolean> responseResult = linggangKeyWorkLocationService.updateTakeKey(locations); | 204 | + ResponseResult<Boolean> responseResult = linggangKeyWorkLocationService.updateTakeKey(locations, LinggangKeyWorkLocation.LinggangKeyWorkLocationTypeEnum.TAKE_OUT); |
| 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 | + | ||
| 213 | + @PostMapping(value = "Driver/TurnKey") | ||
| 214 | + @ApiModelProperty(value = "21.人员归还钥匙") | ||
| 215 | + public ResponseResult<TakeKeyVo> turnKey(@Valid TakeKeyDTO dto, BindingResult bindingResult) { | ||
| 216 | + if (bindingResult.hasErrors()) { | ||
| 217 | + return ResponseResult.error(bindingResult.getFieldError().getDefaultMessage()); | ||
| 218 | + } | ||
| 219 | + List<LinggangKeyWorkLocation> locations = convert(dto); | ||
| 220 | + ResponseResult<Boolean> responseResult = linggangKeyWorkLocationService.updateTakeKey(locations, LinggangKeyWorkLocation.LinggangKeyWorkLocationTypeEnum.REPAY); | ||
| 205 | if (Objects.isNull(responseResult)) { | 221 | if (Objects.isNull(responseResult)) { |
| 206 | return ResponseResult.error(); | 222 | return ResponseResult.error(); |
| 207 | } | 223 | } |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/driver/dto/GetBeforeWorkListDTO.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.driver.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 java.util.Date; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * @author liujun | ||
| 14 | + * @date 2024年07月24日 16:32 | ||
| 15 | + */ | ||
| 16 | +@Data | ||
| 17 | +@ApiModel(value = "获取酒测记录列表") | ||
| 18 | +@Accessors(chain = true) | ||
| 19 | +@EqualsAndHashCode(callSuper = false) | ||
| 20 | +public class GetBeforeWorkListDTO implements java.io.Serializable { | ||
| 21 | + | ||
| 22 | + private static final long serialVersionUID = -19813580197166104L; | ||
| 23 | + | ||
| 24 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 25 | + @ApiModelProperty(value = "酒测时间") | ||
| 26 | + private Date checkTime; | ||
| 27 | + | ||
| 28 | + @ApiModelProperty(value = "IC卡号") | ||
| 29 | + private String icCardNo; | ||
| 30 | + | ||
| 31 | + @ApiModelProperty(value = "酒测状态 0正常,11饮酒,12醉酒") | ||
| 32 | + private Integer drunkStatus; | ||
| 33 | + | ||
| 34 | + @ApiModelProperty(value = "体温状态 0正常,1异常") | ||
| 35 | + private Integer tempStatus; | ||
| 36 | + | ||
| 37 | + @ApiModelProperty(value = "模糊查询 姓名/卡号/工号") | ||
| 38 | + private String driver; | ||
| 39 | + @ApiModelProperty(value = "岗前检测结果 0通过,1不通过") | ||
| 40 | + private Integer checkResult; | ||
| 41 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/driver/dto/GetBusPlanListDTO.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.driver.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 | + | ||
| 11 | +/** | ||
| 12 | + * @author liujun | ||
| 13 | + * @date 2024年07月22日 13:42 | ||
| 14 | + */ | ||
| 15 | +@Data | ||
| 16 | +@ApiModel(value = "查询司机排班计划信息") | ||
| 17 | +@Accessors(chain = true) | ||
| 18 | +@EqualsAndHashCode(callSuper = false) | ||
| 19 | +public class GetBusPlanListDTO implements java.io.Serializable{ | ||
| 20 | + | ||
| 21 | + private static final long serialVersionUID = 7253500856181067506L; | ||
| 22 | + | ||
| 23 | + @NotEmpty(message = "设备上线号不能为空") | ||
| 24 | + @ApiModelProperty(value = "设备上线号",required = true) | ||
| 25 | + private String device; | ||
| 26 | + | ||
| 27 | + @NotEmpty(message = "卡号不能为空") | ||
| 28 | + @ApiModelProperty(value = "卡号",required = true) | ||
| 29 | + private Integer driverCode; | ||
| 30 | + | ||
| 31 | + @NotEmpty(message = "数据类型为空") | ||
| 32 | + @ApiModelProperty(value = "数据类型;0今天,1明天,2/null全部",required = true,example = "1") | ||
| 33 | + private Integer dateType; | ||
| 34 | + | ||
| 35 | + @NotEmpty(message = "第几页为空") | ||
| 36 | + @ApiModelProperty(value = "第几页",required = true,example = "1") | ||
| 37 | + private Integer pageNumber; | ||
| 38 | + | ||
| 39 | + @NotEmpty(message = "每页条数为空") | ||
| 40 | + @ApiModelProperty(value = "每页条数",required = true,example = "1") | ||
| 41 | + private Integer pageRow; | ||
| 42 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/driver/vo/GetBeforeWorkListVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.driver.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.EqualsAndHashCode; | ||
| 9 | +import lombok.NoArgsConstructor; | ||
| 10 | +import lombok.experimental.Accessors; | ||
| 11 | + | ||
| 12 | +import java.util.Date; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * @author liujun | ||
| 16 | + * @date 2024年07月24日 16:37 | ||
| 17 | + */ | ||
| 18 | + | ||
| 19 | +@Data | ||
| 20 | +@NoArgsConstructor | ||
| 21 | +@AllArgsConstructor | ||
| 22 | +@ApiModel(value = "获取酒测记录列表") | ||
| 23 | +@Accessors(chain = true) | ||
| 24 | +@EqualsAndHashCode(callSuper = false) | ||
| 25 | +public class GetBeforeWorkListVo { | ||
| 26 | + | ||
| 27 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 28 | + @ApiModelProperty(value = "酒测时间") | ||
| 29 | + private Date checkTime; | ||
| 30 | + @ApiModelProperty(value = "场站名称") | ||
| 31 | + private String yarnName; | ||
| 32 | + @ApiModelProperty(value = "线路名称") | ||
| 33 | + private String routeName; | ||
| 34 | + @ApiModelProperty(value = "员工ID") | ||
| 35 | + private String staffId; | ||
| 36 | + @ApiModelProperty(value = "员工姓名") | ||
| 37 | + private String staffName; | ||
| 38 | + @ApiModelProperty(value = "IC卡号") | ||
| 39 | + private String icCardNo; | ||
| 40 | + @ApiModelProperty(value = "测试结果 0通过,1不通过") | ||
| 41 | + private String checkResult; | ||
| 42 | + | ||
| 43 | + @ApiModelProperty(value = "体温") | ||
| 44 | + private String temperature; | ||
| 45 | + @ApiModelProperty(value = "体温状态 0正常,1异常") | ||
| 46 | + private String tempStatus; | ||
| 47 | + @ApiModelProperty(value = "酒精含量") | ||
| 48 | + private String drunkNum; | ||
| 49 | + @ApiModelProperty(value = "酒测状态 0正常,11饮酒,12醉酒") | ||
| 50 | + private String drunkStatus; | ||
| 51 | + @ApiModelProperty(value = "表情 0无情绪,1愤怒,2厌恶,3恐惧,4高兴,5伤心,6惊讶") | ||
| 52 | + private String emotion; | ||
| 53 | + @ApiModelProperty(value = "收缩压") | ||
| 54 | + private String diastolicPressure; | ||
| 55 | + @ApiModelProperty(value = "舒张压") | ||
| 56 | + private String systolicPressure; | ||
| 57 | + @ApiModelProperty(value = "心率值") | ||
| 58 | + private String heartRate; | ||
| 59 | + @ApiModelProperty(value = "血氧值") | ||
| 60 | + private String oxygenValue; | ||
| 61 | + @ApiModelProperty(value = "设备名称") | ||
| 62 | + private String deviceName; | ||
| 63 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/dss/driver/vo/GetBusPlanListVo.java
0 → 100644
| 1 | +package com.ruoyi.domain.dss.driver.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.EqualsAndHashCode; | ||
| 9 | +import lombok.NoArgsConstructor; | ||
| 10 | +import lombok.experimental.Accessors; | ||
| 11 | + | ||
| 12 | +import java.util.Date; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * @author liujun | ||
| 16 | + * @date 2024年07月22日 13:47 | ||
| 17 | + */ | ||
| 18 | +@Data | ||
| 19 | +@NoArgsConstructor | ||
| 20 | +@AllArgsConstructor | ||
| 21 | +@ApiModel(value = "司机排班计划信息") | ||
| 22 | +@Accessors(chain = true) | ||
| 23 | +@EqualsAndHashCode(callSuper = false) | ||
| 24 | +public class GetBusPlanListVo implements java.io.Serializable { | ||
| 25 | + | ||
| 26 | + private static final long serialVersionUID = 6822862763627861841L; | ||
| 27 | + | ||
| 28 | + | ||
| 29 | + @ApiModelProperty(value = "驾驶员名称") | ||
| 30 | + private String driverName; | ||
| 31 | + @ApiModelProperty(value = "车自编号") | ||
| 32 | + private String selfCode; | ||
| 33 | + @ApiModelProperty(value = "车牌号") | ||
| 34 | + private String carNo; | ||
| 35 | + @ApiModelProperty(value = "班次类型: 早班/晚班/全天班") | ||
| 36 | + private String planType; | ||
| 37 | + | ||
| 38 | + @ApiModelProperty(value = "线路名") | ||
| 39 | + private String routeName; | ||
| 40 | + @ApiModelProperty(value = "行车方向 1上行,2下行") | ||
| 41 | + private String upDown; | ||
| 42 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
| 43 | + @ApiModelProperty(value = "发车时间;格式为:yyyy-MM-dd HH:mm:ss") | ||
| 44 | + private Date fache; | ||
| 45 | + @ApiModelProperty(value = "起点站名") | ||
| 46 | + private String startStation; | ||
| 47 | +} |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/LinggangKeyWorkLocation.java
| @@ -99,9 +99,12 @@ public class LinggangKeyWorkLocation { | @@ -99,9 +99,12 @@ public class LinggangKeyWorkLocation { | ||
| 99 | */ | 99 | */ |
| 100 | @TableField(exist = false) | 100 | @TableField(exist = false) |
| 101 | private String key; | 101 | private String key; |
| 102 | + /***状态:1 是归还;0是借出*/ | ||
| 103 | + @Excel(name = "状态:1 是归还;0是借出") | ||
| 104 | + private java.lang.Integer type; | ||
| 102 | 105 | ||
| 103 | 106 | ||
| 104 | - public static enum LinggangKeyWorkLocationEventTypeEnum { | 107 | + public enum LinggangKeyWorkLocationEventTypeEnum { |
| 105 | TAKE_OUT(0, "取出"), | 108 | TAKE_OUT(0, "取出"), |
| 106 | REPAY(1, "归还"), | 109 | REPAY(1, "归还"), |
| 107 | ADMINISTRATOR_OPERATION(16, "管理员操作"), | 110 | ADMINISTRATOR_OPERATION(16, "管理员操作"), |
| @@ -140,6 +143,45 @@ public class LinggangKeyWorkLocation { | @@ -140,6 +143,45 @@ public class LinggangKeyWorkLocation { | ||
| 140 | } | 143 | } |
| 141 | 144 | ||
| 142 | 145 | ||
| 146 | + public enum LinggangKeyWorkLocationTypeEnum { | ||
| 147 | + | ||
| 148 | + TAKE_OUT(0, "取出"), | ||
| 149 | + | ||
| 150 | + REPAY(1, "归还"), | ||
| 151 | + | ||
| 152 | + ; | ||
| 153 | + | ||
| 154 | + private String label; | ||
| 155 | + private Integer value; | ||
| 156 | + | ||
| 157 | + LinggangKeyWorkLocationTypeEnum(Integer value, String label) { | ||
| 158 | + this.value = value; | ||
| 159 | + this.label = label; | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + public String getLabel() { | ||
| 163 | + return label; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + public Integer getValue() { | ||
| 167 | + return value; | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + public static LinggangKeyWorkLocationTypeEnum getObj(Integer value) { | ||
| 171 | + if (Objects.isNull(value)) { | ||
| 172 | + return null; | ||
| 173 | + } | ||
| 174 | + Optional<LinggangKeyWorkLocationTypeEnum> optional = Arrays.stream(LinggangKeyWorkLocationTypeEnum.values()) | ||
| 175 | + .filter(l -> Objects.equals(l.getValue(), value)).findFirst(); | ||
| 176 | + return optional.isPresent() ? optional.get() : null; | ||
| 177 | + } | ||
| 178 | + | ||
| 179 | + public static String getLabel(Integer value) { | ||
| 180 | + LinggangKeyWorkLocationTypeEnum eventTypeEnum = getObj(value); | ||
| 181 | + return Objects.isNull(eventTypeEnum) ? null : eventTypeEnum.getLabel(); | ||
| 182 | + } | ||
| 183 | + } | ||
| 184 | + | ||
| 143 | @Override | 185 | @Override |
| 144 | public String toString() { | 186 | public String toString() { |
| 145 | return com.alibaba.fastjson2.JSON.toJSONString(this); | 187 | return com.alibaba.fastjson2.JSON.toJSONString(this); |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/dto/LinggangKeyWorkLocationAddDTO.java
| 1 | package com.ruoyi.domain.key.location.dto; | 1 | package com.ruoyi.domain.key.location.dto; |
| 2 | 2 | ||
| 3 | +import com.ruoyi.common.annotation.Excel; | ||
| 3 | import io.swagger.annotations.ApiModel; | 4 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 5 | import io.swagger.annotations.ApiModelProperty; |
| 5 | import lombok.Data; | 6 | import lombok.Data; |
| @@ -59,6 +60,10 @@ public class LinggangKeyWorkLocationAddDTO implements java.io.Serializable { | @@ -59,6 +60,10 @@ public class LinggangKeyWorkLocationAddDTO implements java.io.Serializable { | ||
| 59 | @ApiModelProperty(value="排班ID") | 60 | @ApiModelProperty(value="排班ID") |
| 60 | private Long schedulingId; | 61 | private Long schedulingId; |
| 61 | 62 | ||
| 63 | + /***状态:1 是归还;0是借出*/ | ||
| 64 | + @Excel(name = "状态:1 是归还;0是借出") | ||
| 65 | + private java.lang.Integer type; | ||
| 66 | + | ||
| 62 | /***操作人员*/ | 67 | /***操作人员*/ |
| 63 | @ApiModelProperty(value = "操作人员") | 68 | @ApiModelProperty(value = "操作人员") |
| 64 | private String operator; | 69 | private String operator; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/dto/LinggangKeyWorkLocationQueryDTO.java
| 1 | package com.ruoyi.domain.key.location.dto; | 1 | package com.ruoyi.domain.key.location.dto; |
| 2 | 2 | ||
| 3 | +import com.ruoyi.common.annotation.Excel; | ||
| 3 | import io.swagger.annotations.ApiModel; | 4 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 5 | import io.swagger.annotations.ApiModelProperty; |
| 5 | import lombok.Data; | 6 | import lombok.Data; |
| @@ -55,6 +56,10 @@ public class LinggangKeyWorkLocationQueryDTO implements java.io.Serializable { | @@ -55,6 +56,10 @@ public class LinggangKeyWorkLocationQueryDTO implements java.io.Serializable { | ||
| 55 | @ApiModelProperty(value="排班ID") | 56 | @ApiModelProperty(value="排班ID") |
| 56 | private Long schedulingId; | 57 | private Long schedulingId; |
| 57 | 58 | ||
| 59 | + /***状态:1 是归还;0是借出*/ | ||
| 60 | + @Excel(name = "状态:1 是归还;0是借出") | ||
| 61 | + private java.lang.Integer type; | ||
| 62 | + | ||
| 58 | /***排班时间*/ | 63 | /***排班时间*/ |
| 59 | @ApiModelProperty(value="排班时间") | 64 | @ApiModelProperty(value="排班时间") |
| 60 | private java.util.Date scheduleDate; | 65 | private java.util.Date scheduleDate; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/dto/LinggangKeyWorkLocationUpdateDTO.java
| 1 | package com.ruoyi.domain.key.location.dto; | 1 | package com.ruoyi.domain.key.location.dto; |
| 2 | 2 | ||
| 3 | +import com.ruoyi.common.annotation.Excel; | ||
| 3 | import io.swagger.annotations.ApiModel; | 4 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 5 | import io.swagger.annotations.ApiModelProperty; |
| 5 | import lombok.Data; | 6 | import lombok.Data; |
| @@ -58,6 +59,10 @@ public class LinggangKeyWorkLocationUpdateDTO implements java.io.Serializable { | @@ -58,6 +59,10 @@ public class LinggangKeyWorkLocationUpdateDTO implements java.io.Serializable { | ||
| 58 | /***排班ID*/ | 59 | /***排班ID*/ |
| 59 | @ApiModelProperty(value="排班ID") | 60 | @ApiModelProperty(value="排班ID") |
| 60 | private Long schedulingId; | 61 | private Long schedulingId; |
| 62 | + | ||
| 63 | + /***状态:1 是归还;0是借出*/ | ||
| 64 | + @Excel(name = "状态:1 是归还;0是借出") | ||
| 65 | + private java.lang.Integer type; | ||
| 61 | /***操作人员*/ | 66 | /***操作人员*/ |
| 62 | @ApiModelProperty(value = "操作人员") | 67 | @ApiModelProperty(value = "操作人员") |
| 63 | private String operator; | 68 | private String operator; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/dto/LinggangKeyWorkLocationUpdateStatusDTO.java
| 1 | package com.ruoyi.domain.key.location.dto; | 1 | package com.ruoyi.domain.key.location.dto; |
| 2 | 2 | ||
| 3 | +import com.ruoyi.common.annotation.Excel; | ||
| 3 | import io.swagger.annotations.ApiModel; | 4 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 5 | import io.swagger.annotations.ApiModelProperty; |
| 5 | import lombok.Data; | 6 | import lombok.Data; |
| @@ -58,6 +59,10 @@ public class LinggangKeyWorkLocationUpdateStatusDTO implements java.io.Serializa | @@ -58,6 +59,10 @@ public class LinggangKeyWorkLocationUpdateStatusDTO implements java.io.Serializa | ||
| 58 | /***排班ID*/ | 59 | /***排班ID*/ |
| 59 | @ApiModelProperty(value = "排班ID") | 60 | @ApiModelProperty(value = "排班ID") |
| 60 | private Long schedulingId; | 61 | private Long schedulingId; |
| 62 | + | ||
| 63 | + /***状态:1 是归还;0是借出*/ | ||
| 64 | + @Excel(name = "状态:1 是归还;0是借出") | ||
| 65 | + private java.lang.Integer type; | ||
| 61 | /***操作人员*/ | 66 | /***操作人员*/ |
| 62 | @ApiModelProperty(value = "操作人员") | 67 | @ApiModelProperty(value = "操作人员") |
| 63 | private String operator; | 68 | private String operator; |
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/vo/LinggangKeyWorkLocationVO.java
| 1 | package com.ruoyi.domain.key.location.vo; | 1 | package com.ruoyi.domain.key.location.vo; |
| 2 | 2 | ||
| 3 | +import com.ruoyi.common.annotation.Excel; | ||
| 3 | import io.swagger.annotations.ApiModel; | 4 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 5 | import io.swagger.annotations.ApiModelProperty; |
| 5 | - | 6 | +import lombok.AllArgsConstructor; |
| 6 | import lombok.Data; | 7 | import lombok.Data; |
| 7 | import lombok.EqualsAndHashCode; | 8 | import lombok.EqualsAndHashCode; |
| 8 | -import lombok.experimental.Accessors; | ||
| 9 | import lombok.NoArgsConstructor; | 9 | import lombok.NoArgsConstructor; |
| 10 | -import lombok.AllArgsConstructor; | 10 | +import lombok.experimental.Accessors; |
| 11 | 11 | ||
| 12 | @Data | 12 | @Data |
| 13 | @NoArgsConstructor | 13 | @NoArgsConstructor |
| @@ -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 | + /***状态:1 是归还;0是借出*/ | ||
| 64 | + @Excel(name = "状态:1 是归还;0是借出") | ||
| 65 | + private java.lang.Integer type; | ||
| 66 | + | ||
| 63 | /***排班ID*/ | 67 | /***排班ID*/ |
| 64 | @ApiModelProperty(value = "排班ID") | 68 | @ApiModelProperty(value = "排班ID") |
| 65 | private Long schedulingId; | 69 | private Long schedulingId; |
Bsth-admin/src/main/java/com/ruoyi/equipment/service/IEquipmentService.java
| @@ -59,6 +59,8 @@ public interface IEquipmentService extends IService<Equipment> { | @@ -59,6 +59,8 @@ public interface IEquipmentService extends IService<Equipment> { | ||
| 59 | */ | 59 | */ |
| 60 | List<Equipment> listNameAndIDByIds(Collection<Integer> ids); | 60 | List<Equipment> listNameAndIDByIds(Collection<Integer> ids); |
| 61 | 61 | ||
| 62 | + List<Equipment> listNameAndIDBydeviceIds(Collection<String> deviceIds); | ||
| 63 | + | ||
| 62 | /** | 64 | /** |
| 63 | * 查询设备信息列表 | 65 | * 查询设备信息列表 |
| 64 | * | 66 | * |
Bsth-admin/src/main/java/com/ruoyi/equipment/service/impl/EquipmentServiceImpl.java
| @@ -82,6 +82,17 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment | @@ -82,6 +82,17 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment | ||
| 82 | return list(wrapper); | 82 | return list(wrapper); |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | + @Override | ||
| 86 | + public List<Equipment> listNameAndIDBydeviceIds(Collection<String> deviceIds) { | ||
| 87 | + if (CollectionUtils.isEmpty(deviceIds)) { | ||
| 88 | + return Collections.emptyList(); | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + LambdaQueryWrapper<Equipment> wrapper = new LambdaQueryWrapper<>(); | ||
| 92 | + wrapper.in(Equipment::getDeviceId, deviceIds); | ||
| 93 | + return list(wrapper); | ||
| 94 | + } | ||
| 95 | + | ||
| 85 | /** | 96 | /** |
| 86 | * 查询设备信息列表 | 97 | * 查询设备信息列表 |
| 87 | * | 98 | * |
Bsth-admin/src/main/java/com/ruoyi/in/domain/SignIn.java
| 1 | package com.ruoyi.in.domain; | 1 | package com.ruoyi.in.domain; |
| 2 | 2 | ||
| 3 | -import java.io.UnsupportedEncodingException; | ||
| 4 | -import java.math.BigDecimal; | ||
| 5 | - | 3 | +import com.ruoyi.common.annotation.Excel; |
| 4 | +import com.ruoyi.common.core.domain.BaseEntity; | ||
| 6 | import io.swagger.annotations.ApiModel; | 5 | import io.swagger.annotations.ApiModel; |
| 7 | import io.swagger.annotations.ApiModelProperty; | 6 | import io.swagger.annotations.ApiModelProperty; |
| 8 | import lombok.Data; | 7 | import lombok.Data; |
| 9 | -import org.apache.commons.lang3.builder.ToStringBuilder; | ||
| 10 | -import org.apache.commons.lang3.builder.ToStringStyle; | ||
| 11 | -import com.ruoyi.common.annotation.Excel; | ||
| 12 | -import com.ruoyi.common.core.domain.BaseEntity; | ||
| 13 | 8 | ||
| 14 | import javax.validation.constraints.NotBlank; | 9 | import javax.validation.constraints.NotBlank; |
| 15 | import javax.validation.constraints.NotNull; | 10 | import javax.validation.constraints.NotNull; |
| 11 | +import java.math.BigDecimal; | ||
| 16 | 12 | ||
| 17 | /** | 13 | /** |
| 18 | * 签到对象 sign_in | 14 | * 签到对象 sign_in |
| @@ -95,8 +91,13 @@ public class SignIn extends BaseEntity { | @@ -95,8 +91,13 @@ public class SignIn extends BaseEntity { | ||
| 95 | @Excel(name = "酒精摄入量") | 91 | @Excel(name = "酒精摄入量") |
| 96 | @ApiModelProperty("酒精摄入量 52.12") | 92 | @ApiModelProperty("酒精摄入量 52.12") |
| 97 | private BigDecimal alcoholIntake; | 93 | private BigDecimal alcoholIntake; |
| 98 | - @Excel(name = "异常类型",readConverterExp = "0=无异常,1=超时异常,2=无排班异常,3=酒精超标异常") | 94 | + @Excel(name = "异常类型",readConverterExp = "0=无异常,1=超时异常,2=无排班异常,3=酒精超标异常,44饮酒") |
| 95 | + | ||
| 99 | @ApiModelProperty("异常类型") | 96 | @ApiModelProperty("异常类型") |
| 100 | private Integer exType; | 97 | private Integer exType; |
| 98 | + | ||
| 99 | + /***排班信息ID*/ | ||
| 100 | + @Excel(name = "排班信息ID") | ||
| 101 | + private java.lang.Long schedulingId; | ||
| 101 | } | 102 | } |
| 102 | 103 |
Bsth-admin/src/main/java/com/ruoyi/in/service/ISignInService.java
| @@ -9,6 +9,7 @@ import com.ruoyi.pojo.response.SignInResponseVo; | @@ -9,6 +9,7 @@ import com.ruoyi.pojo.response.SignInResponseVo; | ||
| 9 | 9 | ||
| 10 | import javax.servlet.http.HttpServletRequest; | 10 | import javax.servlet.http.HttpServletRequest; |
| 11 | import java.io.IOException; | 11 | import java.io.IOException; |
| 12 | +import java.util.Collection; | ||
| 12 | import java.util.List; | 13 | import java.util.List; |
| 13 | 14 | ||
| 14 | /** | 15 | /** |
| @@ -26,6 +27,8 @@ public interface ISignInService extends IService<SignIn> { | @@ -26,6 +27,8 @@ public interface ISignInService extends IService<SignIn> { | ||
| 26 | */ | 27 | */ |
| 27 | public SignIn selectSignInById(Long id); | 28 | public SignIn selectSignInById(Long id); |
| 28 | 29 | ||
| 30 | + List<SignIn> selectByEntityOrNewDriverId(SignIn signIn, Collection<String> jobCodes); | ||
| 31 | + | ||
| 29 | /** | 32 | /** |
| 30 | * 查询签到列表 | 33 | * 查询签到列表 |
| 31 | * | 34 | * |
Bsth-admin/src/main/java/com/ruoyi/in/service/impl/SignInServiceImpl.java
| @@ -111,6 +111,15 @@ public class SignInServiceImpl extends ServiceImpl<SignInMapper, SignIn> impleme | @@ -111,6 +111,15 @@ public class SignInServiceImpl extends ServiceImpl<SignInMapper, SignIn> impleme | ||
| 111 | return signInMapper.selectSignInById(id); | 111 | return signInMapper.selectSignInById(id); |
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | + @Override | ||
| 115 | + public List<SignIn> selectByEntityOrNewDriverId(SignIn signIn, Collection<String> jobCodes) { | ||
| 116 | + LambdaQueryWrapper<SignIn> wrapper = Objects.isNull(signIn) ? new LambdaQueryWrapper<>() : new LambdaQueryWrapper<>(signIn); | ||
| 117 | + if (CollectionUtils.isNotEmpty(jobCodes)) { | ||
| 118 | + wrapper.in(SignIn::getJobCode, jobCodes); | ||
| 119 | + } | ||
| 120 | + return list(wrapper); | ||
| 121 | + } | ||
| 122 | + | ||
| 114 | /** | 123 | /** |
| 115 | * 查询签到列表 | 124 | * 查询签到列表 |
| 116 | * | 125 | * |
Bsth-admin/src/main/java/com/ruoyi/service/driver/NewDriverService.java
| @@ -21,6 +21,8 @@ public interface NewDriverService extends IService<NewDriver> { | @@ -21,6 +21,8 @@ public interface NewDriverService extends IService<NewDriver> { | ||
| 21 | */ | 21 | */ |
| 22 | List<NewDriver> list(NewDriver entity); | 22 | List<NewDriver> list(NewDriver entity); |
| 23 | 23 | ||
| 24 | + List<NewDriver> listOficRfidAndLikePersonnelNameJobCodeIcCardCode(NewDriver newDriver); | ||
| 25 | + | ||
| 24 | /*** | 26 | /*** |
| 25 | * 根据工号查询司机 | 27 | * 根据工号查询司机 |
| 26 | * @author liujun | 28 | * @author liujun |
Bsth-admin/src/main/java/com/ruoyi/service/impl/driver/NewDriverServiceImpl.java
| @@ -64,6 +64,29 @@ public class NewDriverServiceImpl extends ServiceImpl<NewDriverMapper, NewDriver | @@ -64,6 +64,29 @@ public class NewDriverServiceImpl extends ServiceImpl<NewDriverMapper, NewDriver | ||
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | @Override | 66 | @Override |
| 67 | + public List<NewDriver> listOficRfidAndLikePersonnelNameJobCodeIcCardCode(NewDriver newDriver) { | ||
| 68 | + LambdaQueryWrapper<NewDriver> wrapper = new LambdaQueryWrapper<>(); | ||
| 69 | + | ||
| 70 | + if (org.apache.commons.lang3.StringUtils.isNotEmpty(newDriver.getIcRfid())) { | ||
| 71 | + wrapper.eq(NewDriver::getIcRfid, newDriver.getIcRfid()); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + if (org.apache.commons.lang3.StringUtils.isNotEmpty(newDriver.getPersonnelName())) { | ||
| 75 | + wrapper.like(NewDriver::getPersonnelName, newDriver.getPersonnelName()); | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + if (org.apache.commons.lang3.StringUtils.isNotEmpty(newDriver.getJobCode())) { | ||
| 79 | + wrapper.like(NewDriver::getJobCode, newDriver.getJobCode()); | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + if (org.apache.commons.lang3.StringUtils.isNotEmpty(newDriver.getIcCardCode())) { | ||
| 83 | + wrapper.like(NewDriver::getIcCardCode, newDriver.getIcCardCode()); | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + return list(wrapper); | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + @Override | ||
| 67 | public List<NewDriver> list(Collection<String> jobCodes) { | 90 | public List<NewDriver> list(Collection<String> jobCodes) { |
| 68 | if (CollectionUtils.isEmpty(jobCodes)) { | 91 | if (CollectionUtils.isEmpty(jobCodes)) { |
| 69 | return Collections.emptyList(); | 92 | return Collections.emptyList(); |
Bsth-admin/src/main/java/com/ruoyi/service/impl/key/location/LinggangKeyWorkLocationServiceImpl.java
| @@ -134,12 +134,12 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | @@ -134,12 +134,12 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | ||
| 134 | } | 134 | } |
| 135 | 135 | ||
| 136 | @Override | 136 | @Override |
| 137 | - public ResponseResult<Boolean> updateTakeKey(List<LinggangKeyWorkLocation> locations) { | 137 | + public ResponseResult<Boolean> updateTakeKey(List<LinggangKeyWorkLocation> locations, LinggangKeyWorkLocation.LinggangKeyWorkLocationTypeEnum typeEnum) { |
| 138 | if (CollectionUtils.isEmpty(locations)) { | 138 | if (CollectionUtils.isEmpty(locations)) { |
| 139 | return ResponseResult.success(); | 139 | return ResponseResult.success(); |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | - ResponseResult<List<LinggangKeyWorkLocation>> responseResult = checkTaskKey(locations); | 142 | + ResponseResult<List<LinggangKeyWorkLocation>> responseResult = checkTaskKey(locations,typeEnum); |
| 143 | if (!responseResult.isSuccess()) { | 143 | if (!responseResult.isSuccess()) { |
| 144 | return ResponseResult.error(responseResult.getCode(), responseResult.getMsg()); | 144 | return ResponseResult.error(responseResult.getCode(), responseResult.getMsg()); |
| 145 | } | 145 | } |
| @@ -259,7 +259,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | @@ -259,7 +259,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | ||
| 259 | } | 259 | } |
| 260 | } | 260 | } |
| 261 | 261 | ||
| 262 | - private ResponseResult<List<LinggangKeyWorkLocation>> checkTaskKey(List<LinggangKeyWorkLocation> locations) { | 262 | + private ResponseResult<List<LinggangKeyWorkLocation>> checkTaskKey(List<LinggangKeyWorkLocation> locations, LinggangKeyWorkLocation.LinggangKeyWorkLocationTypeEnum typeEnum) { |
| 263 | Set<String> keyCodes = locations.stream().map(LinggangKeyWorkLocation::getKey).collect(Collectors.toSet()); | 263 | Set<String> keyCodes = locations.stream().map(LinggangKeyWorkLocation::getKey).collect(Collectors.toSet()); |
| 264 | List<KeyInfo> keyInfos = keyInfoService.list(keyCodes); | 264 | List<KeyInfo> keyInfos = keyInfoService.list(keyCodes); |
| 265 | if (CollectionUtils.isEmpty(keyInfos)) { | 265 | if (CollectionUtils.isEmpty(keyInfos)) { |
| @@ -297,6 +297,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | @@ -297,6 +297,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl<LinggangKeyW | ||
| 297 | location.setDevice(l.getDevice()); | 297 | location.setDevice(l.getDevice()); |
| 298 | location.setKeyInfoId(l.getKeyInfoId()); | 298 | location.setKeyInfoId(l.getKeyInfoId()); |
| 299 | location.setScheduleDate(l.getScheduleDate()); | 299 | location.setScheduleDate(l.getScheduleDate()); |
| 300 | + location.setType(typeEnum.getValue()); | ||
| 300 | return location; | 301 | return location; |
| 301 | }).collect(Collectors.toList()); | 302 | }).collect(Collectors.toList()); |
| 302 | 303 |
Bsth-admin/src/main/java/com/ruoyi/service/key/location/LinggangKeyWorkLocationService.java
| @@ -56,7 +56,7 @@ public interface LinggangKeyWorkLocationService extends IService<LinggangKeyWork | @@ -56,7 +56,7 @@ public interface LinggangKeyWorkLocationService extends IService<LinggangKeyWork | ||
| 56 | * @param locations | 56 | * @param locations |
| 57 | * @return com.ruoyi.common.core.domain.ResponseResult<T> | 57 | * @return com.ruoyi.common.core.domain.ResponseResult<T> |
| 58 | */ | 58 | */ |
| 59 | - ResponseResult<Boolean> updateTakeKey(List<LinggangKeyWorkLocation> locations); | 59 | + ResponseResult<Boolean> updateTakeKey(List<LinggangKeyWorkLocation> locations, LinggangKeyWorkLocation.LinggangKeyWorkLocationTypeEnum typeEnum); |
| 60 | 60 | ||
| 61 | boolean deleteById(Long id); | 61 | boolean deleteById(Long id); |
| 62 | 62 |
Bsth-admin/src/main/resources/mapper/in/SignInMapper.xml
| @@ -20,6 +20,7 @@ | @@ -20,6 +20,7 @@ | ||
| 20 | <result property="remark" column="remark"/> | 20 | <result property="remark" column="remark"/> |
| 21 | <result property="posts" column="posts"/> | 21 | <result property="posts" column="posts"/> |
| 22 | <result property="name" column="personnel_name"/> | 22 | <result property="name" column="personnel_name"/> |
| 23 | + <result column="scheduling_id" jdbcType="INTEGER" property="schedulingId" /> | ||
| 23 | </resultMap> | 24 | </resultMap> |
| 24 | <resultMap type="SignIn" id="SignInResult"> | 25 | <resultMap type="SignIn" id="SignInResult"> |
| 25 | <result property="id" column="id"/> | 26 | <result property="id" column="id"/> |
| @@ -36,6 +37,7 @@ | @@ -36,6 +37,7 @@ | ||
| 36 | <result property="updateTime" column="update_time"/> | 37 | <result property="updateTime" column="update_time"/> |
| 37 | <result property="alcoholIntake" column="alcohol_intake"/> | 38 | <result property="alcoholIntake" column="alcohol_intake"/> |
| 38 | <result property="remark" column="remark"/> | 39 | <result property="remark" column="remark"/> |
| 40 | + <result column="scheduling_id" jdbcType="INTEGER" property="schedulingId" /> | ||
| 39 | </resultMap> | 41 | </resultMap> |
| 40 | 42 | ||
| 41 | <sql id="selectSignInVo"> | 43 | <sql id="selectSignInVo"> |
| @@ -52,7 +54,8 @@ | @@ -52,7 +54,8 @@ | ||
| 52 | type, | 54 | type, |
| 53 | update_time, | 55 | update_time, |
| 54 | alcohol_intake, | 56 | alcohol_intake, |
| 55 | - remark | 57 | + remark, |
| 58 | + scheduling_id | ||
| 56 | from sign_in | 59 | from sign_in |
| 57 | </sql> | 60 | </sql> |
| 58 | 61 | ||
| @@ -71,6 +74,7 @@ | @@ -71,6 +74,7 @@ | ||
| 71 | <if test="alcoholIntake != null ">and alcohol_intake = #{alcoholIntake}</if> | 74 | <if test="alcoholIntake != null ">and alcohol_intake = #{alcoholIntake}</if> |
| 72 | <if test="siteName != null ">and site_name = #{siteName}</if> | 75 | <if test="siteName != null ">and site_name = #{siteName}</if> |
| 73 | <if test="date != null ">and sign_in.create_time LIKE concat(#{date},'%')</if> | 76 | <if test="date != null ">and sign_in.create_time LIKE concat(#{date},'%')</if> |
| 77 | + <if test="null!=schedulingId"> scheduling_id = #{schedulingId}</if> | ||
| 74 | order by create_time desc | 78 | order by create_time desc |
| 75 | </select> | 79 | </select> |
| 76 | 80 | ||
| @@ -93,6 +97,7 @@ | @@ -93,6 +97,7 @@ | ||
| 93 | <if test="name != '' and name != null"> | 97 | <if test="name != '' and name != null"> |
| 94 | and driver.personnel_name = #{name} | 98 | and driver.personnel_name = #{name} |
| 95 | </if> | 99 | </if> |
| 100 | + <if test="null!=schedulingId"> scheduling_id = #{schedulingId}</if> | ||
| 96 | <if test="ids != null and ids.size() > 0"> | 101 | <if test="ids != null and ids.size() > 0"> |
| 97 | and sign_in.id in | 102 | and sign_in.id in |
| 98 | <foreach collection="ids" item="id" open="(" close=")" separator=","> | 103 | <foreach collection="ids" item="id" open="(" close=")" separator=","> |
| @@ -108,6 +113,7 @@ | @@ -108,6 +113,7 @@ | ||
| 108 | and DATE_FORMAT(create_time,'%Y-%m-%d') >= #{startTime} | 113 | and DATE_FORMAT(create_time,'%Y-%m-%d') >= #{startTime} |
| 109 | and DATE_FORMAT(create_time,'%Y-%m-%d') <= #{endTime} | 114 | and DATE_FORMAT(create_time,'%Y-%m-%d') <= #{endTime} |
| 110 | </if> | 115 | </if> |
| 116 | + <if test="null!=schedulingId"> scheduling_id = #{schedulingId}</if> | ||
| 111 | <if test="jobCode != '' and jobCode != null"> | 117 | <if test="jobCode != '' and jobCode != null"> |
| 112 | and jobCode = #{jobCode} | 118 | and jobCode = #{jobCode} |
| 113 | </if> | 119 | </if> |
| @@ -164,6 +170,7 @@ | @@ -164,6 +170,7 @@ | ||
| 164 | <if test="alcoholIntake != null">alcohol_intake,</if> | 170 | <if test="alcoholIntake != null">alcohol_intake,</if> |
| 165 | <if test="remark != null">remark,</if> | 171 | <if test="remark != null">remark,</if> |
| 166 | <if test="exType != null">ex_type,</if> | 172 | <if test="exType != null">ex_type,</if> |
| 173 | + <if test="null!=schedulingId">scheduling_id,</if> | ||
| 167 | </trim> | 174 | </trim> |
| 168 | <trim prefix="values (" suffix=")" suffixOverrides=","> | 175 | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| 169 | <if test="createTime != null">#{createTime},</if> | 176 | <if test="createTime != null">#{createTime},</if> |
| @@ -180,6 +187,7 @@ | @@ -180,6 +187,7 @@ | ||
| 180 | <if test="alcoholIntake != null">#{alcoholIntake},</if> | 187 | <if test="alcoholIntake != null">#{alcoholIntake},</if> |
| 181 | <if test="remark != null">#{remark},</if> | 188 | <if test="remark != null">#{remark},</if> |
| 182 | <if test="exType != null">#{exType},</if> | 189 | <if test="exType != null">#{exType},</if> |
| 190 | + <if test="null!=schedulingId">#{schedulingId,jdbcType=INTEGER},</if> | ||
| 183 | </trim> | 191 | </trim> |
| 184 | </insert> | 192 | </insert> |
| 185 | 193 | ||
| @@ -200,6 +208,7 @@ | @@ -200,6 +208,7 @@ | ||
| 200 | <if test="alcoholIntake != null">alcohol_intake = #{alcoholIntake},</if> | 208 | <if test="alcoholIntake != null">alcohol_intake = #{alcoholIntake},</if> |
| 201 | <if test="remark != null">remark = #{remark},</if> | 209 | <if test="remark != null">remark = #{remark},</if> |
| 202 | <if test="exType != null">ex_type = #{exType},</if> | 210 | <if test="exType != null">ex_type = #{exType},</if> |
| 211 | + <if test="null!=schedulingId"> scheduling_id = #{schedulingId},</if> | ||
| 203 | </trim> | 212 | </trim> |
| 204 | where id = #{id} | 213 | where id = #{id} |
| 205 | </update> | 214 | </update> |