Commit d34506017851de56367e02fae73691fb26bcf4ff
1 parent
5e0a6bbc
feat: 班次修改和规则修改设置。
Showing
5 changed files
with
62 additions
and
7 deletions
Bsth-admin/src/main/java/com/ruoyi/common/WeekEnum.java
Bsth-admin/src/main/java/com/ruoyi/num/service/impl/RuleNumServiceImpl.java
| ... | ... | @@ -8,18 +8,25 @@ import java.util.stream.Collectors; |
| 8 | 8 | import java.util.stream.Stream; |
| 9 | 9 | import cn.hutool.core.bean.BeanUtil; |
| 10 | 10 | import cn.hutool.core.collection.CollectionUtil; |
| 11 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
| 12 | +import com.ruoyi.common.exception.ServiceException; | |
| 11 | 13 | import com.ruoyi.common.utils.DateUtils; |
| 12 | 14 | import com.ruoyi.common.utils.SecurityUtils; |
| 15 | +import com.ruoyi.domain.RuleNumSetting; | |
| 13 | 16 | import com.ruoyi.pojo.dto.RuleNumDto; |
| 14 | 17 | import com.ruoyi.pojo.vo.RuleNumTemplateVo; |
| 15 | 18 | import com.ruoyi.pojo.vo.RuleNumVo; |
| 16 | 19 | import com.ruoyi.pojo.vo.SchedulingResponseVo; |
| 17 | 20 | import com.ruoyi.service.RuleNumSettingService; |
| 21 | +import com.ruoyi.utils.ToolUtils; | |
| 18 | 22 | import org.springframework.beans.factory.annotation.Autowired; |
| 19 | 23 | import org.springframework.stereotype.Service; |
| 20 | 24 | import com.ruoyi.num.mapper.RuleNumMapper; |
| 21 | 25 | import com.ruoyi.num.domain.RuleNum; |
| 22 | 26 | import com.ruoyi.num.service.IRuleNumService; |
| 27 | +import org.springframework.validation.BindException; | |
| 28 | +import org.springframework.web.bind.MethodArgumentNotValidException; | |
| 29 | + | |
| 23 | 30 | import static com.ruoyi.common.RuleSchedulingProperties.*; |
| 24 | 31 | |
| 25 | 32 | /** |
| ... | ... | @@ -75,6 +82,7 @@ public class RuleNumServiceImpl implements IRuleNumService |
| 75 | 82 | ruleNum.setUpdateBy(username); |
| 76 | 83 | ruleNum.setCreateTime(DateUtils.getNowDate()); |
| 77 | 84 | ruleNum.setUpdateTime(DateUtils.getNowDate()); |
| 85 | + ToolUtils.handlerRuleNum(ruleNum); | |
| 78 | 86 | return ruleNumMapper.insertRuleNum(ruleNum); |
| 79 | 87 | } |
| 80 | 88 | |
| ... | ... | @@ -87,6 +95,14 @@ public class RuleNumServiceImpl implements IRuleNumService |
| 87 | 95 | @Override |
| 88 | 96 | public int updateRuleNum(RuleNum ruleNum) |
| 89 | 97 | { |
| 98 | + // TODO 判断是否已绑定到排班设置中 | |
| 99 | + LambdaQueryWrapper<RuleNumSetting> qw = new LambdaQueryWrapper<>(); | |
| 100 | + qw.eq(RuleNumSetting::getRuleNumId,ruleNum.getId()); | |
| 101 | + List<RuleNumSetting> settingList = ruleNumSettingService.list(qw); | |
| 102 | + if (CollectionUtil.isNotEmpty(settingList)) { | |
| 103 | + throw new ServiceException("该班次已被绑定,无法修改,请解除绑定后再试!"); | |
| 104 | + } | |
| 105 | + ToolUtils.handlerRuleNum(ruleNum); | |
| 90 | 106 | ruleNum.setUpdateTime(DateUtils.getNowDate()); |
| 91 | 107 | ruleNum.setUpdateBy(ruleNum.getUpdateBy()); |
| 92 | 108 | return ruleNumMapper.updateRuleNum(ruleNum); | ... | ... |
Bsth-admin/src/main/java/com/ruoyi/scheduling/service/impl/RuleSchedulingServiceImpl.java
| ... | ... | @@ -9,6 +9,7 @@ import java.util.stream.Collectors; |
| 9 | 9 | |
| 10 | 10 | import cn.hutool.core.collection.CollectionUtil; |
| 11 | 11 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| 12 | +import com.ruoyi.common.exception.ServiceException; | |
| 12 | 13 | import com.ruoyi.common.utils.DateUtils; |
| 13 | 14 | import com.ruoyi.common.utils.SecurityUtils; |
| 14 | 15 | import com.ruoyi.domain.RuleNumSetting; |
| ... | ... | @@ -19,6 +20,7 @@ import com.ruoyi.pojo.vo.RuleSchedulingResponseVo; |
| 19 | 20 | import com.ruoyi.pojo.vo.RuleSchedulingVo; |
| 20 | 21 | import com.ruoyi.service.RuleNumSettingService; |
| 21 | 22 | import com.ruoyi.service.RuleSettingSchedulingService; |
| 23 | +import com.ruoyi.utils.ToolUtils; | |
| 22 | 24 | import org.springframework.beans.BeanUtils; |
| 23 | 25 | import org.springframework.beans.factory.annotation.Autowired; |
| 24 | 26 | import org.springframework.stereotype.Service; |
| ... | ... | @@ -83,6 +85,7 @@ public class RuleSchedulingServiceImpl implements IRuleSchedulingService { |
| 83 | 85 | Date date = DateUtils.getNowDate(); |
| 84 | 86 | ruleScheduling.setCreateTime(date); |
| 85 | 87 | ruleScheduling.setUpdateTime(date); |
| 88 | + ToolUtils.handleRuleScheduling(ruleScheduling); | |
| 86 | 89 | return ruleSchedulingMapper.insertRuleScheduling(ruleScheduling); |
| 87 | 90 | } |
| 88 | 91 | |
| ... | ... | @@ -106,8 +109,19 @@ public class RuleSchedulingServiceImpl implements IRuleSchedulingService { |
| 106 | 109 | @Override |
| 107 | 110 | public int updateRuleScheduling(RuleScheduling ruleScheduling) { |
| 108 | 111 | handleNewAddScheduling(ruleScheduling); |
| 112 | + // TODO 规则是否绑定 | |
| 113 | + LambdaQueryWrapper<RuleSettingScheduling> qw = new LambdaQueryWrapper<>(); | |
| 114 | + qw.eq(RuleSettingScheduling::getRuleSchedulingId,ruleScheduling.getId()); | |
| 115 | + List<RuleSettingScheduling> list = ruleSettingSchedulingService.list(qw); | |
| 116 | + if (CollectionUtil.isNotEmpty(list)) { | |
| 117 | + String ruleDictName = ruleNumSettingService.listByIds(list.stream() | |
| 118 | + .map(RuleSettingScheduling::getSettingId).collect(Collectors.toList())) | |
| 119 | + .stream().map(RuleNumSetting::getRuleDictName).distinct().collect(Collectors.joining(",")); | |
| 120 | + throw new ServiceException("该规则已经与" + ruleDictName + "等班次绑定,请解绑对应班次后修改!"); | |
| 121 | + } | |
| 109 | 122 | ruleScheduling.setUpdateTime(DateUtils.getNowDate()); |
| 110 | 123 | ruleScheduling.setUpdateBy(SecurityUtils.getUsername()); |
| 124 | + ToolUtils.handleRuleScheduling(ruleScheduling); | |
| 111 | 125 | return ruleSchedulingMapper.updateRuleScheduling(ruleScheduling); |
| 112 | 126 | } |
| 113 | 127 | ... | ... |
Bsth-admin/src/main/java/com/ruoyi/utils/ToolUtils.java
| ... | ... | @@ -3,6 +3,7 @@ package com.ruoyi.utils; |
| 3 | 3 | import com.ruoyi.common.utils.uuid.UUID; |
| 4 | 4 | import com.ruoyi.domain.DriverScheduling; |
| 5 | 5 | import com.ruoyi.domain.RuleAttendanceMain; |
| 6 | +import com.ruoyi.num.domain.RuleNum; | |
| 6 | 7 | import com.ruoyi.pojo.dto.RuleSchedulingDto; |
| 7 | 8 | import com.ruoyi.scheduling.domain.RuleScheduling; |
| 8 | 9 | import org.springframework.beans.BeanUtils; |
| ... | ... | @@ -13,7 +14,7 @@ import java.util.Objects; |
| 13 | 14 | import static com.ruoyi.common.ConstDriverProperties.BC_TYPE_IN; |
| 14 | 15 | import static com.ruoyi.common.ConstDriverProperties.BC_TYPE_OUT; |
| 15 | 16 | import static com.ruoyi.common.ConstSignInConstSignInProperties.SIGN_TIME_OUT_EX_NUM; |
| 16 | -import static com.ruoyi.common.RuleSchedulingProperties.TOMORROW_NO; | |
| 17 | +import static com.ruoyi.common.RuleSchedulingProperties.*; | |
| 17 | 18 | import static com.ruoyi.common.SignStatusEnum.SIGN_STATUS_DELAY_ENUM; |
| 18 | 19 | import static com.ruoyi.common.SignStatusEnum.SIGN_STATUS_ZONE_ENUM; |
| 19 | 20 | |
| ... | ... | @@ -41,6 +42,7 @@ public class ToolUtils { |
| 41 | 42 | |
| 42 | 43 | /** |
| 43 | 44 | * 更新报表记录 |
| 45 | + * | |
| 44 | 46 | * @param scheduling |
| 45 | 47 | */ |
| 46 | 48 | public static void updateReport(DriverScheduling scheduling) { |
| ... | ... | @@ -65,12 +67,32 @@ public class ToolUtils { |
| 65 | 67 | // 计划签退时间 |
| 66 | 68 | Long zdsjT = scheduling.getZdsjT(); |
| 67 | 69 | // 一小时内约束 |
| 68 | - if ( date.getTime() - zdsjT > 60 * 60 * 1000 ) { | |
| 70 | + if (date.getTime() - zdsjT > 60 * 60 * 1000) { | |
| 69 | 71 | scheduling.setExType(SIGN_TIME_OUT_EX_NUM); |
| 70 | 72 | scheduling.setRemark(SIGN_STATUS_DELAY_ENUM.getDescription(scheduling.getBcType())); |
| 71 | 73 | } |
| 72 | 74 | } |
| 73 | 75 | } |
| 74 | 76 | |
| 77 | + public static void handlerRuleNum(RuleNum ruleNum) { | |
| 78 | + if (RULE_TYPE_FIXED.equals(ruleNum.getRuleType())) { | |
| 79 | + ruleNum.setRuleWeek(""); | |
| 80 | + } | |
| 81 | + if (RULE_TYPE_WEEK.equals(ruleNum.getRuleType())) { | |
| 82 | + ruleNum.setWorkDay(null); | |
| 83 | + ruleNum.setFreeDay(null); | |
| 84 | + } | |
| 85 | + } | |
| 86 | + | |
| 87 | + public static void handleRuleScheduling(RuleScheduling ruleScheduling) { | |
| 88 | + if (ruleScheduling.getSecondFlag().equals(NO_SEGMENTATION)) { | |
| 89 | + ruleScheduling.setSecondSignDayTomorrow(null); | |
| 90 | + ruleScheduling.setSecondQuittingSignInTime(null); | |
| 91 | + ruleScheduling.setSecondSignInQuittingRange(null); | |
| 92 | + ruleScheduling.setSecondWorkSignInTime(null); | |
| 93 | + ruleScheduling.setSecondSignInWorkingRange(null); | |
| 94 | + } | |
| 95 | + } | |
| 96 | + | |
| 75 | 97 | |
| 76 | 98 | } | ... | ... |
Bsth-admin/src/main/resources/mapper/scheduling/RuleSchedulingMapper.xml
| ... | ... | @@ -187,11 +187,11 @@ |
| 187 | 187 | <if test="firstSignInQuittingRange != null">first_sign_in_quitting_range = #{firstSignInQuittingRange},</if> |
| 188 | 188 | <if test="signInTimeOutRange != null">sign_in_time_out_range = #{signInTimeOutRange},</if> |
| 189 | 189 | <if test="secondFlag != null">second_flag = #{secondFlag},</if> |
| 190 | - <if test="secondWorkSignInTime != null">second_work_sign_in_time = #{secondWorkSignInTime},</if> | |
| 191 | - <if test="secondSignInWorkingRange != null">second_sign_in_working_range = #{secondSignInWorkingRange},</if> | |
| 192 | - <if test="secondQuittingSignInTime != null">second_quitting_sign_in_time = #{secondQuittingSignInTime},</if> | |
| 193 | - <if test="secondSignInQuittingRange != null">second_sign_in_quitting_range = #{secondSignInQuittingRange},</if> | |
| 194 | - <if test="secondSignDayTomorrow != null">second_sign_day_tomorrow = #{secondSignDayTomorrow},</if> | |
| 190 | + second_work_sign_in_time = #{secondWorkSignInTime}, | |
| 191 | + second_sign_in_working_range = #{secondSignInWorkingRange}, | |
| 192 | + second_quitting_sign_in_time = #{secondQuittingSignInTime}, | |
| 193 | + second_sign_in_quitting_range = #{secondSignInQuittingRange}, | |
| 194 | + second_sign_day_tomorrow = #{secondSignDayTomorrow}, | |
| 195 | 195 | <if test="updateBy != null">update_by = #{updateBy},</if> |
| 196 | 196 | <if test="updateTime != null">update_time = #{updateTime},</if> |
| 197 | 197 | </trim> | ... | ... |