diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..1f8ec3d Binary files /dev/null and b/.DS_Store differ diff --git a/data-center-business-controller/.DS_Store b/data-center-business-controller/.DS_Store new file mode 100644 index 0000000..b5631c1 Binary files /dev/null and b/data-center-business-controller/.DS_Store differ diff --git a/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/CommonController.java b/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/CommonController.java index c412422..90ea50e 100644 --- a/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/CommonController.java +++ b/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/CommonController.java @@ -29,6 +29,7 @@ import com.techsor.datacenter.business.dto.common.DatacenterV1QueryParams; import com.techsor.datacenter.business.dto.common.GetFileTemporaryParams; import com.techsor.datacenter.business.dto.common.QueryBuilding; import com.techsor.datacenter.business.dto.common.QueryDataFor2D3D; +import com.techsor.datacenter.business.dto.data.QueryDeviceDataParams; import com.techsor.datacenter.business.dto.device.ApiAlarmDeviceSearchParams; import com.techsor.datacenter.business.dto.device.ApiRiliDeviceSearchParams; import com.techsor.datacenter.business.dto.device.DeviceSearchParams; @@ -183,6 +184,14 @@ public class CommonController{ return commonService.queryDeviceInfo(Apikey, deviceSearchParams); } + @Operation(summary = "Query device data by device IDs and time range") + @RequestMapping(value = "/queryDeviceData", method = RequestMethod.POST) + public SimpleDataResponse queryDeviceData( + @RequestBody QueryDeviceDataParams queryDeviceDataParams, + @Parameter(name = "Apikey", description = "API key", required = false, schema = @Schema(defaultValue = "RjV5ZTZBeFArekMxM2hlekFjWnlmZz09")) @RequestHeader(required = true) String Apikey) { + return commonService.queryDeviceData(Apikey, queryDeviceDataParams); + } + /** * Query asset information by class. * diff --git a/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/FacilityController.java b/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/FacilityController.java new file mode 100644 index 0000000..b3b0d57 --- /dev/null +++ b/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/FacilityController.java @@ -0,0 +1,93 @@ +package com.techsor.datacenter.business.controller; + +import com.techsor.datacenter.business.common.response.PageInfo; +import com.techsor.datacenter.business.common.response.PageResponse; +import com.techsor.datacenter.business.common.response.ResponseCode; +import com.techsor.datacenter.business.common.response.SimpleDataResponse; +import com.techsor.datacenter.business.configurator.interceptor.AccessRequired; +import com.techsor.datacenter.business.dto.facility.FacilityAddParam; +import com.techsor.datacenter.business.dto.facility.FacilityDeleteParam; +import com.techsor.datacenter.business.dto.facility.FacilityEditParam; +import com.techsor.datacenter.business.dto.facility.FacilityQueryParam; +import com.techsor.datacenter.business.service.FacilityService; +import com.techsor.datacenter.business.vo.facility.FacilityPageVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@AccessRequired +@RequestMapping("/facility") +@Tag(name = "FacilityController", description = "Facility Management Module - APIs for managing facility information") +@Slf4j +public class FacilityController { + + @Autowired + private FacilityService facilityService; + + @Operation(summary = "Get facility list by param") + @GetMapping(path = "/getListPage") + public PageResponse> getListPage( + @Parameter(name = "LoginName", description = "Login name", required = true, schema = @Schema(defaultValue = "admin")) @RequestHeader(required = true) String LoginName, + @Parameter(name = "AccessToken", description = "Authentication token", required = true) @RequestHeader(required = true) String AccessToken, + @Parameter(name = "UserId", description = "User ID", required = true, schema = @Schema(defaultValue = "1")) @RequestHeader(required = true) Long UserId, + @Parameter(name = "CompanyId", description = "User's company ID", required = false, schema = @Schema(defaultValue = "1")) @RequestHeader(required = false) Long CompanyId, + @Parameter(name = "LanguageType", description = "Language type 0: Chinese 1: English 2: Japanese", required = true, schema = @Schema(defaultValue = "2")) @RequestHeader(required = true) Integer LanguageType, + @Parameter(name = "UTCOffset", description = "Offset between GMT and local time in minutes, e.g., -480 for GMT+8") @RequestHeader(required = true) Integer UTCOffset, + FacilityQueryParam param) { + PageResponse> pageResponse = new PageResponse<>(); + try { + pageResponse.setData(facilityService.query(param, UserId, CompanyId, LanguageType)); + pageResponse.setCode(ResponseCode.SUCCESS); + pageResponse.setMsg("success"); + } catch (Exception e) { + log.error("Error querying facility list", e); + pageResponse.setCode(ResponseCode.SERVER_ERROR); + pageResponse.setMsg("service error"); + } + return pageResponse; + } + + @Operation(summary = "Add facility") + @PostMapping(path = "/add") + public SimpleDataResponse add( + @Parameter(name = "LoginName", description = "Login name", required = true, schema = @Schema(defaultValue = "admin")) @RequestHeader(required = true) String LoginName, + @Parameter(name = "AccessToken", description = "Authentication token", required = true) @RequestHeader(required = true) String AccessToken, + @Parameter(name = "UserId", description = "User ID", required = true, schema = @Schema(defaultValue = "1")) @RequestHeader(required = true) Long UserId, + @Parameter(name = "CompanyId", description = "User's company ID", required = false, schema = @Schema(defaultValue = "1")) @RequestHeader(required = false) Long CompanyId, + @Parameter(name = "LanguageType", description = "Language type 0: Chinese 1: English 2: Japanese", required = true, schema = @Schema(defaultValue = "2")) @RequestHeader(required = true) Integer LanguageType, + @Parameter(name = "UTCOffset", description = "Offset between GMT and local time in minutes, e.g., -480 for GMT+8") @RequestHeader(required = true) Integer UTCOffset, + @RequestBody FacilityAddParam param) { + return facilityService.add(param, UserId, CompanyId, LanguageType); + } + + @Operation(summary = "Edit facility") + @PostMapping(path = "/edit") + public SimpleDataResponse edit( + @Parameter(name = "LoginName", description = "Login name", required = true, schema = @Schema(defaultValue = "admin")) @RequestHeader(required = true) String LoginName, + @Parameter(name = "AccessToken", description = "Authentication token", required = true) @RequestHeader(required = true) String AccessToken, + @Parameter(name = "UserId", description = "User ID", required = true, schema = @Schema(defaultValue = "1")) @RequestHeader(required = true) Long UserId, + @Parameter(name = "CompanyId", description = "User's company ID", required = false, schema = @Schema(defaultValue = "1")) @RequestHeader(required = false) Long CompanyId, + @Parameter(name = "LanguageType", description = "Language type 0: Chinese 1: English 2: Japanese", required = true, schema = @Schema(defaultValue = "2")) @RequestHeader(required = true) Integer LanguageType, + @Parameter(name = "UTCOffset", description = "Offset between GMT and local time in minutes, e.g., -480 for GMT+8") @RequestHeader(required = true) Integer UTCOffset, + @RequestBody FacilityEditParam param) { + return facilityService.edit(param, UserId, CompanyId, LanguageType); + } + + @Operation(summary = "Batch delete facilities") + @PostMapping(path = "/delete") + public SimpleDataResponse delete( + @Parameter(name = "LoginName", description = "Login name", required = true, schema = @Schema(defaultValue = "admin")) @RequestHeader(required = true) String LoginName, + @Parameter(name = "AccessToken", description = "Authentication token", required = true) @RequestHeader(required = true) String AccessToken, + @Parameter(name = "UserId", description = "User ID", required = true, schema = @Schema(defaultValue = "1")) @RequestHeader(required = true) Long UserId, + @Parameter(name = "CompanyId", description = "User's company ID", required = false, schema = @Schema(defaultValue = "1")) @RequestHeader(required = false) Long CompanyId, + @Parameter(name = "LanguageType", description = "Language type 0: Chinese 1: English 2: Japanese", required = true, schema = @Schema(defaultValue = "2")) @RequestHeader(required = true) Integer LanguageType, + @Parameter(name = "UTCOffset", description = "Offset between GMT and local time in minutes, e.g., -480 for GMT+8") @RequestHeader(required = true) Integer UTCOffset, + @RequestBody FacilityDeleteParam param) { + return facilityService.batchDelete(param, UserId, CompanyId, LanguageType); + } +} diff --git a/data-center-business-controller/src/main/resources/.DS_Store b/data-center-business-controller/src/main/resources/.DS_Store new file mode 100644 index 0000000..6097932 Binary files /dev/null and b/data-center-business-controller/src/main/resources/.DS_Store differ diff --git a/data-center-business-controller/src/main/resources/db/migration/V86__building_kvm_url.sql b/data-center-business-controller/src/main/resources/db/migration/V86__building_kvm_url.sql new file mode 100644 index 0000000..e400f80 --- /dev/null +++ b/data-center-business-controller/src/main/resources/db/migration/V86__building_kvm_url.sql @@ -0,0 +1 @@ +ALTER TABLE basic_building ADD `kvm_url` varchar(500) DEFAULT NULL COMMENT 'KVM URL'; diff --git a/data-center-business-controller/src/main/resources/db/migration/V87__basic_facility.sql b/data-center-business-controller/src/main/resources/db/migration/V87__basic_facility.sql new file mode 100644 index 0000000..9e49cdd --- /dev/null +++ b/data-center-business-controller/src/main/resources/db/migration/V87__basic_facility.sql @@ -0,0 +1,35 @@ +CREATE TABLE `basic_facility` ( + `facility_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `building_id` bigint NOT NULL COMMENT '关联楼宇ID', + `company_id` bigint DEFAULT NULL COMMENT '企业ID', + `security_company_name` varchar(255) DEFAULT NULL COMMENT '常驻警备公司名称', + `machine_security_company` varchar(255) DEFAULT NULL COMMENT '机械警备公司名称', + `machine_security_tel` varchar(40) DEFAULT NULL COMMENT '机械警备联系电话', + `machine_security_customer_code` varchar(40) DEFAULT NULL COMMENT '机械警备客户代码', + `night_shift_type` varchar(50) DEFAULT NULL COMMENT '夜间体制区分', + `night_guard_count` int DEFAULT NULL COMMENT '夜间常驻人数', + `security_switch_time` varchar(10) DEFAULT NULL COMMENT '常驻→机械 切换时间', + `security_phs` varchar(40) DEFAULT NULL COMMENT '警备员PHS号码', + `mall_security_tel` varchar(40) DEFAULT NULL COMMENT '商场侧警备电话', + `facility_side_type` varchar(50) DEFAULT NULL COMMENT '商场/永旺侧区分', + `ad_direct_tel` varchar(40) DEFAULT NULL COMMENT 'AD直通电话', + `alarm_reception_note` varchar(2000) DEFAULT NULL COMMENT '警报接收特记', + `escalation_flow` varchar(2000) DEFAULT NULL COMMENT '联络流程', + `contract_start_date` date DEFAULT NULL COMMENT '合同开始日', + `open_date` date DEFAULT NULL COMMENT '开业日', + `contract_end_date` date DEFAULT NULL COMMENT '解约日/闭店日', + `legacy_address` varchar(20) DEFAULT NULL COMMENT '旧地址', + `legacy_property_flag` tinyint DEFAULT '0' COMMENT '旧物业标志 0:否 1:是', + `name_change_history` varchar(255) DEFAULT NULL COMMENT '名称变更履历', + `communication_info` varchar(255) DEFAULT NULL COMMENT 'SIM/通信线路', + `nap_time` varchar(20) DEFAULT NULL COMMENT '值班小睡时段', + `note_updated_by` varchar(128) DEFAULT NULL COMMENT '记载者/更新日', + `flag` int DEFAULT '0' COMMENT '删除标记 0:正常 1:已删除', + `create_time` bigint DEFAULT NULL COMMENT '创建时间', + `creator_id` bigint DEFAULT NULL COMMENT '创建人ID', + `modify_time` bigint DEFAULT NULL COMMENT '修改时间', + `modifier_id` bigint DEFAULT NULL COMMENT '修改人ID', + PRIMARY KEY (`facility_id`), + KEY `idx_building_id` (`building_id`), + KEY `idx_company_id` (`company_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设施信息表'; diff --git a/data-center-business-controller/src/main/resources/template/.DS_Store b/data-center-business-controller/src/main/resources/template/.DS_Store new file mode 100644 index 0000000..0da4ff8 Binary files /dev/null and b/data-center-business-controller/src/main/resources/template/.DS_Store differ diff --git a/data-center-business-controller/src/main/resources/template/jp/deviceInfo_jp.xlsx b/data-center-business-controller/src/main/resources/template/jp/deviceInfo_jp.xlsx index 19b455a..950a100 100644 Binary files a/data-center-business-controller/src/main/resources/template/jp/deviceInfo_jp.xlsx and b/data-center-business-controller/src/main/resources/template/jp/deviceInfo_jp.xlsx differ diff --git a/data-center-business-controller/src/main/resources/template/jp/only_building_info_template_jp.xlsx b/data-center-business-controller/src/main/resources/template/jp/only_building_info_template_jp.xlsx index 17e0d7f..bb61e6d 100644 Binary files a/data-center-business-controller/src/main/resources/template/jp/only_building_info_template_jp.xlsx and b/data-center-business-controller/src/main/resources/template/jp/only_building_info_template_jp.xlsx differ diff --git a/data-center-business-controller/src/main/resources/template/jp/only_floor_info_template_jp.xlsx b/data-center-business-controller/src/main/resources/template/jp/only_floor_info_template_jp.xlsx index ff8564a..5f8caae 100644 Binary files a/data-center-business-controller/src/main/resources/template/jp/only_floor_info_template_jp.xlsx and b/data-center-business-controller/src/main/resources/template/jp/only_floor_info_template_jp.xlsx differ diff --git a/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/auto/BasicFacilityMapper.java b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/auto/BasicFacilityMapper.java new file mode 100644 index 0000000..1ddc720 --- /dev/null +++ b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/auto/BasicFacilityMapper.java @@ -0,0 +1,31 @@ +package com.techsor.datacenter.business.dao.auto; + +import com.techsor.datacenter.business.model.BasicFacility; +import com.techsor.datacenter.business.model.BasicFacilityExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface BasicFacilityMapper { + + long countByExample(BasicFacilityExample example); + + int deleteByExample(BasicFacilityExample example); + + int deleteByPrimaryKey(Long facilityId); + + int insert(BasicFacility record); + + int insertSelective(BasicFacility record); + + List selectByExample(BasicFacilityExample example); + + BasicFacility selectByPrimaryKey(Long facilityId); + + int updateByExampleSelective(@Param("record") BasicFacility record, @Param("example") BasicFacilityExample example); + + int updateByExample(@Param("record") BasicFacility record, @Param("example") BasicFacilityExample example); + + int updateByPrimaryKeySelective(BasicFacility record); + + int updateByPrimaryKey(BasicFacility record); +} diff --git a/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/BasicFacilityMapperExt.java b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/BasicFacilityMapperExt.java new file mode 100644 index 0000000..ead824f --- /dev/null +++ b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/BasicFacilityMapperExt.java @@ -0,0 +1,15 @@ +package com.techsor.datacenter.business.dao.ex; + +import com.techsor.datacenter.business.dao.auto.BasicFacilityMapper; +import com.techsor.datacenter.business.dto.facility.FacilityQueryParam; +import com.techsor.datacenter.business.vo.facility.FacilityPageVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface BasicFacilityMapperExt extends BasicFacilityMapper { + + List getListPage(@Param("param") FacilityQueryParam param, @Param("companyId") Long companyId); +} diff --git a/data-center-business-dao/src/main/resources/mappers/auto/BasicBuildingMapper.xml b/data-center-business-dao/src/main/resources/mappers/auto/BasicBuildingMapper.xml index 191a97d..e79e68d 100644 --- a/data-center-business-dao/src/main/resources/mappers/auto/BasicBuildingMapper.xml +++ b/data-center-business-dao/src/main/resources/mappers/auto/BasicBuildingMapper.xml @@ -26,6 +26,7 @@ + building_id, company_id, `name`, address, flag, create_time, creator_id, modify_time, modifier_id, udf_building_id, building_bucket, thumbnail_num, show_switch_2d3d, brief_introduction, - latitude, longitude, retain_alert, salesforce_primary_id, site_manager, king_contract_no + latitude, longitude, retain_alert, salesforce_primary_id, site_manager, king_contract_no, kvm_url