Browse Source

解决了受限空间作业票上传园区平台消费器材数量不正常bug

master
liwenxuan 6 months ago
parent
commit
74dfa20633
  1. 43
      src/main/java/com/hxjt/dataupload/jobhandler/devicenohandle/DeviceNoSynchronizationJobHandler.java
  2. 11
      src/main/java/com/hxjt/dataupload/mapper/IsmTagMapper.java
  3. 44
      src/main/java/com/hxjt/dataupload/model/entity/devicenohandle/IsmTag.java
  4. 9
      src/main/java/com/hxjt/dataupload/service/IsmTagService.java
  5. 20
      src/main/java/com/hxjt/dataupload/service/impl/IsmTagServiceImpl.java
  6. 50
      src/main/java/com/hxjt/dataupload/utils/tszy/DhAqcsUtil.java
  7. 10
      src/main/java/com/hxjt/dataupload/utils/tszy/SxkjzyUtil.java
  8. 24
      src/main/resources/application-dev.yml
  9. 11
      src/main/resources/mapper/IsmTagMapper.xml

43
src/main/java/com/hxjt/dataupload/jobhandler/devicenohandle/DeviceNoSynchronizationJobHandler.java

@ -0,0 +1,43 @@
package com.hxjt.dataupload.jobhandler.devicenohandle;
import com.google.common.collect.BoundType;
import com.hxjt.dataupload.model.entity.devicenohandle.IsmTag;
import com.hxjt.dataupload.service.IsmTagService;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
@Component
public class DeviceNoSynchronizationJobHandler {
private Logger log = LoggerFactory.getLogger(DeviceNoSynchronizationJobHandler.class);
@Autowired
IsmTagService ismTagService;
@XxlJob(value = "DeviceNoSynchronizationJobHandler", init = "init", destroy = "destroy")
public void execute(String param) {
//查出科远
ArrayList<IsmTag> ismTagList= ismTagService.getIsmTagList();
for (IsmTag ismTag:ismTagList) {
//System.out.println(ismTag);
}
}
private void init() {
log.info("init 方法调用成功");
}
private void destroy() {
log.info("destroy 方法调用成功");
}
}

11
src/main/java/com/hxjt/dataupload/mapper/IsmTagMapper.java

@ -0,0 +1,11 @@
package com.hxjt.dataupload.mapper;
import com.hxjt.dataupload.model.entity.devicenohandle.IsmTag;
import org.apache.ibatis.annotations.Mapper;
import java.util.ArrayList;
@Mapper
public interface IsmTagMapper {
ArrayList<IsmTag> getIsmTagList();
}

44
src/main/java/com/hxjt/dataupload/model/entity/devicenohandle/IsmTag.java

@ -0,0 +1,44 @@
package com.hxjt.dataupload.model.entity.devicenohandle;
import org.springframework.stereotype.Repository;
@Repository
public class IsmTag {
private String id;
private String deviceNo;
private String workNumber;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDeviceNo() {
return deviceNo;
}
public void setDeviceNo(String deviceNo) {
this.deviceNo = deviceNo;
}
public String getWorkNumber() {
return workNumber;
}
public void setWorkNumber(String workNumber) {
this.workNumber = workNumber;
}
@Override
public String toString() {
return "IsmTag{" +
"id='" + id + '\'' +
", deviceNo='" + deviceNo + '\'' +
", workNumber='" + workNumber + '\'' +
'}';
}
}

9
src/main/java/com/hxjt/dataupload/service/IsmTagService.java

@ -0,0 +1,9 @@
package com.hxjt.dataupload.service;
import com.hxjt.dataupload.model.entity.devicenohandle.IsmTag;
import java.util.ArrayList;
public interface IsmTagService {
ArrayList<IsmTag> getIsmTagList();
}

20
src/main/java/com/hxjt/dataupload/service/impl/IsmTagServiceImpl.java

@ -0,0 +1,20 @@
package com.hxjt.dataupload.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.hxjt.dataupload.mapper.IsmTagMapper;
import com.hxjt.dataupload.model.entity.devicenohandle.IsmTag;
import com.hxjt.dataupload.service.IsmTagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@Service
@DS("syncplant")
public class IsmTagServiceImpl implements IsmTagService {
@Autowired
IsmTagMapper ismTagMapper;
@Override
public ArrayList<IsmTag> getIsmTagList() {
return ismTagMapper.getIsmTagList();
}
}

50
src/main/java/com/hxjt/dataupload/utils/tszy/DhAqcsUtil.java

@ -131,6 +131,56 @@ public class DhAqcsUtil {
return result;
}
public static String findSingleNumber(String input) {
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(input);
List<String> numbers = new ArrayList<>();
while (matcher.find()) {
numbers.add(matcher.group());
}
return numbers.size() == 1 ? numbers.get(0) : "notNumber";
}
public static String[] extractBracketContentsSxkj(String input) {
List<String> matches = new ArrayList<>();
// 匹配中文括号内的内容,使用非贪婪模式
Pattern pattern = Pattern.compile("\uFF08(.*?)\uFF09");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
matches.add(matcher.group(1));
}
String[] result = new String[matches.size()];
for (int i = 0; i < result.length; i++) {
String content = "";
if (i < matches.size()) {
content = matches.get(i).trim(); // 去除两边空格
}
// 判断内容是否能转为数字
boolean isNumber = false;
String findSingleNumberResult = "notNumber";
if (!content.isEmpty()) {
try {
Double.parseDouble(content);
isNumber = true;
} catch (NumberFormatException e) {
// 转换失败,非数字
findSingleNumberResult = findSingleNumber(content);
if(!findSingleNumberResult.equals("notNumber")){
//里面有且仅有一个数字 如: (灭火器 2具)
content = findSingleNumberResult;
isNumber = true;
}
}
}
result[i] = isNumber ? content : "0";
}
return result;
}
// 定义需要过滤的中英文符号正则表达式
private static final String SYMBOLS_REGEX = "^[::,,。.?!!]*|([::,,。.?!!]*)$";
// 汉字正则表达式

10
src/main/java/com/hxjt/dataupload/utils/tszy/SxkjzyUtil.java

@ -37,9 +37,13 @@ public class SxkjzyUtil {
}else if(aqcs.getAncuoneirong().startsWith("作业人员已佩戴必要的个体防护装备")){
sxkjzy.setShifousheji10(aqcs.getShifousheji().equals("Y")?"是":"否");
sxkjzy.setQuerenren10(aqcs.getQuerenren());
}else if(aqcs.getAncuoneirong().startsWith("已配备作业应急设施消防器材")){
String[] arr = DhAqcsUtil.extractBracketContents(aqcs.getAncuoneirong());
sxkjzy.setQifangzhuangbei(arr[2]);
}else if(aqcs.getAncuoneirong().startsWith("已配备作业应急设施")){
/*if(sxkjzy.getBianhao().equals("1d8a03c811eb4e77b462bb0f3341401a")){
System.out.println(sxkjzy.getBianhao());
System.out.println(aqcs.getAncuoneirong());
}*/
String[] arr = DhAqcsUtil.extractBracketContentsSxkj(aqcs.getAncuoneirong());
sxkjzy.setQifangzhuangbei(arr[3]);
sxkjzy.setJiushengsheng(arr[1]);
sxkjzy.setXiaofangqicai(arr[0]);
sxkjzy.setShifousheji11(aqcs.getShifousheji().equals("Y")?"是":"否");

24
src/main/resources/application-dev.yml

@ -32,6 +32,23 @@ spring:
#url: jdbc:sqlserver://172.20.2.206:1433;databaseName=SyncPlant;encrypt=true;trustServerCertificate=true
url: jdbc:sqlserver://172.20.2.206:1433;databaseName=SyncPlant
username: sa
hrnewlowcodeprod:
driver-class-name: com.mysql.cj.jdbc.Driver
password: kPMP6NafMsdccxDX
#url: jdbc:mysql://127.0.0.1:3306/hengxingaoke_tes?allowPublicKeyRetrieval=true&uuseUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false
url: jdbc:mysql://36.133.126.182:3306/hr_new?allowPublicKeyRetrieval=true&uuseUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false
username: hr_new
hrnewlowcodetest:
driver-class-name: com.mysql.cj.jdbc.Driver
password: 9z_Bu28r1*DZ3K6@+a
#url: jdbc:mysql://127.0.0.1:3306/hengxingaoke_tes?allowPublicKeyRetrieval=true&uuseUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false
url: jdbc:mysql://172.20.5.33:4000/hr_new?allowPublicKeyRetrieval=true&uuseUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false
username: root
hrnew87:
username: hr_new
password: AnknKiXiXaxNrw78
url: jdbc:mysql://172.20.2.87:3306/hr_new?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
#url: jdbc:mysql://127.0.0.1:3306/hr_new?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
#数据源基础配置
druid:
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
@ -68,7 +85,8 @@ xxl:
job:
admin:
#调度中心部署地址,多个配置逗号分隔 "http://address01,http://address02"
addresses: http://127.0.0.1:8080/xxl-job-admin
addresses: http://172.20.2.57:8080/xxl-job-admin
#addresses: http://127.0.0.1:8080/xxl-job-admin
#执行器token,非空时启用 xxl-job, access token
accessToken: data_upload
executor:
@ -88,8 +106,8 @@ xxl:
mqtt:
username: 10@ningyanghuagongchany20250508114250
password: ce07f3c284084b42b674017b72fe73f2
hostUrl: tcp://112.245.55.112:18183
#hostUrl: tcp://172.20.2.57:1883
#hostUrl: tcp://112.245.55.112:18183
hostUrl: tcp://172.20.2.57:1883
clientId: 10@ningyanghuagongchany20250508114250
sensorDataTopic: /iot/10@ningyanghuagongchany20250422172632/thirdParty/sensorData
timeout: 100

11
src/main/resources/mapper/IsmTagMapper.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hxjt.dataupload.mapper.IsmTagMapper">
<select id="getIsmTagList" resultType="com.hxjt.dataupload.model.entity.devicenohandle.IsmTag">
SELECT id,CODE as deviceNo,BPERCODE as workNumber FROM ISM_TAG
</select>
</mapper>
Loading…
Cancel
Save