Commit 767fdec0c333389c1ac1c63831f60fc140a68651
1 parent
4280fcf0
蓝斯二期
Showing
7 changed files
with
85 additions
and
20 deletions
Bsth-admin/src/main/java/com/ruoyi/in/domain/SignIn.java
| @@ -98,6 +98,9 @@ public class SignIn extends BaseEntity { | @@ -98,6 +98,9 @@ public class SignIn extends BaseEntity { | ||
| 98 | @ApiModelProperty("异常类型") | 98 | @ApiModelProperty("异常类型") |
| 99 | private Integer exType; | 99 | private Integer exType; |
| 100 | 100 | ||
| 101 | + @ApiModelProperty("异常类型") | ||
| 102 | + private Integer exType1; | ||
| 103 | + | ||
| 101 | /***排班信息ID*/ | 104 | /***排班信息ID*/ |
| 102 | @Excel(name = "排班信息ID") | 105 | @Excel(name = "排班信息ID") |
| 103 | private java.lang.Long schedulingId; | 106 | private java.lang.Long schedulingId; |
Bsth-admin/src/main/java/com/ruoyi/in/service/SignInServiceV1.java
| @@ -15,4 +15,6 @@ public interface SignInServiceV1 extends IService<SignInV1> { | @@ -15,4 +15,6 @@ public interface SignInServiceV1 extends IService<SignInV1> { | ||
| 15 | AjaxResult addSignInOffice(SignIn signIn); | 15 | AjaxResult addSignInOffice(SignIn signIn); |
| 16 | 16 | ||
| 17 | CalDriverScheduling findSchedulingByDateTime(String job, Date date,Integer type); | 17 | CalDriverScheduling findSchedulingByDateTime(String job, Date date,Integer type); |
| 18 | + | ||
| 19 | + boolean updateImage(SignInV1 signIn); | ||
| 18 | } | 20 | } |
Bsth-admin/src/main/java/com/ruoyi/in/service/impl/SignInServiceV1Impl.java
| @@ -2,6 +2,7 @@ package com.ruoyi.in.service.impl; | @@ -2,6 +2,7 @@ package com.ruoyi.in.service.impl; | ||
| 2 | 2 | ||
| 3 | import cn.hutool.core.convert.Convert; | 3 | import cn.hutool.core.convert.Convert; |
| 4 | import com.alibaba.fastjson2.JSON; | 4 | import com.alibaba.fastjson2.JSON; |
| 5 | +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; | ||
| 5 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| 6 | import com.ruoyi.common.ConstDriverProperties; | 7 | import com.ruoyi.common.ConstDriverProperties; |
| 7 | import com.ruoyi.common.ConstSignInConstSignInProperties; | 8 | import com.ruoyi.common.ConstSignInConstSignInProperties; |
| @@ -29,6 +30,7 @@ import com.ruoyi.in.domain.SignIn; | @@ -29,6 +30,7 @@ import com.ruoyi.in.domain.SignIn; | ||
| 29 | import com.ruoyi.in.domain.SignInV1; | 30 | import com.ruoyi.in.domain.SignInV1; |
| 30 | import com.ruoyi.in.mapper.SignInMapper; | 31 | import com.ruoyi.in.mapper.SignInMapper; |
| 31 | import com.ruoyi.in.mapper.SignInMapperV1; | 32 | import com.ruoyi.in.mapper.SignInMapperV1; |
| 33 | +import com.ruoyi.in.service.ISignInService; | ||
| 32 | import com.ruoyi.in.service.SignInServiceV1; | 34 | import com.ruoyi.in.service.SignInServiceV1; |
| 33 | import com.ruoyi.scheduling.domain.DriverSchedulingV1; | 35 | import com.ruoyi.scheduling.domain.DriverSchedulingV1; |
| 34 | import com.ruoyi.scheduling.service.SchedulingServiceV1; | 36 | import com.ruoyi.scheduling.service.SchedulingServiceV1; |
| @@ -84,6 +86,8 @@ public class SignInServiceV1Impl extends ServiceImpl<SignInMapperV1, SignInV1> i | @@ -84,6 +86,8 @@ public class SignInServiceV1Impl extends ServiceImpl<SignInMapperV1, SignInV1> i | ||
| 84 | private UploadUtil uploadUtil; | 86 | private UploadUtil uploadUtil; |
| 85 | @Autowired | 87 | @Autowired |
| 86 | private LinggangSignInResourceService signInResourceService; | 88 | private LinggangSignInResourceService signInResourceService; |
| 89 | + @Autowired | ||
| 90 | + private ISignInService signInService; | ||
| 87 | 91 | ||
| 88 | private static final FastDateFormat HHMM = FastDateFormat.getInstance("HH:mm"); | 92 | private static final FastDateFormat HHMM = FastDateFormat.getInstance("HH:mm"); |
| 89 | 93 | ||
| @@ -228,7 +232,6 @@ public class SignInServiceV1Impl extends ServiceImpl<SignInMapperV1, SignInV1> i | @@ -228,7 +232,6 @@ public class SignInServiceV1Impl extends ServiceImpl<SignInMapperV1, SignInV1> i | ||
| 228 | signInV1.setSignIn(signIn); | 232 | signInV1.setSignIn(signIn); |
| 229 | 233 | ||
| 230 | 234 | ||
| 231 | - | ||
| 232 | return saveData(signIn, scheduling, calDriverScheduling, driver, signInV1); | 235 | return saveData(signIn, scheduling, calDriverScheduling, driver, signInV1); |
| 233 | } | 236 | } |
| 234 | 237 | ||
| @@ -245,16 +248,29 @@ public class SignInServiceV1Impl extends ServiceImpl<SignInMapperV1, SignInV1> i | @@ -245,16 +248,29 @@ public class SignInServiceV1Impl extends ServiceImpl<SignInMapperV1, SignInV1> i | ||
| 245 | } | 248 | } |
| 246 | } | 249 | } |
| 247 | 250 | ||
| 251 | + @Override | ||
| 252 | + public boolean updateImage(SignInV1 signIn) { | ||
| 253 | + LambdaUpdateChainWrapper<SignIn> wrapper = new LambdaUpdateChainWrapper<>(signInMapper); | ||
| 254 | + wrapper.set(SignIn::getImage, signIn.getImage()).eq(SignIn::getId, signIn.getId()); | ||
| 255 | + | ||
| 256 | + return wrapper.update(); | ||
| 257 | + } | ||
| 258 | + | ||
| 248 | private AjaxResult saveData(SignIn signIn, DriverScheduling scheduling, CalDriverScheduling calDriverScheduling, Driver driver, SignInV1 signInV1) { | 259 | private AjaxResult saveData(SignIn signIn, DriverScheduling scheduling, CalDriverScheduling calDriverScheduling, Driver driver, SignInV1 signInV1) { |
| 249 | String videoContent = signIn.getImage(); | 260 | String videoContent = signIn.getImage(); |
| 250 | signIn.setImage(null); | 261 | signIn.setImage(null); |
| 262 | + | ||
| 263 | + signIn.setExType1(signIn.getExType()); | ||
| 264 | + Integer type = Objects.isNull(signIn.getExType()) ? 0 : signIn.getExType() > 0 ? 1 : 0; | ||
| 265 | + signIn.setExType(type); | ||
| 266 | + | ||
| 251 | signInMapper.insertSignIn(signIn); | 267 | signInMapper.insertSignIn(signIn); |
| 252 | 268 | ||
| 253 | if (org.apache.commons.lang3.StringUtils.isNotEmpty(signIn.getImage())) { | 269 | if (org.apache.commons.lang3.StringUtils.isNotEmpty(signIn.getImage())) { |
| 254 | 270 | ||
| 255 | signIn.setImage(null); | 271 | signIn.setImage(null); |
| 256 | } | 272 | } |
| 257 | - if(org.apache.commons.lang3.StringUtils.isNotEmpty(videoContent)){ | 273 | + if (org.apache.commons.lang3.StringUtils.isNotEmpty(videoContent)) { |
| 258 | StringBuilder builder = new StringBuilder(); | 274 | StringBuilder builder = new StringBuilder(); |
| 259 | builder.append("sign"); | 275 | builder.append("sign"); |
| 260 | builder.append(File.separator); | 276 | builder.append(File.separator); |
| @@ -282,7 +298,7 @@ public class SignInServiceV1Impl extends ServiceImpl<SignInMapperV1, SignInV1> i | @@ -282,7 +298,7 @@ public class SignInServiceV1Impl extends ServiceImpl<SignInMapperV1, SignInV1> i | ||
| 282 | signInV1.setId(signInV1.getId()); | 298 | signInV1.setId(signInV1.getId()); |
| 283 | // 更新考勤 | 299 | // 更新考勤 |
| 284 | if (Objects.nonNull(calDriverScheduling)) { | 300 | if (Objects.nonNull(calDriverScheduling)) { |
| 285 | - schedulingService.computedSignInBySignIn(scheduling, calDriverScheduling.getIndex(), signIn, true); | 301 | + schedulingService.computedSignInBySignIn(scheduling, calDriverScheduling.getIndex(), signIn, true, signInService); |
| 286 | } | 302 | } |
| 287 | 303 | ||
| 288 | if (TempCache.checkJobCodeExist(signIn.getJobCode())) { | 304 | if (TempCache.checkJobCodeExist(signIn.getJobCode())) { |
Bsth-admin/src/main/java/com/ruoyi/service/BigViewServiceV1.java
| @@ -32,6 +32,13 @@ public interface BigViewServiceV1 { | @@ -32,6 +32,13 @@ public interface BigViewServiceV1 { | ||
| 32 | AjaxResult getAjaxResultByDriverSignInfo(SignIn signIn, SignInV1 signInV1, DriverScheduling driverScheduling); | 32 | AjaxResult getAjaxResultByDriverSignInfo(SignIn signIn, SignInV1 signInV1, DriverScheduling driverScheduling); |
| 33 | 33 | ||
| 34 | /*** | 34 | /*** |
| 35 | + * 是否正常 | ||
| 36 | + * @param signIn | ||
| 37 | + * @return | ||
| 38 | + */ | ||
| 39 | + boolean isNormal(SignIn signIn); | ||
| 40 | + | ||
| 41 | + /*** | ||
| 35 | * 是否是早签 | 42 | * 是否是早签 |
| 36 | * @author liujun | 43 | * @author liujun |
| 37 | * @date 2024/9/25 14:51 | 44 | * @date 2024/9/25 14:51 |
Bsth-admin/src/main/java/com/ruoyi/service/SchedulingService.java
| @@ -8,6 +8,7 @@ import com.ruoyi.domain.scheduling.LinggangScheduling; | @@ -8,6 +8,7 @@ import com.ruoyi.domain.scheduling.LinggangScheduling; | ||
| 8 | import com.ruoyi.driver.mapper.DriverSchedulingMapper; | 8 | import com.ruoyi.driver.mapper.DriverSchedulingMapper; |
| 9 | import com.ruoyi.in.domain.SignIn; | 9 | import com.ruoyi.in.domain.SignIn; |
| 10 | import com.ruoyi.in.mapper.SignInMapper; | 10 | import com.ruoyi.in.mapper.SignInMapper; |
| 11 | +import com.ruoyi.in.service.ISignInService; | ||
| 11 | import com.ruoyi.in.service.impl.SignInServiceImpl; | 12 | import com.ruoyi.in.service.impl.SignInServiceImpl; |
| 12 | import com.ruoyi.pojo.DriverSignInRecommendation; | 13 | import com.ruoyi.pojo.DriverSignInRecommendation; |
| 13 | import com.ruoyi.pojo.GlobalIndex; | 14 | import com.ruoyi.pojo.GlobalIndex; |
| @@ -138,7 +139,7 @@ public class SchedulingService { | @@ -138,7 +139,7 @@ public class SchedulingService { | ||
| 138 | * | 139 | * |
| 139 | * @param signIn | 140 | * @param signIn |
| 140 | */ | 141 | */ |
| 141 | - public void computedSignInBySignIn(DriverScheduling driverScheduling, int index, SignIn signIn, boolean isNew) { | 142 | + public void computedSignInBySignIn(DriverScheduling driverScheduling, int index, SignIn signIn, boolean isNew, ISignInService signInService) { |
| 142 | // 无排班不记录不在考勤表不更新 | 143 | // 无排班不记录不在考勤表不更新 |
| 143 | if (Objects.isNull(driverScheduling)) { | 144 | if (Objects.isNull(driverScheduling)) { |
| 144 | return; | 145 | return; |
| @@ -147,22 +148,41 @@ public class SchedulingService { | @@ -147,22 +148,41 @@ public class SchedulingService { | ||
| 147 | // 更新最新的签到记录判断是否需要更新考勤 | 148 | // 更新最新的签到记录判断是否需要更新考勤 |
| 148 | // 记录为空直接插入记录 | 149 | // 记录为空直接插入记录 |
| 149 | if (Objects.isNull(driverScheduling.getSignInId())) { | 150 | if (Objects.isNull(driverScheduling.getSignInId())) { |
| 150 | - schedulingMapper.updateRoster(driverScheduling, signIn.getId(), signIn.getExType(), signIn.getCreateTime(), remark, signIn.getType(), signIn.getAlcoholFlag(), signIn.getAlcoholIntake()); | ||
| 151 | - // 更新缓存 | ||
| 152 | - nowSchedulingCache.updateCacheByJobCode(remark, ConstDateUtil.formatDate(driverScheduling.getScheduleDate()), index, signIn, isNew, driverScheduling); | ||
| 153 | - } | ||
| 154 | - // 之前的无效 | ||
| 155 | - else if (!SIGN_NO_EX_NUM.equals(driverScheduling.getExType())) { | ||
| 156 | - schedulingMapper.updateRoster(driverScheduling, signIn.getId(), signIn.getExType(), signIn.getCreateTime(), remark, signIn.getType(), signIn.getAlcoholFlag(), signIn.getAlcoholIntake()); | ||
| 157 | - nowSchedulingCache.updateCacheByJobCode(remark, ConstDateUtil.formatDate(driverScheduling.getScheduleDate()), index, signIn, isNew, driverScheduling); | ||
| 158 | - } | ||
| 159 | - // 之前的有效 | ||
| 160 | - else { | ||
| 161 | - handlerRecord(driverScheduling, signIn, index, isNew); | 151 | + changeScheduling(driverScheduling,signIn,remark,index,isNew); |
| 152 | + }else{ | ||
| 153 | + SignIn sourceSign = signInService.selectSignInById(driverScheduling.getSignInId()); | ||
| 154 | + if(Objects.isNull(sourceSign)){ | ||
| 155 | + changeScheduling(driverScheduling,signIn,remark,index,isNew); | ||
| 156 | + }else if(bigViewServiceV1.isEarly(sourceSign) && bigViewServiceV1.isNormal(signIn)){ | ||
| 157 | + //第一次是早签,第二次正常签到,覆盖原来的数据。 | ||
| 158 | + changeScheduling(driverScheduling,signIn,remark,index,isNew); | ||
| 159 | + }else if(bigViewServiceV1.isNormal(sourceSign) && bigViewServiceV1.isSignStatusWineEnum(signIn)){ | ||
| 160 | + //第一次正常签到,第二次酒驾,覆盖原来的数据。 | ||
| 161 | + changeScheduling(driverScheduling,signIn,remark,index,isNew); | ||
| 162 | + }else if(!bigViewServiceV1.isEarly(sourceSign) && !bigViewServiceV1.isSignStatusDelayEnum(sourceSign) && | ||
| 163 | + !bigViewServiceV1.isSignStatusWineEnum(sourceSign) && bigViewServiceV1.isSignStatusWineEnum(signIn)){ | ||
| 164 | + //第一次正常签到,第二次酒驾,覆盖原来的数据。 | ||
| 165 | + changeScheduling(driverScheduling,signIn,remark,index,isNew); | ||
| 166 | + }else if(!bigViewServiceV1.isEarly(sourceSign) && !bigViewServiceV1.isSignStatusDelayEnum(sourceSign) && | ||
| 167 | + bigViewServiceV1.isSignStatusWineEnum(sourceSign) && bigViewServiceV1.isNormal(signIn)){ | ||
| 168 | + //第一次在签到时间范围内签到且酒驾,第二次正常,覆盖原来的数据。 | ||
| 169 | + changeScheduling(driverScheduling,signIn,remark,index,isNew); | ||
| 170 | + }else if(bigViewServiceV1.isSignStatusDelayEnum(sourceSign) && bigViewServiceV1.isSignStatusWineEnum(sourceSign) ){ | ||
| 171 | + //第一次迟到签到且酒驾,第二次测试覆盖原来的数据。 | ||
| 172 | + changeScheduling(driverScheduling,signIn,remark,index,isNew); | ||
| 173 | + }else{ | ||
| 174 | + handlerRecord(driverScheduling, signIn, index, isNew); | ||
| 175 | + } | ||
| 162 | } | 176 | } |
| 163 | 177 | ||
| 164 | } | 178 | } |
| 165 | 179 | ||
| 180 | + private void changeScheduling(DriverScheduling driverScheduling,SignIn signIn,String remark,Integer index,boolean isNew){ | ||
| 181 | + schedulingMapper.updateRoster(driverScheduling, signIn.getId(), signIn.getExType(), signIn.getCreateTime(), remark, signIn.getType(), signIn.getAlcoholFlag(), signIn.getAlcoholIntake()); | ||
| 182 | + // 更新缓存 | ||
| 183 | + nowSchedulingCache.updateCacheByJobCode(remark, ConstDateUtil.formatDate(driverScheduling.getScheduleDate()), index, signIn, isNew, driverScheduling); | ||
| 184 | + } | ||
| 185 | + | ||
| 166 | private String getRemark(DriverScheduling scheduling, SignIn signIn) { | 186 | private String getRemark(DriverScheduling scheduling, SignIn signIn) { |
| 167 | StringBuilder sb = new StringBuilder(); | 187 | StringBuilder sb = new StringBuilder(); |
| 168 | if (bigViewServiceV1.isEarly(signIn)) { | 188 | if (bigViewServiceV1.isEarly(signIn)) { |
Bsth-admin/src/main/java/com/ruoyi/service/impl/BigViewServiceV1Impl.java
| @@ -119,27 +119,32 @@ public class BigViewServiceV1Impl implements BigViewServiceV1 { | @@ -119,27 +119,32 @@ public class BigViewServiceV1Impl implements BigViewServiceV1 { | ||
| 119 | return null; | 119 | return null; |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | + @Override | ||
| 123 | + public boolean isNormal(SignIn signIn) { | ||
| 124 | + return Objects.nonNull(signIn) && Objects.equals(signIn.getExType1(), 0); | ||
| 125 | + } | ||
| 126 | + | ||
| 122 | 127 | ||
| 123 | @Override | 128 | @Override |
| 124 | public boolean isEarly(SignIn signIn) { | 129 | public boolean isEarly(SignIn signIn) { |
| 125 | - return Objects.nonNull(signIn) && signIn.getExType() >= 20 && signIn.getExType() < 30; | 130 | + return Objects.nonNull(signIn) && signIn.getExType1() >= 20 && signIn.getExType1() < 30; |
| 126 | } | 131 | } |
| 127 | 132 | ||
| 128 | 133 | ||
| 129 | @Override | 134 | @Override |
| 130 | public boolean isSignStatusWineEnum(SignIn signIn) { | 135 | public boolean isSignStatusWineEnum(SignIn signIn) { |
| 131 | - return Objects.nonNull(signIn) && (Objects.equals(3, signIn.getExType()) || Objects.equals(23, signIn.getExType()) || Objects.equals(33, signIn.getExType())); | 136 | + return Objects.nonNull(signIn) && Objects.nonNull(signIn.getExType1()) && signIn.getExType1() % 10 == 3; |
| 132 | } | 137 | } |
| 133 | 138 | ||
| 134 | 139 | ||
| 135 | @Override | 140 | @Override |
| 136 | public boolean isSignStatusDelayEnum(SignIn signIn) { | 141 | public boolean isSignStatusDelayEnum(SignIn signIn) { |
| 137 | - return Objects.nonNull(signIn) && Objects.nonNull(signIn.getExType()) && signIn.getExType() >= 30 && signIn.getExType() < 40; | 142 | + return Objects.nonNull(signIn) && Objects.nonNull(signIn.getExType1()) && signIn.getExType1() >= 30 && signIn.getExType1() < 40; |
| 138 | } | 143 | } |
| 139 | 144 | ||
| 140 | @Override | 145 | @Override |
| 141 | public boolean isSignStatusZoneEnum(SignIn signIn) { | 146 | public boolean isSignStatusZoneEnum(SignIn signIn) { |
| 142 | - return Objects.nonNull(signIn) && Objects.nonNull(signIn.getExType()) && signIn.getExType() % 10 == 3; | 147 | + return !isSignStatusWineEnum(signIn); |
| 143 | } | 148 | } |
| 144 | 149 | ||
| 145 | @Override | 150 | @Override |
Bsth-admin/src/main/java/com/ruoyi/service/impl/sign/in/resource/LinggangSignInResourceServiceImpl.java
| @@ -9,8 +9,13 @@ import com.ruoyi.common.core.domain.ResponseResult; | @@ -9,8 +9,13 @@ import com.ruoyi.common.core.domain.ResponseResult; | ||
| 9 | import com.ruoyi.domain.OrderEntity; | 9 | import com.ruoyi.domain.OrderEntity; |
| 10 | import com.ruoyi.domain.sign.in.resource.LinggangSignInResource; | 10 | import com.ruoyi.domain.sign.in.resource.LinggangSignInResource; |
| 11 | import com.ruoyi.exception.InterruptException; | 11 | import com.ruoyi.exception.InterruptException; |
| 12 | +import com.ruoyi.in.domain.SignIn; | ||
| 13 | +import com.ruoyi.in.domain.SignInV1; | ||
| 14 | +import com.ruoyi.in.service.ISignInService; | ||
| 15 | +import com.ruoyi.in.service.SignInServiceV1; | ||
| 12 | import com.ruoyi.mapper.sign.in.resource.LinggangSignInResourceMapper; | 16 | import com.ruoyi.mapper.sign.in.resource.LinggangSignInResourceMapper; |
| 13 | import com.ruoyi.service.sign.in.resource.LinggangSignInResourceService; | 17 | import com.ruoyi.service.sign.in.resource.LinggangSignInResourceService; |
| 18 | +import com.ruoyi.utils.SpringApplicationUtil; | ||
| 14 | import com.ruoyi.utils.UploadUtil; | 19 | import com.ruoyi.utils.UploadUtil; |
| 15 | import lombok.extern.slf4j.Slf4j; | 20 | import lombok.extern.slf4j.Slf4j; |
| 16 | import org.apache.commons.collections4.CollectionUtils; | 21 | import org.apache.commons.collections4.CollectionUtils; |
| @@ -154,6 +159,13 @@ public class LinggangSignInResourceServiceImpl extends ServiceImpl<LinggangSignI | @@ -154,6 +159,13 @@ public class LinggangSignInResourceServiceImpl extends ServiceImpl<LinggangSignI | ||
| 154 | if (!result.isSuccess() && Objects.equals(result.getData(), Boolean.FALSE)) { | 159 | if (!result.isSuccess() && Objects.equals(result.getData(), Boolean.FALSE)) { |
| 155 | throw new InterruptException("图片上传失败,请检查服务器"); | 160 | throw new InterruptException("图片上传失败,请检查服务器"); |
| 156 | } | 161 | } |
| 162 | + | ||
| 163 | + SignInServiceV1 signInServiceV1 = SpringApplicationUtil.getBean(SignInServiceV1.class); | ||
| 164 | + SignInV1 signInV1 = new SignInV1(); | ||
| 165 | + signInV1.setImage(en.getPath()); | ||
| 166 | + signInV1.setId(en.getSignId()); | ||
| 167 | + | ||
| 168 | + signInServiceV1.updateImage(signInV1); | ||
| 157 | }); | 169 | }); |
| 158 | } | 170 | } |
| 159 | 171 |