diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/devicenohandle/DeviceNoSynchronizationJobHandler.java b/src/main/java/com/hxjt/dataupload/jobhandler/devicenohandle/DeviceNoSynchronizationJobHandler.java new file mode 100644 index 0000000..cbe2a74 --- /dev/null +++ b/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 ismTagList= ismTagService.getIsmTagList(); + for (IsmTag ismTag:ismTagList) { + //System.out.println(ismTag); + + } + + } + + + private void init() { + log.info("init 方法调用成功"); + } + + private void destroy() { + log.info("destroy 方法调用成功"); + } + +} diff --git a/src/main/java/com/hxjt/dataupload/mapper/IsmTagMapper.java b/src/main/java/com/hxjt/dataupload/mapper/IsmTagMapper.java new file mode 100644 index 0000000..c341efe --- /dev/null +++ b/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 getIsmTagList(); +} diff --git a/src/main/java/com/hxjt/dataupload/model/entity/devicenohandle/IsmTag.java b/src/main/java/com/hxjt/dataupload/model/entity/devicenohandle/IsmTag.java new file mode 100644 index 0000000..d42568e --- /dev/null +++ b/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 + '\'' + + '}'; + } +} diff --git a/src/main/java/com/hxjt/dataupload/service/IsmTagService.java b/src/main/java/com/hxjt/dataupload/service/IsmTagService.java new file mode 100644 index 0000000..03c2d48 --- /dev/null +++ b/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 getIsmTagList(); +} diff --git a/src/main/java/com/hxjt/dataupload/service/impl/IsmTagServiceImpl.java b/src/main/java/com/hxjt/dataupload/service/impl/IsmTagServiceImpl.java new file mode 100644 index 0000000..7fc3a81 --- /dev/null +++ b/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 getIsmTagList() { + return ismTagMapper.getIsmTagList(); + } +} diff --git a/src/main/java/com/hxjt/dataupload/utils/tszy/DhAqcsUtil.java b/src/main/java/com/hxjt/dataupload/utils/tszy/DhAqcsUtil.java index 6f6de2e..f3865e6 100644 --- a/src/main/java/com/hxjt/dataupload/utils/tszy/DhAqcsUtil.java +++ b/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 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 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 = "^[::,,。.?!!]*|([::,,。.?!!]*)$"; // 汉字正则表达式 diff --git a/src/main/java/com/hxjt/dataupload/utils/tszy/SxkjzyUtil.java b/src/main/java/com/hxjt/dataupload/utils/tszy/SxkjzyUtil.java index 0ab2de5..c3af80f 100644 --- a/src/main/java/com/hxjt/dataupload/utils/tszy/SxkjzyUtil.java +++ b/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")?"是":"否"); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 4e303a1..bb524bb 100644 --- a/src/main/resources/application-dev.yml +++ b/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 diff --git a/src/main/resources/mapper/IsmTagMapper.xml b/src/main/resources/mapper/IsmTagMapper.xml new file mode 100644 index 0000000..0b34cea --- /dev/null +++ b/src/main/resources/mapper/IsmTagMapper.xml @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file