Commit cb1a916dac65a64c265085acc819dd05c98abfd9

Authored by liujun001
1 parent b73e485d

蓝斯二期

Bsth-admin/sql/DDL.sql
1 ALTER TABLE key_work_location ADD type1 INT NULL COMMENT '状态:1 是归还;0是借出;2是初始状态'; 1 ALTER TABLE key_work_location ADD type1 INT NULL COMMENT '状态:1 是归还;0是借出;2是初始状态';
2 2
3 3
4 -ALTER TABLE scheduling ADD alcohol_count INT DEFAULT 2 NULL COMMENT '酒测次数';  
5 \ No newline at end of file 4 \ No newline at end of file
  5 +ALTER TABLE scheduling ADD alcohol_count INT DEFAULT 2 NULL COMMENT '酒测次数';
  6 +
  7 +
  8 +ALTER TABLE key_work_location ADD `time` DATETIME NULL;
Bsth-admin/src/main/java/com/ruoyi/controller/dss/KeyBoxController.java
@@ -26,6 +26,8 @@ import com.ruoyi.domain.venue.info.LinggangVenueInfo; @@ -26,6 +26,8 @@ import com.ruoyi.domain.venue.info.LinggangVenueInfo;
26 import com.ruoyi.equipment.domain.Equipment; 26 import com.ruoyi.equipment.domain.Equipment;
27 import com.ruoyi.equipment.service.IEquipmentService; 27 import com.ruoyi.equipment.service.IEquipmentService;
28 import com.ruoyi.framework.security.filter.JwtAuthenticationTokenFilter; 28 import com.ruoyi.framework.security.filter.JwtAuthenticationTokenFilter;
  29 +import com.ruoyi.scheduling.domain.SchedulingDateEntity;
  30 +import com.ruoyi.scheduling.service.SchedulingServiceV1;
29 import com.ruoyi.service.carinfo.CarInfoService; 31 import com.ruoyi.service.carinfo.CarInfoService;
30 import com.ruoyi.service.driver.NewDriverService; 32 import com.ruoyi.service.driver.NewDriverService;
31 import com.ruoyi.service.dss.KeyBoxVoService; 33 import com.ruoyi.service.dss.KeyBoxVoService;
@@ -83,6 +85,8 @@ public class KeyBoxController extends BaseController { @@ -83,6 +85,8 @@ public class KeyBoxController extends BaseController {
83 private NewDriverService newDriverService; 85 private NewDriverService newDriverService;
84 @Autowired 86 @Autowired
85 private LinggangVenueInfoService venueInfoService; 87 private LinggangVenueInfoService venueInfoService;
  88 + @Autowired
  89 + private SchedulingServiceV1 schedulingServiceV1;
86 90
87 @PostMapping(value = "/keybox/findKey") 91 @PostMapping(value = "/keybox/findKey")
88 @ApiOperation("钥匙信息查询") 92 @ApiOperation("钥匙信息查询")
@@ -285,7 +289,7 @@ public class KeyBoxController extends BaseController { @@ -285,7 +289,7 @@ public class KeyBoxController extends BaseController {
285 // return ResponseResult.error404(); 289 // return ResponseResult.error404();
286 // } 290 // }
287 291
288 - List<LinggangKeyWorkLocation> locations = convert(dto, schedulings, driver, keyInfos,0); 292 + List<LinggangKeyWorkLocation> locations = convert(dto, schedulings, driver, keyInfos, 0);
289 ResponseResult<Boolean> responseResult = linggangKeyWorkLocationService.updateTakeKey(locations, LinggangKeyWorkLocation.LinggangKeyWorkLocationTypeEnum.TAKE_OUT); 293 ResponseResult<Boolean> responseResult = linggangKeyWorkLocationService.updateTakeKey(locations, LinggangKeyWorkLocation.LinggangKeyWorkLocationTypeEnum.TAKE_OUT);
290 if (Objects.isNull(responseResult)) { 294 if (Objects.isNull(responseResult)) {
291 return ResponseResult.error(); 295 return ResponseResult.error();
@@ -335,7 +339,7 @@ public class KeyBoxController extends BaseController { @@ -335,7 +339,7 @@ public class KeyBoxController extends BaseController {
335 } 339 }
336 340
337 341
338 - List<LinggangKeyWorkLocation> locations = convert(dto, schedulings, driver, keyInfos,1); 342 + List<LinggangKeyWorkLocation> locations = convert(dto, schedulings, driver, keyInfos, 1);
339 // List<LinggangKeyWorkLocation> errorLocations = locations.stream().filter(l -> Objects.isNull(l.getKeyInfoId())).collect(Collectors.toList()); 343 // List<LinggangKeyWorkLocation> errorLocations = locations.stream().filter(l -> Objects.isNull(l.getKeyInfoId())).collect(Collectors.toList());
340 // locations = locations.stream().filter(l -> Objects.nonNull(l.getKeyInfoId())).collect(Collectors.toList()); 344 // locations = locations.stream().filter(l -> Objects.nonNull(l.getKeyInfoId())).collect(Collectors.toList());
341 ResponseResult<Boolean> responseResult = linggangKeyWorkLocationService.updateTakeKey(locations, LinggangKeyWorkLocation.LinggangKeyWorkLocationTypeEnum.REPAY); 345 ResponseResult<Boolean> responseResult = linggangKeyWorkLocationService.updateTakeKey(locations, LinggangKeyWorkLocation.LinggangKeyWorkLocationTypeEnum.REPAY);
@@ -431,22 +435,6 @@ public class KeyBoxController extends BaseController { @@ -431,22 +435,6 @@ public class KeyBoxController extends BaseController {
431 } 435 }
432 436
433 if (StringUtils.isNotEmpty(dto.getPlate())) { 437 if (StringUtils.isNotEmpty(dto.getPlate())) {
434 -// CarInfo carInfo = new CarInfo();  
435 -// carInfo.setNbbm(dto.getPlate());  
436 -// List<CarInfo> carInfos = carInfoService.listLikeNbbs(carInfo);  
437 -// if (CollectionUtils.isEmpty(carInfos)) {  
438 -// keyInfoIds = new HashSet<>();  
439 -// keyInfoIds.add(-10000);  
440 -// } else {  
441 -// Set<String> plateNums = carInfos.stream().map(CarInfo::getPlateNum).collect(Collectors.toSet());  
442 -// keyInfos = keyInfoService.listPlateNums(plateNums);  
443 -// if (CollectionUtils.isNotEmpty(keyInfos)) {  
444 -// keyInfoIds = keyInfos.stream().map(KeyInfo::getId).collect(Collectors.toSet());  
445 -// } else {  
446 -// keyInfoIds = new HashSet<>();  
447 -// keyInfoIds.add(-10000);  
448 -// }  
449 -// }  
450 438
451 KeyInfo keyInfo = new KeyInfo(); 439 KeyInfo keyInfo = new KeyInfo();
452 keyInfo.setPlateNum(dto.getPlate()); 440 keyInfo.setPlateNum(dto.getPlate());
@@ -492,10 +480,6 @@ public class KeyBoxController extends BaseController { @@ -492,10 +480,6 @@ public class KeyBoxController extends BaseController {
492 locationEq.setKeyInfoIds(keyInfoIds); 480 locationEq.setKeyInfoIds(keyInfoIds);
493 locationEq.setEndScheduleDate(org.apache.commons.lang3.time.DateUtils.addDays(locationEq.getStartScheduleDate(), 1)); 481 locationEq.setEndScheduleDate(org.apache.commons.lang3.time.DateUtils.addDays(locationEq.getStartScheduleDate(), 1));
494 482
495 -// Set<Integer> types = new HashSet<>();  
496 -// types.add(1);  
497 -// types.add(0);  
498 -// locationEq.setTypes(types);  
499 483
500 IPage<LinggangKeyWorkLocation> page = linggangKeyWorkLocationService.pageList(new Page<>(dto.getPageNum(), dto.getPageSize()), locationEq, new OrderEntity()); 484 IPage<LinggangKeyWorkLocation> page = linggangKeyWorkLocationService.pageList(new Page<>(dto.getPageNum(), dto.getPageSize()), locationEq, new OrderEntity());
501 485
@@ -505,20 +489,31 @@ public class KeyBoxController extends BaseController { @@ -505,20 +489,31 @@ public class KeyBoxController extends BaseController {
505 List<Equipment> yarnCabinetStateEqus = Collections.emptyList(); 489 List<Equipment> yarnCabinetStateEqus = Collections.emptyList();
506 490
507 if (Objects.nonNull(page) && CollectionUtils.isNotEmpty(page.getRecords())) { 491 if (Objects.nonNull(page) && CollectionUtils.isNotEmpty(page.getRecords())) {
  492 + Set<Integer> keyIds = page.getRecords().stream().map(LinggangKeyWorkLocation::getKeyInfoId).collect(Collectors.toSet());
  493 + Collection<KeyInfo> keyInfos1 = keyInfoService.listByIds(keyIds);
  494 + if (CollectionUtils.isNotEmpty(keyInfos1)) {
  495 + Set<String> plateNums = keyInfos1.stream().map(KeyInfo::getPlateNum).collect(Collectors.toSet());
  496 + carInfos = carInfoService.listPlateNums(plateNums);
  497 + if (CollectionUtils.isNotEmpty(carInfos)) {
  498 + Set<String> nbbms = carInfos.stream().map(CarInfo::getNbbm).collect(Collectors.toSet());
  499 + SchedulingDateEntity schedulingDateEntity = schedulingServiceV1.switchSchedulingDate(new Date());
  500 +
  501 + LinggangScheduling scheduling = new LinggangScheduling();
  502 + scheduling.setStartScheduleDate(schedulingDateEntity.getStartDate());
  503 + scheduling.setEndScheduleDate(schedulingDateEntity.getEndDate());
  504 +
  505 + schedulings = schedulingService.listNbbm(scheduling, nbbms);
  506 + }
  507 + }
508 508
509 -  
510 - Set<String> deviceCodes = page.getRecords().stream().map(LinggangKeyWorkLocation::getDevice).collect(Collectors.toSet());  
511 - yarnCabinetStateEqus = equipmentService.listNameAndIDBydeviceIds(deviceCodes);  
512 -  
513 - Set<Long> schedulingIds = page.getRecords().stream().map(LinggangKeyWorkLocation::getSchedulingId).collect(Collectors.toSet());  
514 - schedulings = schedulingService.listByIds(schedulingIds);  
515 if (CollectionUtils.isNotEmpty(schedulings)) { 509 if (CollectionUtils.isNotEmpty(schedulings)) {
516 - Set<String> nbbm = schedulings.stream().map(LinggangScheduling::getNbbm).collect(Collectors.toSet());  
517 - carInfos = carInfoService.list(nbbm);  
518 -  
519 Set<String> jobCode = schedulings.stream().map(LinggangScheduling::getJobCode).collect(Collectors.toSet()); 510 Set<String> jobCode = schedulings.stream().map(LinggangScheduling::getJobCode).collect(Collectors.toSet());
520 drivers = newDriverService.list(jobCode); 511 drivers = newDriverService.list(jobCode);
521 } 512 }
  513 +
  514 + Set<String> deviceCodes = page.getRecords().stream().map(LinggangKeyWorkLocation::getDevice).collect(Collectors.toSet());
  515 + yarnCabinetStateEqus = equipmentService.listNameAndIDBydeviceIds(deviceCodes);
  516 +
522 } 517 }
523 YarnCabinetStatePageVO pageVO = conertYarnCabinetStatePageVO(locations, equipment, errorCount, depositCount, equipmentList, locationsOfEq, page, schedulings, dto, carInfos, drivers, yarnCabinetStateEqus); 518 YarnCabinetStatePageVO pageVO = conertYarnCabinetStatePageVO(locations, equipment, errorCount, depositCount, equipmentList, locationsOfEq, page, schedulings, dto, carInfos, drivers, yarnCabinetStateEqus);
524 return ResponseResult.success(pageVO); 519 return ResponseResult.success(pageVO);
@@ -756,7 +751,7 @@ public class KeyBoxController extends BaseController { @@ -756,7 +751,7 @@ public class KeyBoxController extends BaseController {
756 return vo; 751 return vo;
757 } 752 }
758 753
759 - private List<LinggangKeyWorkLocation> convert(TakeKeyDTO dto, List<LinggangKeyWorkLocation> schedulings, NewDriver driver, List<KeyInfo> keyInfos,int ty) { 754 + private List<LinggangKeyWorkLocation> convert(TakeKeyDTO dto, List<LinggangKeyWorkLocation> schedulings, NewDriver driver, List<KeyInfo> keyInfos, int ty) {
760 if (CollectionUtils.isEmpty(dto.getKeyItem())) { 755 if (CollectionUtils.isEmpty(dto.getKeyItem())) {
761 return Collections.emptyList(); 756 return Collections.emptyList();
762 } 757 }
@@ -771,6 +766,7 @@ public class KeyBoxController extends BaseController { @@ -771,6 +766,7 @@ public class KeyBoxController extends BaseController {
771 location.setPlate(item.getPlate()); 766 location.setPlate(item.getPlate());
772 location.setTime(dto.getTime()); 767 location.setTime(dto.getTime());
773 location.setType1(ty); 768 location.setType1(ty);
  769 + location.setJobCode(dto.getStaffCode());
774 if (CollectionUtils.isNotEmpty(schedulings)) { 770 if (CollectionUtils.isNotEmpty(schedulings)) {
775 Optional<LinggangKeyWorkLocation> opt = schedulings.stream().filter(s -> Objects.equals(item.getKey(), s.getCabinetNo())).findFirst(); 771 Optional<LinggangKeyWorkLocation> opt = schedulings.stream().filter(s -> Objects.equals(item.getKey(), s.getCabinetNo())).findFirst();
776 if (opt.isPresent()) { 772 if (opt.isPresent()) {
Bsth-admin/src/main/java/com/ruoyi/domain/key/location/LinggangKeyWorkLocation.java
@@ -116,13 +116,14 @@ public class LinggangKeyWorkLocation { @@ -116,13 +116,14 @@ public class LinggangKeyWorkLocation {
116 @TableField(exist = false) 116 @TableField(exist = false)
117 private Set<Integer> types; 117 private Set<Integer> types;
118 118
119 - @TableField(exist = false)  
120 private Date time; 119 private Date time;
121 120
122 @TableField(exist = false) 121 @TableField(exist = false)
123 private Long zdsjT; 122 private Long zdsjT;
124 @TableField(exist = false) 123 @TableField(exist = false)
125 private Collection<Integer> keyInfoIds; 124 private Collection<Integer> keyInfoIds;
  125 + @TableField(exist = false)
  126 + private String jobCode;
126 127
127 public boolean importEquals(LinggangKeyWorkLocation location) { 128 public boolean importEquals(LinggangKeyWorkLocation location) {
128 if (Objects.isNull(location)) { 129 if (Objects.isNull(location)) {
Bsth-admin/src/main/java/com/ruoyi/job/KeyWorkLocalJob.java
1 package com.ruoyi.job; 1 package com.ruoyi.job;
2 2
  3 +import com.ruoyi.domain.scheduling.LinggangScheduling;
  4 +import com.ruoyi.service.driver.NewDriverService;
  5 +import com.ruoyi.service.key.location.LinggangKeyWorkLocationService;
  6 +import com.ruoyi.service.scheduling.LinggangSchedulingService;
  7 +import com.ruoyi.utils.DateUtil;
  8 +import lombok.extern.slf4j.Slf4j;
  9 +import org.apache.commons.lang3.StringUtils;
  10 +import org.apache.commons.lang3.time.DateUtils;
  11 +import org.springframework.beans.factory.InitializingBean;
  12 +import org.springframework.beans.factory.annotation.Autowired;
  13 +import org.springframework.stereotype.Component;
  14 +
  15 +import java.text.ParseException;
  16 +import java.util.Date;
  17 +import java.util.List;
  18 +import java.util.Set;
  19 +import java.util.stream.Collectors;
  20 +
3 /** 21 /**
4 * @author liujun 22 * @author liujun
5 * @date 2024年07月30日 15:12 23 * @date 2024年07月30日 15:12
6 */ 24 */
7 -public class KeyWorkLocalJob { 25 +@Component("KeyWorkLocalJob")
  26 +@Slf4j
  27 +public class KeyWorkLocalJob implements InitializingBean {
  28 + @Autowired
  29 + private NewDriverService newDriverService;
  30 + @Autowired
  31 + private LinggangSchedulingService linggangSchedulingService;
  32 + @Autowired
  33 + private LinggangKeyWorkLocationService keyWorkLocationService;
  34 +
  35 + public void insertKeyWorkLocalJob(){
  36 + String dateStr = DateUtil.YYYY_MM_DD_LINK.format(new Date());
  37 + Date date = null;
  38 + try {
  39 + date = DateUtil.YYYY_MM_DD_LINK.parse(dateStr);
  40 + } catch (ParseException e) {
  41 + throw new RuntimeException(e);
  42 + }
  43 +
  44 + LinggangScheduling scheduling = new LinggangScheduling();
  45 + scheduling.setStartScheduleDate(DateUtil.shortDate(date));
  46 + scheduling.setEndScheduleDate(DateUtils.addDays(scheduling.getStartScheduleDate(), 1));
  47 + scheduling.setType(100);
  48 +
  49 + List<LinggangScheduling> linggangSchedulings = linggangSchedulingService.list(scheduling);
  50 + Set<Long> idSets = linggangSchedulings.stream().map(LinggangScheduling::getId).collect(Collectors.toSet());
  51 + keyWorkLocationService.insertJob(dateStr, null, idSets);
  52 +
  53 + log.info("钥匙存放信息处理完毕");
  54 + }
  55 + @Override
  56 + public void afterPropertiesSet() throws Exception {
  57 +
  58 + }
8 } 59 }
Bsth-admin/src/main/java/com/ruoyi/job/NewDriverJob.java
@@ -15,15 +15,11 @@ import java.util.Date; @@ -15,15 +15,11 @@ import java.util.Date;
15 public class NewDriverJob implements InitializingBean { 15 public class NewDriverJob implements InitializingBean {
16 @Autowired 16 @Autowired
17 private NewDriverService newDriverService; 17 private NewDriverService newDriverService;
  18 +
18 @Transactional(rollbackFor = Exception.class) 19 @Transactional(rollbackFor = Exception.class)
19 public void syDriver() { 20 public void syDriver() {
20 - Date date = new Date();  
21 -  
22 - for (int i = 0; i < 2; i++) {  
23 - JwtAuthenticationTokenFilter.putMDC("job",JwtAuthenticationTokenFilter.getRandomValue());  
24 - newDriverService.insertJob();  
25 - }  
26 - 21 + newDriverService.insertJob();
  22 + log.info("人员信息同步完毕");
27 23
28 } 24 }
29 25
Bsth-admin/src/main/java/com/ruoyi/scheduling/domain/SchedulingDateEntity.java 0 → 100644
  1 +package com.ruoyi.scheduling.domain;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import java.util.Date;
  6 +
  7 +@Data
  8 +public class SchedulingDateEntity {
  9 + private Date startDate;
  10 + private Date endDate;
  11 +}
Bsth-admin/src/main/java/com/ruoyi/scheduling/service/SchedulingServiceV1.java
@@ -2,6 +2,7 @@ package com.ruoyi.scheduling.service; @@ -2,6 +2,7 @@ package com.ruoyi.scheduling.service;
2 2
3 import com.baomidou.mybatisplus.extension.service.IService; 3 import com.baomidou.mybatisplus.extension.service.IService;
4 import com.ruoyi.scheduling.domain.DriverSchedulingV1; 4 import com.ruoyi.scheduling.domain.DriverSchedulingV1;
  5 +import com.ruoyi.scheduling.domain.SchedulingDateEntity;
5 6
6 import java.util.Date; 7 import java.util.Date;
7 import java.util.List; 8 import java.util.List;
@@ -11,4 +12,6 @@ public interface SchedulingServiceV1 extends IService&lt;DriverSchedulingV1&gt; { @@ -11,4 +12,6 @@ public interface SchedulingServiceV1 extends IService&lt;DriverSchedulingV1&gt; {
11 List<DriverSchedulingV1> queryByJobCodeAndSchedulingDate(String jobCode, Date date); 12 List<DriverSchedulingV1> queryByJobCodeAndSchedulingDate(String jobCode, Date date);
12 13
13 List<DriverSchedulingV1> queryByNbbmAndDate(String nbbm, Date date); 14 List<DriverSchedulingV1> queryByNbbmAndDate(String nbbm, Date date);
  15 +
  16 + SchedulingDateEntity switchSchedulingDate(Date date);
14 } 17 }
Bsth-admin/src/main/java/com/ruoyi/scheduling/service/impl/SchedulingServiceV1Impl.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5 import com.ruoyi.common.utils.DateUtils; 5 import com.ruoyi.common.utils.DateUtils;
6 import com.ruoyi.scheduling.domain.DriverSchedulingV1; 6 import com.ruoyi.scheduling.domain.DriverSchedulingV1;
  7 +import com.ruoyi.scheduling.domain.SchedulingDateEntity;
7 import com.ruoyi.scheduling.mapper.SchedulingMapperV1; 8 import com.ruoyi.scheduling.mapper.SchedulingMapperV1;
8 import com.ruoyi.scheduling.service.SchedulingServiceV1; 9 import com.ruoyi.scheduling.service.SchedulingServiceV1;
9 import org.apache.commons.lang3.StringUtils; 10 import org.apache.commons.lang3.StringUtils;
@@ -18,33 +19,47 @@ public class SchedulingServiceV1Impl extends ServiceImpl&lt;SchedulingMapperV1, Dri @@ -18,33 +19,47 @@ public class SchedulingServiceV1Impl extends ServiceImpl&lt;SchedulingMapperV1, Dri
18 19
19 @Override 20 @Override
20 public List<DriverSchedulingV1> queryByJobCodeAndSchedulingDate(String jobCode, Date date) { 21 public List<DriverSchedulingV1> queryByJobCodeAndSchedulingDate(String jobCode, Date date) {
  22 +
  23 + LambdaQueryWrapper<DriverSchedulingV1> wrapper = new LambdaQueryWrapper<>();
  24 + SchedulingDateEntity entity = switchSchedulingDate(date);
  25 + wrapper.eq(DriverSchedulingV1::getJobCode, jobCode);
  26 + wrapper.and(wr -> {
  27 + wr.eq(DriverSchedulingV1::getScheduleDate, date).or().between(DriverSchedulingV1::getFcsjT, entity.getStartDate().getTime(), entity.getEndDate().getTime());
  28 + });
  29 + wrapper.orderByAsc(DriverSchedulingV1::getFcsjT);
  30 +
  31 + return list(wrapper);
  32 + }
  33 +
  34 + @Override
  35 + public List<DriverSchedulingV1> queryByNbbmAndDate(String nbbm, Date date) {
  36 + LambdaQueryWrapper<DriverSchedulingV1> wrapper = new LambdaQueryWrapper<>();
  37 + wrapper.eq(DriverSchedulingV1::getNbbm, nbbm).eq(DriverSchedulingV1::getScheduleDate, date);
  38 +
  39 + return list(wrapper);
  40 + }
  41 +
  42 + @Override
  43 + public SchedulingDateEntity switchSchedulingDate(Date date) {
21 String dateStr = DateUtils.FAST_YYYY_MM_DD.format(org.apache.commons.lang3.time.DateUtils.addDays(date, 1)); 44 String dateStr = DateUtils.FAST_YYYY_MM_DD.format(org.apache.commons.lang3.time.DateUtils.addDays(date, 1));
22 dateStr = StringUtils.join(dateStr, " 06:30:30"); 45 dateStr = StringUtils.join(dateStr, " 06:30:30");
23 - LambdaQueryWrapper<DriverSchedulingV1> wrapper = new LambdaQueryWrapper<>();  
24 try { 46 try {
25 Date date1 = DateUtils.FAST_YYYY_MM_DDHHMMSS.parse(dateStr); 47 Date date1 = DateUtils.FAST_YYYY_MM_DDHHMMSS.parse(dateStr);
26 48
27 -// dateStr = DateUtils.FAST_YYYY_MM_DD.format(org.apache.commons.lang3.time.DateUtils.addDays(date, -1));  
28 dateStr = DateUtils.FAST_YYYY_MM_DD.format(date); 49 dateStr = DateUtils.FAST_YYYY_MM_DD.format(date);
29 dateStr = StringUtils.join(dateStr, " 00:00:00"); 50 dateStr = StringUtils.join(dateStr, " 00:00:00");
30 Date date2 = DateUtils.FAST_YYYY_MM_DDHHMMSS.parse(dateStr); 51 Date date2 = DateUtils.FAST_YYYY_MM_DDHHMMSS.parse(dateStr);
31 52
32 - wrapper.eq(DriverSchedulingV1::getJobCode, jobCode);  
33 - wrapper.and(wr -> {  
34 - wr.eq(DriverSchedulingV1::getScheduleDate, date).or().between(DriverSchedulingV1::getFcsjT, date2.getTime(), date1.getTime());  
35 - });  
36 - wrapper.orderByAsc(DriverSchedulingV1::getFcsjT); 53 + SchedulingDateEntity entity = new SchedulingDateEntity();
  54 + entity.setStartDate(date2);
  55 + entity.setEndDate(date1);
  56 +
  57 + return entity;
37 } catch (ParseException e) { 58 } catch (ParseException e) {
38 throw new RuntimeException(e); 59 throw new RuntimeException(e);
39 } 60 }
40 - return list(wrapper); 61 +
41 } 62 }
42 63
43 - @Override  
44 - public List<DriverSchedulingV1> queryByNbbmAndDate(String nbbm, Date date) {  
45 - LambdaQueryWrapper<DriverSchedulingV1> wrapper = new LambdaQueryWrapper<>();  
46 - wrapper.eq(DriverSchedulingV1::getNbbm, nbbm).eq(DriverSchedulingV1::getScheduleDate, date);  
47 64
48 - return list(wrapper);  
49 - }  
50 } 65 }
Bsth-admin/src/main/java/com/ruoyi/service/ThreadJobService.java
@@ -544,8 +544,8 @@ public class ThreadJobService { @@ -544,8 +544,8 @@ public class ThreadJobService {
544 scheduling.setType(b.getType()); 544 scheduling.setType(b.getType());
545 545
546 return scheduling; 546 return scheduling;
547 - }).filter(s->!StringUtils.isBlank(s.getJobCode()) && !StringUtils.isBlank(s.getName()) && !StringUtils.equalsAnyIgnoreCase(s.getJobCode(),"null")  
548 - && !StringUtils.equalsAnyIgnoreCase(s.getName(),"null")).collect(Collectors.toList()); 547 + }).filter(s -> !StringUtils.isBlank(s.getJobCode()) && !StringUtils.isBlank(s.getName()) && !StringUtils.equalsAnyIgnoreCase(s.getJobCode(), "null")
  548 + && !StringUtils.equalsAnyIgnoreCase(s.getName(), "null")).collect(Collectors.toList());
549 if (CollectionUtils.isNotEmpty(schedulings)) { 549 if (CollectionUtils.isNotEmpty(schedulings)) {
550 Map<String, List<LinggangScheduling>> distinctMap = new HashMap<>(); 550 Map<String, List<LinggangScheduling>> distinctMap = new HashMap<>();
551 schedulings.stream().forEach(s -> { 551 schedulings.stream().forEach(s -> {
@@ -587,21 +587,21 @@ public class ThreadJobService { @@ -587,21 +587,21 @@ public class ThreadJobService {
587 if (CollectionUtils.isNotEmpty(sourceList)) { 587 if (CollectionUtils.isNotEmpty(sourceList)) {
588 588
589 List<LinggangScheduling> schedulings1 = schedulings; 589 List<LinggangScheduling> schedulings1 = schedulings;
590 - List<LinggangScheduling> removeSchedulings = sourceList.stream().filter(s->{  
591 - Optional<LinggangScheduling> opt = schedulings1.stream().filter(s1 -> s1.importEqus(s)).findFirst();  
592 - if (!opt.isPresent()) {  
593 - log.debug("需要删除的排班数据:[{}]", s);  
594 - } 590 + List<LinggangScheduling> removeSchedulings = sourceList.stream().filter(s -> {
  591 + Optional<LinggangScheduling> opt = schedulings1.stream().filter(s1 -> s1.importEqus(s) && Objects.nonNull(s1.getSignInId())).findFirst();
  592 + if (!opt.isPresent()) {
  593 + log.debug("需要删除的排班数据:[{}]", s);
  594 + }
595 return !opt.isPresent() && Objects.isNull(s.getSignInId()); 595 return !opt.isPresent() && Objects.isNull(s.getSignInId());
596 }).collect(Collectors.toList()); 596 }).collect(Collectors.toList());
597 - if(CollectionUtils.isNotEmpty(removeSchedulings)){  
598 - Set<Long> ids = removeSchedulings.stream().map(LinggangScheduling::getId).collect(Collectors.toSet());  
599 - schedulingService.removeByIds(ids);  
600 - schedulings = schedulings1.stream().filter(s->{  
601 - Optional<LinggangScheduling> opt = removeSchedulings.stream().filter(s1 -> s1.importEqus(s)).findFirst();  
602 - return !opt.isPresent();  
603 - }).collect(Collectors.toList());  
604 - } 597 + if (CollectionUtils.isNotEmpty(removeSchedulings)) {
  598 + Set<Long> ids = removeSchedulings.stream().map(LinggangScheduling::getId).collect(Collectors.toSet());
  599 + schedulingService.removeByIds(ids);
  600 + schedulings = schedulings1.stream().filter(s -> {
  601 + Optional<LinggangScheduling> opt = removeSchedulings.stream().filter(s1 -> s1.importEqus(s)).findFirst();
  602 + return !opt.isPresent();
  603 + }).collect(Collectors.toList());
  604 + }
605 605
606 schedulings = schedulings.stream().filter(s -> { 606 schedulings = schedulings.stream().filter(s -> {
607 Optional<LinggangScheduling> opt = sourceList.stream().filter(s1 -> s1.importEqus(s)).findFirst(); 607 Optional<LinggangScheduling> opt = sourceList.stream().filter(s1 -> s1.importEqus(s)).findFirst();
@@ -613,10 +613,10 @@ public class ThreadJobService { @@ -613,10 +613,10 @@ public class ThreadJobService {
613 } 613 }
614 614
615 if (CollectionUtils.isNotEmpty(schedulings)) { 615 if (CollectionUtils.isNotEmpty(schedulings)) {
616 - List<LinggangScheduling> schedulings1 = schedulings.stream().filter(s->StringUtils.isBlank(s.getJobCode()) || StringUtils.isBlank(s.getName())).collect(Collectors.toList());  
617 - if(CollectionUtils.isNotEmpty(schedulings1)){  
618 - System.out.println("bbbbbbbbbbb");  
619 - } 616 + List<LinggangScheduling> schedulings1 = schedulings.stream().filter(s -> StringUtils.isBlank(s.getJobCode()) || StringUtils.isBlank(s.getName())).collect(Collectors.toList());
  617 + if (CollectionUtils.isNotEmpty(schedulings1)) {
  618 + System.out.println("bbbbbbbbbbb");
  619 + }
620 for (LinggangScheduling linggangScheduling : schedulings) { 620 for (LinggangScheduling linggangScheduling : schedulings) {
621 schedulingService.save(linggangScheduling); 621 schedulingService.save(linggangScheduling);
622 } 622 }
Bsth-admin/src/main/java/com/ruoyi/service/carinfo/CarInfoService.java
@@ -25,6 +25,8 @@ public interface CarInfoService extends IService&lt;CarInfo&gt; { @@ -25,6 +25,8 @@ public interface CarInfoService extends IService&lt;CarInfo&gt; {
25 List<CarInfo> likePlateNumPlateNumTop30(CarInfo entity); 25 List<CarInfo> likePlateNumPlateNumTop30(CarInfo entity);
26 /**根据车辆自编号查询车辆信息*/ 26 /**根据车辆自编号查询车辆信息*/
27 List<CarInfo> list(Collection<String> nbbms); 27 List<CarInfo> list(Collection<String> nbbms);
  28 +
  29 + List<CarInfo> listPlateNums(Collection<String> plateNums);
28 List<CarInfo> list(CarInfo carInfo,Collection<String> nbbms); 30 List<CarInfo> list(CarInfo carInfo,Collection<String> nbbms);
29 31
30 /*** 32 /***
Bsth-admin/src/main/java/com/ruoyi/service/impl/carinfo/CarInfoServiceImpl.java
@@ -92,6 +92,16 @@ public class CarInfoServiceImpl extends ServiceImpl&lt;CarInfoMapper, CarInfo&gt; impl @@ -92,6 +92,16 @@ public class CarInfoServiceImpl extends ServiceImpl&lt;CarInfoMapper, CarInfo&gt; impl
92 } 92 }
93 93
94 @Override 94 @Override
  95 + public List<CarInfo> listPlateNums(Collection<String> plateNums) {
  96 + if (CollectionUtils.isEmpty(plateNums)) {
  97 + return Collections.emptyList();
  98 + }
  99 + LambdaQueryWrapper<CarInfo> wrapper = new LambdaQueryWrapper<>();
  100 + wrapper.in(CarInfo::getPlateNum, plateNums);
  101 + return list(wrapper);
  102 + }
  103 +
  104 + @Override
95 public List<CarInfo> list(CarInfo carInfo, Collection<String> nbbms) { 105 public List<CarInfo> list(CarInfo carInfo, Collection<String> nbbms) {
96 LambdaQueryWrapper<CarInfo> wrapper = null; 106 LambdaQueryWrapper<CarInfo> wrapper = null;
97 if (Objects.isNull(carInfo)) { 107 if (Objects.isNull(carInfo)) {
Bsth-admin/src/main/java/com/ruoyi/service/impl/key/location/LinggangKeyWorkLocationServiceImpl.java
@@ -21,6 +21,8 @@ import com.ruoyi.domain.scheduling.LinggangScheduling; @@ -21,6 +21,8 @@ import com.ruoyi.domain.scheduling.LinggangScheduling;
21 import com.ruoyi.domain.venue.info.LinggangVenueInfo; 21 import com.ruoyi.domain.venue.info.LinggangVenueInfo;
22 import com.ruoyi.equipment.domain.Equipment; 22 import com.ruoyi.equipment.domain.Equipment;
23 import com.ruoyi.equipment.service.IEquipmentService; 23 import com.ruoyi.equipment.service.IEquipmentService;
  24 +import com.ruoyi.in.domain.CalDriverScheduling;
  25 +import com.ruoyi.in.service.SignInServiceV1;
24 import com.ruoyi.mapper.key.location.LinggangKeyWorkLocationMapper; 26 import com.ruoyi.mapper.key.location.LinggangKeyWorkLocationMapper;
25 import com.ruoyi.service.carinfo.CarInfoService; 27 import com.ruoyi.service.carinfo.CarInfoService;
26 import com.ruoyi.service.equipment.heartbeat.LingangEquipmentHeartbeatService; 28 import com.ruoyi.service.equipment.heartbeat.LingangEquipmentHeartbeatService;
@@ -64,6 +66,8 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl&lt;LinggangKeyW @@ -64,6 +66,8 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl&lt;LinggangKeyW
64 private CarInfoService carInfoService; 66 private CarInfoService carInfoService;
65 @Autowired 67 @Autowired
66 private LingangEquipmentHeartbeatService equipmentHeartbeatService; 68 private LingangEquipmentHeartbeatService equipmentHeartbeatService;
  69 + @Autowired
  70 + private SignInServiceV1 signInServiceV1;
67 71
68 private static final String TAKE_KEY_MSG = "设备号:{0},钥匙编号:{1},在{2}的状态已经是:{3},无需在操作"; 72 private static final String TAKE_KEY_MSG = "设备号:{0},钥匙编号:{1},在{2}的状态已经是:{3},无需在操作";
69 private static final String TAKE_KEY_SUCESS = "设备号:{0},钥匙编号:{1},在{2}的状已经更新成功"; 73 private static final String TAKE_KEY_SUCESS = "设备号:{0},钥匙编号:{1},在{2}的状已经更新成功";
@@ -315,8 +319,8 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl&lt;LinggangKeyW @@ -315,8 +319,8 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl&lt;LinggangKeyW
315 if (CollectionUtils.isNotEmpty(source)) { 319 if (CollectionUtils.isNotEmpty(source)) {
316 locations = locations.stream().filter(l -> { 320 locations = locations.stream().filter(l -> {
317 Optional<LinggangKeyWorkLocation> opt = source.stream().filter(s -> s.importEquals(l)).findFirst(); 321 Optional<LinggangKeyWorkLocation> opt = source.stream().filter(s -> s.importEquals(l)).findFirst();
318 - if(opt.isPresent()){  
319 - log.debug("钥匙存放数据已经存在:[{}]",l); 322 + if (opt.isPresent()) {
  323 + log.debug("钥匙存放数据已经存在:[{}]", l);
320 } 324 }
321 return !opt.isPresent(); 325 return !opt.isPresent();
322 }).collect(Collectors.toList()); 326 }).collect(Collectors.toList());
@@ -356,6 +360,14 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl&lt;LinggangKeyW @@ -356,6 +360,14 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl&lt;LinggangKeyW
356 List<LinggangKeyWorkLocation> success = new ArrayList<>(); 360 List<LinggangKeyWorkLocation> success = new ArrayList<>();
357 List<LinggangKeyWorkLocation> error = new ArrayList<>(); 361 List<LinggangKeyWorkLocation> error = new ArrayList<>();
358 source.forEach(s -> { 362 source.forEach(s -> {
  363 + if (StringUtils.isNotEmpty(s.getJobCode()) && Objects.isNull(s.getSchedulingId())) {
  364 + Integer type = Objects.equals(typeEnum.getValue(), 0) ? 1 : 2;
  365 + CalDriverScheduling calDriverScheduling = signInServiceV1.findSchedulingByDateTime(s.getJobCode(), s.getTime(), type);
  366 + if (Objects.nonNull(calDriverScheduling) && Objects.nonNull(calDriverScheduling.getDriverScheduling())) {
  367 + s.setSchedulingId(calDriverScheduling.getDriverScheduling().getId());
  368 + }
  369 + }
  370 +
359 boolean flag = false; 371 boolean flag = false;
360 if (Objects.isNull(s.getId())) { 372 if (Objects.isNull(s.getId())) {
361 flag = save(s); 373 flag = save(s);
@@ -824,7 +836,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl&lt;LinggangKeyW @@ -824,7 +836,7 @@ public class LinggangKeyWorkLocationServiceImpl extends ServiceImpl&lt;LinggangKeyW
824 location.setScheduleDate(sc.getScheduleDate()); 836 location.setScheduleDate(sc.getScheduleDate());
825 location.setSchedulingId(sc.getId()); 837 location.setSchedulingId(sc.getId());
826 location.setType(2); 838 location.setType(2);
827 - if(Objects.equals(sc.getBcType(),BC_TYPE_OUT)){ 839 + if (Objects.equals(sc.getBcType(), BC_TYPE_OUT)) {
828 location.setType(3); 840 location.setType(3);
829 } 841 }
830 return location; 842 return location;
Bsth-admin/src/main/java/com/ruoyi/service/impl/scheduling/LinggangSchedulingServiceImpl.java
@@ -90,6 +90,15 @@ public class LinggangSchedulingServiceImpl extends ServiceImpl&lt;LinggangSchedulin @@ -90,6 +90,15 @@ public class LinggangSchedulingServiceImpl extends ServiceImpl&lt;LinggangSchedulin
90 public List<LinggangScheduling> listByCZ(LinggangScheduling entity) { 90 public List<LinggangScheduling> listByCZ(LinggangScheduling entity) {
91 return linggangSchedulingMapper.listByCZ(entity); 91 return linggangSchedulingMapper.listByCZ(entity);
92 } 92 }
  93 +
  94 + @Override
  95 + public List<LinggangScheduling> listNbbm(LinggangScheduling entity, Collection<String> nbbm) {
  96 + LambdaQueryWrapper<LinggangScheduling> wrapper = new LambdaQueryWrapper<>(entity);
  97 + switchScheduleDate(wrapper, entity);
  98 + wrapper.in(LinggangScheduling::getNbbm, nbbm);
  99 +
  100 + return list(wrapper);
  101 + }
93 // @Override 102 // @Override
94 // public List<LinggangScheduling> listOfSelect(LinggangScheduling entity) { 103 // public List<LinggangScheduling> listOfSelect(LinggangScheduling entity) {
95 // LambdaQueryWrapper<LinggangScheduling> wrapper = new LambdaQueryWrapper<>(entity); 104 // LambdaQueryWrapper<LinggangScheduling> wrapper = new LambdaQueryWrapper<>(entity);
Bsth-admin/src/main/java/com/ruoyi/service/scheduling/LinggangSchedulingService.java
@@ -29,6 +29,8 @@ public interface LinggangSchedulingService extends IService&lt;LinggangScheduling&gt; @@ -29,6 +29,8 @@ public interface LinggangSchedulingService extends IService&lt;LinggangScheduling&gt;
29 29
30 List<LinggangScheduling> listByCZ(LinggangScheduling entity); 30 List<LinggangScheduling> listByCZ(LinggangScheduling entity);
31 31
  32 + List<LinggangScheduling> listNbbm(LinggangScheduling entity,Collection<String> nbbm);
  33 +
32 // List<LinggangScheduling> listOfIds(java.util.Collection<java.lang.Integer> ids); 34 // List<LinggangScheduling> listOfIds(java.util.Collection<java.lang.Integer> ids);
33 // /*** 35 // /***
34 // *用于页面选择 36 // *用于页面选择
Bsth-admin/src/main/resources/application-druid-dev.yml
@@ -101,8 +101,8 @@ spring: @@ -101,8 +101,8 @@ spring:
101 redis: 101 redis:
102 # 地址 102 # 地址
103 # host: 121.41.83.61 103 # host: 121.41.83.61
104 - host: localhost  
105 - database: 2 104 + host: 192.168.168.124
  105 + database: 10
106 # password: "guzijian" 106 # password: "guzijian"
107 port: 6379 107 port: 6379
108 # 连接超时时间 108 # 连接超时时间