feat: 合并急救员建群逻辑到createGroupMag,新增参与工单列表接口
1. createGroupMag增加addCareUsersToGroup调用,自动拉入关爱联络员+急救员 2. 废除createGroupMagFirstAider(标记@Deprecated) 3. 新增/myparticipatedOrders接口,app端查询当前登录人参与的应急工单列表 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+2
-1
@@ -104,7 +104,8 @@ public class EmergencyApiController {
|
||||
return Result.OK(emergencyApiService.createGroupMag(name, longitude, latitude, type));
|
||||
}
|
||||
|
||||
@Operation(summary = "创建群聊-应急就医-急救员(不发起音视频通话,自动拉入关爱联络员和急救员)")
|
||||
@Deprecated
|
||||
@Operation(summary = "[已废弃] 创建群聊-应急就医-急救员,请使用 /createGroupMag")
|
||||
@GetMapping(value = "/createGroupMagFirstAider")
|
||||
public Result<CreateGroupMagVO> createGroupMagFirstAider(@RequestParam("name") String name,
|
||||
@RequestParam("longitude") String longitude,
|
||||
|
||||
+9
@@ -18,6 +18,7 @@ import com.renkang.emergency.entity.OrderDetail;
|
||||
import com.renkang.emergency.entity.OrderSendRecord;
|
||||
import com.renkang.emergency.entity.vo.EmployeeVO;
|
||||
import com.renkang.emergency.entity.vo.GroupMemberVO;
|
||||
import com.renkang.emergency.entity.vo.MyParticipatedOrderVO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -328,4 +329,12 @@ public class EmergencyOrderApiController {
|
||||
return Result.OK(emergencyOrderApiService.searchEmployee(realname, orgCode, workNo, phone, excludeSessionId, pageNo, pageSize));
|
||||
}
|
||||
|
||||
@Operation(summary = "查询当前登录人参与的应急工单列表")
|
||||
@GetMapping("/myParticipatedOrders")
|
||||
public Result<IPage<MyParticipatedOrderVO>> myParticipatedOrders(
|
||||
@RequestParam(defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(defaultValue = "10") Integer pageSize) {
|
||||
return Result.OK(emergencyOrderApiService.myParticipatedOrders(pageNo, pageSize));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+2
-1
@@ -34,8 +34,9 @@ public interface EmergencyApiService {
|
||||
CreateGroupMagVO createGroupMag(String name, String longitude, String latitude, String type);
|
||||
|
||||
/**
|
||||
* 创建群聊-应急就医-急救员(不发起音视频通话,额外拉入关爱联络员和急救员)
|
||||
* [已废弃] 创建群聊-应急就医-急救员,请使用 {@link #createGroupMag}
|
||||
*/
|
||||
@Deprecated
|
||||
CreateGroupMagVO createGroupMagFirstAider(String name, String longitude, String latitude);
|
||||
|
||||
Result<Map<String, Object>> createGroupMagIntervene(String name, String longitude, String latitude, String type);
|
||||
|
||||
+6
@@ -16,6 +16,7 @@ import com.renkang.emergency.entity.OrderSendRecord;
|
||||
import com.renkang.emergency.entity.TblHelpCentorVo;
|
||||
import com.renkang.emergency.entity.vo.EmployeeVO;
|
||||
import com.renkang.emergency.entity.vo.GroupMemberVO;
|
||||
import com.renkang.emergency.entity.vo.MyParticipatedOrderVO;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -86,4 +87,9 @@ public interface EmergencyOrderApiService {
|
||||
|
||||
IPage<EmployeeVO> searchEmployee(String realname, String orgCode, String workNo, String phone, String excludeSessionId, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 查询当前登录人参与的应急工单列表(sessionNow=1)
|
||||
*/
|
||||
IPage<MyParticipatedOrderVO> myParticipatedOrders(Integer pageNo, Integer pageSize);
|
||||
|
||||
}
|
||||
|
||||
+3
@@ -890,6 +890,8 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
||||
String orderId = this.call(emergencyCall);
|
||||
//保存参与应急的人员信息 PS: 不想大改之前的代码逻辑此处 没有将同一条记录的赋值逻辑合并
|
||||
saveOderOperationInfo(orderId, sessionId, majorsId, operatorsId, majorsTwoId, rs.getCenterId(), conSessionRequestDO.getAccountList());
|
||||
// 自动拉入关爱联络员+急救员1+急救员2(不阻断主流程)
|
||||
addCareUsersToGroup(sysUser.getId(), sessionId, orderId);
|
||||
imrs.getResult().put("member", userList);
|
||||
imrs.getResult().put("tfNew", "1");
|
||||
imrs.getResult().put("id", orderId);
|
||||
@@ -899,6 +901,7 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
||||
return createGroupMagVO;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public CreateGroupMagVO createGroupMagFirstAider(String name, String longitude, String latitude) {
|
||||
|
||||
+55
@@ -21,6 +21,7 @@ import com.renkang.emergency.constant.EmergencyConstants;
|
||||
import com.renkang.emergency.entity.*;
|
||||
import com.renkang.emergency.entity.vo.EmployeeVO;
|
||||
import com.renkang.emergency.entity.vo.GroupMemberVO;
|
||||
import com.renkang.emergency.entity.vo.MyParticipatedOrderVO;
|
||||
import com.renkang.emergency.manager.EmergencyCacheManager;
|
||||
import com.renkang.emergency.manager.EmergencyCloudManager;
|
||||
import com.renkang.emergency.mapper.*;
|
||||
@@ -928,6 +929,60 @@ public class EmergencyOrderApiServiceImpl implements EmergencyOrderApiService {
|
||||
return targetPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<MyParticipatedOrderVO> myParticipatedOrders(Integer pageNo, Integer pageSize) {
|
||||
String userId = GlobalUtils.getLoginUser().getId();
|
||||
// 1. 查当前登录人参与的所有工单ID(去重)
|
||||
List<String> orderIds = orderOperatorMapper.selectList(
|
||||
new LambdaQueryWrapper<OrderOperator>()
|
||||
.select(OrderOperator::getOrderId)
|
||||
.eq(OrderOperator::getUserId, userId)
|
||||
).stream().map(OrderOperator::getOrderId).distinct().collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(orderIds)) {
|
||||
return new Page<>(pageNo != null ? pageNo : 1, pageSize != null ? pageSize : 10);
|
||||
}
|
||||
// 2. 查正在应急的工单
|
||||
Page<Order> page = new Page<>(pageNo != null ? pageNo : 1, pageSize != null ? pageSize : 10);
|
||||
LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(Order::getId, orderIds);
|
||||
wrapper.eq(Order::getSessionNow, true);
|
||||
wrapper.eq(Order::getDelFlag, CommonConstant.DEL_FLAG_0);
|
||||
wrapper.eq(Order::getStatus, 1);
|
||||
wrapper.orderByDesc(Order::getCreateTime);
|
||||
IPage<Order> srcPage = orderMapper.selectPage(page, wrapper);
|
||||
// 3. 映射VO
|
||||
Page<MyParticipatedOrderVO> targetPage = new Page<>(srcPage.getCurrent(), srcPage.getSize(), srcPage.getTotal());
|
||||
if (CollectionUtils.isEmpty(srcPage.getRecords())) {
|
||||
return targetPage;
|
||||
}
|
||||
List<MyParticipatedOrderVO> records = srcPage.getRecords().stream().map(order -> {
|
||||
MyParticipatedOrderVO vo = new MyParticipatedOrderVO();
|
||||
vo.setOrderId(order.getId());
|
||||
vo.setSessionId(order.getSessionId());
|
||||
vo.setSalvageUserName(order.getSalvageUserName());
|
||||
vo.setSalvageUserSex(order.getSalvageUserSex());
|
||||
vo.setSalvageUserAvatar(order.getSalvageUserAvatar());
|
||||
vo.setSalvageUserAge(order.getSalvageUserAge());
|
||||
vo.setSalvageUserMobile(order.getSalvageUserMobile());
|
||||
vo.setOrderStatus(order.getOrderStatus());
|
||||
vo.setInitTime(order.getCreateTime());
|
||||
// 解析部门(防NPE)
|
||||
if (StrUtil.isNotBlank(order.getSalvageUserDepart())) {
|
||||
SysDepart secondDepart = emergencyCacheManager.getUserSecondDepart(order.getSalvageUserDepart());
|
||||
SysDepart depart = emergencyCacheManager.getUserDepart(order.getSalvageUserDepart());
|
||||
if (secondDepart != null) {
|
||||
vo.setOrgName(secondDepart.getDepartName());
|
||||
}
|
||||
if (depart != null) {
|
||||
vo.setDeptName(depart.getDepartName());
|
||||
}
|
||||
}
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
targetPage.setRecords(records);
|
||||
return targetPage;
|
||||
}
|
||||
|
||||
private List<SessionOrderUser> convertOrder(List<Order> orders) {
|
||||
if (CollectionUtils.isEmpty(orders)) {
|
||||
return Collections.emptyList();
|
||||
|
||||
Reference in New Issue
Block a user