Commit 9d2c2b6e17abf243c7eaa8148035238cfa37bfab
1 parent
33a17c25
fix: 修改人脸更新接口逻辑
Showing
8 changed files
with
43 additions
and
16 deletions
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} |