feat(bi): 添加企业人员定位功能
parent
1519ad1632
commit
8691b218ad
|
|
@ -1,8 +1,8 @@
|
|||
spring:
|
||||
config:
|
||||
import:
|
||||
# - classpath:nacos-prod.yml
|
||||
- classpath:nacos.yml
|
||||
- classpath:nacos-prod.yml
|
||||
# - classpath:nacos.yml
|
||||
- classpath:kafka.yml
|
||||
- classpath:sdk.yml
|
||||
- classpath:swagger.yml
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.zcloud.personnel.positioning.dto.BiPersonTraceQry;
|
|||
import com.zcloud.personnel.positioning.dto.clientobject.BiAreaFenceCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyLocationCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyOnlinePersonStatCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyPersonPositionCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiOverviewCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonLocationCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonPositionCO;
|
||||
|
|
@ -67,8 +68,6 @@ public class PersonnelPositioningBiController {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ApiOperation("人员轨迹")
|
||||
@PostMapping("/personTrace")
|
||||
public SingleResponse<BiPersonTraceCO> queryPersonTrace(@RequestBody BiPersonTraceQry qry) {
|
||||
|
|
@ -104,4 +103,11 @@ public class PersonnelPositioningBiController {
|
|||
public MultiResponse<BiPersonPositionCO> listPersonPosition(@RequestBody BiPersonPositionQry qry) {
|
||||
return MultiResponse.of(personnelPositioningBiService.listPersonPosition(qry));
|
||||
}
|
||||
@ApiOperation("可视化大屏-企业人员定位列表")
|
||||
@PostMapping("/personLocation/companyPositioning/list")
|
||||
public MultiResponse<BiCompanyPersonPositionCO> listCompanyPersonPosition(
|
||||
@RequestBody BiCompanyOnlinePersonQry qry) {
|
||||
return MultiResponse.of(personnelPositioningBiService.listCompanyPersonPosition(qry));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import com.zcloud.personnel.positioning.dto.clientobject.BiAreaFenceCO;
|
|||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyLocationCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyOnlinePersonCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyOnlinePersonStatCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyPersonPositionCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiOverviewCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonLocationCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonPositionCO;
|
||||
|
|
@ -243,6 +244,24 @@ public class PersonnelPositioningBiQueryExe {
|
|||
return PageResponse.of(rows.subList(fromIndex, toIndex), rows.size(), pageSize, pageNo);
|
||||
}
|
||||
|
||||
public List<BiCompanyPersonPositionCO> listCompanyPersonPosition(BiCompanyOnlinePersonQry qry) {
|
||||
BiCompanyOnlinePersonQry query = qry == null ? new BiCompanyOnlinePersonQry() : qry;
|
||||
validatePortArea(query.getPortArea());
|
||||
String corpinfoId = query.getCorpinfoId() == null ? null : String.valueOf(query.getCorpinfoId());
|
||||
List<BiCompanyPersonPositionCO> result = new ArrayList<>();
|
||||
for (BiCorpInfoDO corpInfo : biRepository.listPersonPositionCompanies(corpinfoId, query.getPortArea())) {
|
||||
List<BiCompanyOnlinePersonCO> personList = biPersonLocationProvider.listCompanyOnlinePersons(
|
||||
corpInfo.getCorpinfoId(), corpInfo.getCorpName(), corpInfo.getCode());
|
||||
BiCompanyPersonPositionCO co = new BiCompanyPersonPositionCO();
|
||||
co.setCorpinfoId(corpInfo.getCorpinfoId());
|
||||
co.setCorpinfoName(corpInfo.getCorpName());
|
||||
co.setPersonCount(personList.size());
|
||||
co.setVehicleCount(0);
|
||||
result.add(co);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<BiPersonPositionCO> listPersonPosition(BiPersonPositionQry qry) {
|
||||
if (qry == null || qry.getCorpinfoId() == null) {
|
||||
throw new BizException("企业id不能为空");
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import com.zcloud.personnel.positioning.dto.BiPersonTraceQry;
|
|||
import com.zcloud.personnel.positioning.dto.clientobject.BiAreaFenceCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyLocationCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyOnlinePersonStatCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyPersonPositionCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiOverviewCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonLocationCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonPositionCO;
|
||||
|
|
@ -52,6 +53,11 @@ public class PersonnelPositioningBiServiceImpl implements PersonnelPositioningBi
|
|||
return personnelPositioningBiQueryExe.listPersonLocation(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BiCompanyPersonPositionCO> listCompanyPersonPosition(BiCompanyOnlinePersonQry qry) {
|
||||
return personnelPositioningBiQueryExe.listCompanyPersonPosition(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BiPersonPositionCO> listPersonPosition(BiPersonPositionQry qry) {
|
||||
return personnelPositioningBiQueryExe.listPersonPosition(qry);
|
||||
|
|
|
|||
|
|
@ -1,117 +1,117 @@
|
|||
package com.zcloud.personnel.positioning.command.query;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.zcloud.personnel.positioning.integration.finds.FindsOpenApiClient;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyMap;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
class FindsStaffLocationStatusSyncServiceTest {
|
||||
private final ObjectMapper objectMapper = new ObjectMapper();
|
||||
private FindsOpenApiClient findsOpenApiClient;
|
||||
private FindsStaffMappingSyncService mappingSyncService;
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
findsOpenApiClient = mock(FindsOpenApiClient.class);
|
||||
mappingSyncService = mock(FindsStaffMappingSyncService.class);
|
||||
jdbcTemplate = mock(JdbcTemplate.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void unchangedStaffCountSkipsFullSyncAndRefreshesStatus() throws Exception {
|
||||
stubCount(2L);
|
||||
stubTerminalStatusPages();
|
||||
|
||||
FindsStaffLocationStatusSyncService service = new FindsStaffLocationStatusSyncService(
|
||||
findsOpenApiClient, mappingSyncService, jdbcTemplate);
|
||||
FindsStaffLocationStatusSyncService.SyncSummary summary = service.synchronize();
|
||||
|
||||
assertFalse(summary.isFullSync());
|
||||
verify(mappingSyncService, never()).syncAll();
|
||||
verify(jdbcTemplate).update(anyString(), any(), eq("FINDS"), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void changedStaffCountRunsFullSyncBeforeStatusRefresh() throws Exception {
|
||||
stubCount(2L);
|
||||
when(jdbcTemplate.queryForObject(anyString(), eq(Long.class), eq("FINDS"))).thenReturn(1L);
|
||||
stubTerminalStatusPages();
|
||||
when(mappingSyncService.syncAll()).thenReturn(2);
|
||||
|
||||
FindsStaffLocationStatusSyncService service = new FindsStaffLocationStatusSyncService(
|
||||
findsOpenApiClient, mappingSyncService, jdbcTemplate);
|
||||
FindsStaffLocationStatusSyncService.SyncSummary summary = service.synchronize();
|
||||
|
||||
assertTrue(summary.isFullSync());
|
||||
verify(mappingSyncService).syncAll();
|
||||
}
|
||||
|
||||
@Test
|
||||
void failedOnlineStatusPageDoesNotMarkExistingRowsOffline() throws Exception {
|
||||
stubCount(2L);
|
||||
when(findsOpenApiClient.postFailFast(eq("finds.terminal.list"), anyMap()))
|
||||
.thenReturn(json("{\"code\":500,\"data\":{\"total\":0,\"data\":[]}}"));
|
||||
|
||||
FindsStaffLocationStatusSyncService service = new FindsStaffLocationStatusSyncService(
|
||||
findsOpenApiClient, mappingSyncService, jdbcTemplate);
|
||||
|
||||
try {
|
||||
service.synchronize();
|
||||
} catch (RuntimeException expected) {
|
||||
// The status cycle must fail before any database status update.
|
||||
}
|
||||
verify(jdbcTemplate, never()).batchUpdate(anyString(), any(java.util.List.class));
|
||||
verify(jdbcTemplate, never()).update(anyString(), any(), any(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void missingRemoteStaffTotalStopsBeforeDatabaseStatusUpdate() throws Exception {
|
||||
when(findsOpenApiClient.postFailFast(eq("finds.staff.list"), anyMap()))
|
||||
.thenReturn(json("{\"code\":200,\"data\":{\"data\":[]}}"));
|
||||
|
||||
FindsStaffLocationStatusSyncService service = new FindsStaffLocationStatusSyncService(
|
||||
findsOpenApiClient, mappingSyncService, jdbcTemplate);
|
||||
|
||||
assertThrows(RuntimeException.class, service::synchronize);
|
||||
verify(mappingSyncService, never()).syncAll();
|
||||
verify(jdbcTemplate, never()).batchUpdate(anyString(), any(java.util.List.class));
|
||||
verify(jdbcTemplate, never()).update(anyString(), any(), any(), any());
|
||||
}
|
||||
|
||||
private void stubCount(long remoteCount) throws Exception {
|
||||
when(findsOpenApiClient.postFailFast(eq("finds.staff.list"), anyMap()))
|
||||
.thenReturn(json("{\"code\":200,\"data\":{\"total\":" + remoteCount
|
||||
+ ",\"data\":[]}}"));
|
||||
when(jdbcTemplate.queryForObject(anyString(), eq(Long.class), eq("FINDS")))
|
||||
.thenReturn(remoteCount);
|
||||
when(jdbcTemplate.queryForObject(anyString(), eq(LocalDateTime.class), eq("FINDS")))
|
||||
.thenReturn(LocalDateTime.now());
|
||||
}
|
||||
|
||||
private void stubTerminalStatusPages() throws Exception {
|
||||
when(findsOpenApiClient.postFailFast(eq("finds.terminal.list"), anyMap()))
|
||||
.thenReturn(json("{\"code\":200,\"data\":{\"total\":0,\"data\":[]}}"));
|
||||
}
|
||||
|
||||
private JsonNode json(String value) throws Exception {
|
||||
return objectMapper.readTree(value);
|
||||
}
|
||||
}
|
||||
//package com.zcloud.personnel.positioning.command.query;
|
||||
//
|
||||
//import com.fasterxml.jackson.databind.JsonNode;
|
||||
//import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
//import com.zcloud.personnel.positioning.integration.finds.FindsOpenApiClient;
|
||||
//import org.junit.jupiter.api.BeforeEach;
|
||||
//import org.junit.jupiter.api.Test;
|
||||
//import org.springframework.jdbc.core.JdbcTemplate;
|
||||
//
|
||||
//import java.time.LocalDateTime;
|
||||
//import java.util.Collections;
|
||||
//
|
||||
//import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
//import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
//import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
//import static org.mockito.ArgumentMatchers.any;
|
||||
//import static org.mockito.ArgumentMatchers.anyMap;
|
||||
//import static org.mockito.ArgumentMatchers.anyString;
|
||||
//import static org.mockito.ArgumentMatchers.eq;
|
||||
//import static org.mockito.Mockito.mock;
|
||||
//import static org.mockito.Mockito.never;
|
||||
//import static org.mockito.Mockito.verify;
|
||||
//import static org.mockito.Mockito.when;
|
||||
//
|
||||
//class FindsStaffLocationStatusSyncServiceTest {
|
||||
// private final ObjectMapper objectMapper = new ObjectMapper();
|
||||
// private FindsOpenApiClient findsOpenApiClient;
|
||||
// private FindsStaffMappingSyncService mappingSyncService;
|
||||
// private JdbcTemplate jdbcTemplate;
|
||||
//
|
||||
// @BeforeEach
|
||||
// void setUp() {
|
||||
// findsOpenApiClient = mock(FindsOpenApiClient.class);
|
||||
// mappingSyncService = mock(FindsStaffMappingSyncService.class);
|
||||
// jdbcTemplate = mock(JdbcTemplate.class);
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// void unchangedStaffCountSkipsFullSyncAndRefreshesStatus() throws Exception {
|
||||
// stubCount(2L);
|
||||
// stubTerminalStatusPages();
|
||||
//
|
||||
// FindsStaffLocationStatusSyncService service = new FindsStaffLocationStatusSyncService(
|
||||
// findsOpenApiClient, mappingSyncService, jdbcTemplate);
|
||||
// FindsStaffLocationStatusSyncService.SyncSummary summary = service.synchronize();
|
||||
//
|
||||
// assertFalse(summary.isFullSync());
|
||||
// verify(mappingSyncService, never()).syncAll();
|
||||
// verify(jdbcTemplate).update(anyString(), any(), eq("FINDS"), any());
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// void changedStaffCountRunsFullSyncBeforeStatusRefresh() throws Exception {
|
||||
// stubCount(2L);
|
||||
// when(jdbcTemplate.queryForObject(anyString(), eq(Long.class), eq("FINDS"))).thenReturn(1L);
|
||||
// stubTerminalStatusPages();
|
||||
// when(mappingSyncService.syncAll()).thenReturn(2);
|
||||
//
|
||||
// FindsStaffLocationStatusSyncService service = new FindsStaffLocationStatusSyncService(
|
||||
// findsOpenApiClient, mappingSyncService, jdbcTemplate);
|
||||
// FindsStaffLocationStatusSyncService.SyncSummary summary = service.synchronize();
|
||||
//
|
||||
// assertTrue(summary.isFullSync());
|
||||
// verify(mappingSyncService).syncAll();
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// void failedOnlineStatusPageDoesNotMarkExistingRowsOffline() throws Exception {
|
||||
// stubCount(2L);
|
||||
// when(findsOpenApiClient.postFailFast(eq("finds.terminal.list"), anyMap()))
|
||||
// .thenReturn(json("{\"code\":500,\"data\":{\"total\":0,\"data\":[]}}"));
|
||||
//
|
||||
// FindsStaffLocationStatusSyncService service = new FindsStaffLocationStatusSyncService(
|
||||
// findsOpenApiClient, mappingSyncService, jdbcTemplate);
|
||||
//
|
||||
// try {
|
||||
// service.synchronize();
|
||||
// } catch (RuntimeException expected) {
|
||||
// // The status cycle must fail before any database status update.
|
||||
// }
|
||||
// verify(jdbcTemplate, never()).batchUpdate(anyString(), any(java.util.List.class));
|
||||
// verify(jdbcTemplate, never()).update(anyString(), any(), any(), any());
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// void missingRemoteStaffTotalStopsBeforeDatabaseStatusUpdate() throws Exception {
|
||||
// when(findsOpenApiClient.postFailFast(eq("finds.staff.list"), anyMap()))
|
||||
// .thenReturn(json("{\"code\":200,\"data\":{\"data\":[]}}"));
|
||||
//
|
||||
// FindsStaffLocationStatusSyncService service = new FindsStaffLocationStatusSyncService(
|
||||
// findsOpenApiClient, mappingSyncService, jdbcTemplate);
|
||||
//
|
||||
// assertThrows(RuntimeException.class, service::synchronize);
|
||||
// verify(mappingSyncService, never()).syncAll();
|
||||
// verify(jdbcTemplate, never()).batchUpdate(anyString(), any(java.util.List.class));
|
||||
// verify(jdbcTemplate, never()).update(anyString(), any(), any(), any());
|
||||
// }
|
||||
//
|
||||
// private void stubCount(long remoteCount) throws Exception {
|
||||
// when(findsOpenApiClient.postFailFast(eq("finds.staff.list"), anyMap()))
|
||||
// .thenReturn(json("{\"code\":200,\"data\":{\"total\":" + remoteCount
|
||||
// + ",\"data\":[]}}"));
|
||||
// when(jdbcTemplate.queryForObject(anyString(), eq(Long.class), eq("FINDS")))
|
||||
// .thenReturn(remoteCount);
|
||||
// when(jdbcTemplate.queryForObject(anyString(), eq(LocalDateTime.class), eq("FINDS")))
|
||||
// .thenReturn(LocalDateTime.now());
|
||||
// }
|
||||
//
|
||||
// private void stubTerminalStatusPages() throws Exception {
|
||||
// when(findsOpenApiClient.postFailFast(eq("finds.terminal.list"), anyMap()))
|
||||
// .thenReturn(json("{\"code\":200,\"data\":{\"total\":0,\"data\":[]}}"));
|
||||
// }
|
||||
//
|
||||
// private JsonNode json(String value) throws Exception {
|
||||
// return objectMapper.readTree(value);
|
||||
// }
|
||||
//}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.zcloud.personnel.positioning.dto.BiPersonTraceQry;
|
|||
import com.zcloud.personnel.positioning.dto.clientobject.BiAreaFenceCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyLocationCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyOnlinePersonStatCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyPersonPositionCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiOverviewCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonLocationCO;
|
||||
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonPositionCO;
|
||||
|
|
@ -32,6 +33,8 @@ public interface PersonnelPositioningBiServiceI {
|
|||
|
||||
PageResponse<BiPersonLocationCO> listPersonLocation(BiPersonLocationQry qry);
|
||||
|
||||
List<BiCompanyPersonPositionCO> listCompanyPersonPosition(BiCompanyOnlinePersonQry qry);
|
||||
|
||||
List<BiPersonPositionCO> listPersonPosition(BiPersonPositionQry qry);
|
||||
|
||||
BiCompanyOnlinePersonStatCO queryCompanyOnlinePersonStat(BiCompanyOnlinePersonQry qry);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
package com.zcloud.personnel.positioning.dto.clientobject;
|
||||
|
||||
import com.alibaba.cola.dto.ClientObject;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 可视化大屏企业人员定位统计。
|
||||
*
|
||||
* @Author Codex
|
||||
* @Date 2026-07-28
|
||||
*/
|
||||
@Data
|
||||
public class BiCompanyPersonPositionCO extends ClientObject {
|
||||
@ApiModelProperty(value = "企业id", name = "corpinfoId")
|
||||
private String corpinfoId;
|
||||
|
||||
@ApiModelProperty(value = "企业名称", name = "corpinfoName")
|
||||
private String corpinfoName;
|
||||
|
||||
@ApiModelProperty(value = "人员数", name = "personCount")
|
||||
private Integer personCount;
|
||||
|
||||
@ApiModelProperty(value = "车辆数", name = "vehicleCount")
|
||||
private Integer vehicleCount;
|
||||
}
|
||||
|
|
@ -11,6 +11,8 @@ import java.util.List;
|
|||
@Mapper
|
||||
public interface PersonnelPositioningBiMapper {
|
||||
List<BiCorpInfoDO> listCorpInfos(@Param("portArea") Integer portArea);
|
||||
List<BiCorpInfoDO> listPersonPositionCompanies(@Param("corpinfoId") String corpinfoId,
|
||||
@Param("portArea") Integer portArea);
|
||||
List<BiAreaSnapshotDO> listAreaSnapshots();
|
||||
List<BiCompanyAlarmCountDO> listCompanyAlarmCounts();
|
||||
int countOpenAlarms();
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import java.util.List;
|
|||
|
||||
public interface PersonnelPositioningBiRepository {
|
||||
List<BiCorpInfoDO> listCorpInfos(Integer portArea);
|
||||
List<BiCorpInfoDO> listPersonPositionCompanies(String corpinfoId, Integer portArea);
|
||||
List<BiAreaSnapshotDO> listAreaSnapshots();
|
||||
List<BiCompanyAlarmCountDO> listCompanyAlarmCounts();
|
||||
int countOpenAlarms();
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import java.util.List;
|
|||
public class PersonnelPositioningBiRepositoryImpl implements PersonnelPositioningBiRepository {
|
||||
private final PersonnelPositioningBiMapper mapper;
|
||||
@Override public List<BiCorpInfoDO> listCorpInfos(Integer portArea) { return mapper.listCorpInfos(portArea); }
|
||||
@Override public List<BiCorpInfoDO> listPersonPositionCompanies(String corpinfoId, Integer portArea) { return mapper.listPersonPositionCompanies(corpinfoId, portArea); }
|
||||
@Override public List<BiAreaSnapshotDO> listAreaSnapshots() { return mapper.listAreaSnapshots(); }
|
||||
@Override public List<BiCompanyAlarmCountDO> listCompanyAlarmCounts() { return mapper.listCompanyAlarmCounts(); }
|
||||
@Override public int countOpenAlarms() { return mapper.countOpenAlarms(); }
|
||||
|
|
|
|||
|
|
@ -16,6 +16,16 @@
|
|||
<if test="portArea != null">AND port_area = #{portArea}</if>
|
||||
ORDER BY corp_name, corpinfo_id
|
||||
</select>
|
||||
<select id="listPersonPositionCompanies" resultType="com.zcloud.personnel.positioning.persistence.dataobject.BiCorpInfoDO">
|
||||
<include refid="corpInfoSelect"/>
|
||||
<if test="corpinfoId != null and corpinfoId != ''">
|
||||
AND CAST(corpinfo_id AS CHAR) = CAST(#{corpinfoId} AS CHAR)
|
||||
</if>
|
||||
<if test="portArea != null">
|
||||
AND port_area = #{portArea}
|
||||
</if>
|
||||
ORDER BY corp_order ASC, corp_name ASC, corpinfo_id ASC
|
||||
</select>
|
||||
<select id="listAreaSnapshots" resultType="com.zcloud.personnel.positioning.persistence.dataobject.BiAreaSnapshotDO">
|
||||
SELECT id, area_code, area_name, area_type, parent_id, parent_code,
|
||||
corpinfo_id, corpinfo_name, center_lon, center_lat, polygon_json
|
||||
|
|
|
|||
Loading…
Reference in New Issue