This commit is contained in:
jiask 2025-10-29 14:43:36 +08:00
parent 3cbf7d2128
commit 3b695d4f48
23 changed files with 1926 additions and 223 deletions

View File

@ -5,183 +5,28 @@
</component>
<component name="ChangeListManager">
<list default="true" id="1925093e-df58-4a1a-8a47-e3f2795e9f70" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/PlanTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/bonus-zjgl.iml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/bonus-protection.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/lib/arcsoft-sdk-face-3.0.0.0-linux.jar" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/lib/arcsoft-sdk-face-3.0.0.0-linux.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/lib/arcsoft-sdk-face-3.0.0.0-windows.jar" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/lib/arcsoft-sdk-face-3.0.0.0-windows.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/pom.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/BonusSmartCanteenApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/BonusProtectionApplication.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateManageController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateManageController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateRefillController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateRefillController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateReturnManageController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateReturnManageController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/mapper/CertificateManageMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/mapper/CertificateManageMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/mapper/CertificateReturnManageMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/mapper/CertificateReturnManageMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/CertificateManageService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/service/CertificateManageService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/CertificateReturnManageService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/service/CertificateReturnManageService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/impl/CertificateManageServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/service/impl/CertificateManageServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/impl/CertificateReturnManageServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/service/impl/CertificateReturnManageServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateInfo.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateInfoImportVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateInfoImportVo.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateRecord.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateRecord.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateRefill.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateRefill.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/UserInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/certificate/vo/UserInfo.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/annotation/PreventRepeatSubmit.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/annotation/PreventRepeatSubmit.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/aspect/PreventRepeatSubmitAspect.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/aspect/PreventRepeatSubmitAspect.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/data/ChooseDatasetException.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/data/ChooseDatasetException.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/data/Executors.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/data/Executors.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/data/RouterLoader.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/data/RouterLoader.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/data/RoutingRule.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/data/RoutingRule.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/data/TenantLoader.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/data/TenantLoader.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/domain/BaseTreeNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/domain/BaseTreeNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/enums/YesOrNoEnum.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/enums/YesOrNoEnum.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/threadPool/AsyncConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/threadPool/AsyncConfig.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/threadPool/TenantTaskDecorator.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/threadPool/TenantTaskDecorator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/Base64Util.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/Base64Util.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/DateUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/DateUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/EasyExcelUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/EasyExcelUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/ExcelListener.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/ExcelListener.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/FileUrlUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/FileUrlUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/HeaderFetchUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/HeaderFetchUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/HttpClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/HttpClient.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/LogUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/LogUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/MqPayload.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/MqPayload.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/MqUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/MqUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/ObjectUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/ObjectUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/RedisCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/RedisCache.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/RedisUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/RedisUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/SpringContextHolder.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/SpringContextHolder.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/TableFillHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/TableFillHandler.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/TenantContextHolder.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/TenantContextHolder.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/common/utils/TreeNodeUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/common/utils/TreeNodeUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/AccessToken.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/config/AccessToken.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/AuthenticationPredicate.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/config/AuthenticationPredicate.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/SecureProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/config/SecureProperties.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/SmUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/config/SmUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/WebContext.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/config/WebContext.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/json/InstantsSerializer.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/config/json/InstantsSerializer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/json/JacksonConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/config/json/JacksonConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/json/JsonNodeTypeHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/config/json/JsonNodeTypeHandler.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/controller/DeviceAppVersionController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/controller/DeviceAppVersionController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/controller/DeviceBindController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/controller/DeviceBindController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/controller/DeviceGlobalSettingController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/controller/DeviceGlobalSettingController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/controller/DeviceInfoController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/controller/DeviceInfoController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/domain/ApkDTO.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/domain/ApkDTO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/domain/DeviceAppVersion.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/domain/DeviceAppVersion.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/domain/DeviceBind.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/domain/DeviceBind.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/domain/DeviceGlobalSetting.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/domain/DeviceGlobalSetting.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/domain/DeviceInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/domain/DeviceInfo.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/domain/DeviceSearchDTO.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/domain/DeviceSearchDTO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/mapper/DeviceAppVersionMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/mapper/DeviceAppVersionMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/mapper/DeviceBindMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/mapper/DeviceBindMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/mapper/DeviceGlobalSettingMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/mapper/DeviceGlobalSettingMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/mapper/DeviceInfoMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/mapper/DeviceInfoMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/service/IDeviceAppVersionService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/service/IDeviceAppVersionService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/service/IDeviceBindService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/service/IDeviceBindService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/service/IDeviceGlobalSettingService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/service/IDeviceGlobalSettingService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/service/IDeviceInfoService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/service/IDeviceInfoService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceAppVersionServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceAppVersionServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceBindServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceBindServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceGlobalSettingServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceGlobalSettingServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceInfoServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceInfoServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/controller/UserAddrController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/controller/UserAddrController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/controller/UserFaceController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/controller/UserFaceController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/domain/DeviceMqPersonalUpdateMessageDTO.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/domain/DeviceMqPersonalUpdateMessageDTO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/domain/UserAddr.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/domain/UserAddr.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/domain/UserFace.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/domain/UserFace.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/mapper/UserAddrMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/mapper/UserAddrMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/mapper/UserFaceMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/mapper/UserFaceMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/service/IUserAddrService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/service/IUserAddrService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/service/IUserFaceService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/service/IUserFaceService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/service/impl/UserAddrServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/service/impl/UserAddrServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/service/impl/UserFaceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/service/impl/UserFaceServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/utils/ArcFaceHelper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/utils/ArcFaceHelper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/utils/FaceResult.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/utils/FaceResult.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/utils/ImageInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/utils/ImageInfo.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/user/utils/ImageInfoTwo.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/user/utils/ImageInfoTwo.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/Arith.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/Arith.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/BigDecimalSerializer.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/BigDecimalSerializer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/BnsConstants.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/BnsConstants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/BnsUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/BnsUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/CommonConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/CommonConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/CurrentToNextSunday.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/CurrentToNextSunday.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/FlowBeanUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/FlowBeanUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/NutritionEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/NutritionEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/NutritionEntityUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/NutritionEntityUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/PinyinUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/PinyinUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/SysUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/SysUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/SysUtilProxy.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/SysUtilProxy.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/anno/NotLessThanZero.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/anno/NotLessThanZero.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/anno/NotLessThanZeroValidator.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/anno/NotLessThanZeroValidator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/oos/OssAutoConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/oos/OssAutoConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/oos/OssEndpoint.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/oos/OssEndpoint.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/oos/OssProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/oos/OssProperties.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/oos/OssTemplate.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/oos/OssTemplate.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/banner.txt" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/banner.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/bootstrap-bonus_houqin_local.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/bootstrap-bonus_houqin_local.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/bootstrap-jyy_canteen_local.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/bootstrap-jyy_canteen_local.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/bootstrap-smart_canteen_local.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/bootstrap-smart_canteen_local.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/bootstrap-zjgl_local.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/bootstrap-protection_local.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/bootstrap.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/bootstrap.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs.fxml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs.fxml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/AddCardInfoParam.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/AddCardInfoParam.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/AddFaceInfoParam.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/AddFaceInfoParam.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/AddFingerPrintInfo.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/AddFingerPrintInfo.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/AddUserInfoParam.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/AddUserInfoParam.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/CaptureFingerInfo.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/CaptureFingerInfo.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/DeleteCardInfo.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/DeleteCardInfo.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/DeleteFaceInfoParam.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/DeleteFaceInfoParam.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/DeleteFingerPrintInfo.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/DeleteFingerPrintInfo.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/DeleteUserInfoParam.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/DeleteUserInfoParam.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/SearchCardInfoParam.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/SearchCardInfoParam.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/SearchFaceInfoParam.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/SearchFaceInfoParam.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/SearchFingerPrintParam.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/SearchFingerPrintParam.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/conf/acs/SearchUserInfoParam.json" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/conf/acs/SearchUserInfoParam.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/AudioRender.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/AudioRender.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCCore.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCCore.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDK.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDK.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/AnalyzeData.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/AnalyzeData.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/AudioIntercom.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/AudioIntercom.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/AudioRender.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/AudioRender.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCAlarm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCAlarm.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCAlarm.lib" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCAlarm.lib" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCCoreDevCfg.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCCoreDevCfg.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCDisplay.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCDisplay.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCGeneralCfgMgr.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCGeneralCfgMgr.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCGeneralCfgMgr.lib" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCGeneralCfgMgr.lib" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCIndustry.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCIndustry.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCPlayBack.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCPlayBack.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCPreview.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCPreview.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCPreview.lib" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCPreview.lib" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/HCVoiceTalk.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/HCVoiceTalk.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/OpenAL32.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/OpenAL32.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/StreamTransClient.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/StreamTransClient.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/SystemTransform.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/SystemTransform.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/HCNetSDKCom/libiconv2.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/HCNetSDKCom/libiconv2.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/PlayCtrl.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/PlayCtrl.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/SDK库文件拷贝到该目录下.txt" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/SDK库文件拷贝到该目录下.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/SuperRender.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/SuperRender.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/artemis-http-client-1.1.3.jar" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/artemis-http-client-1.1.3.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/examples.jar" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/examples.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/groovy-4.0.21.jar" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/groovy-4.0.21.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/hlog.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/hlog.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/hpr.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/hpr.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/jna.jar" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/jna.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/libcrypto-1_1-x64.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/libcrypto-1_1-x64.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/libssl-1_1-x64.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/libssl-1_1-x64.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/modbus4j-3.0.3.jar" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/modbus4j-3.0.3.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/lib/zlib1.dll" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/lib/zlib1.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/logback.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/logback.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateManageMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/mapper/certificate/CertificateManageMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateReturnManageMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/mapper/certificate/CertificateReturnManageMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/mapper/device/DeviceAppVersionMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/mapper/device/DeviceAppVersionMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/mapper/device/DeviceBindMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/mapper/device/DeviceBindMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/mapper/device/DeviceGlobalSettingMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/mapper/device/DeviceGlobalSettingMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/mapper/device/DeviceInfoMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/mapper/device/DeviceInfoMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/mapper/user/UserAddrMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/mapper/user/UserAddrMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/mapper/user/UserFaceMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/mapper/user/UserFaceMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-zjgl/src/main/resources/template/template.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/template/template.xlsx" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/protection/controller/ProtectionAppManageController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/protection/controller/ProtectionManageController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/protection/mapper/ProtectionManageMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/protection/service/ProtectionManageService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/protection/service/imp/ProtectionManageServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/protection/vo/ProtectionResultVo.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/protection/vo/ProtectionVo.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/protection/vo/SubstationVo.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/ImgAnalysisUtils.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/OcrService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-protection/bonus-protection.iml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/bonus-protection.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-protection/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/pom.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/BonusProtectionApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/BonusProtectionApplication.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/BnsUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/java/com/bonus/canteen/core/utils/BnsUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/bootstrap-protection_local.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/bootstrap-protection_local.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/logback.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/src/main/resources/logback.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-protection/target/classes/bootstrap-protection_local.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/target/classes/bootstrap-protection_local.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-protection/target/classes/com/bonus/canteen/core/utils/BnsUtils.class" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/target/classes/com/bonus/canteen/core/utils/BnsUtils.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-protection/target/classes/logback.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-protection/target/classes/logback.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/app/feign/OtherServiceClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/app/feign/OtherServiceClient.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bonus-modules/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bonus-modules/pom.xml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -224,8 +69,8 @@
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="project.structure.last.edited" value="Project" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../Bonus-ProtectionSetting-Cloud" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="MavenSettings" />
@ -236,30 +81,21 @@
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\zhhq_bhdz\Bonus-ProtectionSetting-Manage\bonus-modules\bonus-protection\src\main\java\com\bonus\canteen\core\utils" />
<recent name="D:\zhhq_bhdz\Bonus-ProtectionSetting-Manage\bonus-modules\bonus-protection\src\main\resources\mapper" />
<recent name="D:\zhhq_zjgl\Bonus-Cloud-JYY-Smart-Canteen\bonus-modules\bonus-zjgl\src\main\resources\mapper\certificate" />
<recent name="D:\zhhq_zjgl\Bonus-Cloud-JYY-Smart-Canteen\bonus-modules\bonus-smart-canteen\src\main\resources" />
<recent name="D:\zhhq_jyy\Bonus-Cloud-JYY-Smart-Canteen\bonus-modules\bonus-smart-canteen\src\main\resources\mapper\screening" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.bonus.canteen.core.protection.vo" />
<recent name="com.bonus.canteen.core.protection.controller" />
<recent name="com.bonus.canteen.core.utils" />
<recent name="com.bonus.canteen.core.certificate.vo" />
<recent name="com.bonus.canteen.core.certificate.controller" />
<recent name="com.bonus.canteen.core.certificate.mapper" />
<recent name="com.bonus.canteen.core.certificate.service.impl" />
<recent name="com.bonus.canteen.core.protection.mapper" />
<recent name="com.bonus.canteen.core.protection.service.imp" />
</key>
</component>
<component name="RunManager" selected="Spring Boot.BonusProtectionApplication">
<configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
<option name="arquillianRunConfiguration">
<value>
<option name="containerStateName" value="" />
</value>
</option>
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="BonusProtectionApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<module name="bonus-protection" />
<option name="SPRING_BOOT_MAIN_CLASS" value="com.bonus.canteen.core.BonusProtectionApplication" />
@ -357,6 +193,14 @@
<workItem from="1760683646079" duration="4166000" />
<workItem from="1760693388419" duration="649000" />
<workItem from="1760925300258" duration="3312000" />
<workItem from="1761098227676" duration="6579000" />
<workItem from="1761180061306" duration="12999000" />
<workItem from="1761285173218" duration="1128000" />
<workItem from="1761362672605" duration="12498000" />
<workItem from="1761526419946" duration="24658000" />
<workItem from="1761613435303" duration="2812000" />
<workItem from="1761621939914" duration="14954000" />
<workItem from="1761699677463" duration="12256000" />
</task>
<servers />
</component>

View File

@ -11,12 +11,12 @@
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/../bonus-protection/target/classes" />
<output-test url="file://$MODULE_DIR$/../bonus-protection/target/test-classes" />
<content url="file://$MODULE_DIR$/../bonus-protection">
<sourceFolder url="file://$MODULE_DIR$/../bonus-protection/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../bonus-protection/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/../bonus-protection/target" />
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
@ -373,7 +373,7 @@
<orderEntry type="module-library">
<library name="Maven: com.arcsoft.face:arcsoft-sdk-face:3.0.0.0-linux">
<CLASSES>
<root url="jar://$MODULE_DIR$/../bonus-protection/lib/arcsoft-sdk-face-3.0.0.0-linux.jar!/" />
<root url="jar://$MODULE_DIR$/lib/arcsoft-sdk-face-3.0.0.0-linux.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@ -382,7 +382,7 @@
<orderEntry type="module-library">
<library name="Maven: arcsoft:arcsoft:3.0">
<CLASSES>
<root url="jar://$MODULE_DIR$/../bonus-protection/lib/arcsoft-sdk-face-3.0.0.0-windows.jar!/" />
<root url="jar://$MODULE_DIR$/lib/arcsoft-sdk-face-3.0.0.0-windows.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@ -391,7 +391,7 @@
<orderEntry type="module-library">
<library name="Maven: org.apache.groovy:groovy:4.0.21">
<CLASSES>
<root url="jar://$MODULE_DIR$/../bonus-protection/src/main/resources/lib/groovy-4.0.21.jar!/" />
<root url="jar://$MODULE_DIR$/src/main/resources/lib/groovy-4.0.21.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@ -400,7 +400,7 @@
<orderEntry type="module-library">
<library name="Maven: examples-1.0:examples:1.3.0">
<CLASSES>
<root url="jar://$MODULE_DIR$/../bonus-protection/src/main/resources/lib/examples.jar!/" />
<root url="jar://$MODULE_DIR$/src/main/resources/lib/examples.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@ -409,7 +409,7 @@
<orderEntry type="module-library">
<library name="Maven: jna-1.3.0:jna:1.3.0">
<CLASSES>
<root url="jar://$MODULE_DIR$/../bonus-protection/src/main/resources/lib/jna.jar!/" />
<root url="jar://$MODULE_DIR$/src/main/resources/lib/jna.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@ -418,7 +418,7 @@
<orderEntry type="module-library">
<library name="Maven: com.infiniteautomation:modbus4j:3.1.0">
<CLASSES>
<root url="jar://$MODULE_DIR$/../bonus-protection/src/main/resources/lib/modbus4j-3.0.3.jar!/" />
<root url="jar://$MODULE_DIR$/src/main/resources/lib/modbus4j-3.0.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@ -427,7 +427,7 @@
<orderEntry type="module-library">
<library name="Maven: artemis-http-client:secutil:1.1.3">
<CLASSES>
<root url="jar://$MODULE_DIR$/../bonus-protection/src/main/resources/lib/artemis-http-client-1.1.3.jar!/" />
<root url="jar://$MODULE_DIR$/src/main/resources/lib/artemis-http-client-1.1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />

View File

@ -9,10 +9,10 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>bonus-zjgl</artifactId>
<artifactId>bonus-protection</artifactId>
<description>
bonus-modules-smart-canteen智慧食堂
bonus-modules-smart-canteen保护定值
</description>
<dependencies>

View File

@ -17,7 +17,6 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableCustomConfig
@EnableCustomSwagger2
@EnableScheduling
@EnableRyFeignClients
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class BonusProtectionApplication
{

View File

@ -0,0 +1,133 @@
package com.bonus.canteen.core.protection.controller;
import com.bonus.canteen.core.protection.service.ProtectionManageService;
import com.bonus.canteen.core.protection.vo.ProtectionVo;
import com.bonus.canteen.core.protection.vo.SubstationVo;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType;
import com.bonus.common.security.utils.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Api(tags = "App保护定值接口")
@RestController
@RequestMapping("/protection_app_manage")
public class ProtectionAppManageController extends BaseController {
@Resource
private ProtectionManageService protectionManageService;
/**
* 查询变电站信息列表
*/
@ApiOperation(value = "查询变电站信息列表")
@GetMapping("/substation/list")
public Map<String,Object> list(SubstationVo substationVo) {
Map<String,Object> map=new HashMap<>();
List<SubstationVo> list=null;
try {
list= protectionManageService.selectSubstationList(substationVo);
map.put("data",list);
map.put("code",200);
map.put("res","成功");
}catch (Exception e){
map.put("data",list);
map.put("code",400);
map.put("res","失败");
}
return map;
}
/**
* 新增变电站信息
*/
@ApiOperation(value = "新增变电站信息")
@SysLog(title = "变电站信息", businessType = OperaType.INSERT, logType = 1,module = "变电站管理->新增变电站信息")
@PostMapping("/substation/add")
public AjaxResult add(@RequestBody SubstationVo substationVo) {
String username = SecurityUtils.getUsername();
String userId=SecurityUtils.getUserId()+"";
Map<String,Object> map=new HashMap<>();
try {
substationVo.setCreateBy(userId);
return toAjax(protectionManageService.insertSubstation(substationVo));
} catch (Exception e) {
return error(e.getMessage());
}
}
/**
* 编辑变电站信息
*/
@ApiOperation(value = "编辑变电站信息")
@SysLog(title = "变电站信息", businessType = OperaType.INSERT, logType = 1,module = "变电站管理->编辑变电站信息")
@PostMapping("/substation/edit")
public AjaxResult edit(@RequestBody SubstationVo substationVo) {
Map<String,Object> map=new HashMap<>();
try {
return toAjax(protectionManageService.updateSubstation(substationVo));
} catch (Exception e) {
return error(e.getMessage());
}
}
@ApiOperation(value = "删除变电站信息")
@SysLog(title = "变电站信息", businessType = OperaType.DELETE, logType = 1,module = "变电站管理->删除变电站信息")
@PostMapping("/substation/del")
public AjaxResult remove(@RequestBody SubstationVo substationVo) {
AjaxResult ar=new AjaxResult();
System.out.println(substationVo.getSubstationIds().toString());
Map<String,Object> map=new HashMap<>();
map=protectionManageService.deleteSubstation(substationVo.getSubstationIds());
int code=(int)map.get("code");
if(code==1){
return AjaxResult.success((String)map.get("msg"));
}else{
return AjaxResult.error((String)map.get("msg"));
}
}
/**
* 查询保护定值单信息列表
*/
@ApiOperation(value = "查询保护定值单信息列表")
@GetMapping("/protectionOrder/list")
public Map<String,Object> orderlist(ProtectionVo protectionVo) {
Map<String,Object> map=new HashMap<>();
List<ProtectionVo> list=null;
try {
list= protectionManageService.selectProtectionOrderList(protectionVo);
map.put("data",list);
map.put("code",200);
map.put("res","成功");
}catch (Exception e){
map.put("data",list);
map.put("code",400);
map.put("res","失败");
}
return map;
}
/**
* 新增/编辑保护定值单信息
*/
@ApiOperation(value = "编辑保护定值单信息")
@SysLog(title = "保护定值单信息", businessType = OperaType.INSERT, logType = 1,module = "保护定值单管理->新增/编辑保护定值单信息")
@PostMapping("/protectionOrder/edit")
public AjaxResult editProtection(@RequestBody ProtectionVo protectionVo) {
Map<String,Object> map=new HashMap<>();
try {
return null;
} catch (Exception e) {
return error(e.getMessage());
}
}
}

View File

@ -0,0 +1,167 @@
package com.bonus.canteen.core.protection.controller;
import com.bonus.canteen.core.certificate.vo.CertificateInfo;
import com.bonus.canteen.core.protection.service.ProtectionManageService;
import com.bonus.canteen.core.protection.vo.ProtectionVo;
import com.bonus.canteen.core.protection.vo.SubstationVo;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType;
import com.bonus.common.security.utils.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Api(tags = "保护定值接口")
@RestController
@RequestMapping("/protection_manage")
public class ProtectionManageController extends BaseController {
@Resource
private ProtectionManageService protectionManageService;
/**
* 查询变电站信息列表
*/
@ApiOperation(value = "查询变电站信息列表")
@GetMapping("/substation/list")
public TableDataInfo list(SubstationVo substationVo) {
startPage();
List<SubstationVo> list = protectionManageService.selectSubstationList(substationVo);
return getDataTable(list);
}
/**
* 新增变电站信息
*/
@ApiOperation(value = "新增变电站信息")
@SysLog(title = "变电站信息", businessType = OperaType.INSERT, logType = 1,module = "变电站管理->新增变电站信息")
@PostMapping("/substation/add")
public AjaxResult add(@RequestBody SubstationVo substationVo) {
String username = SecurityUtils.getUsername();
String userId=SecurityUtils.getUserId()+"";
Map<String,Object> map=new HashMap<>();
try {
substationVo.setCreateBy(userId);
return toAjax(protectionManageService.insertSubstation(substationVo));
} catch (Exception e) {
return error(e.getMessage());
}
}
/**
* 编辑变电站信息
*/
@ApiOperation(value = "编辑变电站信息")
@SysLog(title = "变电站信息", businessType = OperaType.INSERT, logType = 1,module = "变电站管理->编辑变电站信息")
@PostMapping("/substation/edit")
public AjaxResult edit(@RequestBody SubstationVo substationVo) {
Map<String,Object> map=new HashMap<>();
try {
return toAjax(protectionManageService.updateSubstation(substationVo));
} catch (Exception e) {
return error(e.getMessage());
}
}
@ApiOperation(value = "删除变电站信息")
@SysLog(title = "变电站信息", businessType = OperaType.DELETE, logType = 1,module = "变电站管理->删除变电站信息")
@PostMapping("/substation/del")
public AjaxResult remove(@RequestBody SubstationVo substationVo) {
AjaxResult ar=new AjaxResult();
System.out.println(substationVo.getSubstationIds().toString());
Map<String,Object> map=new HashMap<>();
map=protectionManageService.deleteSubstation(substationVo.getSubstationIds());
int code=(int)map.get("code");
if(code==1){
return AjaxResult.success((String)map.get("msg"));
}else{
return AjaxResult.error((String)map.get("msg"));
}
}
/**
* 查询保护定值单信息列表
*/
@ApiOperation(value = "查询保护定值单信息列表")
@GetMapping("/protectionOrder/list")
public TableDataInfo orderlist(ProtectionVo protectionVo) {
startPage();
List<ProtectionVo> list = protectionManageService.selectProtectionOrderList(protectionVo);
return getDataTable(list);
}
/**
* 查询保护定值单信息列表
*/
@ApiOperation(value = "查询保护定值单信息详情")
@GetMapping("/protectionOrder/detail")
public Map<String,Object> detail(ProtectionVo protectionVo) {
Map<String,Object> map = protectionManageService.getDetail(protectionVo);
return map;
}
/**
* 新增/编辑保护定值单信息
*/
@ApiOperation(value = "编辑保护定值单信息")
@SysLog(title = "保护定值单信息", businessType = OperaType.INSERT, logType = 1,module = "保护定值单管理->新增/编辑保护定值单信息")
@PostMapping("/protectionOrder/edit")
public Map<String, Object> editProtection(@RequestBody ProtectionVo protectionVo) {
Map<String,Object> map=new HashMap<>();
try {
map=protectionManageService.editProtection(protectionVo);
return map;
} catch (Exception e) {
return error(e.getMessage());
}
}
/**
* 删除保护定值单信息
*/
@ApiOperation(value = "删除保护定值单信息")
@SysLog(title = "保护定值单信息", businessType = OperaType.INSERT, logType = 1,module = "保护定值单管理->删除保护定值单信息")
@PostMapping("/protectionOrder/del")
public AjaxResult delProtection(@RequestBody ProtectionVo protectionVo) {
try {
return toAjax(protectionManageService.delProtection(protectionVo));
} catch (Exception e) {
return error(e.getMessage());
}
}
/**
* 屏幕识别
*/
@ApiOperation(value = "屏幕识别")
@SysLog(title = "屏幕识别", businessType = OperaType.INSERT, logType = 1,module = "保护定值单管理->屏幕识别")
@PostMapping("/protectionAnalysis/check")
public AjaxResult check(@RequestBody ProtectionVo protectionVo) {
Map<String,Object> map=new HashMap<>();
try {
return toAjax(protectionManageService.analysisCheck(protectionVo));
} catch (Exception e) {
return error(e.getMessage());
}
}
/**
* 查询保护定值单识别信息列表
*/
@ApiOperation(value = "查询保护定值单识别信息列表")
@GetMapping("/protectionAnalysis/list")
public TableDataInfo analysislist(ProtectionVo protectionVo) {
startPage();
List<ProtectionVo> list = protectionManageService.selectProtectionAnalysisList(protectionVo);
return getDataTable(list);
}
}

View File

@ -0,0 +1,72 @@
package com.bonus.canteen.core.protection.mapper;
import com.bonus.canteen.core.certificate.vo.CertificateInfo;
import com.bonus.canteen.core.certificate.vo.CertificateRecord;
import com.bonus.canteen.core.certificate.vo.UserInfo;
import com.bonus.canteen.core.protection.vo.ProtectionResultVo;
import com.bonus.canteen.core.protection.vo.ProtectionVo;
import com.bonus.canteen.core.protection.vo.SubstationVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 证件信息Mapper接口
*
* @author xsheng
* @date 2025-05-25
*/
public interface ProtectionManageMapper {
/**
* 查询变电站信息列表
*
* @param substationVo 变电站信息
* @return 变电站信息集合
*/
public List<SubstationVo> selectSubstationList(SubstationVo substationVo);
public List<SubstationVo> selectSubstationListByName(SubstationVo substationVo);
public int insertSubstation(SubstationVo substationVo);
public int updateSubstation(SubstationVo substationVo);
public int deleteSubstation(@Param("substationIds") String[] substationIds);
public List<SubstationVo> getProtectionBySubstationIds(@Param("substationIds") String[] substationIds);
public int editProtection(ProtectionVo protectionVo);
public int deleteProtectionInfo(@Param("protectionId") String protectionId);
public int deleteHeadInfo(@Param("protectionId") String protectionId);
public int deleteDeviceInfo(@Param("protectionId") String protectionId);
public int deleteBhdzInfo(@Param("protectionId") String protectionId);
public int deleteBhdzValueInfo(@Param("protectionId") String protectionId);
public int deleteKzzInfo(@Param("protectionId") String protectionId);
public int deleteKzzValueInfo(@Param("protectionId") String protectionId);
public int deleteImgInfo(@Param("protectionId") String protectionId);
public List<ProtectionVo> selectProtectionOrderList(ProtectionVo protectionVo);
public int insertProtectionOrder(ProtectionVo protectionVo);
public int updateProtectionOrder(ProtectionVo protectionVo);
public int insertProtectionImg(ProtectionVo protectionVo);
public int insertProtectionHead(ProtectionVo protectionVo);
public int insertProtectionSbcs(ProtectionVo protectionVo);
public int insertProtectionBhdz(ProtectionVo protectionVo);
public int insertProtectionBhdzValue(ProtectionVo protectionVo);
public int insertProtectionKzz(ProtectionVo protectionVo);
public int insertProtectionKzzValue(ProtectionVo protectionVo);
public List<ProtectionResultVo> selectDetailByHead(ProtectionVo protectionVo);
public List<ProtectionResultVo> selectDetailBySbcs(ProtectionVo protectionVo);
public List<String> selectDetailByBhdz(ProtectionVo protectionVo);
public List<String> selectDetailByKzz(ProtectionVo protectionVo);
public List<ProtectionVo> selectProtectionAnalysisList(ProtectionVo protectionVo);
}

View File

@ -0,0 +1,47 @@
package com.bonus.canteen.core.protection.service;
import com.bonus.canteen.core.certificate.vo.CertificateInfo;
import com.bonus.canteen.core.certificate.vo.CertificateRecord;
import com.bonus.canteen.core.protection.vo.ProtectionVo;
import com.bonus.canteen.core.protection.vo.SubstationVo;
import com.bonus.common.core.web.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
* 证件信息Service接口
*
* @author xsheng
* @date 2025-05-25
*/
public interface ProtectionManageService {
/**
* 查询变电站信息列表
*
* @param substationVo 证件信息
* @return 证件信息集合
*/
public List<SubstationVo> selectSubstationList(SubstationVo substationVo);
public int insertSubstation(SubstationVo substationVo);
public int updateSubstation(SubstationVo substationVo);
public Map<String,Object> deleteSubstation(String[] substationIds);
public List<ProtectionVo> selectProtectionOrderList(ProtectionVo protectionVo);
public Map<String,Object> getDetail(ProtectionVo protectionVo);
public Map<String,Object> editProtection(ProtectionVo protectionVo);
public int delProtection(ProtectionVo protectionVo);
public int analysisCheck(ProtectionVo protectionVo);
public List<ProtectionVo> selectProtectionAnalysisList(ProtectionVo protectionVo);
}

View File

@ -0,0 +1,417 @@
package com.bonus.canteen.core.protection.service.imp;
import com.bonus.canteen.core.certificate.vo.CertificateInfo;
import com.bonus.canteen.core.protection.mapper.ProtectionManageMapper;
import com.bonus.canteen.core.protection.service.ProtectionManageService;
import com.bonus.canteen.core.protection.vo.ProtectionResultVo;
import com.bonus.canteen.core.protection.vo.ProtectionVo;
import com.bonus.canteen.core.protection.vo.SubstationVo;
import com.bonus.canteen.core.utils.BnsUtils;
import com.bonus.canteen.core.utils.ImgAnalysisUtils;
import com.bonus.canteen.core.utils.OcrService;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.security.utils.SecurityUtils;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.File;
import java.util.*;
/**
* 证件信息Service业务层处理
*
* @author xsheng
* @date 2025-05-25
*/
@Service
public class ProtectionManageServiceImpl implements ProtectionManageService {
@Resource
private ProtectionManageMapper protectionManageMapper;
@Resource
private OcrService ocrService;
/**
* 查询变电站信息
*
* @param substationVo
* @return 变电站信息
*/
@Override
public List<SubstationVo> selectSubstationList(SubstationVo substationVo) {
return protectionManageMapper.selectSubstationList(substationVo);
}
@Override
public int insertSubstation(SubstationVo substationVo) {
int num=0;
try{
substationVo.setCreateTime(DateUtils.getNowDate());
substationVo.setUpdateTime(DateUtils.getNowDate());
Long userid = SecurityUtils.getUserId();
substationVo.setCreateBy(String.valueOf(userid));
num=protectionManageMapper.insertSubstation(substationVo);
}catch (Exception e){
e.printStackTrace();
}
return num;
}
@Override
public int updateSubstation(SubstationVo substationVo) {
int num=0;
try{
substationVo.setUpdateTime(DateUtils.getNowDate());
Long userid = SecurityUtils.getUserId();
substationVo.setUpdateBy(String.valueOf(userid));
checkSubstation(substationVo);
num=protectionManageMapper.updateSubstation(substationVo);
}catch (Exception e){
e.printStackTrace();
}
return num;
}
void checkSubstation(SubstationVo substationVo) {
List<SubstationVo> list=protectionManageMapper.selectSubstationListByName(substationVo);
if(list!=null&&list.size()>0){
throw new ServiceException("变电站已存在");
}
}
/**
* 批量删除变电站信息
*
* @param substationIds 需要删除的变电站信息主键
* @return 结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String,Object> deleteSubstation(String[] substationIds) {
Map<String,Object> map=new HashMap<>();
try{
List<SubstationVo> list=protectionManageMapper.getProtectionBySubstationIds(substationIds);
if(list!=null&&list.size()>0){
map.put("code",0);
String msg="";
for(SubstationVo vo:list){
msg=msg+vo.getSubstationName()+"("+vo.getProtectionName()+") ";
}
msg=msg+"。以上变电站已存储无法删除!";
map.put("msg",msg);
}else{
int d=protectionManageMapper.deleteSubstation(substationIds);
map.put("code",1);
map.put("msg","删除成功!");
}
}catch (Exception e){
e.printStackTrace();
map.put("code",0);
map.put("msg",e.getMessage());
}
return map;
}
/**
* 查询定值单信息
*
* @param protectionVo
* @return 定值单信息
*/
@Override
public List<ProtectionVo> selectProtectionOrderList(ProtectionVo protectionVo) {
return protectionManageMapper.selectProtectionOrderList(protectionVo);
}
/**
* 查询定值单详情信息
*
* @param protectionVo
* @return 定值单详情信息
*/
@Override
public Map<String,Object> getDetail(ProtectionVo protectionVo) {
Map<String,Object> map=new HashMap<>();
try{
List<ProtectionResultVo> headlist=protectionManageMapper.selectDetailByHead(protectionVo);
List<ProtectionResultVo> sbcslist=protectionManageMapper.selectDetailBySbcs(protectionVo);
List<String> bhdzlist=protectionManageMapper.selectDetailByBhdz(protectionVo);
List<String> kzzlist=protectionManageMapper.selectDetailByKzz(protectionVo);
map.put("head",headlist);
map.put("sbcs",sbcslist);
map.put("bhdz",bhdzlist);
map.put("kzz",kzzlist);
}catch (Exception e){
e.printStackTrace();
}
return map;
}
@Override
public Map<String,Object> editProtection(ProtectionVo protectionVo) {
int num=0;
Map<String,Object> resMap=new HashMap<>();
resMap.put("code",400);
ObjectMapper objectMapper = new ObjectMapper();
Long userid = SecurityUtils.getUserId();
String substationId="";
ProtectionVo pvo=new ProtectionVo();
int headflage=0;
int sbcsflage=0;
Map<String,Object> bhdzcheckmap=new HashMap<>();
Map<String,Object> kzzcheckmap=new HashMap<>();
int bhdzflage=0;
int kzzflage=0;
try{
if(protectionVo.getCheckUrlList()!=null&&protectionVo.getCheckUrlList().length>0){
for(int n=0;n<protectionVo.getCheckUrlList().length;n++){
protectionVo.setImgUrl(protectionVo.getCheckUrlList()[n]);
File file =BnsUtils.getFile(protectionVo.getImgUrl(),protectionVo.getCheckUrlNameList()[n]);
String restr=ocrService.callOcrService(file);
if(restr.contains("服务器内部错误")){
resMap.put("msg",restr);
return resMap;
}
Map<String, Object> allObject = objectMapper.readValue(restr, new TypeReference<Map<String,Object>>(){});
Map<String,Object> headmap=(Map<String, Object>)allObject.get("head");
if (headmap != null && !headmap.isEmpty()) {
if (headmap != null && !headmap.isEmpty()&&headflage==0) {
List<ProtectionVo> headList=new ArrayList<>();
for (Map.Entry<String, Object> entry : headmap.entrySet()) {
String keyname=entry.getKey();
String valuename=entry.getValue().toString();
ProtectionVo headvo=new ProtectionVo();
headvo.setKeyName(keyname);
headvo.setValueName(valuename);
headList.add(headvo);
if("设备所属".equals(keyname)){
SubstationVo sub=new SubstationVo();
sub.setSubstationName(valuename);
List<SubstationVo> subs=protectionManageMapper.selectSubstationListByName(sub);
if(subs!=null&&subs.size()>0){
substationId=subs.get(0).getSubstationId();
}else{
sub.setCreateTime(DateUtils.getNowDate());
sub.setUpdateTime(DateUtils.getNowDate());
sub.setCreateBy(String.valueOf(userid));
protectionManageMapper.insertSubstation(sub);
substationId=sub.getSubstationId();
}
}
}
for(ProtectionVo vo:headList){
if("通知书名称".equals(vo.getKeyName())){
pvo.setProtectionName(vo.getValueName());
}
if("定值单编号".equals(vo.getKeyName())){
pvo.setProtectionCode(vo.getValueName());
}
if("日期".equals(vo.getKeyName())){
pvo.setProtectionDate(vo.getValueName());
}
if("页码".equals(vo.getKeyName())){
pvo.setProtectionDate(vo.getValueName());
}
if("设备所属".equals(vo.getKeyName())){
pvo.setDeviceName(vo.getValueName());
}
if("一次设备名称".equals(vo.getKeyName())){
pvo.setOneDevice(vo.getValueName());
}
if("保护装置名称".equals(vo.getKeyName())){
pvo.setProtectionDevice(vo.getValueName());
}
if("保护装置型号".equals(vo.getKeyName())){
pvo.setProtectionDeviceModel(vo.getValueName());
}
if("装置版本".equals(vo.getKeyName())){
pvo.setProtectionDeviceVersion(vo.getValueName());
}
if("备注".equals(vo.getKeyName())){
pvo.setRemark(vo.getValueName());
}
}
//录入订单
pvo.setCreateTime(DateUtils.getNowDate());
pvo.setUpdateTime(DateUtils.getNowDate());
pvo.setCreateBy(String.valueOf(userid));
pvo.setSubstationId(substationId);
pvo.setImgUrl(protectionVo.getCheckUrlList()[0]);
pvo.setImgName(protectionVo.getCheckUrlNameList()[0]);
pvo.setProtectionId(protectionVo.getProtectionId());
pvo.setType(protectionVo.getType());
if(protectionVo.getProtectionId()!=null&&!"".equals(protectionVo.getProtectionId())){
protectionManageMapper.updateProtectionOrder(pvo);
}else{
protectionManageMapper.insertProtectionOrder(pvo);
}
protectionManageMapper.deleteHeadInfo(protectionVo.getProtectionId());
protectionManageMapper.deleteDeviceInfo(protectionVo.getProtectionId());
protectionManageMapper.deleteBhdzInfo(protectionVo.getProtectionId());
protectionManageMapper.deleteBhdzValueInfo(protectionVo.getProtectionId());
protectionManageMapper.deleteKzzInfo(protectionVo.getProtectionId());
protectionManageMapper.deleteKzzValueInfo(protectionVo.getProtectionId());
protectionManageMapper.deleteImgInfo(protectionVo.getProtectionId());
//录入头部
for(ProtectionVo vo:headList){
vo.setProtectionId(pvo.getProtectionId());
vo.setAttributeValue(vo.getValueName());
vo.setAttributeKey(vo.getKeyName());
vo.setCreateTime(DateUtils.getNowDate());
vo.setUpdateTime(DateUtils.getNowDate());
vo.setCreateBy(String.valueOf(userid));
headflage=protectionManageMapper.insertProtectionHead(vo);
}
}
if(headflage>0){
ProtectionVo imgvo=new ProtectionVo();
imgvo.setProtectionId(pvo.getProtectionId());
imgvo.setImgUrl(protectionVo.getCheckUrlList()[n]);
imgvo.setCreateTime(DateUtils.getNowDate());
imgvo.setUpdateTime(DateUtils.getNowDate());
imgvo.setCreateBy(String.valueOf(userid));
protectionManageMapper.insertProtectionImg(imgvo);
//录入设备参数
Map<String,Object> sbcsmap=(Map<String, Object>)allObject.get("sbcs");
if (sbcsmap != null && !sbcsmap.isEmpty()&&sbcsflage==0){
for (Map.Entry<String, Object> entry : sbcsmap.entrySet()) {
String keyname=entry.getKey();
String valuename=entry.getValue().toString();
ProtectionVo vo=new ProtectionVo();
vo.setProtectionId(pvo.getProtectionId());
vo.setAttributeValue(valuename);
vo.setAttributeKey(keyname);
vo.setCreateTime(DateUtils.getNowDate());
vo.setUpdateTime(DateUtils.getNowDate());
vo.setCreateBy(String.valueOf(userid));
sbcsflage=protectionManageMapper.insertProtectionSbcs(vo);
}
}
//录入保护定值
List<Map<String, Object>> bhdzmaps=(List<Map<String, Object>>)allObject.get("bhdz");
if (bhdzmaps != null && !bhdzmaps.isEmpty()){
int k=1;
for(Map<String, Object> bhdzmap:bhdzmaps){
int kk=1;
for (Map.Entry<String, Object> entry : bhdzmap.entrySet()) {
String keyname=entry.getKey();
String valuename=entry.getValue().toString();
ProtectionVo keyvo=new ProtectionVo();
keyvo.setProtectionId(pvo.getProtectionId());
keyvo.setAttributeKey(keyname);
keyvo.setOrderNum(kk+"");
keyvo.setCreateBy(String.valueOf(userid));
keyvo.setType("1");
if(k==1&&bhdzflage==0){
protectionManageMapper.insertProtectionBhdz(keyvo);
bhdzcheckmap.put(keyname,keyvo.getAttributeId());
}
kk++;
ProtectionVo vo=new ProtectionVo();
vo.setAttributeId((String)bhdzcheckmap.get(keyname));
vo.setAttributeValue(valuename);
vo.setBelong(k+"");
vo.setProtectionId(pvo.getProtectionId());
vo.setCreateBy(String.valueOf(userid));
protectionManageMapper.insertProtectionBhdzValue(vo);
}
bhdzflage=1;
k++;
}
}
//录入控制字
List<Map<String, Object>> kzzmaps=(List<Map<String, Object>>)allObject.get("kzz");
if (kzzmaps != null && !kzzmaps.isEmpty()){
int j=1;
for(Map<String, Object> kzzmap:kzzmaps){
int jj=1;
for (Map.Entry<String, Object> entry : kzzmap.entrySet()) {
String keyname=entry.getKey();
String valuename=entry.getValue().toString();
ProtectionVo keyvo=new ProtectionVo();
keyvo.setProtectionId(pvo.getProtectionId());
keyvo.setAttributeKey(keyname);
keyvo.setOrderNum(jj+"");
keyvo.setCreateBy(String.valueOf(userid));
keyvo.setType("2");
if(j==1&&kzzflage==0){
protectionManageMapper.insertProtectionKzz(keyvo);
kzzmap.put(keyname,keyvo.getAttributeId());
}
jj++;
ProtectionVo vo=new ProtectionVo();
vo.setAttributeId((String)kzzmap.get(keyname));
vo.setAttributeValue(valuename);
vo.setBelong(j+"");
vo.setProtectionId(pvo.getProtectionId());
vo.setCreateBy(String.valueOf(userid));
protectionManageMapper.insertProtectionKzzValue(vo);
}
kzzflage=1;
j++;
}
}
}
}else{
resMap.put("msg","模型错误");
}
}
resMap.put("code",200);
resMap.put("msg","操作成功!");
}else{
return resMap;
}
num=1;
}catch (Exception e){
resMap.put("msg",e.getMessage());
e.printStackTrace();
}
return resMap;
}
@Override
public int delProtection(ProtectionVo protectionVo) {
int num = 0;
try {
String[] protectionIds=protectionVo.getProtectionIds();
for(int i=0;i<protectionIds.length;i++){
protectionManageMapper.deleteProtectionInfo(protectionIds[i]);
protectionManageMapper.deleteHeadInfo(protectionIds[i]);
protectionManageMapper.deleteDeviceInfo(protectionIds[i]);
protectionManageMapper.deleteBhdzInfo(protectionIds[i]);
protectionManageMapper.deleteBhdzValueInfo(protectionIds[i]);
protectionManageMapper.deleteKzzInfo(protectionIds[i]);
protectionManageMapper.deleteKzzValueInfo(protectionIds[i]);
}
num = 1;
} catch (Exception e) {
e.printStackTrace();
}
return num;
}
@Override
public int analysisCheck(ProtectionVo protectionVo){
int num=0;
ObjectMapper objectMapper = new ObjectMapper();
try{
if(protectionVo.getCheckUrlList()!=null&&protectionVo.getCheckUrlList().length>0) {
for (int n = 0; n < protectionVo.getCheckUrlList().length; n++) {
protectionVo.setImgUrl(protectionVo.getCheckUrlList()[n]);
File file = BnsUtils.getFile(protectionVo.getImgUrl(), protectionVo.getCheckUrlNameList()[n]);
String restr = ocrService.callOcrServiceApp(file);
System.err.println(restr);
Map<String, Object> allObject = objectMapper.readValue(restr, new TypeReference<Map<String, Object>>() {});
}
}
num=1;
}catch (Exception e){
e.printStackTrace();
}
return num;
}
@Override
public List<ProtectionVo> selectProtectionAnalysisList(ProtectionVo protectionVo) {
return protectionManageMapper.selectProtectionAnalysisList(protectionVo);
}
}

View File

@ -0,0 +1,15 @@
package com.bonus.canteen.core.protection.vo;
import com.bonus.canteen.core.common.utils.FileUrlUtil;
import com.bonus.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.ToString;
import java.util.List;
@Data
@ToString
public class ProtectionResultVo {
private String attributeKey;
private String attributeValue;
}

View File

@ -0,0 +1,65 @@
package com.bonus.canteen.core.protection.vo;
import com.bonus.canteen.core.common.utils.FileUrlUtil;
import com.bonus.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.ToString;
import java.util.List;
@Data
@ToString
public class ProtectionVo extends BaseEntity {
private String id;
/** 变电站ID */
private String substationId;
/** 变电站名称 */
private String substationName;
/** 保护定值单ID */
private String protectionId;
/** 保护定值单名称 */
private String protectionName;
/** 保护定值单编号 */
private String protectionCode;
/** 保护定值单日期 */
private String protectionDate;
private String deviceName;
/** 一次设备 */
private String oneDevice;
/** 保护设备 */
private String protectionDevice;
/** 保护设备型号 */
private String protectionDeviceModel;
/** 保护设备版本 */
private String protectionDeviceVersion;
/** 备注 */
private String remark;
/** 说明 */
private String description;
private String pageNo;
private String imgUrl;
private String imgName;
private String[] checkUrlList;
private String[] checkUrlNameList;
private String keyName;
private String valueName;
private String attributeKey;
private String attributeValue;
private String attributeId;
private List<ProtectionVo> protectionVos;
private String belong;
private String orderNum;
private String valueId;
private String keyWord;
private String type;
private String analysisDate;
private String[] protectionIds;
public String getImgUrl() {
return FileUrlUtil.getFileUrl(this.imgUrl);
}
}

View File

@ -0,0 +1,20 @@
package com.bonus.canteen.core.protection.vo;
import com.bonus.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.ToString;
@Data
@ToString
public class SubstationVo extends BaseEntity {
private String substationId;
private String substationName;
private String runTime;
private String remark;
private String keyWord;
private String[] substationIds;
private String userId;
private String protectionName;
}

View File

@ -7,7 +7,10 @@ import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import java.beans.PropertyDescriptor;
import java.io.IOException;
import java.io.*;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;
@ -166,4 +169,58 @@ public class BnsUtils {
}
}
public static File getFile(String url, String fileName) throws Exception {
//对本地文件命名
File file = null;
String prefix="";
String suffix="";
prefix = fileName.substring(0,fileName.lastIndexOf("."));
suffix = fileName.substring(fileName.lastIndexOf("."),fileName.length());
URL urlfile;
InputStream inStream = null;
OutputStream os = null;
try {
file = File.createTempFile(prefix,suffix);
//下载
urlfile = new URL(url);
inStream = urlfile.openStream();
os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = inStream.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != os) {
os.close();
}
if (null != inStream) {
inStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return file;
}
public static File downloadImageToTempFile(String imageUrl) throws IOException {
URL url = new URL(imageUrl);
String suffix="";
suffix = imageUrl.substring(imageUrl.lastIndexOf("."),imageUrl.length());
// 创建临时文件
File tempFile = File.createTempFile("temp-image", suffix);
try (InputStream in = url.openStream()) {
// 复制URL输入流到临时文件
Files.copy(in, tempFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
return tempFile;
}
}

View File

@ -0,0 +1,260 @@
package com.bonus.canteen.core.utils;
import com.alibaba.fastjson.JSONObject;
import com.bonus.common.core.exception.ServiceException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import okhttp3.*;
import org.json.JSONArray;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import java.beans.PropertyDescriptor;
import java.util.*;
/**
* @author jsk
* @date 2025/10/25 17:25
*/
public class ImgAnalysisUtils {
public static Map<String,Object> getImgAnalysis(String imgUrl){
Map<String,Object> map=new HashMap<>();
try{
String headstr=getHeadString();
// 创建ObjectMapper对象
ObjectMapper objectMapper = new ObjectMapper();
// 将json字符串转换成Map
Map<String, Object> headObject = objectMapper.readValue(headstr, new TypeReference<Map<String,Object>>(){});
map.put("head",headObject);
String sbcsstr=getSbcsString();
Map<String, Object> sbcsObject = objectMapper.readValue(sbcsstr, new TypeReference<Map<String,Object>>(){});
map.put("sbcs",sbcsObject.get("设备参数"));
String bhdzstr=getBhdzString();
JSONArray jsonArray = new JSONArray(bhdzstr);
List<Map<String, Object>> bhdzlist = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
org.json.JSONObject jsonObjectd = jsonArray.getJSONObject(i);
Map<String, Object> Objectd = objectMapper.readValue(jsonObjectd.toString(), new TypeReference<Map<String,Object>>(){});
bhdzlist.add(Objectd);
}
map.put("bhdz",bhdzlist);
String kzzstr=getKzzString();
JSONArray jsonArray2 = new JSONArray(kzzstr);
List<Map<String, Object>> kzzlist = new ArrayList<>();
for (int i = 0; i < jsonArray2.length(); i++) {
org.json.JSONObject jsonObjectd = jsonArray2.getJSONObject(i);
Map<String, Object> Objectd = objectMapper.readValue(jsonObjectd.toString(), new TypeReference<Map<String,Object>>(){});
kzzlist.add(Objectd);
}
map.put("kzz",kzzlist);
}catch (Exception e){
e.printStackTrace();
}
return map;
}
static String getHeadString(){
return "{\n" +
" \"通知书名称\": \"阜阳电网继电保护装置整定值通知书\",\n" +
" \"定值单编号\": \"FY425143\",\n" +
" \"页码\": \"第1页 共2页\",\n" +
" \"日期\": \"2025年6月8日\",\n" +
" \"设备所属\": \"居士变\",\n" +
" \"一次设备名称\": \"1#电容器\",\n" +
" \"保护装置名称\": \"微机电容器保护\",\n" +
" \"保护装置型号\": \"PAC-8231B-GZK\",\n" +
" \"装置版本\": \"V2.00\",\n" +
" \"备注\": \"新设备投运\"\n" +
"}";
}
static String getSbcsString(){
return "{\n" +
" \"设备参数\": {\n" +
" \"不平衡保护CT一次值\": \"1\",\n" +
" \"定值区号\": \"1\",\n" +
" \"被保护设备\": \"1#电容器\",\n" +
" \"不平衡保护CT二次值\": \"5\",\n" +
" \"PT一次值千伏\": \"10\",\n" +
" \"零序CT一次值\": \"1\",\n" +
" \"不平衡保护PT一次值千伏\": \"10\",\n" +
" \"零序CT二次值\": \"5\",\n" +
" \"不平衡保护PT二次值\": \"100\",\n" +
" \"保护CT一次值\": \"1000\",\n" +
" \"保护CT二次值\": \"5\"\n" +
" }\n" +
"}";
}
static String getBhdzString(){
return "[\n" +
" {\n" +
" \"序号\": \"1\",\n" +
" \"定值名称\": \"过流I段定值\",\n" +
" \"一次值\": \"989.75\",\n" +
" \"二次值\": \"4.95\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"2\",\n" +
" \"定值名称\": \"过流I段时间\",\n" +
" \"一次值\": \"0.2\",\n" +
" \"二次值\": \"0.2\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"3\",\n" +
" \"定值名称\": \"过流Ⅱ段定值(安)\",\n" +
" \"一次值\": \"395.9\",\n" +
" \"二次值\": \"1.98\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"4\",\n" +
" \"定值名称\": \"过流ⅡI段时间\",\n" +
" \"一次值\": \"0.5\",\n" +
" \"二次值\": \"0.5\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"5\",\n" +
" \"定值名称\": \"零序过流1段定值\",\n" +
" \"一次值\": \"60\",\n" +
" \"二次值\": \"0.3\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"6\",\n" +
" \"定值名称\": \"零序过流I段时间\",\n" +
" \"一次值\": \"1.6\",\n" +
" \"二次值\": \"1.6\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"7\",\n" +
" \"定值名称\": \"零序过流Ⅱ段定值(安)\",\n" +
" \"一次值\": \"40\",\n" +
" \"二次值\": \"0.2\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"8\",\n" +
" \"定值名称\": \"零序过流Ⅱ段时间(秒)\",\n" +
" \"一次值\": \"1.8\",\n" +
" \"二次值\": \"1.8\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"9\",\n" +
" \"定值名称\": \"过电压定值(伏)\",\n" +
" \"一次值\": \"\",\n" +
" \"二次值\": \"115.5\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"10\",\n" +
" \"定值名称\": \"过电压时间(秒)\",\n" +
" \"一次值\": \"3\",\n" +
" \"二次值\": \"3\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"11\",\n" +
" \"定值名称\": \"低电压定值(伏)\",\n" +
" \"一次值\": \"\",\n" +
" \"二次值\": \"52.5\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"12\",\n" +
" \"定值名称\": \"低电压时间(秒)\",\n" +
" \"一次值\": \"1\",\n" +
" \"二次值\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"13\",\n" +
" \"定值名称\": \"低电压闭锁电流定值(安)\",\n" +
" \"一次值\": \"118.7\",\n" +
" \"二次值\": \"0.59\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"14\",\n" +
" \"定值名称\": \"不平衡电压定值(伏)\",\n" +
" \"二次值\": \"1.8\",\n" +
" \"一次值\": \"\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"15\",\n" +
" \"定值名称\": \"不平衡电压时间(秒)\",\n" +
" \"一次值\": \"0.2\",\n" +
" \"二次值\": \"0.2\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"16\",\n" +
" \"定值名称\": \"不平衡电流定值(安)\",\n" +
" \"二次值\": \"20\",\n" +
" \"一次值\": \"\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"17\",\n" +
" \"定值名称\": \"不平衡电流时间(秒)\",\n" +
" \"一次值\": \"10\",\n" +
" \"二次值\": \"10\"\n" +
" }\n" +
"]";
}
static String getKzzString(){
return "[\n" +
" {\n" +
" \"序号\": \"1\",\n" +
" \"控制字名称\": \"过流1段\",\n" +
" \"状态\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"2\",\n" +
" \"控制字名称\": \"过流1段\",\n" +
" \"状态\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"3\",\n" +
" \"控制字名称\": \"零序电流采用自产零流\",\n" +
" \"状态\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"4\",\n" +
" \"控制字名称\": \"零序过流1段\",\n" +
" \"状态\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"5\",\n" +
" \"控制字名称\": \"零序过流Ⅱ段\",\n" +
" \"状态\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"6\",\n" +
" \"控制字名称\": \"过电压保护\",\n" +
" \"状态\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"7\",\n" +
" \"控制字名称\": \"低电压保护\",\n" +
" \"状态\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"8\",\n" +
" \"控制字名称\": \"不平衡电压保护\",\n" +
" \"状态\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"9\",\n" +
" \"控制字名称\": \"不平衡电流保护\",\n" +
" \"状态\": \"0\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"10\",\n" +
" \"控制字名称\": \"零序过流告警\",\n" +
" \"状态\": \"1\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"11\",\n" +
" \"控制字名称\": \"闭锁简易母线保护\",\n" +
" \"状态\": \"0\"\n" +
" },\n" +
" {\n" +
" \"序号\": \"12\",\n" +
" \"控制字名称\": \"PT断线自检\",\n" +
" \"状态\": \"1\"\n" +
" }\n" +
"]";
}
}

View File

@ -0,0 +1,180 @@
package com.bonus.canteen.core.utils;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.ContentType;
import java.io.File;
import java.io.FileInputStream;
import java.nio.charset.StandardCharsets;
import java.io.IOException;
import java.util.Map;
/**
* @className:OcrService
* @author:cwchen
* @date:2025-10-16-10:35
* @version:1.0
* @description: OCR服务实现类
*/
@Service(value = "OcrService")
@Slf4j
public class OcrService {
@Value("${ocr.service.url}")
private String ocrServiceUrl;
@Value("${ocr.service.urlApp}")
private String ocrAppServiceUrl;
@Value("${ocr.service.timeout}")
private int timeout;
private final CloseableHttpClient httpClient;
private final ObjectMapper objectMapper;
public OcrService() {
// 配置HTTP客户端
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(timeout)
.setSocketTimeout(timeout)
.setConnectionRequestTimeout(timeout)
.build();
this.httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.build();
this.objectMapper = new ObjectMapper();
}
/**
* 调用OCR服务
*/
public String callOcrService(File file) throws IOException {
HttpPost httpPost = new HttpPost(ocrServiceUrl);
String res="0";
try {
// 创建 multipart entity builder
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setCharset(StandardCharsets.UTF_8);
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
// 添加文件字段
builder.addPart("file",
new FileBody(file, ContentType.MULTIPART_FORM_DATA, file.getName()));
// 设置请求实体 - 注意这里会自动设置正确的 Content-Type boundary
httpPost.setEntity(builder.build());
// 设置 Accept
httpPost.setHeader("Accept", "application/json");
log.info("OCR服务开始定值单识别");
// 执行请求
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
HttpEntity entity = response.getEntity();
String responseBody = EntityUtils.toString(entity, "UTF-8");
log.info("OCR服务响应状态: {}", response.getStatusLine().getStatusCode());
log.info("OCR服务响应内容: {}", responseBody);
res=responseBody;
}
} catch (Exception e) {
log.error("调用OCR服务失败", e);
} finally {
// 清理临时文件
// if (file != null && file.exists()) {
// boolean deleted = file.delete();
// if (!deleted) {
// log.warn("临时文件删除失败: {}", file.getAbsolutePath());
// }
// }
httpPost.releaseConnection();
}
return res;
}
/**
* 调用OCR服务
*/
public String callOcrServiceApp(File file) throws IOException {
HttpPost httpPost = new HttpPost(ocrAppServiceUrl);
String res="0";
try {
// 创建 multipart entity builder
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setCharset(StandardCharsets.UTF_8);
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
// 添加文件字段
builder.addPart("file",
new FileBody(file, ContentType.MULTIPART_FORM_DATA, file.getName()));
// 设置请求实体 - 注意这里会自动设置正确的 Content-Type boundary
httpPost.setEntity(builder.build());
// 设置 Accept
httpPost.setHeader("Accept", "application/json");
log.info("OCR服务开始屏幕识别");
// 执行请求
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
HttpEntity entity = response.getEntity();
String responseBody = EntityUtils.toString(entity, "UTF-8");
log.info("OCR服务响应状态: {}", response.getStatusLine().getStatusCode());
log.info("OCR服务响应内容: {}", responseBody);
res=responseBody;
}
} catch (Exception e) {
log.error("调用OCR服务失败", e);
} finally {
// 清理临时文件
// if (file != null && file.exists()) {
// boolean deleted = file.delete();
// if (!deleted) {
// log.warn("临时文件删除失败: {}", file.getAbsolutePath());
// }
// }
httpPost.releaseConnection();
}
return res;
}
/**
* 关闭HTTP客户端
*/
public void close() {
try {
httpClient.close();
} catch (IOException e) {
log.error("关闭HTTP客户端失败", e);
}
}
public String uploadFileToServer(File file) throws IOException {
String targetUrl=ocrServiceUrl;
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpPost uploadFile = new HttpPost(targetUrl);
// 创建multipart请求实体
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
// 添加文件参数这里假设接口需要的参数名为"file"如果不同请修改
builder.addBinaryBody(
"file",
new FileInputStream(file),
ContentType.APPLICATION_OCTET_STREAM,
file.getName()
);
HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);
// 执行请求并获取响应
try (CloseableHttpResponse response = httpClient.execute(uploadFile)) {
HttpEntity responseEntity = response.getEntity();
return EntityUtils.toString(responseEntity, "UTF-8");
}
}
}
}

View File

@ -1,11 +1,16 @@
# Tomcat
server:
port: 48388
port: 38388
system:
sysfile:
prefixOffline: http://localhost:9000/lnyst
prefixOnline: http://localhost:9000/lnyst
bucket: /lnyst
prefixOffline: http://192.168.0.44:9090/jsk
prefixOnline: http://192.168.0.44:9090/jsk
bucket: /jsk
ocr:
service:
url: http://192.168.0.143:8000/ocr/process
timeout: 10000
urlApp: http://192:168:0:143:8001/ocr/process_screen
# Spring
spring:
cloud:

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/bonus-zjgl" />
<property name="log.path" value="logs/bonus-protection" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

View File

@ -0,0 +1,417 @@
<?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.bonus.canteen.core.protection.mapper.ProtectionManageMapper">
<select id="selectSubstationList" parameterType="com.bonus.canteen.core.protection.vo.SubstationVo" resultType="com.bonus.canteen.core.protection.vo.SubstationVo">
select a.substation_id as substationid,a.substation_name as substationName
,a.substation_name as substationName
,b.nick_name as createBy,a.create_time as createtime
,a.run_time as runtime,a.remark
from bm_substation a
left join sys_user b on a.create_by=b.user_id
where 1=1
<if test='keyWord!=null and keyWord!=""'>
and (a.substation_name like concat('%', #{keyWord}, '%') or b.nick_name like concat('%', #{keyWord}, '%'))
</if>
order by a.substation_name asc
</select>
<select id="selectSubstationListByName" parameterType="com.bonus.canteen.core.protection.vo.SubstationVo" resultType="com.bonus.canteen.core.protection.vo.SubstationVo">
select a.substation_id as substationid,a.substation_name as substationName
,a.substation_name as substationName
,b.nick_name as createBy,a.create_time as createtime
,a.run_time as runtime,a.remark
from bm_substation a
left join sys_user b on a.create_by=b.user_id
where a.substation_name=#{substationName}
</select>
<insert id="insertSubstation" parameterType="com.bonus.canteen.core.protection.vo.SubstationVo" keyProperty="substationId" useGeneratedKeys="true">
insert into bm_substation
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="substationName != null and substationName != ''">substation_name,</if>
<if test="runTime != null">run_time,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="substationName != null and substationName != ''">#{substationName},</if>
<if test="runTime != null">#{runTime},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateSubstation" parameterType="com.bonus.canteen.core.protection.vo.SubstationVo">
update bm_substation
<trim prefix="SET" suffixOverrides=",">
<if test="substationName != null and substationName != ''">substation_name = #{substationName},</if>
<if test="runTime != null">run_time = #{runTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where substation_id = #{substationId}
</update>
<select id="getProtectionBySubstationIds" parameterType="com.bonus.canteen.core.protection.vo.SubstationVo" resultType="com.bonus.canteen.core.protection.vo.SubstationVo">
select a.substation_id as substationid,a.substation_name as substationName
,a.substation_name as substationName
,b.nick_name as createBy,a.create_time as createtime
,a.run_time as runtime,a.remark,c.protection_name as protectionname
from bm_substation a
left join sys_user b on a.create_by=b.user_id
left join bm_protection_order c on a.substation_id=c.substation_id
where c.protection_name is not null
and a.substation_id in
<foreach item="substationId" collection="substationIds" open="(" separator="," close=")">
#{substationId}
</foreach>
group by a.substation_id
</select>
<update id="deleteSubstation" parameterType="com.bonus.canteen.core.protection.vo.SubstationVo">
delete from bm_substation a
where 1=1
and a.substation_id in
<foreach item="substationId" collection="substationIds" open="(" separator="," close=")">
#{substationId}
</foreach>
</update>
<select id="selectProtectionOrderList" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" resultType="com.bonus.canteen.core.protection.vo.ProtectionVo">
select a.protection_id as protectionid,a.protection_name as protectionname,a.protection_code as protectioncode,
a.img_url as imgurl,a.img_name as imgname,a.protection_date as protectiondate,a.device_name as devicename,
a.one_device as onedevice,
a.protection_device as protectiondevice,a.protection_device_model as protectiondevicemodel,
a.protection_device_version as protectiondeviceversion,a.remark as remark,
a.description
from bm_protection_order a
left join bm_substation b on a.substation_id=b.substation_id
where 1=1
<if test='type!=null and type!=""'>
and a.type=#{type}
</if>
<if test='keyWord!=null and keyWord!=""'>
and (a.protection_name like concat('%', #{keyWord}, '%') or a.protection_code like concat('%', #{keyWord}, '%'))
</if>
<if test='substationId!=null and substationId!=""'>
and b.substation_id=#{substationId}
</if>
</select>
<insert id="insertProtectionOrder" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" keyProperty="protectionId" useGeneratedKeys="true">
insert into bm_protection_order
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="substationId != null and substationId != ''">substation_id,</if>
<if test="protectionName != null">protection_name,</if>
<if test="protectionCode != null">protection_code,</if>
<if test="imgUrl != null">img_url,</if>
<if test="imgName != null">img_name,</if>
<if test="protectionDate != null">protection_date,</if>
<if test="pageNo != null">page_no,</if>
<if test="deviceName != null">device_name,</if>
<if test="oneDevice != null">one_device,</if>
<if test="protectionDevice != null">protection_device,</if>
<if test="protectionDeviceModel != null">protection_device_model,</if>
<if test="protectionDeviceVersion != null">protection_device_version,</if>
<if test="remark != null">remark,</if>
<if test="description != null">description,</if>
<if test="type != null">type,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="substationId != null and substationId != ''">#{substationId},</if>
<if test="protectionName != null">#{protectionName},</if>
<if test="protectionCode != null">#{protectionCode},</if>
<if test="imgUrl != null">#{imgUrl},</if>
<if test="imgName != null">#{imgName},</if>
<if test="protectionDate != null">#{protectionDate},</if>
<if test="pageNo != null">#{pageNo},</if>
<if test="deviceName != null">#{deviceName},</if>
<if test="oneDevice != null">#{oneDevice},</if>
<if test="protectionDevice != null">#{protectionDevice},</if>
<if test="protectionDeviceModel != null">#{protectionDeviceModel},</if>
<if test="protectionDeviceVersion != null">#{protectionDeviceVersion},</if>
<if test="remark != null">#{remark},</if>
<if test="description != null">#{description},</if>
<if test="type != null">#{type},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateProtectionOrder" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo">
update bm_protection_order
<trim prefix="SET" suffixOverrides=",">
<if test="protectionName != null and protectionName != ''">protection_name = #{protectionName},</if>
<if test="protectionCode != null">protection_code = #{protectionCode},</if>
<if test="imgUrl != null">img_url = #{imgUrl},</if>
<if test="imgName != null">img_name = #{imgName},</if>
<if test="protectionDate != null">protection_date = #{protectionDate},</if>
<if test="deviceName != null">device_name = #{deviceName},</if>
<if test="oneDevice != null">one_device = #{oneDevice},</if>
<if test="protectionDevice != null">protection_device = #{protectionDevice},</if>
<if test="protectionDeviceModel != null">protection_device_model = #{protectionDeviceModel},</if>
<if test="protectionDeviceVersion != null">protection_device_version = #{protectionDeviceVersion},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="description != null">description = #{description},</if>
<if test="type != null">type = #{type},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where protection_id = #{protectionId}
</update>
<insert id="insertProtectionImg" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" keyProperty="id" useGeneratedKeys="true">
insert into bm_protection_order_imaga
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">protection_id,</if>
<if test="imgUrl != null">img_url,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">#{protectionId},</if>
<if test="imgUrl != null">#{imgUrl},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<insert id="insertProtectionHead" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" keyProperty="protectionId" useGeneratedKeys="true">
insert into bm_protection_head
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">protection_id,</if>
<if test="attributeKey != null">attribute_key,</if>
<if test="attributeValue != null">attribute_value,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">#{protectionId},</if>
<if test="attributeKey != null">#{attributeKey},</if>
<if test="attributeValue != null">#{attributeValue},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<insert id="insertProtectionSbcs" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" keyProperty="protectionId" useGeneratedKeys="true">
insert into bm_protection_device
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">protection_id,</if>
<if test="attributeKey != null">attribute_key,</if>
<if test="attributeValue != null">attribute_value,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">#{protectionId},</if>
<if test="attributeKey != null">#{attributeKey},</if>
<if test="attributeValue != null">#{attributeValue},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<insert id="insertProtectionBhdz" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" keyProperty="attributeId" useGeneratedKeys="true">
insert into bm_protection_seting
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">protection_id,</if>
<if test="attributeKey != null">attribute_key,</if>
<if test="orderNum != null">order_num,</if>
<if test="type != null">type,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">#{protectionId},</if>
<if test="attributeKey != null">#{attributeKey},</if>
<if test="orderNum != null">#{orderNum},</if>
<if test="type != null">#{type},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<insert id="insertProtectionBhdzValue" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" keyProperty="attributeId" useGeneratedKeys="true">
insert into bm_protection_seting_value
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">protection_id,</if>
<if test="attributeId != null and attributeId != ''">attribute_id,</if>
<if test="attributeValue != null">attribute_value,</if>
<if test="belong != null and belong != ''">belong,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">#{protectionId},</if>
<if test="attributeId != null and attributeId != ''">#{attributeId},</if>
<if test="attributeValue != null">#{attributeValue},</if>
<if test="belong != null and belong != ''">#{belong},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<insert id="insertProtectionKzz" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" keyProperty="attributeId" useGeneratedKeys="true">
insert into bm_protection_seting
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">protection_id,</if>
<if test="attributeKey != null">attribute_key,</if>
<if test="orderNum != null">order_num,</if>
<if test="type != null">type,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">#{protectionId},</if>
<if test="attributeKey != null">#{attributeKey},</if>
<if test="orderNum != null">#{orderNum},</if>
<if test="type != null">#{type},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<insert id="insertProtectionKzzValue" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" keyProperty="attributeId" useGeneratedKeys="true">
insert into bm_protection_seting_value
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">protection_id,</if>
<if test="attributeId != null and attributeId != ''">attribute_id,</if>
<if test="attributeValue != null">attribute_value,</if>
<if test="belong != null and belong != ''">belong,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="protectionId != null and protectionId != ''">#{protectionId},</if>
<if test="attributeId != null and attributeId != ''">#{attributeId},</if>
<if test="attributeValue != null">#{attributeValue},</if>
<if test="belong != null and belong != ''">#{belong},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="editProtection" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo">
update bm_substation
<trim prefix="SET" suffixOverrides=",">
<if test="substationName != null and substationName != ''">substation_name = #{substationName},</if>
<if test="runTime != null">run_time = #{runTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where substation_id = #{substationId}
</update>
<delete id="deleteProtectionInfo">
delete from bm_protection_order where protection_id=#{protectionId}
</delete>
<delete id="deleteHeadInfo">
delete from bm_protection_head where protection_id=#{protectionId}
</delete>
<delete id="deleteDeviceInfo">
delete from bm_protection_device where protection_id=#{protectionId}
</delete>
<delete id="deleteBhdzInfo">
delete from bm_protection_seting where protection_id=#{protectionId}
</delete>
<delete id="deleteBhdzValueInfo">
delete from bm_protection_seting_value where protection_id=#{protectionId}
</delete>
<delete id="deleteKzzInfo">
delete from bm_protection_seting where protection_id=#{protectionId}
</delete>
<delete id="deleteKzzValueInfo">
delete from bm_protection_seting_value where protection_id=#{protectionId}
</delete>
<delete id="deleteImgInfo">
delete from bm_protection_order_imaga where protection_id=#{protectionId}
</delete>
<select id="selectDetailByHead" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" resultType="com.bonus.canteen.core.protection.vo.ProtectionResultVo">
select attribute_key as attributekey,attribute_value as attributevalue
from bm_protection_head a
where a.protection_id=#{protectionId}
</select>
<select id="selectDetailBySbcs" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" resultType="com.bonus.canteen.core.protection.vo.ProtectionResultVo">
select attribute_key as attributekey,attribute_value as attributevalue
from bm_protection_device a
where a.protection_id=#{protectionId}
</select>
<select id="selectDetailByBhdz" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" resultType="java.lang.String">
select GROUP_CONCAT(a.attribute_key order by a.order_num SEPARATOR '@') as dd
from bm_protection_seting a
where a.protection_id=#{protectionId} and a.type='1'
GROUP BY a.protection_id
union
select GROUP_CONCAT(b.attribute_value order by a.order_num SEPARATOR '@') as dd from bm_protection_seting a
left join bm_protection_seting_value b on a.attribute_id=b.attribute_id
where a.protection_id=#{protectionId} and a.type='1'
group by b.belong
</select>
<select id="selectDetailByKzz" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" resultType="java.lang.String">
select GROUP_CONCAT(a.attribute_key order by a.order_num SEPARATOR '@') as dd from bm_protection_seting a
where a.protection_id=#{protectionId} and a.type='2'
GROUP BY a.protection_id
union
select GROUP_CONCAT(b.attribute_value order by a.order_num SEPARATOR '@') as dd from bm_protection_seting a
left join bm_protection_seting_value b on a.attribute_id=b.attribute_id
where a.protection_id=#{protectionId} and a.type='2'
group by b.belong
</select>
<select id="selectProtectionAnalysisList" parameterType="com.bonus.canteen.core.protection.vo.ProtectionVo" resultType="com.bonus.canteen.core.protection.vo.ProtectionVo">
select c.analysis_id as analysisid,a.protection_id as protectionid,a.protection_name as protectionname,a.protection_code as protectioncode,
a.img_url as imgurl,a.img_name as imgname,a.protection_date as protectiondate,a.device_name as devicename,
a.one_device as onedevice,
a.protection_device as protectiondevice,a.protection_device_model as protectiondevicemodel,
a.protection_device_version as protectiondeviceversion,a.remark as remark,
a.description,c.analysis_date as analysisdate
from bm_analysis_order c
left join bm_protection_order a on c.protection_id=a.protection_id
left join bm_substation b on a.substation_id=b.substation_id
where c.analysis_id is not null
<if test='keyWord!=null and keyWord!=""'>
and (a.protection_name like concat('%', #{keyWord}, '%') or b.substation_name like concat('%', #{keyWord}, '%'))
</if>
</select>
</mapper>

View File

@ -1,11 +1,16 @@
# Tomcat
server:
port: 48388
port: 38388
system:
sysfile:
prefixOffline: http://localhost:9000/lnyst
prefixOnline: http://localhost:9000/lnyst
bucket: /lnyst
prefixOffline: http://192.168.0.44:9090/jsk
prefixOnline: http://192.168.0.44:9090/jsk
bucket: /jsk
ocr:
service:
url: http://192.168.0.143:8000/ocr/process
timeout: 10000
urlApp: http://192:168:0:143:8001/ocr/process_screen
# Spring
spring:
cloud:

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/bonus-zjgl" />
<property name="log.path" value="logs/bonus-protection" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

View File

@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
* Date: 2025/2/20 下午4:08
* Description:
*/
@FeignClient(value="bonus-zjgl")
@FeignClient(value="bonus-protection")
@Service
@Component
public interface OtherServiceClient {

View File

@ -11,7 +11,7 @@
<modules>
<!-- <module>core-aggregator</module>-->
<!-- <module>bonus-cateen</module>-->
<module>bonus-zjgl</module>
<module>bonus-protection</module>
<module>bonus-shared-station</module>
</modules>