Commit 767fdec0c333389c1ac1c63831f60fc140a68651

Authored by liujun001
1 parent 4280fcf0

蓝斯二期

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&lt;SignInMapperV1, SignInV1&gt; i @@ -282,7 +298,7 @@ public class SignInServiceV1Impl extends ServiceImpl&lt;SignInMapperV1, SignInV1&gt; 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&lt;LinggangSignI @@ -154,6 +159,13 @@ public class LinggangSignInResourceServiceImpl extends ServiceImpl&lt;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