From cd2a5ab799daeb41c5f487b3ebc27ed17b4dc558 Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Sat, 16 Aug 2025 12:20:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E6=9C=BA=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/api/RemoteUakUtilsService.java | 57 ++++++ .../system/api/RemoteUploadUtilsService.java | 20 +- .../RemoteUakUtilsFallbackFactory.java | 48 +++++ .../RemoteUploadUtilsFallbackFactory.java | 7 +- .../bonus/system/api/model/UploadFileVo.java | 9 +- ...ot.autoconfigure.AutoConfiguration.imports | 2 + .../core/constant/ServiceNameConstants.java | 5 + .../bmw/service/impl/FileUploadUtils.java | 8 + .../file/controller/FileUtilController.java | 27 +++ .../service/impl/FileUtilsServiceImpl.java | 21 +- .../java/com/bonus/file/utils/MinioUtil.java | 24 +++ .../com/bonus/urk/config/CommonUtils.java | 52 +++++ .../java/com/bonus/urk/config/Constant.java | 35 +++- .../java/com/bonus/urk/config/RedisKeys.java | 24 +++ .../java/com/bonus/urk/config/RedisUtils.java | 107 ++++++++++ .../urk/controller/BusinessController.java | 24 --- .../urk/controller/SendUserController.java | 76 +++++++ .../com/bonus/urk/handle/DeviceHandle.java | 6 +- .../java/com/bonus/urk/handle/ReceiveCmd.java | 8 +- .../com/bonus/urk/handle/ResultHandle.java | 138 +++++++++++++ .../com/bonus/urk/handle/UserFaceHandle.java | 105 ++++++++++ .../com/bonus/urk/mapper/BusinessMapper.java | 38 ---- .../com/bonus/urk/mapper/CmdLogMapper.java | 5 + .../com/bonus/urk/mapper/DeviceMapper.java | 24 +++ .../com/bonus/urk/mapper/ResultMapper.java | 41 ++++ .../com/bonus/urk/mapper/SendUserMapper.java | 91 +++++++++ .../java/com/bonus/urk/mapper/TaskMapper.java | 8 + .../urk/mapper/UserFaceHandleMapper.java | 39 ++++ .../com/bonus/urk/service/CmdLogService.java | 5 + .../com/bonus/urk/service/ResultService.java | 95 +++++++++ .../bonus/urk/service/SendUserService.java | 188 ++++++++++++++++++ .../com/bonus/urk/service/TaskService.java | 66 ++++-- .../urk/service/UserFaceHandleService.java | 85 ++++++++ .../com/bonus/urk/servlet/DeviceServlet.java | 26 ++- .../com/bonus/urk/vo/BmWorkerEinUserVo.java | 107 ++++++++++ .../java/com/bonus/urk/vo/KqCmdTaskVo.java | 49 +++++ .../{BusinessMapper.xml => DeviceMapper.xml} | 6 +- .../resources/mapper/urk/ResultMapper.xml | 29 +++ .../resources/mapper/urk/SendUserMapper.xml | 104 ++++++++++ .../main/resources/mapper/urk/TaskMapper.xml | 11 + .../mapper/urk/UserFaceHandleMapper.xml | 40 ++++ 41 files changed, 1756 insertions(+), 104 deletions(-) create mode 100644 bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteUakUtilsService.java create mode 100644 bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteUakUtilsFallbackFactory.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/CommonUtils.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/RedisKeys.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/RedisUtils.java delete mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/controller/BusinessController.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/controller/SendUserController.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/ResultHandle.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/UserFaceHandle.java delete mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/BusinessMapper.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/DeviceMapper.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/ResultMapper.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/SendUserMapper.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/UserFaceHandleMapper.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/ResultService.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/SendUserService.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/UserFaceHandleService.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/vo/BmWorkerEinUserVo.java create mode 100644 bonus-modules/bonus-urk/src/main/java/com/bonus/urk/vo/KqCmdTaskVo.java rename bonus-modules/bonus-urk/src/main/resources/mapper/urk/{BusinessMapper.xml => DeviceMapper.xml} (90%) create mode 100644 bonus-modules/bonus-urk/src/main/resources/mapper/urk/ResultMapper.xml create mode 100644 bonus-modules/bonus-urk/src/main/resources/mapper/urk/SendUserMapper.xml create mode 100644 bonus-modules/bonus-urk/src/main/resources/mapper/urk/UserFaceHandleMapper.xml diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteUakUtilsService.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteUakUtilsService.java new file mode 100644 index 0000000..2782fa1 --- /dev/null +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteUakUtilsService.java @@ -0,0 +1,57 @@ +package com.bonus.system.api; + +import com.bonus.common.core.constant.SecurityConstants; +import com.bonus.common.core.constant.ServiceNameConstants; +import com.bonus.common.core.domain.R; +import com.bonus.system.api.factory.RemoteUakUtilsFallbackFactory; +import com.bonus.system.api.model.UploadFileVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.multipart.MultipartFile; + +/** + * 考勤机指令下发 + * 主要是人员下发、修改、删除 + * 考勤机新增后 人员 + * + * @author 黑子 + */ +@FeignClient(contextId = "remoteUakUtilsService", value = ServiceNameConstants.UAK_SERVICE, fallbackFactory = RemoteUakUtilsFallbackFactory.class) +public interface RemoteUakUtilsService { + /** + * 新增-修改人员触发 + * @param userId + * @param proId + * @param update + * @param source + */ + @PostMapping(value = "/business/sendUserToDevice") + public void sendUserToDevice(@RequestParam(value = "userId") int userId, @RequestParam(value = "proId")int proId, + @RequestParam(value = "update")String update, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 新增考勤机触发 + * @param deviceCode + * @param userId + * @param source + */ + @PostMapping(value = "/business/getUserSendToDev") + public void getUserSendToDev(@RequestParam(value = "deviceCode") String deviceCode, @RequestParam(value = "userId")int userId, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 人员出场触发 + * @param userId + * @param proId + * @param source + */ + @PostMapping(value = "/business/delUserByDevice") + public void delUserByDevice(@RequestParam(value = "userId") int userId, @RequestParam(value = "proId")int proId, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + +} diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteUploadUtilsService.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteUploadUtilsService.java index e497f0f..3dd857b 100644 --- a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteUploadUtilsService.java +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteUploadUtilsService.java @@ -5,6 +5,7 @@ import com.bonus.common.core.constant.ServiceNameConstants; import com.bonus.common.core.domain.R; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.system.api.factory.RemoteFileFallbackFactory; +import com.bonus.system.api.factory.RemoteUploadUtilsFallbackFactory; import com.bonus.system.api.model.UploadFileVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; @@ -18,8 +19,9 @@ import java.util.List; /** * @author 黑子 + * 文件上传工具类 */ -@FeignClient(contextId = "remoteUploadUtilsService", value = ServiceNameConstants.FILE_SERVICE, fallbackFactory = RemoteFileFallbackFactory.class) +@FeignClient(contextId = "remoteUploadUtilsService", value = ServiceNameConstants.FILE_SERVICE, fallbackFactory = RemoteUploadUtilsFallbackFactory.class) public interface RemoteUploadUtilsService { /** @@ -132,4 +134,20 @@ public interface RemoteUploadUtilsService { public R delFileListById(@RequestParam(value = "id") String id, @RequestParam(value = "sourceId")String sourceId, @RequestParam(value = "sourceTable")String sourceTable, @RequestParam(value = "sourceType")String sourceTyp , @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * id /source 必传一个 + * @param id -选择性必填 依据fileid删除 + * @param sourceId --选择性必填 依据资源id删除 + * @param sourceTable --非必填 依据资源id和 表机构id删除 + * @param sourceTyp --非必填 依据资源id和 表机构id删除-及文件类型删除 + * @param source 内部接口 SecurityConstants.INNER + * @return + */ + @PostMapping(value = "/uploadFile/getFileBast64") + public R getFileBast64(@RequestParam(value = "id") String id, @RequestParam(value = "sourceId")String sourceId, + @RequestParam(value = "sourceTable")String sourceTable, @RequestParam(value = "sourceType")String sourceTyp + , @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + } diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteUakUtilsFallbackFactory.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteUakUtilsFallbackFactory.java new file mode 100644 index 0000000..39a063f --- /dev/null +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteUakUtilsFallbackFactory.java @@ -0,0 +1,48 @@ +package com.bonus.system.api.factory; + +import com.bonus.common.core.domain.R; +import com.bonus.system.api.RemoteUakUtilsService; +import com.bonus.system.api.RemoteUploadUtilsService; +import com.bonus.system.api.model.UploadFileVo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + + +/** + * 考勤机 服务降级处理 + * + * @author bonus + */ +@Component +public class RemoteUakUtilsFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteUakUtilsFallbackFactory.class); + @Override + public RemoteUakUtilsService create(Throwable throwable) { + log.error("考勤机服务调用失败:{}", throwable.getMessage()); + return new RemoteUakUtilsService(){ + + @Override + public void sendUserToDevice(int userId, int proId, String update, String source) { + R.fail("人员入场:" + throwable.getMessage()); + } + + @Override + public void getUserSendToDev(String deviceCode, int userId, String source) { + R.fail("新增考勤机:" + throwable.getMessage()); + } + + @Override + public void delUserByDevice(int userId, int proId, String source) { + R.fail("人员出场:" + throwable.getMessage()); + } + + }; + + } +} diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteUploadUtilsFallbackFactory.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteUploadUtilsFallbackFactory.java index 0664e90..e181f38 100644 --- a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteUploadUtilsFallbackFactory.java +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteUploadUtilsFallbackFactory.java @@ -14,7 +14,7 @@ import java.util.List; /** - * 用户服务降级处理 + * 文件上传工具类 服务降级处理 * * @author bonus */ @@ -63,6 +63,11 @@ public class RemoteUploadUtilsFallbackFactory implements FallbackFactory getFileBast64(String id, String sourceId, String sourceTable, String sourceTyp, String source) { + return R.fail("文件bast64获取失败:" + throwable.getMessage()); + } + }; diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/model/UploadFileVo.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/model/UploadFileVo.java index 41f0d38..7b4d413 100644 --- a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/model/UploadFileVo.java +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/model/UploadFileVo.java @@ -61,8 +61,15 @@ public class UploadFileVo { private String url; private String msg; - + /** + * 创建时间 + */ private String createTime; + /** + * 获取bast64文件 + */ + private String bast64; + } diff --git a/bonus-api/bonus-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/bonus-api/bonus-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 330c254..c81329c 100644 --- a/bonus-api/bonus-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/bonus-api/bonus-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -10,3 +10,5 @@ com.bonus.system.api.factory.RemotePostFallbackFactory com.bonus.system.api.factory.RemoteRoleFallbackFactory com.bonus.system.api.factory.RemoteNoticeFallbackFactory com.bonus.system.api.factory.RemoteProfileFallbackFactory +com.bonus.system.api.factory.RemoteUakUtilsFallbackFactory +com.bonus.system.api.factory.RemoteUploadUtilsFallbackFactory diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java index b126e5e..0c47833 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java @@ -21,4 +21,9 @@ public class ServiceNameConstants * 文件服务的serviceid */ public static final String FILE_SERVICE = "bonus-file"; + + /** + * 考勤机服务模块 + */ + public static final String UAK_SERVICE = "bonus-uak"; } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/FileUploadUtils.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/FileUploadUtils.java index 6daf6d4..5a27a70 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/FileUploadUtils.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/FileUploadUtils.java @@ -159,5 +159,13 @@ public class FileUploadUtils { return String.valueOf(R.FAIL); } + public UploadFileVo getFileBast64( String id,String sourceId,String sourceTable,String sourceTyp){ + R res=service.getFileBast64(id,sourceId,sourceTable,sourceTyp, SecurityConstants.INNER); + if(res.getCode()==R.SUCCESS){ + UploadFileVo vo=res.getData(); + return vo; + } + return null; + } } diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/FileUtilController.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/FileUtilController.java index f3add94..790c98e 100644 --- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/FileUtilController.java +++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/FileUtilController.java @@ -90,6 +90,8 @@ public class FileUtilController { return R.fail("文件上传报错"); } } + + /** * 文件上传 * @param files 文件 @@ -205,4 +207,29 @@ public class FileUtilController { } } + /** + * 获取单个文件的bast64 + * @param id + * @param sourceId + * @param sourceTable + * @param sourceType + * @return + */ + @PostMapping("/getFileBast64") + public R getFileBast64(String id,String sourceId,String sourceTable,String sourceType) { + try { + if (ObjectUtil.isEmpty(id)) { + if (ObjectUtil.isEmpty(sourceId)) { + return R.fail("资源表id不能为空"); + } + } + UploadFileVo num= service.getFileBast64( id,sourceId,sourceTable,sourceType); + return R.ok(num); + } + catch (Exception e) { + log.error(e.toString(),e); + return R.fail("文件删除失败"); + } + } + } diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/impl/FileUtilsServiceImpl.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/impl/FileUtilsServiceImpl.java index 9b2cb54..e55ad7a 100644 --- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/impl/FileUtilsServiceImpl.java +++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/impl/FileUtilsServiceImpl.java @@ -418,11 +418,20 @@ public class FileUtilsServiceImpl { // 无效的Base64编码 } + /** + * 获取文件bast64 + * @param id + * @param sourceId + * @param sourceTable + * @param sourceType + * @return + */ + public UploadFileVo getFileBast64(String id, String sourceId, String sourceTable, String sourceType) { + List list=mapper.getFileList(id,sourceId,sourceType,sourceTable); + UploadFileVo vo=list.get(0); + String bast64=minioUtils.getMinioBast64(vo.getBucketName(),vo.getFilePath()); + vo.setBast64(bast64); + return vo; - - - - - - + } } diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/utils/MinioUtil.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/utils/MinioUtil.java index 4a650c3..5a2f44c 100644 --- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/utils/MinioUtil.java +++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/utils/MinioUtil.java @@ -289,6 +289,30 @@ public class MinioUtil { .method(Method.GET) .build()); } + + /** + * 获取文件bast64 + * @param bucketName + * @param path + * @return + */ + @SneakyThrows(Exception.class) + public String getMinioBast64(String bucketName,String path) { + InputStream inputStream= minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(path).build()); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + + byte[] bytes = outputStream.toByteArray(); + String bast64= Base64.getEncoder().encodeToString(bytes); + inputStream.close(); + outputStream.close(); + return bast64; + } + /** * 删除文件 * diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/CommonUtils.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/CommonUtils.java new file mode 100644 index 0000000..3b52bb6 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/CommonUtils.java @@ -0,0 +1,52 @@ +package com.bonus.urk.config; + +import cn.hutool.core.io.IoUtil; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; + +public class CommonUtils { + /** + * 获取request输入流byte[] + * @param request + * @return + */ + public static byte[] GetRequestStreamBytes(HttpServletRequest request) { + int lenContent = request.getContentLength(); + byte[] byteRequestBin = new byte[0]; + if (lenContent < 1) { + return byteRequestBin; + } + try { + byteRequestBin = IoUtil.readBytes(request.getInputStream()); + } catch (IOException e) { + e.printStackTrace(); + } + return byteRequestBin; + } + + public static Map getHeaderMap(HttpServletRequest req) { + Map map = new HashMap<>(); + Enumeration headerNames = req.getHeaderNames(); + while (headerNames.hasMoreElements()) { + String key = (String) headerNames.nextElement(); + String value = req.getHeader(key); + map.put(key, value); + } + + return map; + } + + public static String getRequestBodyKey(HttpServletRequest req) { + Map headerMap = getHeaderMap(req); + StringBuilder key = new StringBuilder(); + key.append(headerMap.get(Constant.DEVICE_HEADER_DEV_ID)).append("_") + .append(headerMap.get(Constant.DEVICE_HEADER_TRANS_ID)).append("_") + .append(headerMap.get(Constant.DEVICE_HEADER_REQUEST_CODE)).append("_") + .append(headerMap.get(Constant.DEVICE_HEADER_CONTENT_LENGTH)); + return key.toString(); + } +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/Constant.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/Constant.java index b028cc7..b88bf2b 100644 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/Constant.java +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/Constant.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import java.util.Date; import java.util.HashSet; +import java.util.LinkedList; import java.util.Set; /** @@ -98,13 +99,41 @@ public class Constant { NO_SEND_SMS_STORE_SET.add("46"); } + + /** + * 没结果返回命令 + */ + + public static final LinkedList noResList=new LinkedList<>(); + /** + * 有结果返回命令 + */ + public static final LinkedList reslutList=new LinkedList<>(); + static { + noResList.add("SET_TIME"); + noResList.add("RESET_FK"); + noResList.add("CLEAR_LOG_DATA"); + noResList.add("RESET_DEVICE"); + noResList.add("UPDATE_FIRMWARE"); + noResList.add("ENTER_ENROLL"); + noResList.add("SET_DEVICE_SETTING"); + noResList.add("CLEAR_MANAGER"); + noResList.add("SET_DOOR_STATUS"); + noResList.add("SET_ROOM_NUM"); + noResList.add("SET_TTS_STRING"); + reslutList.add("SET_USER_INFO"); + reslutList.add("GET_USER_ID_LIST"); + reslutList.add("GET_USER_INFO"); + reslutList.add("GET_LOG_DATA"); + reslutList.add("DELETE_USER"); + reslutList.add("GET_DEVICE_INFO"); + reslutList.add("GET_DEVICE_SETTING"); + } /** * 没结果返回命令 */ public static final Set noResultInstruct = new HashSet<>(); - /** - * 有结果返回命令 - */ + public static final Set hasResultInstruct = new HashSet<>(); static { noResultInstruct.add(InstructEnum.SET_TIME); diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/RedisKeys.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/RedisKeys.java new file mode 100644 index 0000000..3da2c76 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/RedisKeys.java @@ -0,0 +1,24 @@ +package com.bonus.urk.config; + +/** + * Redis所有Keys + * + * @author eqzcy@163.com + */ +public class RedisKeys { + + public static String getSysConfigKey(String key){ + return "sys:config:" + key; + } + + public static String getSysUserTokenKey(String key){ + return "sys:userToken:" + key; + } + public static String getSysUserKey(String key){ + return "sys:user:info:" + key; + } + + public static String getUserPermKey(String key){ + return "sys:user:perm:" + key; + } +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/RedisUtils.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/RedisUtils.java new file mode 100644 index 0000000..506ab9d --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/config/RedisUtils.java @@ -0,0 +1,107 @@ +package com.bonus.urk.config; + +import com.google.gson.Gson; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.*; +import org.springframework.stereotype.Component; + +import java.util.concurrent.TimeUnit; + +/** + * Redis工具类 + * + * @author eqzcy@163.com + */ +@Component +public class RedisUtils { + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private ValueOperations valueOperations; + @Autowired + private HashOperations hashOperations; + @Autowired + private ListOperations listOperations; + @Autowired + private SetOperations setOperations; + @Autowired + private ZSetOperations zSetOperations; + /** 默认过期时长,单位:秒 */ + public final static long DEFAULT_EXPIRE = 60 * 60 * 24; + /** 不设置过期时长 */ + public final static long NOT_EXPIRE = -1; + private final static Gson gson = new Gson(); + + public void set(String key, Object value, long expire){ + valueOperations.set(key, toJson(value)); + if(expire != NOT_EXPIRE){ + redisTemplate.expire(key, expire, TimeUnit.SECONDS); + } + } + + public void set(String key, Object value){ + set(key, value, DEFAULT_EXPIRE); + } + + public T get(String key, Class clazz, long expire) { + String value = valueOperations.get(key); + if(expire != NOT_EXPIRE){ + redisTemplate.expire(key, expire, TimeUnit.SECONDS); + } + return value == null ? null : fromJson(value, clazz); + } + + public T get(String key, Class clazz) { + return get(key, clazz, NOT_EXPIRE); + } + + public String get(String key, long expire) { + String value = valueOperations.get(key); + if(expire != NOT_EXPIRE){ + redisTemplate.expire(key, expire, TimeUnit.SECONDS); + } + return value; + } + + public String get(String key) { + return get(key, NOT_EXPIRE); + } + + public void delete(String key) { + redisTemplate.delete(key); + } + + /** + * 判断key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + public boolean hasKey(String key) { + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + } + + /** + * Object转成JSON数据 + */ + private String toJson(Object object){ + if(object instanceof Integer || object instanceof Long || object instanceof Float || + object instanceof Double || object instanceof Boolean || object instanceof String){ + return String.valueOf(object); + } + return gson.toJson(object); + } + + /** + * JSON数据,转成Object + */ + private T fromJson(String json, Class clazz){ + return gson.fromJson(json, clazz); + } +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/controller/BusinessController.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/controller/BusinessController.java deleted file mode 100644 index ae70781..0000000 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/controller/BusinessController.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.bonus.urk.controller; - -import io.swagger.annotations.Api; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author 黑子 - */ -@Api(tags = "考勤机业务员指令接口") -@RestController("business") -@RequestMapping -@Slf4j -public class BusinessController { - - - - - - - - -} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/controller/SendUserController.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/controller/SendUserController.java new file mode 100644 index 0000000..2dc4b42 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/controller/SendUserController.java @@ -0,0 +1,76 @@ +package com.bonus.urk.controller; + +import com.bonus.urk.service.SendUserService; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author 黑子 + */ +@Api(tags = "考勤机业务员指令接口-人员下发及删除") +@RestController("business") +@RequestMapping +@Slf4j +public class SendUserController { + + @Autowired + private SendUserService service; + + /** + * 人员下发 及人员修改时触发 + * @param userId + * @param proId + * @param update + */ + @PostMapping("sendUserToDevice") + public void sendUserToDevice(int userId,int proId,String update) { + try { + service.sendUserToDevice(userId,proId, update); + } + catch (Exception e) { + log.error(e.toString(),e); + } + } + /** + * 新增考勤机 时触发 + * @param deviceCode + */ + @PostMapping("getUserSendToDev") + public void sendUserToDevice(String deviceCode,int proId) { + try { + service.getUserSendToDev(deviceCode,proId); + } + catch (Exception e) { + log.error(e.toString(),e); + } + } + + + + /** + * 人员出场时触发 + */ + @PostMapping("delUserByDevice") + public void delUserByDevice(int userId ,int proId ) { + try { + service.delUserByDevice(userId,proId); + } + catch (Exception e) { + log.error(e.toString(),e); + } + } + + + + + + + + + + +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/DeviceHandle.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/DeviceHandle.java index 40dad05..663cc20 100644 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/DeviceHandle.java +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/DeviceHandle.java @@ -2,7 +2,7 @@ package com.bonus.urk.handle; import com.bonus.common.core.utils.StringUtils; import com.bonus.urk.config.Constant; -import com.bonus.urk.mapper.BusinessMapper; +import com.bonus.urk.mapper.DeviceMapper; import com.bonus.urk.vo.DeviceVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletResponse; public class DeviceHandle { @Autowired - private BusinessMapper mapper; + private DeviceMapper mapper; public DeviceVo handel(HttpServletRequest req, HttpServletResponse resp){ @@ -31,7 +31,7 @@ public class DeviceHandle { //设备型号 String devModel = req.getHeader(Constant.DEVICE_HEADER_DEV_MODEL); if(StringUtils.isEmpty(devId)) { - log.error("请求头不含设备编号, 不能处理数据"); + log.error("请求头不含设备编号,不能处理数据"); return null; } //验证设备是否存在 diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/ReceiveCmd.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/ReceiveCmd.java index 0de198b..64a8b5d 100644 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/ReceiveCmd.java +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/ReceiveCmd.java @@ -1,11 +1,8 @@ package com.bonus.urk.handle; import cn.hutool.core.collection.CollectionUtil; -import com.bonus.urk.config.CacheConstant; import com.bonus.urk.config.Constant; -import com.bonus.urk.config.InstructEnum; import com.bonus.urk.config.TaskStatusEnum; -import com.bonus.urk.mapper.BusinessMapper; import com.bonus.urk.mapper.TaskMapper; import com.bonus.urk.service.TaskService; import com.bonus.urk.vo.DeviceTaskVo; @@ -18,12 +15,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; -import static com.bonus.urk.config.InstructEnum.RESET_FK; -import static com.bonus.urk.config.InstructEnum.SET_TIME; - /** * @author 黑子 + * 设备信通处理器 */ @Service @Slf4j @@ -123,7 +118,6 @@ public class ReceiveCmd { } - }catch (Exception e){ log.error(e.toString()); } diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/ResultHandle.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/ResultHandle.java new file mode 100644 index 0000000..0f6d381 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/ResultHandle.java @@ -0,0 +1,138 @@ +package com.bonus.urk.handle; + +import cn.hutool.core.date.DateTime; +import com.bonus.common.core.utils.DateUtils; +import com.bonus.urk.config.CommonUtils; +import com.bonus.urk.config.Constant; +import com.bonus.urk.config.TaskStatusEnum; +import com.bonus.urk.service.ResultService; +import com.bonus.urk.vo.KqCmdTaskVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.sql.Timestamp; +import java.util.Calendar; + +/** + * 数据回调接口 + * @author 黑子 + */ +@Service +@Slf4j +public class ResultHandle { + + @Autowired + private ResultService service; + + /** + * 数据统一回调事件 + * @param req + * @param resp + */ + public void dealTrans(HttpServletRequest req, HttpServletResponse resp) { + //任务识别号 + String asTransId = req.getHeader(Constant.DEVICE_HEADER_TRANS_ID); + String isok = req.getHeader("cmd_return_code"); + try{ + KqCmdTaskVo taskVo=service.getTaskVoById(asTransId); + //存在任务 + if(taskVo!=null){ + //任务失败了 + if (!isok.equals(Constant.OK)) { + //执行失败 + taskVo.setTransStatus(TaskStatusEnum.ERROR.ordinal()); + taskVo.setUpdateTime(DateUtils.getTime()); + service.updateTaskById(taskVo); + }else{ + String cmdCode = taskVo.getCmdCode(); + if (Constant.noResList.contains(cmdCode)) { + log.info("cmdCode:{}", cmdCode); + try { + String jsonStr = null; + // String key = CommonUtils.getRequestBodyKey(req); + byte[] deviceReturnData = CommonUtils.GetRequestStreamBytes(req); + jsonStr = new String(deviceReturnData, Constant.CHART_SET); + log.info("设备反馈信息:{}", jsonStr); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + }else{ + //设备携带数据返回的 + // 获得注册人员列表 + switch (taskVo.getCmdCode()) { + case "GET_USER_ID_LIST": + service.insertUserIdList(taskVo, req, resp); + break; + case "SET_USER_INFO": + service.insertUserInfoList(taskVo, req, resp); + break; + case "GET_LOG_DATA": + // 获取记录数据 + service.insertLogData(taskVo, req, resp); + break; + case "GET_DEVICE_INFO": + // 获取设备基本信息 + service.insertDeviceInfo(taskVo, req, resp); + break; + + case "GET_DEVICE_SETTING": + // 获取设备设置参数 + service.insertDeviceSetting(taskVo, req, resp); + break; + case "GET_USER_INFO": + // 获取考勤机用户信息 + service.insertUserInfo(taskVo, req, resp); + break; + case "DELETE_USER": + // 删除人员的反馈 + service.insertDeleteUser(taskVo, req, resp); + break; + default: + taskVo.setMsg("未知命令"); + break; + } + //更新 ,再进行删除任务记录 + service.updateCmdTaskStatus(taskVo); + } + + + + + + + + + + + + + } + + + } + + + + + + + + + + System.err.println("asTransId---->"+asTransId); + System.err.println("isok---->"+isok); + }catch (Exception e){ + log.error(e.toString(),e); + } + } + + + + + +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/UserFaceHandle.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/UserFaceHandle.java new file mode 100644 index 0000000..3e08d0b --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/handle/UserFaceHandle.java @@ -0,0 +1,105 @@ +package com.bonus.urk.handle; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.RandomUtil; +import com.alibaba.fastjson.JSONObject; +import com.bonus.system.api.RemoteUploadUtilsService; +import com.bonus.urk.config.CommonUtils; +import com.bonus.urk.config.Constant; +import com.bonus.urk.service.UserFaceHandleService; +import com.bonus.urk.vo.BmWorkerEinUserVo; +import com.bonus.urk.vo.DeviceVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.text.SimpleDateFormat; + +/** + * 人脸识别处理器 + * @author 黑子 + */ +@Service +@Slf4j +public class UserFaceHandle { + + public static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + + + @Autowired + private UserFaceHandleService service; + + /** + * 人员数据处理 + * @param deviceVo + * @param req + * @param resp + */ + @Async + public void addUserAttendance(DeviceVo deviceVo, HttpServletRequest req, HttpServletResponse resp) { + try{ + // 解析request输入流 + String jsonStr = getRequestBody(req); + log.info("出入记录:{}", jsonStr); + JSONObject jsonObject = JSONObject.parseObject(jsonStr); + if(null == jsonObject) { + log.error("出入记录没数据"); + return; + } + //用户id + String userId=jsonObject.getString("userId"); + String devCode= deviceVo.getDevCode(); + DateTime datetime= DateUtil.parse(jsonObject.getString("time"), DatePattern.PURE_DATETIME_FORMAT); + String time=sdf.format(datetime); + String bast64 = ""; + if(jsonObject.getString("logPhoto")!=null) { + //文件图片 + bast64= jsonObject.getString("logPhoto"); + // fileService.uploadBast64(bast64,"bm_att_person","bm_att_person") + } + //验证用户是否入场 + BmWorkerEinUserVo vo=service.getOnUserInfo(userId); + if(vo==null){ + log.error("人员未入场"); + return; + } + vo.setAttPhoto(bast64); + vo.setAttTime(time); + vo.setDevCode(devCode); + vo.setDevName(deviceVo.getDeviceName()); + service.addAttendInfo(vo); + + }catch (Exception e){ + log.error(e.toString(),e); + } + + } + + + + private String getRequestBody(HttpServletRequest req) { + // String key = CommonUtils.getRequestBodyKey(req); +// if(redisUtils.hasKey(key)) { +// return redisUtils.get(key); +// } else { + byte[] requestData = CommonUtils.GetRequestStreamBytes(req); + String jsonStr = null; + try { + jsonStr = new String(requestData, Constant.CHART_SET); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return jsonStr; + // } + } +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/BusinessMapper.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/BusinessMapper.java deleted file mode 100644 index 488af8c..0000000 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/BusinessMapper.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.bonus.urk.mapper; - -import com.bonus.urk.vo.DeviceTaskVo; -import com.bonus.urk.vo.DeviceVo; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - - -/** - * @author 黑子 - */ -@Mapper -public interface BusinessMapper { - - - DeviceVo getDeviceVoById(@Param("devId") String devId); - - /** - * 新增数据 - * @param deviceVo - */ - int insertDeviceVo(DeviceVo deviceVo); - - /** - * 查询待执行的设备指令 - * @param devCode - * @return - */ - List selectCmdTaskList(@Param("devCode") String devCode); - - /** - * 更新任务状态 - * @param task - */ - void updateById(DeviceTaskVo task); -} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/CmdLogMapper.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/CmdLogMapper.java index 7288d6e..16f8a56 100644 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/CmdLogMapper.java +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/CmdLogMapper.java @@ -1,9 +1,12 @@ package com.bonus.urk.mapper; +import com.bonus.urk.config.DeviceUserDto; import com.bonus.urk.vo.DeviceTaskVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author 黑子 */ @@ -16,4 +19,6 @@ public interface CmdLogMapper { * @param body */ void insertCmdLogs(@Param("taskVo") DeviceTaskVo taskVo,@Param("body") String body); + + } diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/DeviceMapper.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/DeviceMapper.java new file mode 100644 index 0000000..bb2a1ce --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/DeviceMapper.java @@ -0,0 +1,24 @@ +package com.bonus.urk.mapper; + +import com.bonus.urk.vo.DeviceVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + + +/** + * @author 黑子 + */ +@Mapper +public interface DeviceMapper { + + + DeviceVo getDeviceVoById(@Param("devId") String devId); + + /** + * 新增数据 + * @param deviceVo + */ + int insertDeviceVo(DeviceVo deviceVo); + + +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/ResultMapper.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/ResultMapper.java new file mode 100644 index 0000000..b2f83cc --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/ResultMapper.java @@ -0,0 +1,41 @@ +package com.bonus.urk.mapper; + +import com.bonus.urk.vo.KqCmdTaskVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @author 黑子 + * 数据返回 数据 + */ +@Mapper +public interface ResultMapper { + + /** + * 查询任务信息 + * @param asTransId + * @return + */ + KqCmdTaskVo getTaskVoById(@Param("taskId") String asTransId); + + /** + * 更新任务状态 + * @param taskVo + */ + void updateTaskById(KqCmdTaskVo taskVo); + + void updateTaskHisById(KqCmdTaskVo taskVo); + + /** + * r任务下发后进行状态跟新· + * @param taskVo + * @param i + */ + void updateUserIssuedStatus(@Param("taskVo") KqCmdTaskVo taskVo,@Param("result") int i); + + /** + * 删除任务信息记录 + * @param taskVo + */ + void delCmdTaskId(KqCmdTaskVo taskVo); +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/SendUserMapper.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/SendUserMapper.java new file mode 100644 index 0000000..0343576 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/SendUserMapper.java @@ -0,0 +1,91 @@ +package com.bonus.urk.mapper; + +import com.bonus.urk.vo.DeviceVo; +import com.bonus.urk.vo.KqCmdTaskVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author 黑子 + */ +@Mapper +public interface SendUserMapper { + + + /** + * 新增任务-及任务记录 + * @param taskVo + */ + void insertCmdTask(KqCmdTaskVo taskVo); + /** + * 新增任务-及任务记录 + * @param taskVo + */ + void insertCmdTaskHistory(KqCmdTaskVo taskVo); + + + + /** + * 查询当前工程全部在场人员 + * @param proId + * @return + */ + List getOnSiteUser(@Param("proId") int proId); + + /** + * 批量插入 任务人员管理表 + * @param list + * @param taskVo + */ + + void insertCmdTaskUser(@Param("list") List list,@Param("param") KqCmdTaskVo taskVo); + + /** + * 批量插入 设备任务记录 + * @param list + */ + void insertCmdTaskByDevice(@Param("list")List list); + + /** + * 批量插入任务数据 + * @param list + */ + void insertCmdTaskByDeviceHistory(@Param("list")List list); + + + /** + * 任务下发的用户信息 + * @param list + * @param userId + */ + void insertTaskUser(@Param("list")List list,@Param("userId") int userId); + + + /** + * 分页查询工程数据 + * @param proId + * @return + */ + List getDeviceVoByProId(@Param("proId") int proId); + + /** + * 查询工程是否史上海工程 + * @param proId + * @return + */ + Integer getProType(@Param("proId") int proId); + + /** + * 查询全部上海工程的考勤机 + * @return + */ + List getDeviceVoByProBySh(); + + /** + * 查询上海工程的全部人员 + * @return + */ + List getOnSiteUserBySh(); +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/TaskMapper.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/TaskMapper.java index afd4598..7f3c436 100644 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/TaskMapper.java +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/TaskMapper.java @@ -1,5 +1,6 @@ package com.bonus.urk.mapper; +import com.bonus.urk.config.DeviceUserDto; import com.bonus.urk.vo.DeviceTaskVo; import com.bonus.urk.vo.TaskUserVo; import org.apache.ibatis.annotations.Mapper; @@ -39,4 +40,11 @@ public interface TaskMapper { * @return */ List getTaskUserInfoList(@Param("taskId")String id); + + /** + * 用户下发记录 + * @param taskVo + * @param userList + */ + void insertUserIssued(@Param("taskVo") DeviceTaskVo taskVo,@Param("list") List userList); } diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/UserFaceHandleMapper.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/UserFaceHandleMapper.java new file mode 100644 index 0000000..306c991 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/mapper/UserFaceHandleMapper.java @@ -0,0 +1,39 @@ +package com.bonus.urk.mapper; + +import com.bonus.urk.vo.BmWorkerEinUserVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @author 黑子 + */ +@Mapper +public interface UserFaceHandleMapper { + /** + * 查询用户在岗 + * @param userId + * @return + */ + BmWorkerEinUserVo getOnUserInfo(@Param("userId") String userId); + + /** + * 新增人员考勤数据 + * @param vo + * @return + */ + int insertAttPerson(BmWorkerEinUserVo vo); + + /** + * 插入考勤记录 + * @param vo + * @return + */ + int insertAttRecord(BmWorkerEinUserVo vo); + + /** + * 看看今日是否已经考勤 + * @param vo + * @return + */ + Integer getTodayIsExit(BmWorkerEinUserVo vo); +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/CmdLogService.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/CmdLogService.java index e99eb9e..00a4ab0 100644 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/CmdLogService.java +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/CmdLogService.java @@ -1,12 +1,15 @@ package com.bonus.urk.service; +import com.bonus.urk.config.DeviceUserDto; import com.bonus.urk.mapper.CmdLogMapper; import com.bonus.urk.vo.DeviceTaskVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * @author 黑子 @@ -35,4 +38,6 @@ public class CmdLogService { log.error(e.toString(),e); } } + + } diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/ResultService.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/ResultService.java new file mode 100644 index 0000000..b438fa2 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/ResultService.java @@ -0,0 +1,95 @@ +package com.bonus.urk.service; + +import com.bonus.urk.mapper.ResultMapper; +import com.bonus.urk.vo.KqCmdTaskVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * 数据返回处理 业务层 + * @author 黑子 + */ +@Service +@Slf4j +public class ResultService { + + @Autowired + private ResultMapper mapper; + + /** + * 查询任务 记录 + * @param asTransId + * @return + */ + public KqCmdTaskVo getTaskVoById(String asTransId) { + try{ + return mapper.getTaskVoById(asTransId); + }catch (Exception e){ + log.error(e.toString(),e); + } + return null; + } + + /** + * 更新任务状态 + * @param taskVo + */ + @Async + public void updateTaskById(KqCmdTaskVo taskVo) { + try{ + mapper.updateTaskById(taskVo); + mapper.updateTaskHisById(taskVo); + }catch (Exception e){ + log.error(e.toString(),e); + } + } + + public void insertUserIdList(KqCmdTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) { + } + + public void insertLogData(KqCmdTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) { + } + + public void insertDeviceInfo(KqCmdTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) { + } + + public void insertDeviceSetting(KqCmdTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) { + } + + public void insertUserInfo(KqCmdTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) { + } + + public void insertDeleteUser(KqCmdTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) { + } + + /** + * 人员下发回调 + * @param taskVo + * @param req + * @param resp + */ + public void insertUserInfoList(KqCmdTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) { + try{ + //跟新任务状态 + mapper.updateUserIssuedStatus(taskVo,1); + + }catch (Exception e){ + log.error(e.toString(),e); + } + } + @Async + public void updateCmdTaskStatus(KqCmdTaskVo taskVo) { + try{ + //跟新任务状态 + mapper.delCmdTaskId(taskVo); + mapper.updateTaskHisById(taskVo); + }catch (Exception e){ + log.error(e.toString(),e); + } + } +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/SendUserService.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/SendUserService.java new file mode 100644 index 0000000..cbf0a4d --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/SendUserService.java @@ -0,0 +1,188 @@ +package com.bonus.urk.service; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.nacos.shaded.com.google.common.collect.Maps; +import com.bonus.common.core.utils.DateUtils; +import com.bonus.urk.config.TaskStatusEnum; +import com.bonus.urk.mapper.SendUserMapper; +import com.bonus.urk.vo.DeviceVo; +import com.bonus.urk.vo.KqCmdTaskVo; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @author 黑子 + * + */ +@Slf4j +@Service +public class SendUserService { + + public final static int PAGE_SIZE=200; + + + @Resource + private SendUserMapper mapper; + + + public void getUserSendToDev(String deviceCode,int proId) { + try{ + String createTime= DateUtils.getTime(); + KqCmdTaskVo taskVo=new KqCmdTaskVo(); + taskVo.setProId(String.valueOf(proId)); + taskVo.setCreateTime(createTime); + taskVo.setCmdCode("SET_USER_INFO"); + taskVo.setDeviceCode(deviceCode); + //等待执行 + taskVo.setTransStatus(TaskStatusEnum.WAIT.ordinal()); + //分页查询 + getUserSendToDev(proId,1,taskVo); + }catch (Exception e){ + log.error(e.toString(),e); + } + } + + + public void getUserSendToDev(int proId,int pageNum, KqCmdTaskVo taskVo){ + try{ + List list; + Integer isSh=mapper.getProType(proId); + PageHelper.startPage(pageNum, PAGE_SIZE); + if(isSh!=null && isSh==1){ + list=mapper.getOnSiteUserBySh(); + }else{ + list=mapper.getOnSiteUser(proId); + } + PageInfo pageInfo =new PageInfo(list); + //分页查询全部在场用户 + if (!list.isEmpty()){ + taskVo.setCmdParam(JSON.toJSONString(list)); + //添加任务 + mapper.insertCmdTask(taskVo); + //添加历史记录 + mapper.insertCmdTaskHistory(taskVo); + //添加人员 + mapper.insertCmdTaskUser(list,taskVo); + + int pageSize=pageInfo.getPageNum(); + int pageTotal=pageInfo.getPages(); + if(pageSize userList=new ArrayList<>(); + userList.add(userId); + String json= JSON.toJSONString(userList); + taskVo.setProId(String.valueOf(proId)); + taskVo.setCmdParam(json); + taskVo.setCreateTime(createTime); + taskVo.setCmdCode("SET_USER_INFO"); + //等待执行 + taskVo.setTransStatus(TaskStatusEnum.WAIT.ordinal()); + //分页查询 + sendUserToDevice(userId,proId,1,taskVo); + }catch (Exception e){ + log.error(e.toString(),e); + } + } + /** + * 下发人员分页 + * @param userId + * @param proId + * @param pageNum + * @param taskVo + */ + public void sendUserToDevice(int userId,int proId,int pageNum, KqCmdTaskVo taskVo){ + Integer isSh=mapper.getProType(proId); + List list; + PageHelper.startPage(pageNum, PAGE_SIZE); + //是上海的工程 + if(isSh!=null && isSh==1){ + list=mapper.getDeviceVoByProBySh(); + }else{ + list=mapper.getDeviceVoByProId(proId); + } + PageInfo pageInfo =new PageInfo(list); + //分页查询+ + if (!list.isEmpty()){ + List taskVos=new ArrayList<>(); + for (DeviceVo vo:list){ + taskVo.setDeviceCode(vo.getDevCode()); + taskVos.add(taskVo); + } + // 任务下发新增 + mapper.insertCmdTaskByDevice(taskVos); + mapper.insertCmdTaskByDeviceHistory(taskVos); + // 任务人员关联 + mapper.insertTaskUser(taskVos,userId); + + int pageSize=pageInfo.getPageNum(); + int pageTotal=pageInfo.getPages(); + if(pageSize userList=new ArrayList<>(); + String createTime= DateUtils.getTime(); + KqCmdTaskVo taskVo=new KqCmdTaskVo(); + userList.add(userId); + String json= JSON.toJSONString(userList); + taskVo.setProId(String.valueOf(proId)); + taskVo.setCmdParam(json); + taskVo.setCreateTime(createTime); + taskVo.setCmdCode("DELETE_USER"); + //等待执行 + taskVo.setTransStatus(TaskStatusEnum.WAIT.ordinal()); + //分页查询 + sendUserToDevice(userId,proId,1,taskVo); + }catch (Exception e){ + log.error(e.toString(),e); + } + } + + +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/TaskService.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/TaskService.java index 4e5ca35..c2c02c0 100644 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/TaskService.java +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/TaskService.java @@ -7,7 +7,12 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.bonus.common.core.constant.SecurityConstants; +import com.bonus.common.core.domain.R; +import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.StringUtils; +import com.bonus.system.api.RemoteUploadUtilsService; +import com.bonus.system.api.model.UploadFileVo; import com.bonus.urk.config.Constant; import com.bonus.urk.config.DeviceUserDto; import com.bonus.urk.config.TaskStatusEnum; @@ -17,10 +22,13 @@ import com.bonus.urk.vo.DeviceVo; import com.bonus.urk.vo.TaskUserVo; import com.itextpdf.text.pdf.PRAcroForm; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.annotations.Param; import org.hibernate.validator.internal.util.StringHelper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; @@ -44,11 +52,17 @@ public class TaskService { @Autowired private CmdLogService service; + @Autowired + private TaskService taskService; + @Autowired private TaskMapper mapper; + @Resource + private RemoteUploadUtilsService fileService; + public static SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd"); public void updateTime(DeviceTaskVo taskVo, HttpServletRequest req, HttpServletResponse resp) { String body = ""; @@ -361,14 +375,17 @@ public class TaskService { } user.setPrivilege(0); - //人脸图片转成bast64 if(StringUtils.isNotBlank(userVo.getPhoto())) { - + String bast64=getFileBast64("pm_worker",userVo.getUserId(),"1"); + if(StringUtils.isNotBlank(bast64)) { + user.setPhoto_base64(bast64); + user.setPhotoEnroll(1); + } } - userList.add(user); } try { + taskService.insertUserIssued(task, userList); // body // 组装body的json部分 JSONObject jsonObject = new JSONObject(); @@ -398,6 +415,7 @@ public class TaskService { log.info("设备:{}, 写入用户指令下达", task.getDeviceCode()); } + public void getUserInfo(DeviceTaskVo task, HttpServletRequest req, HttpServletResponse resp) { String body = ""; // body @@ -434,15 +452,39 @@ public class TaskService { } - public void dealTrans(HttpServletRequest req, HttpServletResponse resp) { - // 任务识别号 - String asTransId = req.getHeader(Constant.DEVICE_HEADER_TRANS_ID); - String isok = req.getHeader("cmd_return_code"); - - - - System.err.println("asTransId---->"+asTransId); - System.err.println("isok---->"+isok); + /** + * 获取人员头像 + */ + public String getFileBast64(String sourceId, String sourceTable, String sourceTyp){ + R res=fileService.getFileBast64(null,sourceId,sourceTable,sourceTyp, SecurityConstants.INNER); + if(res.getCode()==R.SUCCESS){ + UploadFileVo vo=res.getData(); + return vo.getBast64(); + } + return null; } + /** + * 用户下发 -操作记录 + * @param id + * @param userList + */ + /** + * 人员下发 + * 用户下发记录 + * @param taskVo + * @param userList + */ + @Async + public void insertUserIssued(DeviceTaskVo taskVo, List userList) { + try{ + taskVo.setCreateTime(DateUtils.getTime()); + mapper.insertUserIssued(taskVo,userList); + + }catch (Exception e){ + log.error(e.toString(),e); + } + } + + } diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/UserFaceHandleService.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/UserFaceHandleService.java new file mode 100644 index 0000000..12f46e8 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/service/UserFaceHandleService.java @@ -0,0 +1,85 @@ +package com.bonus.urk.service; + +import com.alibaba.ttl.threadpool.agent.internal.javassist.runtime.Inner; +import com.bonus.common.core.constant.SecurityConstants; +import com.bonus.common.core.domain.R; +import com.bonus.common.core.utils.DateUtils; +import com.bonus.common.core.utils.StringUtils; +import com.bonus.system.api.RemoteUploadUtilsService; +import com.bonus.system.api.model.UploadFileVo; +import com.bonus.urk.mapper.UserFaceHandleMapper; +import com.bonus.urk.vo.BmWorkerEinUserVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @author 黑子 + * + * 人脸下发 + */ +@Service +@Slf4j +public class UserFaceHandleService { + + @Autowired + private UserFaceHandleMapper mapper; + + @Resource + private RemoteUploadUtilsService fileService; + + /** + * 依据用户id 查询施工工程信息 + * @param userId + * @return + */ + public BmWorkerEinUserVo getOnUserInfo(String userId) { + try{ + BmWorkerEinUserVo vo=mapper.getOnUserInfo(userId); + if(vo!=null && StringUtils.isNotEmpty(vo.getUserId())){ + return vo; + } + }catch (Exception e){ + log.error(e.toString(),e); + } + return null; + } + + /** + * 新增考勤数据 + * @param vo + */ + @Async + public void addAttendInfo(BmWorkerEinUserVo vo) { + try{ + String id=StringUtils.randomUUID(); + vo.setId(id); + vo.setAttMonth(DateUtils.getCurrentMonth()); + vo.setAttDay(DateUtils.getDate()); + vo.setCreateTime(DateUtils.getTime()); + Integer num=mapper.getTodayIsExit(vo); + //每日新增一条考勤信息 + if(num==null || num ==0){ + R res=fileService.uploadBast64(vo.getAttPhoto(),"bm_att_person",vo.getId(),"1", "attr",null,SecurityConstants.INNER); + if(res.getCode()==R.SUCCESS){ + UploadFileVo uploadFileVo=res.getData(); + vo.setImage(uploadFileVo.getPath()); + mapper.insertAttPerson(vo); + } + } + //新增考勤记录 + R res=fileService.uploadBast64(vo.getAttPhoto(),"bm_att_record",vo.getId(),"1", "attr",null,SecurityConstants.INNER); + if(res.getCode()==R.SUCCESS){ + UploadFileVo uploadFileVo=res.getData(); + vo.setImage(uploadFileVo.getPath()); + mapper.insertAttRecord(vo); + } + }catch (Exception e){ + log.error(e.toString(),e); + } + + } +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/servlet/DeviceServlet.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/servlet/DeviceServlet.java index 25d289f..1c4e290 100644 --- a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/servlet/DeviceServlet.java +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/servlet/DeviceServlet.java @@ -10,8 +10,11 @@ import com.alibaba.fastjson.JSONObject; import com.bonus.urk.config.CacheConstant; import com.bonus.urk.config.Constant; import com.bonus.urk.config.DeviceUserDto; +import com.bonus.urk.config.RedisUtils; import com.bonus.urk.handle.DeviceHandle; import com.bonus.urk.handle.ReceiveCmd; +import com.bonus.urk.handle.ResultHandle; +import com.bonus.urk.handle.UserFaceHandle; import com.bonus.urk.service.TaskService; import com.bonus.urk.vo.DeviceVo; import lombok.extern.slf4j.Slf4j; @@ -48,12 +51,22 @@ public class DeviceServlet extends HttpServlet { private DeviceHandle deviceHandle; @Autowired private ReceiveCmd receiveCmd; + /** + * 用户人脸处理器 + */ + @Autowired + private UserFaceHandle userFaceHandle; @Autowired private TaskService taskService; @Autowired - private ZSetOperations zSetOperations; + private ResultHandle resultHandle; + + @Autowired + private RedisUtils redisUtils; + + /** * 用于spring容器注入 * @param config @@ -73,25 +86,30 @@ public class DeviceServlet extends HttpServlet { resp.addHeader(Constant.DEVICE_HEADER_RESPONSE_CODE, Constant.ERROR_NO_CMD); return; } + redisUtils.set("att_dev:status",1,600); String asTransId = req.getHeader(Constant.DEVICE_HEADER_TRANS_ID); String requestCode = req.getHeader(Constant.DEVICE_HEADER_REQUEST_CODE); - zSetOperations.add(CacheConstant.DEVICE_ONLINE_SET_CACHE, deviceVo.getDevCode(), System.currentTimeMillis()); + // zSetOperations.add(CacheConstant.DEVICE_ONLINE_SET_CACHE, deviceVo.getDevCode(), System.currentTimeMillis()); switch (requestCode){ //心跳处理 case "receive_cmd": receiveCmd.dealCmdReceiveHandle(deviceVo,req,resp); + break; //人脸识别 case "realtime_glog": - receiveCmd.dealCmdReceiveHandle(deviceVo,req,resp); + userFaceHandle.addUserAttendance(deviceVo,req,resp); + break; //实时登记数据传输 case "realtime_enroll_data": receiveCmd.dealCmdReceiveHandle(deviceVo,req,resp); + break; default: if(StringHelper.isNullOrEmptyString(asTransId)){ log.info("设备:{}, 请求未能识别的request_code:{}",deviceVo.getDevCode(), requestCode); }else{ - taskService.dealTrans(req,resp); + resultHandle.dealTrans(req,resp); } + break; } diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/vo/BmWorkerEinUserVo.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/vo/BmWorkerEinUserVo.java new file mode 100644 index 0000000..dbb96e7 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/vo/BmWorkerEinUserVo.java @@ -0,0 +1,107 @@ +package com.bonus.urk.vo; + +import lombok.Data; + +/** + * 当前工程在场的人员 + * @author 黑子 + */ +@Data +public class BmWorkerEinUserVo { + + private String id; + + /** + * 设备编码 + */ + private String devCode; + /** + * 人员id + */ + private String userId; + /** + * 工程id + */ + private String proId; + /** + * 工程名称 + */ + private String proName; + /** + * 班组名称 + */ + private String teamName; + /** + * 班组id + */ + private String teamId; + /** + * 分包名称 + */ + private String subName; + /** + * 分包id + */ + private String subId; + /** + * 项目部id + */ + private String orgId; + /** + * 岗位id + */ + private String postId; + /** + * 项目部名称 + */ + private String orgName; + /** + * 月份 + */ + private String attMonth; + /** + * 日 + */ + private String attDay; + /** + * 日薪 + */ + private String dailyWage; + /** + * 是否补卡 + */ + private String isRepair="0"; + + private String image; + /** + * 考勤时间 + */ + private String attTime; + /** + * 考前突破 + */ + private String attPhoto; + /** + * 身份证号码 + */ + private String idNumber; + /** + * 合同信息 + */ + private String contractId; + + /** + * 用户名 + */ + private String userName; + + /** + * 创建时间 + */ + private String createTime; + /** + * 考勤设备名称 + */ + private String devName; + +} diff --git a/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/vo/KqCmdTaskVo.java b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/vo/KqCmdTaskVo.java new file mode 100644 index 0000000..6663b80 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/java/com/bonus/urk/vo/KqCmdTaskVo.java @@ -0,0 +1,49 @@ +package com.bonus.urk.vo; + +import lombok.Data; + +/** + * @author 黑子 + */ +@Data +public class KqCmdTaskVo { + + private String id; + /** + * 指令编码 + */ + private String cmdCode; + /** + * 参数 + */ + private String cmdParam; + /** + * 设备编码 + */ + private String deviceCode; + /** + * 状态 + */ + private int transStatus=0; + /** + * 创建时间 + */ + private String createTime; + + /** + * 是否修改状态 + */ + private String updateStatus; + /** + * 消息信息 + */ + private String msg; + /** + * 工程id + */ + private String proId; + /** + * 更新事件 + */ + private String updateTime; +} diff --git a/bonus-modules/bonus-urk/src/main/resources/mapper/urk/BusinessMapper.xml b/bonus-modules/bonus-urk/src/main/resources/mapper/urk/DeviceMapper.xml similarity index 90% rename from bonus-modules/bonus-urk/src/main/resources/mapper/urk/BusinessMapper.xml rename to bonus-modules/bonus-urk/src/main/resources/mapper/urk/DeviceMapper.xml index 657e6ab..771daca 100644 --- a/bonus-modules/bonus-urk/src/main/resources/mapper/urk/BusinessMapper.xml +++ b/bonus-modules/bonus-urk/src/main/resources/mapper/urk/DeviceMapper.xml @@ -2,21 +2,19 @@ - + insert into pm_att_device(device_code,device_name,dev_model,on_line,is_active)values ( #{devCode},#{deviceName},#{devModel},#{onLine},1 ) - - diff --git a/bonus-modules/bonus-urk/src/main/resources/mapper/urk/ResultMapper.xml b/bonus-modules/bonus-urk/src/main/resources/mapper/urk/ResultMapper.xml new file mode 100644 index 0000000..66c56f7 --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/resources/mapper/urk/ResultMapper.xml @@ -0,0 +1,29 @@ + + + + + update kq_cmd_task set trans_status_update_time=#{updateTime},trans_status=#{transStatus} + where id=#{id} + + + + update kq_cmd_task_history set trans_status_update_time=#{updateTime},trans_status=#{transStatus} + where id=#{id} + + + update pm_worker_user_issued set result=#{result} + where task_id=#{taskVo.id} + + + + delete from kq_cmd_task where id=#{id} + + + + diff --git a/bonus-modules/bonus-urk/src/main/resources/mapper/urk/SendUserMapper.xml b/bonus-modules/bonus-urk/src/main/resources/mapper/urk/SendUserMapper.xml new file mode 100644 index 0000000..a45e9cc --- /dev/null +++ b/bonus-modules/bonus-urk/src/main/resources/mapper/urk/SendUserMapper.xml @@ -0,0 +1,104 @@ + + + + + insert into pm_att_device(device_code,device_name,dev_model,on_line,is_active)values ( + #{devCode},#{deviceName},#{devModel},#{onLine},1 ) + + + + insert into kq_cmd_task ( + cmd_code, cmd_param, device_code, trans_status, + create_time, update_state, msg, pro_id + )values (#{cmdCode},#{cmdParam},#{deviceCode},#{transStatus},#{createTime},#{updateStatus},#{msg},#{proId} + ) + + + insert into kq_cmd_task (id, + cmd_code, cmd_param, device_code, trans_status, + create_time, update_state, msg, pro_id + )values (#{id},#{cmdCode},#{cmdParam},#{deviceCode},#{transStatus},#{createTime},#{updateStatus},#{msg},#{proId} + ) + + + insert into kq_task_user_list( + task_id,user_id )values + ( + #{item.id},#{userId} + ) + + + + + insert into kq_task_user_list( + task_id,user_id )values + ( + #{param.id}, #{item} + ) + + + + + insert into kq_cmd_task ( + cmd_code, cmd_param, device_code, trans_status, create_time, update_state, msg, pro_id + )values + ( + (#{item.cmdCode},#{item.cmdParam},#{item.deviceCode},#{item.transStatus},#{item.createTime},#{item.updateStatus},#{item.msg},#{item.proId} + ) + + + + + insert into kq_cmd_task ( + id,cmd_code, cmd_param, device_code, trans_status,create_time, update_state, msg, pro_id + )values + ( + (#{item.id},#{item.cmdCode},#{item.cmdParam},#{item.deviceCode},#{item.transStatus},#{item.createTime},#{item.updateStatus},#{item.msg},#{item.proId} + ) + + + + + + + + + + + + + diff --git a/bonus-modules/bonus-urk/src/main/resources/mapper/urk/TaskMapper.xml b/bonus-modules/bonus-urk/src/main/resources/mapper/urk/TaskMapper.xml index eaa579a..1a0be8b 100644 --- a/bonus-modules/bonus-urk/src/main/resources/mapper/urk/TaskMapper.xml +++ b/bonus-modules/bonus-urk/src/main/resources/mapper/urk/TaskMapper.xml @@ -3,6 +3,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + insert into pm_worker_user_issued( + user_id, dev_id, create_time, task_id, result + )values + + (#{item.userId},#{taskVo.deviceCode},#{taskVo.createTime},#{taskVo.id},'-1' + ) + + + select bwem.worker_id userId,bwem.pro_name proName,bwem.pro_id proId,pw.`name` userName, + bwem.team_name teamName,bwem.team_id teamId,pw.id_number, + bwem.sub_id subId,bwem.sub_name subName,bwem.post_id postId,bwem.contract_id,bwc.day_rate dailyWage + from bm_worker_ein_msg bwem + left join pm_worker pw on pw.id=bwem.worker_id + LEFT JOIN bm_worker_contract bwc on bwc.worker_id=bwem.worker_id and bwc.is_active=1 + where bwem.worker_id=#{userId} + + +