Commit 695549eb49b6bec7eaebcd1790e1dd15b38b3259
1 parent
1e56cac3
fix: 优化重新生成排班,生成时间记录优化
Showing
5 changed files
with
61 additions
and
16 deletions
Bsth-admin/src/main/java/com/ruoyi/mapper/RuleAttendanceMainHelpMapper.java
| @@ -2,6 +2,7 @@ package com.ruoyi.mapper; | @@ -2,6 +2,7 @@ package com.ruoyi.mapper; | ||
| 2 | 2 | ||
| 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| 4 | import com.ruoyi.domain.RuleAttendanceMainHelp; | 4 | import com.ruoyi.domain.RuleAttendanceMainHelp; |
| 5 | +import com.ruoyi.pojo.dto.AttendanceDto; | ||
| 5 | import com.ruoyi.pojo.vo.PeopleRequestVo; | 6 | import com.ruoyi.pojo.vo.PeopleRequestVo; |
| 6 | import org.apache.ibatis.annotations.Param; | 7 | import org.apache.ibatis.annotations.Param; |
| 7 | 8 | ||
| @@ -27,6 +28,8 @@ public interface RuleAttendanceMainHelpMapper extends BaseMapper<RuleAttendanceM | @@ -27,6 +28,8 @@ public interface RuleAttendanceMainHelpMapper extends BaseMapper<RuleAttendanceM | ||
| 27 | * @param helpList | 28 | * @param helpList |
| 28 | */ | 29 | */ |
| 29 | void insertHelpList(@Param("list") List<RuleAttendanceMainHelp> helpList); | 30 | void insertHelpList(@Param("list") List<RuleAttendanceMainHelp> helpList); |
| 31 | + | ||
| 32 | + List<RuleAttendanceMainHelp> queryNowMonthPeopleByJobCodes(@Param("list") List<AttendanceDto> peopleList, @Param("month") String month); | ||
| 30 | } | 33 | } |
| 31 | 34 | ||
| 32 | 35 |
Bsth-admin/src/main/java/com/ruoyi/service/RuleAttendanceMainHelpService.java
| @@ -2,6 +2,7 @@ package com.ruoyi.service; | @@ -2,6 +2,7 @@ package com.ruoyi.service; | ||
| 2 | 2 | ||
| 3 | import com.baomidou.mybatisplus.extension.service.IService; | 3 | import com.baomidou.mybatisplus.extension.service.IService; |
| 4 | import com.ruoyi.domain.RuleAttendanceMainHelp; | 4 | import com.ruoyi.domain.RuleAttendanceMainHelp; |
| 5 | +import com.ruoyi.pojo.dto.AttendanceDto; | ||
| 5 | import com.ruoyi.pojo.vo.PeopleRequestVo; | 6 | import com.ruoyi.pojo.vo.PeopleRequestVo; |
| 6 | import com.ruoyi.pojo.vo.TableMonthRequestVo; | 7 | import com.ruoyi.pojo.vo.TableMonthRequestVo; |
| 7 | 8 | ||
| @@ -22,4 +23,7 @@ public interface RuleAttendanceMainHelpService extends IService<RuleAttendanceMa | @@ -22,4 +23,7 @@ public interface RuleAttendanceMainHelpService extends IService<RuleAttendanceMa | ||
| 22 | List<RuleAttendanceMainHelp> queryNowMonthPeople(PeopleRequestVo vo); | 23 | List<RuleAttendanceMainHelp> queryNowMonthPeople(PeopleRequestVo vo); |
| 23 | 24 | ||
| 24 | void insertHelpList(List<RuleAttendanceMainHelp> helpList); | 25 | void insertHelpList(List<RuleAttendanceMainHelp> helpList); |
| 26 | + | ||
| 27 | + List<RuleAttendanceMainHelp> queryNowMonthPeopleByJobCodes(List<AttendanceDto> peopleList, String month); | ||
| 28 | + | ||
| 25 | } | 29 | } |
Bsth-admin/src/main/java/com/ruoyi/service/impl/AttendanceServiceImpl.java
| @@ -316,7 +316,7 @@ public class AttendanceServiceImpl implements AttendanceService { | @@ -316,7 +316,7 @@ public class AttendanceServiceImpl implements AttendanceService { | ||
| 316 | 316 | ||
| 317 | private void deleteScheduleByRule(AgainCreateRequestVo vo) { | 317 | private void deleteScheduleByRule(AgainCreateRequestVo vo) { |
| 318 | String strDate = LocalDate.now().toString(); | 318 | String strDate = LocalDate.now().toString(); |
| 319 | - String month = vo.getMonth().substring(0, vo.getMonth().lastIndexOf("-")); | 319 | + String month = vo.getMonth(); |
| 320 | String nowMonth = strDate.substring(0, strDate.lastIndexOf("-")); | 320 | String nowMonth = strDate.substring(0, strDate.lastIndexOf("-")); |
| 321 | int compare = month.compareTo(nowMonth); | 321 | int compare = month.compareTo(nowMonth); |
| 322 | if (compare > 0) { | 322 | if (compare > 0) { |
| @@ -371,6 +371,7 @@ public class AttendanceServiceImpl implements AttendanceService { | @@ -371,6 +371,7 @@ public class AttendanceServiceImpl implements AttendanceService { | ||
| 371 | } | 371 | } |
| 372 | ruleAttendanceMainList.addAll(mainList); | 372 | ruleAttendanceMainList.addAll(mainList); |
| 373 | } | 373 | } |
| 374 | + // 记录日志 | ||
| 374 | backCreatePeopleListLog(peopleList, ruleNumMap, dateList); | 375 | backCreatePeopleListLog(peopleList, ruleNumMap, dateList); |
| 375 | return ruleAttendanceMainList; | 376 | return ruleAttendanceMainList; |
| 376 | } | 377 | } |
| @@ -520,7 +521,14 @@ public class AttendanceServiceImpl implements AttendanceService { | @@ -520,7 +521,14 @@ public class AttendanceServiceImpl implements AttendanceService { | ||
| 520 | } | 521 | } |
| 521 | 522 | ||
| 522 | public void backCreatePeopleListLog(List<AttendanceDto> peopleList, Map<Integer, RuleNumDto> ruleNumDtoList, List<LocalDate> dateList) { | 523 | public void backCreatePeopleListLog(List<AttendanceDto> peopleList, Map<Integer, RuleNumDto> ruleNumDtoList, List<LocalDate> dateList) { |
| 523 | - List<RuleAttendanceMainHelp> helpList = new ArrayList<>(peopleList.size()); | 524 | + if (CollectionUtil.isEmpty(dateList)){ |
| 525 | + return; | ||
| 526 | + } | ||
| 527 | + String month = dateList.get(0).getYear() + "-" + dateList.get(0).getMonthValue(); | ||
| 528 | + List<RuleAttendanceMainHelp> monthPeople = helpService.queryNowMonthPeopleByJobCodes(peopleList,month); | ||
| 529 | + Map<String,Object> map = transFormMonthPeople(monthPeople); | ||
| 530 | + peopleList = peopleList.stream().filter(item->Objects.isNull(map.get(item.getJobCode()))).collect(Collectors.toList()); | ||
| 531 | + List<RuleAttendanceMainHelp> helpList = new ArrayList<>(monthPeople.size()); | ||
| 524 | LocalDate localDate = dateList.get(0); | 532 | LocalDate localDate = dateList.get(0); |
| 525 | Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); | 533 | Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); |
| 526 | for (AttendanceDto dto : peopleList) { | 534 | for (AttendanceDto dto : peopleList) { |
| @@ -533,6 +541,14 @@ public class AttendanceServiceImpl implements AttendanceService { | @@ -533,6 +541,14 @@ public class AttendanceServiceImpl implements AttendanceService { | ||
| 533 | helpService.insertHelpList(helpList); | 541 | helpService.insertHelpList(helpList); |
| 534 | } | 542 | } |
| 535 | 543 | ||
| 544 | + private Map<String, Object> transFormMonthPeople(List<RuleAttendanceMainHelp> monthPeople) { | ||
| 545 | + Map<String, Object> map = new HashMap<>(monthPeople.size()); | ||
| 546 | + for (RuleAttendanceMainHelp help : monthPeople) { | ||
| 547 | + map.put(help.getJobCode(),help); | ||
| 548 | + } | ||
| 549 | + return map; | ||
| 550 | + } | ||
| 551 | + | ||
| 536 | private List<PeopleResponseVo> mainTransformPeopleResponseVo(List<RuleAttendanceMain> mainList) { | 552 | private List<PeopleResponseVo> mainTransformPeopleResponseVo(List<RuleAttendanceMain> mainList) { |
| 537 | List<PeopleResponseVo> vos = new ArrayList<>(mainList.size()); | 553 | List<PeopleResponseVo> vos = new ArrayList<>(mainList.size()); |
| 538 | for (RuleAttendanceMain main : mainList) { | 554 | for (RuleAttendanceMain main : mainList) { |
Bsth-admin/src/main/java/com/ruoyi/service/impl/RuleAttendanceMainHelpServiceImpl.java
| 1 | package com.ruoyi.service.impl; | 1 | package com.ruoyi.service.impl; |
| 2 | +import cn.hutool.core.collection.CollectionUtil; | ||
| 2 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| 3 | import com.ruoyi.domain.RuleAttendanceMainHelp; | 4 | import com.ruoyi.domain.RuleAttendanceMainHelp; |
| 4 | import com.ruoyi.mapper.RuleAttendanceMainHelpMapper; | 5 | import com.ruoyi.mapper.RuleAttendanceMainHelpMapper; |
| 6 | +import com.ruoyi.pojo.dto.AttendanceDto; | ||
| 5 | import com.ruoyi.pojo.vo.PeopleRequestVo; | 7 | import com.ruoyi.pojo.vo.PeopleRequestVo; |
| 6 | import com.ruoyi.service.RuleAttendanceMainHelpService; | 8 | import com.ruoyi.service.RuleAttendanceMainHelpService; |
| 7 | import org.springframework.stereotype.Service; | 9 | import org.springframework.stereotype.Service; |
| 8 | 10 | ||
| 11 | +import java.util.Collection; | ||
| 9 | import java.util.List; | 12 | import java.util.List; |
| 10 | 13 | ||
| 11 | /** | 14 | /** |
| @@ -24,8 +27,16 @@ public class RuleAttendanceMainHelpServiceImpl extends ServiceImpl<RuleAttendanc | @@ -24,8 +27,16 @@ public class RuleAttendanceMainHelpServiceImpl extends ServiceImpl<RuleAttendanc | ||
| 24 | 27 | ||
| 25 | @Override | 28 | @Override |
| 26 | public void insertHelpList(List<RuleAttendanceMainHelp> helpList) { | 29 | public void insertHelpList(List<RuleAttendanceMainHelp> helpList) { |
| 30 | + if (CollectionUtil.isEmpty(helpList)){ | ||
| 31 | + return; | ||
| 32 | + } | ||
| 27 | baseMapper.insertHelpList(helpList); | 33 | baseMapper.insertHelpList(helpList); |
| 28 | } | 34 | } |
| 35 | + | ||
| 36 | + @Override | ||
| 37 | + public List<RuleAttendanceMainHelp> queryNowMonthPeopleByJobCodes(List<AttendanceDto> peopleList, String month) { | ||
| 38 | + return baseMapper.queryNowMonthPeopleByJobCodes(peopleList,month); | ||
| 39 | + } | ||
| 29 | } | 40 | } |
| 30 | 41 | ||
| 31 | 42 |
Bsth-admin/src/main/resources/mapper/RuleAttendanceMainHelpMapper.xml
| @@ -5,29 +5,30 @@ | @@ -5,29 +5,30 @@ | ||
| 5 | <mapper namespace="com.ruoyi.mapper.RuleAttendanceMainHelpMapper"> | 5 | <mapper namespace="com.ruoyi.mapper.RuleAttendanceMainHelpMapper"> |
| 6 | 6 | ||
| 7 | <resultMap id="BaseResultMap" type="com.ruoyi.domain.RuleAttendanceMainHelp"> | 7 | <resultMap id="BaseResultMap" type="com.ruoyi.domain.RuleAttendanceMainHelp"> |
| 8 | - <id property="id" column="id" jdbcType="INTEGER"/> | ||
| 9 | - <result property="name" column="name" jdbcType="VARCHAR"/> | ||
| 10 | - <result property="jobCode" column="job_code" jdbcType="VARCHAR"/> | ||
| 11 | - <result property="posts" column="posts" jdbcType="VARCHAR"/> | ||
| 12 | - <result property="dateFlag" column="dateFlag" jdbcType="DATE"/> | ||
| 13 | - <result property="fleetName" column="fleet_name" jdbcType="VARCHAR"/> | ||
| 14 | - <result property="ruleDictName" column="rule_dict_name" jdbcType="VARCHAR"/> | 8 | + <id property="id" column="id" jdbcType="INTEGER"/> |
| 9 | + <result property="name" column="name" jdbcType="VARCHAR"/> | ||
| 10 | + <result property="jobCode" column="job_code" jdbcType="VARCHAR"/> | ||
| 11 | + <result property="posts" column="posts" jdbcType="VARCHAR"/> | ||
| 12 | + <result property="dateFlag" column="dateFlag" jdbcType="DATE"/> | ||
| 13 | + <result property="fleetName" column="fleet_name" jdbcType="VARCHAR"/> | ||
| 14 | + <result property="ruleDictName" column="rule_dict_name" jdbcType="VARCHAR"/> | ||
| 15 | </resultMap> | 15 | </resultMap> |
| 16 | 16 | ||
| 17 | <sql id="Base_Column_List"> | 17 | <sql id="Base_Column_List"> |
| 18 | - id,`name`,job_code, | 18 | + id |
| 19 | + ,`name`,job_code, | ||
| 19 | posts,date_flag,fleet_name | 20 | posts,date_flag,fleet_name |
| 20 | </sql> | 21 | </sql> |
| 21 | <insert id="insertHelpList" useGeneratedKeys="true" keyColumn="id" keyProperty="id"> | 22 | <insert id="insertHelpList" useGeneratedKeys="true" keyColumn="id" keyProperty="id"> |
| 22 | insert into rule_attendance_main_help (`name`,job_code,posts,date_flag,fleet_name,rule_dict_name) values | 23 | insert into rule_attendance_main_help (`name`,job_code,posts,date_flag,fleet_name,rule_dict_name) values |
| 23 | <foreach collection="list" separator="," item="item" index="index"> | 24 | <foreach collection="list" separator="," item="item" index="index"> |
| 24 | ( | 25 | ( |
| 25 | - #{item.name}, | ||
| 26 | - #{item.jobCode}, | ||
| 27 | - #{item.posts}, | ||
| 28 | - #{item.dateFlag}, | ||
| 29 | - #{item.fleetName}, | ||
| 30 | - #{item.ruleDictName} | 26 | + #{item.name}, |
| 27 | + #{item.jobCode}, | ||
| 28 | + #{item.posts}, | ||
| 29 | + #{item.dateFlag}, | ||
| 30 | + #{item.fleetName}, | ||
| 31 | + #{item.ruleDictName} | ||
| 31 | ) | 32 | ) |
| 32 | </foreach> | 33 | </foreach> |
| 33 | on duplicate key update | 34 | on duplicate key update |
| @@ -45,4 +46,14 @@ | @@ -45,4 +46,14 @@ | ||
| 45 | and name = #{name} | 46 | and name = #{name} |
| 46 | </if> | 47 | </if> |
| 47 | </select> | 48 | </select> |
| 49 | + <select id="queryNowMonthPeopleByJobCodes" resultMap="BaseResultMap" | ||
| 50 | + resultType="com.ruoyi.domain.RuleAttendanceMainHelp"> | ||
| 51 | + SELECT * from rule_attendance_main_help WHERE DATE_FORMAT( date_flag, '%Y-%m' ) = #{month} | ||
| 52 | + <if test="list != null and list.size() > 0"> | ||
| 53 | + and job_code in | ||
| 54 | + <foreach collection="list" item="item" index="index" separator="," open="(" close=")"> | ||
| 55 | + #{item.jobCode} | ||
| 56 | + </foreach> | ||
| 57 | + </if> | ||
| 58 | + </select> | ||
| 48 | </mapper> | 59 | </mapper> |