feat(): 联调消防队伍成员职务机构信息及在线状态功能
parent
f5a96bed3d
commit
3e57f5952d
|
|
@ -9,6 +9,9 @@ application:
|
|||
spring:
|
||||
application:
|
||||
name: ${application.name}${application.version}
|
||||
profiles:
|
||||
# 环境配置
|
||||
active: test
|
||||
cloud:
|
||||
nacos:
|
||||
config:
|
||||
|
|
|
|||
|
|
@ -3,13 +3,16 @@ package com.zcloud.zcGbsServicer.command.convertor;
|
|||
import com.zcloud.zcGbsServicer.dto.clientobject.AlarmRecordCO;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmInfoDO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper(componentModel = "spring")
|
||||
public interface AlarmRecordCoConvertor {
|
||||
|
||||
@Mapping(target = "fireBrigadeId", ignore = true)
|
||||
List<AlarmRecordCO> converDOsToCOs(List<FireAlarmInfoDO> fireAlarmInfoDOs);
|
||||
|
||||
@Mapping(target = "fireBrigadeId", ignore = true)
|
||||
AlarmRecordCO converDOToCO(FireAlarmInfoDO fireAlarmInfoDO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,9 +10,11 @@ import java.util.List;
|
|||
@Mapper(componentModel = "spring")
|
||||
public interface FireBrigadeMemberCoConvertor {
|
||||
|
||||
@Mapping(target = "fireBrigadeId", ignore = true)
|
||||
@Mapping(source = "fireBrigadeId", target = "fireBrigadeBizId")
|
||||
List<FireBrigadeMemberCO> converDOsToCOs(List<FireBrigadeUserDO> fireBrigadeUserDOs);
|
||||
|
||||
@Mapping(target = "fireBrigadeId", ignore = true)
|
||||
@Mapping(source = "fireBrigadeId", target = "fireBrigadeBizId")
|
||||
FireBrigadeMemberCO converDOToCO(FireBrigadeUserDO fireBrigadeUserDO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -158,6 +158,8 @@ public class FireBrigadeMemberServiceImpl extends FireAlarmServiceSupport implem
|
|||
ZcloudUserCo user = relation.getUserId() == null ? null : userMap.get(relation.getUserId());
|
||||
co.setFireBrigadeId(brigade.getId());
|
||||
co.setUserId(relation.getUserId() == null ? null : String.valueOf(relation.getUserId()));
|
||||
co.setDutyId(relation.getDutyId());
|
||||
co.setCorpId(relation.getCorpId());
|
||||
co.setUserName(selectText(user == null ? null : user.getName(), co.getUserName()));
|
||||
co.setIdNo(selectText(user == null ? null : user.getUserIdCard(), co.getIdNo()));
|
||||
co.setPhone(selectText(user == null ? null : user.getPhone(), co.getPhone()));
|
||||
|
|
@ -174,7 +176,9 @@ public class FireBrigadeMemberServiceImpl extends FireAlarmServiceSupport implem
|
|||
relation.setGender(cmd.getGender());
|
||||
relation.setIdNo(cmd.getIdNo());
|
||||
relation.setPhone(cmd.getPhone());
|
||||
relation.setDutyId(cmd.getDutyId());
|
||||
relation.setDutyName(cmd.getDuty());
|
||||
relation.setCorpId(cmd.getCorpId());
|
||||
relation.setOrgName(cmd.getOrg());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,8 +12,10 @@ import com.zcloud.zcGbsServicer.dto.FireBrigadeAddCmd;
|
|||
import com.zcloud.zcGbsServicer.dto.FireBrigadePageQry;
|
||||
import com.zcloud.zcGbsServicer.dto.FireBrigadeUpdateCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.clientobject.FireBrigadeCO;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmMeetingMemberStatusDO;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireBrigadeDO;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireBrigadeUserDO;
|
||||
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmMeetingMemberStatusRepository;
|
||||
import com.zcloud.zcGbsServicer.persistence.repository.FireBrigadeRepository;
|
||||
import com.zcloud.zcGbsServicer.persistence.repository.FireBrigadeUserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
@ -34,6 +36,7 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
|
|||
|
||||
private final FireBrigadeRepository fireBrigadeRepository;
|
||||
private final FireBrigadeUserRepository fireBrigadeUserRepository;
|
||||
private final FireAlarmMeetingMemberStatusRepository fireAlarmMeetingMemberStatusRepository;
|
||||
private final FireAlarmUserResolver fireAlarmUserResolver;
|
||||
private final FireBrigadeCoConvertor fireBrigadeCoConvertor;
|
||||
|
||||
|
|
@ -45,7 +48,10 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
|
|||
params.put("brigadeName", qry.getName());
|
||||
PageResponse<FireBrigadeDO> page = fireBrigadeRepository.listPage(params);
|
||||
Map<Long, ZcloudUserCo> userMap = getLeaderUserMap(page.getData());
|
||||
List<FireBrigadeCO> data = page.getData().stream().map(item -> buildCO(item, userMap)).collect(Collectors.toList());
|
||||
Set<String> onlineBrigadeIdSet = getOnlineBrigadeIdSet();
|
||||
List<FireBrigadeCO> data = page.getData().stream()
|
||||
.map(item -> buildCO(item, userMap, onlineBrigadeIdSet))
|
||||
.collect(Collectors.toList());
|
||||
return PageResponse.of(data, page.getTotalCount(), page.getPageSize(), page.getPageIndex());
|
||||
}
|
||||
|
||||
|
|
@ -65,7 +71,7 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
|
|||
fillBrigade(brigade, cmd);
|
||||
fireBrigadeRepository.save(brigade);
|
||||
ensureLeaderRelation(brigade);
|
||||
return SingleResponse.of(buildCO(brigade, getLeaderUserMap(Collections.singletonList(brigade))));
|
||||
return SingleResponse.of(buildCO(brigade, getLeaderUserMap(Collections.singletonList(brigade)), getOnlineBrigadeIdSet()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -93,7 +99,7 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
|
|||
if (brigade == null) {
|
||||
throw new BizException("消防队伍不存在");
|
||||
}
|
||||
return buildCO(brigade, getLeaderUserMap(Collections.singletonList(brigade)));
|
||||
return buildCO(brigade, getLeaderUserMap(Collections.singletonList(brigade)), getOnlineBrigadeIdSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -151,22 +157,32 @@ public class FireBrigadeServiceImpl extends FireAlarmServiceSupport implements F
|
|||
private void fillLeaderSnapshot(FireBrigadeUserDO relation, FireBrigadeDO brigade) {
|
||||
relation.setUserName(brigade.getLeaderName());
|
||||
relation.setPhone(brigade.getLeaderPhone());
|
||||
relation.setDutyId(null);
|
||||
relation.setDutyName("负责人");
|
||||
relation.setCorpId(null);
|
||||
relation.setOrgName(brigade.getLeaderDeptName());
|
||||
}
|
||||
|
||||
private FireBrigadeCO buildCO(FireBrigadeDO brigade, Map<Long, ZcloudUserCo> userMap) {
|
||||
private FireBrigadeCO buildCO(FireBrigadeDO brigade, Map<Long, ZcloudUserCo> userMap, Set<String> onlineBrigadeIdSet) {
|
||||
FireBrigadeCO co = fireBrigadeCoConvertor.converDOToCO(brigade);
|
||||
ZcloudUserCo leader = brigade.getLeaderUserId() == null ? null : userMap.get(brigade.getLeaderUserId());
|
||||
co.setLeaderDeptName(selectText(leader == null ? null : leader.getDepartmentName(), co.getLeaderDeptName()));
|
||||
co.setLeaderName(selectText(leader == null ? null : leader.getName(), co.getLeaderName()));
|
||||
co.setLeaderPhone(selectText(leader == null ? null : leader.getPhone(), co.getLeaderPhone()));
|
||||
co.setMemberCount(fireBrigadeUserRepository.listByFireBrigadeId(brigade.getFireBrigadeId()).size());
|
||||
co.setOnline(Boolean.FALSE);
|
||||
co.setOnlineText("未在线");
|
||||
boolean online = onlineBrigadeIdSet.contains(brigade.getFireBrigadeId());
|
||||
co.setOnline(online);
|
||||
co.setOnlineText(online ? "在线" : "未在线");
|
||||
return co;
|
||||
}
|
||||
|
||||
private Set<String> getOnlineBrigadeIdSet() {
|
||||
return fireAlarmMeetingMemberStatusRepository.listOnlineList().stream()
|
||||
.map(FireAlarmMeetingMemberStatusDO::getFireBrigadeId)
|
||||
.filter(StrUtil::isNotBlank)
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
private String selectText(String preferred, String fallback) {
|
||||
return StrUtil.isNotBlank(preferred) ? preferred : fallback;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,10 +31,16 @@ public class FireBrigadeMemberAddCmd extends Command {
|
|||
@ApiModelProperty("联系电话")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("职务")
|
||||
@ApiModelProperty("职务ID")
|
||||
private String dutyId;
|
||||
|
||||
@ApiModelProperty("职务名称")
|
||||
private String duty;
|
||||
|
||||
@ApiModelProperty("所属机构")
|
||||
@ApiModelProperty("机构ID")
|
||||
private String corpId;
|
||||
|
||||
@ApiModelProperty("机构名称")
|
||||
private String org;
|
||||
|
||||
@ApiModelProperty("角色编码")
|
||||
|
|
|
|||
|
|
@ -19,10 +19,13 @@ public class FireBrigadeMemberCO extends ClientObject {
|
|||
private String gender;
|
||||
private String idNo;
|
||||
private String phone;
|
||||
private String dutyId;
|
||||
|
||||
@JsonProperty("duty")
|
||||
private String dutyName;
|
||||
|
||||
private String corpId;
|
||||
|
||||
@JsonProperty("org")
|
||||
private String orgName;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.zcloud.zcGbsServicer.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import lombok.Data;
|
||||
|
|
@ -17,6 +18,9 @@ public class FireBrigadeUserDO extends BaseDO {
|
|||
private String gender;
|
||||
private String idNo;
|
||||
private String phone;
|
||||
private String dutyId;
|
||||
private String dutyName;
|
||||
@TableField("corp_id")
|
||||
private String corpId;
|
||||
private String orgName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,4 +9,6 @@ import java.util.Map;
|
|||
public interface FireAlarmInfoRepository extends BaseRepository<FireAlarmInfoDO> {
|
||||
|
||||
PageResponse<FireAlarmInfoDO> listPage(Map<String, Object> params);
|
||||
|
||||
FireAlarmInfoDO getByFireAlarmInfoId(String fireAlarmInfoId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import java.util.List;
|
|||
|
||||
public interface FireBrigadeUserRepository extends BaseRepository<FireBrigadeUserDO> {
|
||||
|
||||
List<FireBrigadeUserDO> listAll();
|
||||
|
||||
List<FireBrigadeUserDO> listByFireBrigadeId(String fireBrigadeId);
|
||||
|
||||
List<FireBrigadeUserDO> listByUserId(Long userId);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.zcloud.zcGbsServicer.persistence.repository.impl;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||
|
|
@ -28,4 +29,16 @@ public class FireAlarmInfoRepositoryImpl extends BaseRepositoryImpl<FireAlarmInf
|
|||
IPage<FireAlarmInfoDO> result = fireAlarmInfoMapper.selectPageSql(page, AuthContext.getTenantId(), fireBrigadeName, alarmStatus);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public FireAlarmInfoDO getByFireAlarmInfoId(String fireAlarmInfoId) {
|
||||
if (fireAlarmInfoId == null) {
|
||||
return null;
|
||||
}
|
||||
return this.getOne(new LambdaQueryWrapper<FireAlarmInfoDO>()
|
||||
.eq(FireAlarmInfoDO::getFireAlarmInfoId, fireAlarmInfoId)
|
||||
.eq(FireAlarmInfoDO::getTenantId, AuthContext.getTenantId())
|
||||
.eq(FireAlarmInfoDO::getDeleteEnum, "FALSE")
|
||||
.last("limit 1"));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,13 @@ import java.util.List;
|
|||
@RequiredArgsConstructor
|
||||
public class FireBrigadeUserRepositoryImpl extends BaseRepositoryImpl<FireBrigadeUserMapper, FireBrigadeUserDO> implements FireBrigadeUserRepository {
|
||||
|
||||
@Override
|
||||
public List<FireBrigadeUserDO> listAll() {
|
||||
return this.list(new LambdaQueryWrapper<FireBrigadeUserDO>()
|
||||
.eq(FireBrigadeUserDO::getTenantId, AuthContext.getTenantId())
|
||||
.eq(FireBrigadeUserDO::getDeleteEnum, "FALSE"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FireBrigadeUserDO> listByFireBrigadeId(String fireBrigadeId) {
|
||||
return this.list(new LambdaQueryWrapper<FireBrigadeUserDO>()
|
||||
|
|
|
|||
Loading…
Reference in New Issue