diff --git a/start/src/main/resources/nacos-prod.yml b/start/src/main/resources/nacos-prod.yml index 30e02b1..692b787 100644 --- a/start/src/main/resources/nacos-prod.yml +++ b/start/src/main/resources/nacos-prod.yml @@ -9,6 +9,9 @@ application: spring: application: name: ${application.name}${application.version} + profiles: + # 环境配置 + active: test cloud: nacos: config: diff --git a/web-app/src/main/java/com/zcloud/zcGbsServicer/command/convertor/AlarmRecordCoConvertor.java b/web-app/src/main/java/com/zcloud/zcGbsServicer/command/convertor/AlarmRecordCoConvertor.java index 65de5e5..e33acb1 100644 --- a/web-app/src/main/java/com/zcloud/zcGbsServicer/command/convertor/AlarmRecordCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/zcGbsServicer/command/convertor/AlarmRecordCoConvertor.java @@ -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 converDOsToCOs(List fireAlarmInfoDOs); + @Mapping(target = "fireBrigadeId", ignore = true) AlarmRecordCO converDOToCO(FireAlarmInfoDO fireAlarmInfoDO); } diff --git a/web-app/src/main/java/com/zcloud/zcGbsServicer/command/convertor/FireBrigadeMemberCoConvertor.java b/web-app/src/main/java/com/zcloud/zcGbsServicer/command/convertor/FireBrigadeMemberCoConvertor.java index f62657f..288ae31 100644 --- a/web-app/src/main/java/com/zcloud/zcGbsServicer/command/convertor/FireBrigadeMemberCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/zcGbsServicer/command/convertor/FireBrigadeMemberCoConvertor.java @@ -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 converDOsToCOs(List fireBrigadeUserDOs); + @Mapping(target = "fireBrigadeId", ignore = true) @Mapping(source = "fireBrigadeId", target = "fireBrigadeBizId") FireBrigadeMemberCO converDOToCO(FireBrigadeUserDO fireBrigadeUserDO); } diff --git a/web-app/src/main/java/com/zcloud/zcGbsServicer/service/FireBrigadeMemberServiceImpl.java b/web-app/src/main/java/com/zcloud/zcGbsServicer/service/FireBrigadeMemberServiceImpl.java index e5c7b33..b7dccde 100644 --- a/web-app/src/main/java/com/zcloud/zcGbsServicer/service/FireBrigadeMemberServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/zcGbsServicer/service/FireBrigadeMemberServiceImpl.java @@ -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()); } diff --git a/web-app/src/main/java/com/zcloud/zcGbsServicer/service/FireBrigadeServiceImpl.java b/web-app/src/main/java/com/zcloud/zcGbsServicer/service/FireBrigadeServiceImpl.java index 2d4552c..3071881 100644 --- a/web-app/src/main/java/com/zcloud/zcGbsServicer/service/FireBrigadeServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/zcGbsServicer/service/FireBrigadeServiceImpl.java @@ -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 page = fireBrigadeRepository.listPage(params); Map userMap = getLeaderUserMap(page.getData()); - List data = page.getData().stream().map(item -> buildCO(item, userMap)).collect(Collectors.toList()); + Set onlineBrigadeIdSet = getOnlineBrigadeIdSet(); + List 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 userMap) { + private FireBrigadeCO buildCO(FireBrigadeDO brigade, Map userMap, Set 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 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; } diff --git a/web-client/src/main/java/com/zcloud/zcGbsServicer/dto/FireBrigadeMemberAddCmd.java b/web-client/src/main/java/com/zcloud/zcGbsServicer/dto/FireBrigadeMemberAddCmd.java index c497eaf..c7db54e 100644 --- a/web-client/src/main/java/com/zcloud/zcGbsServicer/dto/FireBrigadeMemberAddCmd.java +++ b/web-client/src/main/java/com/zcloud/zcGbsServicer/dto/FireBrigadeMemberAddCmd.java @@ -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("角色编码") diff --git a/web-client/src/main/java/com/zcloud/zcGbsServicer/dto/clientobject/FireBrigadeMemberCO.java b/web-client/src/main/java/com/zcloud/zcGbsServicer/dto/clientobject/FireBrigadeMemberCO.java index 90afb1d..622d3bd 100644 --- a/web-client/src/main/java/com/zcloud/zcGbsServicer/dto/clientobject/FireBrigadeMemberCO.java +++ b/web-client/src/main/java/com/zcloud/zcGbsServicer/dto/clientobject/FireBrigadeMemberCO.java @@ -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; diff --git a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/dataobject/FireBrigadeUserDO.java b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/dataobject/FireBrigadeUserDO.java index 2135e10..cfb367c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/dataobject/FireBrigadeUserDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/dataobject/FireBrigadeUserDO.java @@ -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; } diff --git a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/FireAlarmInfoRepository.java b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/FireAlarmInfoRepository.java index 8a58d75..640cd73 100644 --- a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/FireAlarmInfoRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/FireAlarmInfoRepository.java @@ -9,4 +9,6 @@ import java.util.Map; public interface FireAlarmInfoRepository extends BaseRepository { PageResponse listPage(Map params); + + FireAlarmInfoDO getByFireAlarmInfoId(String fireAlarmInfoId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/FireBrigadeUserRepository.java b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/FireBrigadeUserRepository.java index 80a83f4..1590b08 100644 --- a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/FireBrigadeUserRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/FireBrigadeUserRepository.java @@ -7,6 +7,8 @@ import java.util.List; public interface FireBrigadeUserRepository extends BaseRepository { + List listAll(); + List listByFireBrigadeId(String fireBrigadeId); List listByUserId(Long userId); diff --git a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/impl/FireAlarmInfoRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/impl/FireAlarmInfoRepositoryImpl.java index 77c0913..70c6401 100644 --- a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/impl/FireAlarmInfoRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/impl/FireAlarmInfoRepositoryImpl.java @@ -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 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() + .eq(FireAlarmInfoDO::getFireAlarmInfoId, fireAlarmInfoId) + .eq(FireAlarmInfoDO::getTenantId, AuthContext.getTenantId()) + .eq(FireAlarmInfoDO::getDeleteEnum, "FALSE") + .last("limit 1")); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/impl/FireBrigadeUserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/impl/FireBrigadeUserRepositoryImpl.java index e54d9af..331c39b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/impl/FireBrigadeUserRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/zcGbsServicer/persistence/repository/impl/FireBrigadeUserRepositoryImpl.java @@ -15,6 +15,13 @@ import java.util.List; @RequiredArgsConstructor public class FireBrigadeUserRepositoryImpl extends BaseRepositoryImpl implements FireBrigadeUserRepository { + @Override + public List listAll() { + return this.list(new LambdaQueryWrapper() + .eq(FireBrigadeUserDO::getTenantId, AuthContext.getTenantId()) + .eq(FireBrigadeUserDO::getDeleteEnum, "FALSE")); + } + @Override public List listByFireBrigadeId(String fireBrigadeId) { return this.list(new LambdaQueryWrapper()