diff --git a/bonus-business/pom.xml b/bonus-business/pom.xml
index 2653112..e165423 100644
--- a/bonus-business/pom.xml
+++ b/bonus-business/pom.xml
@@ -122,10 +122,10 @@
compile
-
+
org.projectlombok
diff --git a/bonus-business/src/main/java/com/bonus/business/controller/robot/RobotController.java b/bonus-business/src/main/java/com/bonus/business/controller/robot/RobotController.java
index 3a6365a..1653e85 100644
--- a/bonus-business/src/main/java/com/bonus/business/controller/robot/RobotController.java
+++ b/bonus-business/src/main/java/com/bonus/business/controller/robot/RobotController.java
@@ -104,6 +104,7 @@ public class RobotController extends BaseController {
@PostMapping("sedXml")
public AjaxResult getDetails(@RequestBody RobotVo robotVo) {
+ log.info("机器人puid:{}",robotVo.getPuId());
return service.getDetails(robotVo);
}
@@ -179,6 +180,7 @@ public class RobotController extends BaseController {
*/
@PostMapping("delVideo")
public AjaxResult delVideo(@RequestBody RobotVideoVo vo) {
+ log.info("删除录音文件:{}",vo);
return service.delVideo(vo);
}
diff --git a/bonus-business/src/main/java/com/bonus/business/mapper/SbdUserMapper.java b/bonus-business/src/main/java/com/bonus/business/mapper/SbdUserMapper.java
index 243aa15..b687250 100644
--- a/bonus-business/src/main/java/com/bonus/business/mapper/SbdUserMapper.java
+++ b/bonus-business/src/main/java/com/bonus/business/mapper/SbdUserMapper.java
@@ -89,4 +89,13 @@ public interface SbdUserMapper {
void addSbdStatus(@Param("id") String uuid);
+ /**
+ * 查询库里已存在的数据
+ * @return List
+ * @author cwchen
+ * @date 2025/7/25 17:55
+ */
+ List getExistGdWorker();
+
+ void addOrUpdateSbdUserInfo(@Param("list") List missDataList, @Param("type") int type);
}
diff --git a/bonus-business/src/main/java/com/bonus/business/schedule/UserConfigSchedule.java b/bonus-business/src/main/java/com/bonus/business/schedule/UserConfigSchedule.java
index d8841d4..a256492 100644
--- a/bonus-business/src/main/java/com/bonus/business/schedule/UserConfigSchedule.java
+++ b/bonus-business/src/main/java/com/bonus/business/schedule/UserConfigSchedule.java
@@ -22,7 +22,8 @@ public class UserConfigSchedule {
@Autowired
ISbdUserService service;
- @Scheduled(cron = "0 0/10 * * * ?")
+ @Scheduled(cron = "0 0/30 * * * ?")
+// @Scheduled(cron = "0 0/2 * * * ?")
@PostConstruct
public void initUserInfo(){
service.initUserInfo();
diff --git a/bonus-business/src/main/java/com/bonus/business/service/impl/RobotServiceImpl.java b/bonus-business/src/main/java/com/bonus/business/service/impl/RobotServiceImpl.java
index 81e2c35..77660e4 100644
--- a/bonus-business/src/main/java/com/bonus/business/service/impl/RobotServiceImpl.java
+++ b/bonus-business/src/main/java/com/bonus/business/service/impl/RobotServiceImpl.java
@@ -624,7 +624,9 @@ public class RobotServiceImpl implements IRobotService {
String delXml= QxUtils.getAddVideo(XxmSendUtils.CONTROLLER,XxmSendUtils.ROBOT_DEL_VIDEO,vo.getId(),null,null);
String delRes=QxVideotape.sendXmlPost(token,TVideoConfigUtil.Q2HTTPURL,vo.getPuid(),delXml);
Map map= XmlUtils.getSuccess(delRes);
- if("200".equals(map.get("code"))){
+ log.info("删除结果:{}",map);
+ if("200".equals(map.get("code")) || 200 ==Integer.parseInt(map.get("code"))){
+ log.info("删除成功");
mapper.delVideo(vo);
}
return AjaxResult.success(map);
diff --git a/bonus-business/src/main/java/com/bonus/business/service/impl/SbdUserServiceImpl.java b/bonus-business/src/main/java/com/bonus/business/service/impl/SbdUserServiceImpl.java
index 4191a4a..adbe847 100644
--- a/bonus-business/src/main/java/com/bonus/business/service/impl/SbdUserServiceImpl.java
+++ b/bonus-business/src/main/java/com/bonus/business/service/impl/SbdUserServiceImpl.java
@@ -15,6 +15,7 @@ import com.bonus.common.core.domain.AjaxResult;
import com.bonus.common.utils.DateUtils;
import com.bonus.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
import org.hibernate.validator.internal.util.StringHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -24,6 +25,8 @@ import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
/**
* @author 黑子
@@ -185,11 +188,25 @@ public class SbdUserServiceImpl implements ISbdUserService {
@Override
public void initUserInfo() {
try{
- //查询每日作业人员数据
+ // 1.查询每日作业人员数据
List list=mapper.getGdWorker();
- if(list!=null && !list.isEmpty()){
- mapper.replaceSbdUserInfo(list);
+ // 2.查询库里已存在的施工人员数据
+ List existList=mapper.getExistGdWorker();
+ // 3.新增人员
+ List missDataList = findMissingInB(existList, list);
+ // 4.已存在人员-更新即可
+ List updateDataList = findExitInB(existList, list);
+ if(CollectionUtils.isNotEmpty(missDataList)){
+ log.info("新增施工人员数据:{}",missDataList.size());
+ mapper.addOrUpdateSbdUserInfo(missDataList,1);
}
+ if(CollectionUtils.isNotEmpty(updateDataList)){
+ log.info("更新施工人员数据:{}",updateDataList.size());
+ mapper.addOrUpdateSbdUserInfo(updateDataList,2);
+ }
+ /*if(list!=null && !list.isEmpty()){
+ mapper.replaceSbdUserInfo(list);
+ }*/
}catch (Exception e){
@@ -197,6 +214,41 @@ public class SbdUserServiceImpl implements ISbdUserService {
}
}
+ public static List findMissingInB(List listA, List listB) {
+ if(CollectionUtils.isEmpty(listB)){
+ return new ArrayList<>();
+ }
+ if(CollectionUtils.isEmpty(listA) && CollectionUtils.isNotEmpty(listB)){
+ return listB;
+ }
+ if(CollectionUtils.isNotEmpty(listA)&& listA.size() == listB.size()){
+ return new ArrayList<>();
+ }
+ // 收集 listA 中的所有 id 到 Set 中
+ Set aIdCards = listA.stream()
+ .map(SbdUserVo::getId)
+ .collect(Collectors.toSet());
+ // 筛选出 listB 中 idCard 不在 listA 中的元素
+ return listB.stream()
+ .filter(b -> !aIdCards.contains(b.getId()))
+ .collect(Collectors.toList());
+ }
+
+ public static List findExitInB(List listA, List listB) {
+ if(CollectionUtils.isEmpty(listB)){
+ return new ArrayList<>();
+ }
+ // 提取listA中的所有id
+ List idCardsInA = listA.stream()
+ .map(SbdUserVo::getId)
+ .collect(Collectors.toList());
+
+ // 过滤listB,只保留id在listA中存在的元素
+ return listB.stream()
+ .filter(fcFaceContrastBean -> idCardsInA.contains(fcFaceContrastBean.getId()))
+ .collect(Collectors.toList());
+ }
+
/**
* 下方人员人脸数据
* @param vo
diff --git a/bonus-business/src/main/java/com/bonus/business/vo/RobotVo.java b/bonus-business/src/main/java/com/bonus/business/vo/RobotVo.java
index f999a4a..0400f07 100644
--- a/bonus-business/src/main/java/com/bonus/business/vo/RobotVo.java
+++ b/bonus-business/src/main/java/com/bonus/business/vo/RobotVo.java
@@ -1,5 +1,7 @@
package com.bonus.business.vo;
+import com.fasterxml.jackson.annotation.JsonAlias;
+import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@@ -18,6 +20,8 @@ public class RobotVo {
/**
* 设备编码
*/
+ @JsonProperty("puId")
+ @JsonAlias({"puid", "puId"})
private String puId;
/**
* 设备名称
diff --git a/bonus-business/src/main/java/com/bonus/business/vo/SbdUserVo.java b/bonus-business/src/main/java/com/bonus/business/vo/SbdUserVo.java
index 40f3e3d..6ffb01a 100644
--- a/bonus-business/src/main/java/com/bonus/business/vo/SbdUserVo.java
+++ b/bonus-business/src/main/java/com/bonus/business/vo/SbdUserVo.java
@@ -73,6 +73,8 @@ public class SbdUserVo {
*/
private String bast64;
+ private String birthDate;
+
diff --git a/bonus-business/src/main/resources/application-druid.yml b/bonus-business/src/main/resources/application-druid.yml
index 227f555..85494d4 100644
--- a/bonus-business/src/main/resources/application-druid.yml
+++ b/bonus-business/src/main/resources/application-druid.yml
@@ -21,11 +21,11 @@ spring:
# username: root
# password: Bonus@admin123!
# master:
-# url: jdbc:mysql://127.0.0.1:3306/sbd_robot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-# username: mroot
-# password: bonus@admin123
+# url: jdbc:mysql://127.0.0.1:3306/wunan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
+# username: root
+# password: ccw1998@yyt1999
master:
- url: jdbc:mysql://127.0.0.1:23306/wunan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ url: jdbc:mysql://127.0.0.1:23306/wunan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
username: root
password: youotech123#
# 从库数据源
@@ -77,7 +77,7 @@ spring:
merge-sql: true
wall:
config:
- multi-statement-allow: true
+ multi-statement-allow: false
#minio:
# endpoint: http://127.0.0.1:9001
diff --git a/bonus-business/src/main/resources/application.yml b/bonus-business/src/main/resources/application.yml
index 1eb4696..b8506a8 100644
--- a/bonus-business/src/main/resources/application.yml
+++ b/bonus-business/src/main/resources/application.yml
@@ -34,7 +34,7 @@ server:
# 日志配置
logging:
level:
- com.bonus: debug
+ com.bonus: info
org.springframework: warn
# 用户配置
@@ -47,6 +47,8 @@ user:
# Spring配置
spring:
+ jpa:
+ show-sql: false
# 资源信息
messages:
# 国际化资源文件路径
@@ -74,6 +76,7 @@ spring:
# 数据库索引
database: 7
password: youotech123#
+# password:
# 密码
# password: Xbzbns@Redis123!
# 连接超时时间
diff --git a/bonus-business/src/main/resources/logback.xml b/bonus-business/src/main/resources/logback.xml
index 0b57bbb..47f3314 100644
--- a/bonus-business/src/main/resources/logback.xml
+++ b/bonus-business/src/main/resources/logback.xml
@@ -70,12 +70,19 @@
${log.pattern}
-
+
-
+
+
+
+
+
+
+
+
diff --git a/bonus-business/src/main/resources/mapper/robot/RobotMapper.xml b/bonus-business/src/main/resources/mapper/robot/RobotMapper.xml
index 1aff4ac..1ef6ab3 100644
--- a/bonus-business/src/main/resources/mapper/robot/RobotMapper.xml
+++ b/bonus-business/src/main/resources/mapper/robot/RobotMapper.xml
@@ -78,7 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- delete from robot_location_point where id=#{id}
+ delete from robot_video_file where id=#{id}
diff --git a/bonus-business/src/main/resources/mapper/robot/SbdUserMapper.xml b/bonus-business/src/main/resources/mapper/robot/SbdUserMapper.xml
index f32f0d4..c1df31b 100644
--- a/bonus-business/src/main/resources/mapper/robot/SbdUserMapper.xml
+++ b/bonus-business/src/main/resources/mapper/robot/SbdUserMapper.xml
@@ -42,6 +42,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
)
+
+
+ insert into robot_sbd_user(
+ id, data_source, user_name, sex, image, post,
+ work_type, mobile, create_time, update_time, del_flag,age,id_card,birth_date
+ )values
+ (
+ #{item.id}, #{item.dataSource},#{item.userName},#{item.sex},
+ #{item.idCard},#{item.post},#{item.workType},#{item.mobile},now(),now(),0,#{item.age},#{item.idCard},#{item.birthDate}
+ )
+
+
+
+
+ UPDATE robot_sbd_user
+
+ data_source=#{item.dataSource},
+ user_name=#{item.userName},
+ sex=#{item.sex},
+ image=#{item.idCard},
+ post=#{item.post},
+ work_type=#{item.workType},
+ mobile=#{item.mobile},
+ update_time=now(),
+ age = #{item.age},
+ id_card = #{item.idCard},
+ birth_date = #{item.birthDate}
+
+ WHERE id = #{item.id}
+
+
+
update robot_sbd_user set del_flag=1 where id=#{id}
@@ -105,7 +137,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
limit 12
+
+
\ No newline at end of file
diff --git a/bonus-framework/pom.xml b/bonus-framework/pom.xml
index 2f979df..0f7d66f 100644
--- a/bonus-framework/pom.xml
+++ b/bonus-framework/pom.xml
@@ -58,7 +58,11 @@
com.bonus
bonus-system
-
+
+ com.auth0
+ java-jwt
+ 3.4.0
+
\ No newline at end of file
diff --git a/bonus-framework/src/main/java/com/bonus/framework/security/filter/JwtUtils.java b/bonus-framework/src/main/java/com/bonus/framework/security/filter/JwtUtils.java
index a6e6014..b79b922 100644
--- a/bonus-framework/src/main/java/com/bonus/framework/security/filter/JwtUtils.java
+++ b/bonus-framework/src/main/java/com/bonus/framework/security/filter/JwtUtils.java
@@ -1,5 +1,8 @@
package com.bonus.framework.security.filter;
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.exceptions.JWTDecodeException;
+import com.auth0.jwt.interfaces.DecodedJWT;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
@@ -154,4 +157,13 @@ public class JwtUtils
{
return Convert.toStr(claims.get(key), "");
}
+
+ public static String getSessionKey(String token) {
+ try {
+ DecodedJWT jwt = JWT.decode(token);
+ return jwt.getClaim("sessionKey").asString();
+ } catch (JWTDecodeException e) {
+ return null;
+ }
+ }
}
diff --git a/bonus-framework/src/main/java/com/bonus/framework/security/filter/SbdUserJwtTokenFilter.java b/bonus-framework/src/main/java/com/bonus/framework/security/filter/SbdUserJwtTokenFilter.java
index 3790554..ed808eb 100644
--- a/bonus-framework/src/main/java/com/bonus/framework/security/filter/SbdUserJwtTokenFilter.java
+++ b/bonus-framework/src/main/java/com/bonus/framework/security/filter/SbdUserJwtTokenFilter.java
@@ -44,7 +44,7 @@ public class SbdUserJwtTokenFilter implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String uri=request.getRequestURI();
- System.err.println(uri);
+// System.err.println(uri);
if (StringUtils.matches(uri, AuthWriteUtils.getWriteUrl())) {
return true;
}
@@ -58,7 +58,9 @@ public class SbdUserJwtTokenFilter implements HandlerInterceptor {
}
}
RestTemplate restTemplate = new RestTemplate();
- String sessionKey = JwtUtils.getValue(token,"seesion");
+// String sessionKey = JwtUtils.getValue(token,"session");
+ String sessionKey = JwtUtils.getSessionKey(token);
+// System.err.println("sessionKey:" + sessionKey);
HttpHeaders headers = new HttpHeaders();
HttpEntity> formEntity = new HttpEntity>(headers);
ResponseEntity responseEntity = restTemplate.exchange("http://10.138.55.105:8097/cas/api/validate/sk?sessionKey=" + sessionKey, HttpMethod.GET, formEntity, JSONObject.class);