Commit 9d2c2b6e17abf243c7eaa8148035238cfa37bfab

Authored by guzijian
1 parent 33a17c25

fix: 修改人脸更新接口逻辑

ruoyi-admin/src/main/java/com/ruoyi/common/global/Result.java
@@ -39,6 +39,15 @@ public class Result<T extends Object> { @@ -39,6 +39,15 @@ public class Result<T extends Object> {
39 return r; 39 return r;
40 } 40 }
41 41
  42 + public static <T> Result<T> OK(ResultCode code,T data){
  43 + Result r = new Result();
  44 + r.setSuccess(true);
  45 + r.setCode(code.getCode());
  46 + r.setMsg("部分成功");
  47 + r.setData(data);
  48 + return r;
  49 + }
  50 +
42 /** 成功静态方法 */ 51 /** 成功静态方法 */
43 public static <T> Result<T> OK(T data) { 52 public static <T> Result<T> OK(T data) {
44 Result r = new Result(); 53 Result r = new Result();
ruoyi-admin/src/main/java/com/ruoyi/common/global/ResultCode.java
@@ -8,6 +8,7 @@ public enum ResultCode { @@ -8,6 +8,7 @@ public enum ResultCode {
8 CODE_200(200, "操作成功"), 8 CODE_200(200, "操作成功"),
9 CODE_201(201,"对象创建成功"), 9 CODE_201(201,"对象创建成功"),
10 CODE_202(202,"请求已经被接受"), 10 CODE_202(202,"请求已经被接受"),
  11 + CODE_207(207,"请求已经成功处理了部分内容,但是还有其他内容未被处理"),
11 CODE_400(400,"参数列表错误(缺少,格式不匹配)"), 12 CODE_400(400,"参数列表错误(缺少,格式不匹配)"),
12 CODE_401(401,"未授权"), 13 CODE_401(401,"未授权"),
13 CODE_403(403,"访问受限,授权过期"), 14 CODE_403(403,"访问受限,授权过期"),
ruoyi-admin/src/main/java/com/ruoyi/driver/controller/DriverController.java
@@ -151,11 +151,10 @@ public class DriverController extends BaseController { @@ -151,11 +151,10 @@ public class DriverController extends BaseController {
151 @ApiOperation("人脸数据更新接口") 151 @ApiOperation("人脸数据更新接口")
152 public Result<?> updateFaceByJob(HttpServletRequest request, @ApiParam @Validated @RequestBody FaceUpdateReqVo vo) { 152 public Result<?> updateFaceByJob(HttpServletRequest request, @ApiParam @Validated @RequestBody FaceUpdateReqVo vo) {
153 try { 153 try {
154 - driverService.updateFaceByJob(request, vo); 154 + return driverService.updateFaceByJob(request, vo);
155 } catch (Exception e) { 155 } catch (Exception e) {
156 - return Result.ERROR(ResultCode.CODE_401, e.getMessage()); 156 + return Result.ERROR(e.getMessage());
157 } 157 }
158 - return Result.OK();  
159 } 158 }
160 159
161 /** 160 /**
ruoyi-admin/src/main/java/com/ruoyi/driver/service/IDriverService.java
@@ -5,6 +5,7 @@ import java.util.List; @@ -5,6 +5,7 @@ import java.util.List;
5 5
6 import com.ruoyi.common.core.domain.AjaxResult; 6 import com.ruoyi.common.core.domain.AjaxResult;
7 import com.ruoyi.common.exception.file.InvalidExtensionException; 7 import com.ruoyi.common.exception.file.InvalidExtensionException;
  8 +import com.ruoyi.common.global.Result;
8 import com.ruoyi.driver.domain.Driver; 9 import com.ruoyi.driver.domain.Driver;
9 import com.ruoyi.pojo.request.DriverSignInRequestVo; 10 import com.ruoyi.pojo.request.DriverSignInRequestVo;
10 import com.ruoyi.pojo.request.FaceUpdateReqVo; 11 import com.ruoyi.pojo.request.FaceUpdateReqVo;
@@ -94,7 +95,7 @@ public interface IDriverService @@ -94,7 +95,7 @@ public interface IDriverService
94 95
95 void updateDriverByComputed(); 96 void updateDriverByComputed();
96 97
97 - void updateFaceByJob(HttpServletRequest request, FaceUpdateReqVo vo); 98 + Result updateFaceByJob(HttpServletRequest request, FaceUpdateReqVo vo);
98 99
99 void saveDriverSignInfo(DriverSignInRequestVo vo); 100 void saveDriverSignInfo(DriverSignInRequestVo vo);
100 101
ruoyi-admin/src/main/java/com/ruoyi/driver/service/impl/DriverServiceImpl.java
@@ -12,6 +12,8 @@ import com.ruoyi.common.config.RuoYiConfig; @@ -12,6 +12,8 @@ import com.ruoyi.common.config.RuoYiConfig;
12 import com.ruoyi.common.core.domain.AjaxResult; 12 import com.ruoyi.common.core.domain.AjaxResult;
13 import com.ruoyi.common.core.redis.RedisCache; 13 import com.ruoyi.common.core.redis.RedisCache;
14 import com.ruoyi.common.exception.file.InvalidExtensionException; 14 import com.ruoyi.common.exception.file.InvalidExtensionException;
  15 +import com.ruoyi.common.global.Result;
  16 +import com.ruoyi.common.global.ResultCode;
15 import com.ruoyi.common.utils.file.FileUploadUtils; 17 import com.ruoyi.common.utils.file.FileUploadUtils;
16 import com.ruoyi.common.utils.file.FileUtils; 18 import com.ruoyi.common.utils.file.FileUtils;
17 import com.ruoyi.common.utils.file.MimeTypeUtils; 19 import com.ruoyi.common.utils.file.MimeTypeUtils;
@@ -42,6 +44,7 @@ import javax.servlet.http.HttpServletRequest; @@ -42,6 +44,7 @@ import javax.servlet.http.HttpServletRequest;
42 import javax.servlet.http.HttpServletResponse; 44 import javax.servlet.http.HttpServletResponse;
43 45
44 import static com.ruoyi.common.ApiProperties.PERSONNEL_API_KEY; 46 import static com.ruoyi.common.ApiProperties.PERSONNEL_API_KEY;
  47 +import static com.ruoyi.common.global.ResultCode.CODE_207;
45 import static com.ruoyi.common.redispre.GlobalRedisPreName.DRIVER_SCHEDULING_PRE; 48 import static com.ruoyi.common.redispre.GlobalRedisPreName.DRIVER_SCHEDULING_PRE;
46 49
47 /** 50 /**
@@ -187,7 +190,6 @@ public class DriverServiceImpl implements IDriverService { @@ -187,7 +190,6 @@ public class DriverServiceImpl implements IDriverService {
187 } 190 }
188 191
189 192
190 -  
191 @Override 193 @Override
192 public AjaxResult getDriverSchedulingAll() { 194 public AjaxResult getDriverSchedulingAll() {
193 return AjaxResult.success(redisCache.getHashKeys(DRIVER_SCHEDULING_PRE + ConstDateUtil.formatDate("yyyyMMdd"))); 195 return AjaxResult.success(redisCache.getHashKeys(DRIVER_SCHEDULING_PRE + ConstDateUtil.formatDate("yyyyMMdd")));
@@ -273,16 +275,24 @@ public class DriverServiceImpl implements IDriverService { @@ -273,16 +275,24 @@ public class DriverServiceImpl implements IDriverService {
273 } 275 }
274 276
275 @Override 277 @Override
276 - public void updateFaceByJob(HttpServletRequest request, FaceUpdateReqVo vo) { 278 + public Result<?> updateFaceByJob(HttpServletRequest request, FaceUpdateReqVo vo) {
277 // 获取校验 279 // 获取校验
278 String header = request.getHeader("X-TOKEN-AUTHORIZATION"); 280 String header = request.getHeader("X-TOKEN-AUTHORIZATION");
279 if (!PERSONNEL_API_KEY.equals(header)) { 281 if (!PERSONNEL_API_KEY.equals(header)) {
280 - throw new RuntimeException("X-TOKEN-AUTHORIZATION value error"); 282 + return Result.ERROR(ResultCode.CODE_401, "X-TOKEN-AUTHORIZATION value error");
281 } 283 }
282 Date date = new Date(); 284 Date date = new Date();
283 // 查询当前人员信息库是否存在对应员工数据 285 // 查询当前人员信息库是否存在对应员工数据
284 List<String> jobCodes = vo.getFaceDataList().stream().map(FaceUpdateReqVo.FaceData::getJobCode).collect(Collectors.toList()); 286 List<String> jobCodes = vo.getFaceDataList().stream().map(FaceUpdateReqVo.FaceData::getJobCode).collect(Collectors.toList());
285 - List<String> existsJobCodes = driverMapper.queryJobCodesIsExists(jobCodes); 287 + Map<String,String> existsSet = driverMapper.queryJobCodesIsExists(jobCodes).stream().collect(Collectors.toMap(item ->item,s->s));
  288 + // 更新失败人员工号列表
  289 + List<String> updateFailJobCodes = new ArrayList<>();
  290 + for (String jobCode : jobCodes) {
  291 + if (Objects.isNull(existsSet.get(jobCode))) {
  292 + updateFailJobCodes.add(jobCode);
  293 + }
  294 + }
  295 + jobCodes = new ArrayList<>(existsSet.values());
286 296
287 List<Driver> drivers = vo.getFaceDataList().stream().map(item -> { 297 List<Driver> drivers = vo.getFaceDataList().stream().map(item -> {
288 Driver driver = new Driver(); 298 Driver driver = new Driver();
@@ -297,7 +307,7 @@ public class DriverServiceImpl implements IDriverService { @@ -297,7 +307,7 @@ public class DriverServiceImpl implements IDriverService {
297 driver.setPersonnelName(item.getName()); 307 driver.setPersonnelName(item.getName());
298 driver.setUpdateTime(date); 308 driver.setUpdateTime(date);
299 return driver; 309 return driver;
300 - }).collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(s -> s.getJobCode()))), ArrayList::new)); 310 + }).filter(item -> !Objects.isNull(existsSet.get(item.getJobCode()))).collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(s -> s.getJobCode()))), ArrayList::new));
301 List<List<Driver>> lists = ListUtils.splitList(drivers, 400); 311 List<List<Driver>> lists = ListUtils.splitList(drivers, 400);
302 log.info("开始人脸数据更新"); 312 log.info("开始人脸数据更新");
303 // 数据更新 更新人脸注册标识 更新基本数据 313 // 数据更新 更新人脸注册标识 更新基本数据
@@ -305,11 +315,14 @@ public class DriverServiceImpl implements IDriverService { @@ -305,11 +315,14 @@ public class DriverServiceImpl implements IDriverService {
305 driverMapper.updateSignStatusDriversByJobCodes(list); 315 driverMapper.updateSignStatusDriversByJobCodes(list);
306 } 316 }
307 log.info("人脸数据更新完成"); 317 log.info("人脸数据更新完成");
308 - // TODO 删除注册表中对应工号的数据  
309 -// List<String> jobCodes = drivers.stream().map(Driver::getJobCode).collect(Collectors.toList()); 318 + log.info("未成功更新工号:{}", updateFailJobCodes);
310 log.info("开始删除注册表中对应工号的数据"); 319 log.info("开始删除注册表中对应工号的数据");
311 driverMapper.deleteDeviceIdAssociatedJobCode(jobCodes); 320 driverMapper.deleteDeviceIdAssociatedJobCode(jobCodes);
312 log.info("删除注册表中对应工号的数据结束"); 321 log.info("删除注册表中对应工号的数据结束");
  322 + if (updateFailJobCodes.size() != 0)
  323 + return Result.OK(CODE_207, updateFailJobCodes);
  324 + else
  325 + return Result.OK();
313 } 326 }
314 327
315 @Override 328 @Override
ruoyi-admin/src/main/java/com/ruoyi/pojo/request/FaceUpdateReqVo.java
@@ -47,5 +47,9 @@ public class FaceUpdateReqVo { @@ -47,5 +47,9 @@ public class FaceUpdateReqVo {
47 @ApiModelProperty("工种") 47 @ApiModelProperty("工种")
48 @NotBlank(message = "工种不能为空") 48 @NotBlank(message = "工种不能为空")
49 String posts; 49 String posts;
  50 + @ApiModelProperty("线路")
  51 + String lineName;
  52 + @ApiModelProperty("车队")
  53 + String fleetName;
50 } 54 }
51 } 55 }
ruoyi-admin/src/main/resources/application-druid-prd.yml
@@ -71,11 +71,10 @@ spring: @@ -71,11 +71,10 @@ spring:
71 devtools: 71 devtools:
72 restart: 72 restart:
73 # 热部署开关 73 # 热部署开关
74 - enabled: true 74 + enabled: false
75 # redis 配置 75 # redis 配置
76 redis: 76 redis:
77 # 地址 77 # 地址
78 - # host: 1.14.107.94  
79 host: 121.41.83.61 78 host: 121.41.83.61
80 database: 0 79 database: 0
81 password: "guzijian" 80 password: "guzijian"
@@ -112,7 +111,7 @@ ruoyi: @@ -112,7 +111,7 @@ ruoyi:
112 # 实例演示开关 111 # 实例演示开关
113 demoEnabled: true 112 demoEnabled: true
114 # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) 113 # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
115 - profile: /home/ruoyi/uploadPath 114 + profile: D:/ruoyi/uploadPath
116 # 获取ip地址开关 115 # 获取ip地址开关
117 addressEnabled: false 116 addressEnabled: false
118 # 验证码类型 math 数字计算 char 字符验证 117 # 验证码类型 math 数字计算 char 字符验证
@@ -120,7 +119,7 @@ ruoyi: @@ -120,7 +119,7 @@ ruoyi:
120 # 开发环境配置 119 # 开发环境配置
121 server: 120 server:
122 # 服务器的HTTP端口,默认为8080 121 # 服务器的HTTP端口,默认为8080
123 - port: 8100 122 + port: 8080
124 servlet: 123 servlet:
125 # 应用的访问路径 124 # 应用的访问路径
126 context-path: / 125 context-path: /
ruoyi-admin/src/main/resources/mapper/driver/DriverMapper.xml
@@ -140,6 +140,7 @@ @@ -140,6 +140,7 @@
140 </select> 140 </select>
141 <select id="queryJobCodesIsExists" resultType="java.lang.String"> 141 <select id="queryJobCodesIsExists" resultType="java.lang.String">
142 select job_code 142 select job_code
  143 + from driver
143 where job_code in 144 where job_code in
144 <foreach collection="jobCodes" item="item" open="(" separator="," close=")"> 145 <foreach collection="jobCodes" item="item" open="(" separator="," close=")">
145 #{item} 146 #{item}
@@ -273,7 +274,7 @@ @@ -273,7 +274,7 @@
273 </foreach> 274 </foreach>
274 </delete> 275 </delete>
275 <delete id="deleteDeviceIdAssociatedJobCode"> 276 <delete id="deleteDeviceIdAssociatedJobCode">
276 - delete from driver where 277 + delete from driver_face_device_id where
277 job_code in 278 job_code in
278 ( <foreach collection="jobCodes" item="item" separator=","> 279 ( <foreach collection="jobCodes" item="item" separator=",">
279 #{item} 280 #{item}