Commit 09599febea19bd377d5b30080956f744f4b3444f
1 parent
c3754053
fix: 修改签到报表获取接口,使用左连接保证签到报表数据完整性
Showing
8 changed files
with
65 additions
and
17 deletions
Bsth-admin/src/main/java/com/ruoyi/driver/mapper/DriverMapper.java
Bsth-admin/src/main/java/com/ruoyi/driver/service/IDriverService.java
Bsth-admin/src/main/java/com/ruoyi/driver/service/impl/DriverServiceImpl.java
| ... | ... | @@ -547,6 +547,11 @@ public class DriverServiceImpl implements IDriverService { |
| 547 | 547 | sendNotice(nowTimerList); |
| 548 | 548 | } |
| 549 | 549 | |
| 550 | + @Override | |
| 551 | + public List<String> queryEmptyJob(List<String> jobList) { | |
| 552 | + return driverMapper.queryEmptyJob(jobList); | |
| 553 | + } | |
| 554 | + | |
| 550 | 555 | private void sendNotice(List<DriverSignInRecommendation> nowTimerList) { |
| 551 | 556 | List<SysNotice> noticeList = new ArrayList<>(nowTimerList.size()); |
| 552 | 557 | for (DriverSignInRecommendation item : nowTimerList) { | ... | ... |
Bsth-admin/src/main/java/com/ruoyi/job/DriverJob.java
| ... | ... | @@ -410,8 +410,11 @@ public class DriverJob implements InitializingBean { |
| 410 | 410 | for (int i = 2; i <= countPage; i++) { |
| 411 | 411 | drivers.addAll(getDrivers(date, getPersonInfo(accessToken, 100, i))); |
| 412 | 412 | } |
| 413 | - List<String> jobList = drivers.stream().map(driver -> driver.getJobCode()).collect(Collectors.toList()); | |
| 413 | + List<String> jobList = drivers.stream().map(Driver::getJobCode).collect(Collectors.toList()); | |
| 414 | + // 删除离职员工 | |
| 414 | 415 | handleNotEmptyJob(jobList); |
| 416 | + // 过滤已经存在的员工工号 | |
| 417 | + drivers = filterEmptyJob(drivers, jobList); | |
| 415 | 418 | // updateDrivers(drivers); |
| 416 | 419 | List<List<Driver>> splitList = ListUtils.splitList(drivers, 200); |
| 417 | 420 | for (List<Driver> driverList : splitList) { |
| ... | ... | @@ -427,6 +430,17 @@ public class DriverJob implements InitializingBean { |
| 427 | 430 | // } |
| 428 | 431 | } |
| 429 | 432 | |
| 433 | + private static List<Driver> filterEmptyJob(List<Driver> drivers, List<String> jobList) { | |
| 434 | + List<String> jobs = DRIVER_SERVICE.queryEmptyJob(jobList); | |
| 435 | + Map<String, String> jobMap = new HashMap<>(jobs.size()); | |
| 436 | + for (String job : jobs) { | |
| 437 | + jobMap.put(job, job); | |
| 438 | + } | |
| 439 | + | |
| 440 | + // 过滤 | |
| 441 | + return drivers.stream().filter(item -> StringUtils.isEmpty(jobMap.get(item.getJobCode()))).collect(Collectors.toList()); | |
| 442 | + } | |
| 443 | + | |
| 430 | 444 | private static void handleNotEmptyJob(List<String> jobList) { |
| 431 | 445 | DRIVER_SERVICE.deleteNotEmptyJob(jobList); |
| 432 | 446 | } | ... | ... |
Bsth-admin/src/main/java/com/ruoyi/pojo/response/ExportReportViewResponseVo.java
| ... | ... | @@ -39,6 +39,10 @@ public class ExportReportViewResponseVo { |
| 39 | 39 | @ExcelProperty(value = "线路") |
| 40 | 40 | private String lineName; |
| 41 | 41 | |
| 42 | + @ApiModelProperty("路牌") | |
| 43 | + @ExcelProperty(value = "路牌") | |
| 44 | + private String lpName; | |
| 45 | + | |
| 42 | 46 | @ApiModelProperty("部门") |
| 43 | 47 | @ExcelProperty(value = "部门") |
| 44 | 48 | @ColumnWidth(12) | ... | ... |
Bsth-admin/src/main/java/com/ruoyi/pojo/response/ReportViewResponseVo.java
Bsth-admin/src/main/resources/mapper/driver/DriverMapper.xml
| ... | ... | @@ -199,6 +199,17 @@ |
| 199 | 199 | FROM driver |
| 200 | 200 | -- WHERE driver.posts != "驾驶员" and driver.posts != "售票员" |
| 201 | 201 | </select> |
| 202 | + <select id="queryEmptyJob" resultType="java.lang.String"> | |
| 203 | + SELECT | |
| 204 | + d1.job_code | |
| 205 | + FROM | |
| 206 | + ( | |
| 207 | + SELECT job_code FROM driver WHERE job_code IN | |
| 208 | + <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> | |
| 209 | + #{item} | |
| 210 | + </foreach> | |
| 211 | + ) d1 | |
| 212 | + </select> | |
| 202 | 213 | |
| 203 | 214 | <insert id="insertDriver" parameterType="Driver" useGeneratedKeys="true" keyProperty="id"> |
| 204 | 215 | insert into driver |
| ... | ... | @@ -309,9 +320,9 @@ |
| 309 | 320 | <update id="updateSignStatusDriversByJobCodes"> |
| 310 | 321 | <foreach collection="list" item="item" separator=";"> |
| 311 | 322 | update driver set face_sign_in = 1,update_time = #{item.updateTime} |
| 312 | - <if test="item.image != null and item.image != ''"> | |
| 313 | - ,image = #{item.image} | |
| 314 | - </if> | |
| 323 | + <if test="item.image != null and item.image != ''"> | |
| 324 | + ,image = #{item.image} | |
| 325 | + </if> | |
| 315 | 326 | where job_code = #{item.jobCode,jdbcType=VARCHAR} |
| 316 | 327 | </foreach> |
| 317 | 328 | </update> |
| ... | ... | @@ -346,16 +357,16 @@ |
| 346 | 357 | <delete id="deleteNotEmptyJob"> |
| 347 | 358 | DELETE |
| 348 | 359 | FROM driver WHERE job_code NOT IN ( |
| 349 | - SELECT | |
| 350 | - d1.job_code | |
| 351 | - FROM | |
| 352 | - ( | |
| 353 | - SELECT job_code FROM driver WHERE job_code IN | |
| 354 | - <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> | |
| 355 | - #{item} | |
| 356 | - </foreach> | |
| 357 | - ) d1 | |
| 358 | - ) | |
| 360 | + SELECT | |
| 361 | + d1.job_code | |
| 362 | + FROM | |
| 363 | + ( | |
| 364 | + SELECT job_code FROM driver WHERE job_code IN | |
| 365 | + <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> | |
| 366 | + #{item} | |
| 367 | + </foreach> | |
| 368 | + ) d1 | |
| 369 | + ) | |
| 359 | 370 | </delete> |
| 360 | 371 | |
| 361 | 372 | ... | ... |
Bsth-admin/src/main/resources/mapper/driver_scheduling/DriverSchedulingMapper.xml
| ... | ... | @@ -57,10 +57,10 @@ |
| 57 | 57 | |
| 58 | 58 | <select id="queryToDay" resultType="com.ruoyi.domain.DriverScheduling" resultMap="Scheduling"> |
| 59 | 59 | select scheduling.*,driver.fleet_name fleetName from |
| 60 | - scheduling join driver on driver.job_code = scheduling.job_code | |
| 60 | + scheduling left join driver on driver.job_code = scheduling.job_code | |
| 61 | 61 | where schedule_date = #{date} |
| 62 | 62 | <if test="jobCode !=null and jobCode != ''"> |
| 63 | - and driver.job_code = #{jobCode} | |
| 63 | + and scheduling.job_code = #{jobCode} | |
| 64 | 64 | </if> |
| 65 | 65 | <if test="name !=null and name != ''"> |
| 66 | 66 | and `name` = #{name} | ... | ... |