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 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 52 public static <T> Result<T> OK(T data) {
44 53 Result r = new Result();
... ...
ruoyi-admin/src/main/java/com/ruoyi/common/global/ResultCode.java
... ... @@ -8,6 +8,7 @@ public enum ResultCode {
8 8 CODE_200(200, "操作成功"),
9 9 CODE_201(201,"对象创建成功"),
10 10 CODE_202(202,"请求已经被接受"),
  11 + CODE_207(207,"请求已经成功处理了部分内容,但是还有其他内容未被处理"),
11 12 CODE_400(400,"参数列表错误(缺少,格式不匹配)"),
12 13 CODE_401(401,"未授权"),
13 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 151 @ApiOperation("人脸数据更新接口")
152 152 public Result<?> updateFaceByJob(HttpServletRequest request, @ApiParam @Validated @RequestBody FaceUpdateReqVo vo) {
153 153 try {
154   - driverService.updateFaceByJob(request, vo);
  154 + return driverService.updateFaceByJob(request, vo);
155 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 5  
6 6 import com.ruoyi.common.core.domain.AjaxResult;
7 7 import com.ruoyi.common.exception.file.InvalidExtensionException;
  8 +import com.ruoyi.common.global.Result;
8 9 import com.ruoyi.driver.domain.Driver;
9 10 import com.ruoyi.pojo.request.DriverSignInRequestVo;
10 11 import com.ruoyi.pojo.request.FaceUpdateReqVo;
... ... @@ -94,7 +95,7 @@ public interface IDriverService
94 95  
95 96 void updateDriverByComputed();
96 97  
97   - void updateFaceByJob(HttpServletRequest request, FaceUpdateReqVo vo);
  98 + Result updateFaceByJob(HttpServletRequest request, FaceUpdateReqVo vo);
98 99  
99 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 12 import com.ruoyi.common.core.domain.AjaxResult;
13 13 import com.ruoyi.common.core.redis.RedisCache;
14 14 import com.ruoyi.common.exception.file.InvalidExtensionException;
  15 +import com.ruoyi.common.global.Result;
  16 +import com.ruoyi.common.global.ResultCode;
15 17 import com.ruoyi.common.utils.file.FileUploadUtils;
16 18 import com.ruoyi.common.utils.file.FileUtils;
17 19 import com.ruoyi.common.utils.file.MimeTypeUtils;
... ... @@ -42,6 +44,7 @@ import javax.servlet.http.HttpServletRequest;
42 44 import javax.servlet.http.HttpServletResponse;
43 45  
44 46 import static com.ruoyi.common.ApiProperties.PERSONNEL_API_KEY;
  47 +import static com.ruoyi.common.global.ResultCode.CODE_207;
45 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 190 }
188 191  
189 192  
190   -
191 193 @Override
192 194 public AjaxResult getDriverSchedulingAll() {
193 195 return AjaxResult.success(redisCache.getHashKeys(DRIVER_SCHEDULING_PRE + ConstDateUtil.formatDate("yyyyMMdd")));
... ... @@ -273,16 +275,24 @@ public class DriverServiceImpl implements IDriverService {
273 275 }
274 276  
275 277 @Override
276   - public void updateFaceByJob(HttpServletRequest request, FaceUpdateReqVo vo) {
  278 + public Result<?> updateFaceByJob(HttpServletRequest request, FaceUpdateReqVo vo) {
277 279 // 获取校验
278 280 String header = request.getHeader("X-TOKEN-AUTHORIZATION");
279 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 284 Date date = new Date();
283 285 // 查询当前人员信息库是否存在对应员工数据
284 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 297 List<Driver> drivers = vo.getFaceDataList().stream().map(item -> {
288 298 Driver driver = new Driver();
... ... @@ -297,7 +307,7 @@ public class DriverServiceImpl implements IDriverService {
297 307 driver.setPersonnelName(item.getName());
298 308 driver.setUpdateTime(date);
299 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 311 List<List<Driver>> lists = ListUtils.splitList(drivers, 400);
302 312 log.info("开始人脸数据更新");
303 313 // 数据更新 更新人脸注册标识 更新基本数据
... ... @@ -305,11 +315,14 @@ public class DriverServiceImpl implements IDriverService {
305 315 driverMapper.updateSignStatusDriversByJobCodes(list);
306 316 }
307 317 log.info("人脸数据更新完成");
308   - // TODO 删除注册表中对应工号的数据
309   -// List<String> jobCodes = drivers.stream().map(Driver::getJobCode).collect(Collectors.toList());
  318 + log.info("未成功更新工号:{}", updateFailJobCodes);
310 319 log.info("开始删除注册表中对应工号的数据");
311 320 driverMapper.deleteDeviceIdAssociatedJobCode(jobCodes);
312 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 328 @Override
... ...
ruoyi-admin/src/main/java/com/ruoyi/pojo/request/FaceUpdateReqVo.java
... ... @@ -47,5 +47,9 @@ public class FaceUpdateReqVo {
47 47 @ApiModelProperty("工种")
48 48 @NotBlank(message = "工种不能为空")
49 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 71 devtools:
72 72 restart:
73 73 # 热部署开关
74   - enabled: true
  74 + enabled: false
75 75 # redis 配置
76 76 redis:
77 77 # 地址
78   - # host: 1.14.107.94
79 78 host: 121.41.83.61
80 79 database: 0
81 80 password: "guzijian"
... ... @@ -112,7 +111,7 @@ ruoyi:
112 111 # 实例演示开关
113 112 demoEnabled: true
114 113 # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
115   - profile: /home/ruoyi/uploadPath
  114 + profile: D:/ruoyi/uploadPath
116 115 # 获取ip地址开关
117 116 addressEnabled: false
118 117 # 验证码类型 math 数字计算 char 字符验证
... ... @@ -120,7 +119,7 @@ ruoyi:
120 119 # 开发环境配置
121 120 server:
122 121 # 服务器的HTTP端口,默认为8080
123   - port: 8100
  122 + port: 8080
124 123 servlet:
125 124 # 应用的访问路径
126 125 context-path: /
... ...
ruoyi-admin/src/main/resources/mapper/driver/DriverMapper.xml
... ... @@ -140,6 +140,7 @@
140 140 </select>
141 141 <select id="queryJobCodesIsExists" resultType="java.lang.String">
142 142 select job_code
  143 + from driver
143 144 where job_code in
144 145 <foreach collection="jobCodes" item="item" open="(" separator="," close=")">
145 146 #{item}
... ... @@ -273,7 +274,7 @@
273 274 </foreach>
274 275 </delete>
275 276 <delete id="deleteDeviceIdAssociatedJobCode">
276   - delete from driver where
  277 + delete from driver_face_device_id where
277 278 job_code in
278 279 ( <foreach collection="jobCodes" item="item" separator=",">
279 280 #{item}
... ...