feat(bi): 报警记录和人员定位接口支持分页功能
parent
8d74a7b96b
commit
0a705c28ed
|
|
@ -109,7 +109,9 @@ class PositionPersonLocalLookupService {
|
|||
Map<String, String> result = new LinkedHashMap<>();
|
||||
for (List<String> batch : batches(idCardNos)) {
|
||||
for (TerminalBindingSnapshotDO binding : personnelMatchRepository.listTerminalBindingsByIdCardNos(batch)) {
|
||||
String idCardNo = normalize(binding.getIdCardNo());
|
||||
String bindingIdCardNo = normalize(binding.getBindingIdCardNo());
|
||||
String idCardNo = StringUtils.hasText(bindingIdCardNo)
|
||||
? bindingIdCardNo : normalize(binding.getTerminalIdCardNo());
|
||||
String terminalNo = normalize(binding.getTerminalNo());
|
||||
if (StringUtils.hasText(idCardNo) && StringUtils.hasText(terminalNo)) {
|
||||
result.putIfAbsent(idCardNo, terminalNo);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import lombok.Data;
|
|||
|
||||
@Data
|
||||
public class TerminalBindingSnapshotDO {
|
||||
private String idCardNo;
|
||||
private String bindingIdCardNo;
|
||||
private String terminalIdCardNo;
|
||||
private String terminalNo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -63,6 +64,9 @@ public class PersonnelMatchRepositoryImpl implements PersonnelMatchRepository {
|
|||
return personnelMatchMapper.listPeopleByTerminalNos(values);
|
||||
}
|
||||
@Override public List<TerminalBindingSnapshotDO> listTerminalBindingsByIdCardNos(List<String> values) {
|
||||
if (values == null || values.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return personnelMatchMapper.listTerminalBindingsByIdCardNos(values);
|
||||
}
|
||||
@Override public List<TerminalLocationSnapshotDO> listTerminals(List<String> values) {
|
||||
|
|
|
|||
|
|
@ -123,7 +123,8 @@
|
|||
ORDER BY t.terminal_no, u.id DESC
|
||||
</select>
|
||||
<select id="listTerminalBindingsByIdCardNos" resultType="com.zcloud.personnel.positioning.persistence.dataobject.TerminalBindingSnapshotDO">
|
||||
SELECT COALESCE(NULLIF(TRIM(tb.id_card_no), ''), NULLIF(TRIM(t.bind_id_card_no), '')) AS id_card_no,
|
||||
SELECT tb.id_card_no AS binding_id_card_no,
|
||||
t.bind_id_card_no AS terminal_id_card_no,
|
||||
t.terminal_no
|
||||
FROM terminal t
|
||||
LEFT JOIN terminal_bind tb ON tb.id = (
|
||||
|
|
@ -132,9 +133,27 @@
|
|||
AND (tb2.delete_enum IS NULL OR tb2.delete_enum = 'FALSE')
|
||||
ORDER BY tb2.bind_time DESC, tb2.id DESC LIMIT 1)
|
||||
WHERE (t.delete_enum IS NULL OR t.delete_enum = 'FALSE')
|
||||
AND COALESCE(NULLIF(TRIM(tb.id_card_no), ''), NULLIF(TRIM(t.bind_id_card_no), '')) IN
|
||||
<foreach collection="values" item="value" open="(" separator="," close=")">#{value}</foreach>
|
||||
ORDER BY id_card_no, t.update_time DESC, t.id DESC
|
||||
<choose>
|
||||
<when test="values != null and values.size() > 0">
|
||||
AND (
|
||||
tb.id_card_no IN
|
||||
<foreach collection="values" item="value" open="(" separator="," close=")">
|
||||
#{value}
|
||||
</foreach>
|
||||
OR (
|
||||
(tb.id_card_no IS NULL OR tb.id_card_no = '')
|
||||
AND t.bind_id_card_no IN
|
||||
<foreach collection="values" item="value" open="(" separator="," close=")">
|
||||
#{value}
|
||||
</foreach>
|
||||
)
|
||||
)
|
||||
</when>
|
||||
<otherwise>
|
||||
AND 1 = 0
|
||||
</otherwise>
|
||||
</choose>
|
||||
ORDER BY binding_id_card_no, terminal_id_card_no, t.update_time DESC, t.id DESC
|
||||
</select>
|
||||
<select id="listTerminals" resultType="com.zcloud.personnel.positioning.persistence.dataobject.TerminalLocationSnapshotDO">
|
||||
SELECT terminal_no, device_type, device_status, last_location_time, last_location_name
|
||||
|
|
|
|||
Loading…
Reference in New Issue