|
|
@@ -20,6 +20,7 @@ import org.ruoyi.mapper.ThinkTokenRoleMapper;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.lang.reflect.Method;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -34,7 +35,7 @@ public class ThinkTokenRoleServiceImpl implements ThinkTokenRoleService {
|
|
|
private final ObjectMapper objectMapper; // 用于解析字符串格式的 JSON
|
|
|
|
|
|
@Override
|
|
|
- public TableDataInfo<ThinkTokenRoleDTO> ThinkTokenRoleList(PageQuery pageQuery, String searchField, String searchKeyword) {
|
|
|
+ public TableDataInfo<Map> ThinkTokenRoleList(PageQuery pageQuery, String searchField, String searchKeyword) {
|
|
|
// 1️⃣ 构造查询条件
|
|
|
LambdaQueryWrapper<ThinkTokenRole> lqw = Wrappers.lambdaQuery();
|
|
|
|
|
|
@@ -63,38 +64,85 @@ public class ThinkTokenRoleServiceImpl implements ThinkTokenRoleService {
|
|
|
// 过滤 reply 为空
|
|
|
lqw.isNotNull(ThinkTokenRole::getReply).ne(ThinkTokenRole::getReply, "");
|
|
|
lqw.orderByDesc(ThinkTokenRole::getId);
|
|
|
+ lqw.groupBy(ThinkTokenRole::getIdNum);
|
|
|
|
|
|
// 2️⃣ 分页查询
|
|
|
Page<ThinkTokenRole> page = baseMapper.selectPage(pageQuery.build(), lqw);
|
|
|
|
|
|
- List<ThinkTokenRoleDTO> dtoList = page.getRecords().stream().map(item -> {
|
|
|
- ThinkTokenRoleDTO dto = new ThinkTokenRoleDTO();
|
|
|
- dto.setId(item.getId());
|
|
|
- dto.setInNum(item.getInNum());
|
|
|
- dto.setOutNum(item.getOutNum());
|
|
|
- dto.setDeptName(item.getDeptName());
|
|
|
- dto.setContent(item.getContent());
|
|
|
- dto.setRuleid(item.getRuleid());
|
|
|
- dto.setRuletype(item.getRuletype());
|
|
|
- dto.setToken(item.getToken());
|
|
|
- dto.setTime(item.getTime());
|
|
|
- dto.setReply(item.getReply());
|
|
|
-
|
|
|
- dto.setPatName(maskName(item.getPatName()));
|
|
|
- dto.setTypename(trimCaseType(item.getTypename()));
|
|
|
- dto.setAcceptRefuse(formatAcceptRefuse(item.getAccept(), item.getRefuse()));
|
|
|
- return dto;
|
|
|
+ List<Map> dtoList = page.getRecords().stream().map(item -> {
|
|
|
+ HashMap<String, Object> map = new HashMap<>();
|
|
|
+ map.put("id",item.getId());
|
|
|
+ map.put("patientId",item.getInNum());
|
|
|
+ map.put("admissionNo",item.getId());
|
|
|
+ map.put("visitId",item.getId());
|
|
|
+ map.put("name",item.getPatName());
|
|
|
+ map.put("ruleid",item.getRuleid());
|
|
|
+ map.put("age",item.getId());
|
|
|
+ map.put("birthDate",item.getId());
|
|
|
+ map.put("admissionDate",item.getDeptName());
|
|
|
+ map.put("dischargeDept",item.getDeptName());
|
|
|
+ map.put("attendingDoctor",item.getId());
|
|
|
+ map.put("nurse",item.getId());
|
|
|
+ map.put("type",item.getId());
|
|
|
+ map.put("typeName",item.getTypename().substring(3,item.getTypename().length()-1));
|
|
|
+ return map;
|
|
|
}).collect(Collectors.toList());
|
|
|
+ for (int i = 0; i < dtoList.size(); i++) {
|
|
|
+ String patientId= String.valueOf(dtoList.get(i).get("patientId"));
|
|
|
+ LambdaQueryWrapper<ThinkTokenRole> lqwQc = Wrappers.lambdaQuery();
|
|
|
+ lqwQc.eq(ThinkTokenRole::getInNum,patientId);
|
|
|
+ List<ThinkTokenRole> thinkTokenRoles = baseMapper.selectList(lqwQc);
|
|
|
+ List<Map> childrenList = page.getRecords().stream().map(item -> {
|
|
|
+ HashMap<String, Object> map = new HashMap<>();
|
|
|
+ map.put("content",item.getContent());
|
|
|
+ map.put("qeComments",item.getReply());
|
|
|
+ map.put("qcEndTime",item.getTime());
|
|
|
+ map.put("ruleid",item.getRuleid());
|
|
|
+ map.put("gcHame",item.getPatName());
|
|
|
+ map.put("gender",item.getId());
|
|
|
+ map.put("age",item.getId());
|
|
|
+ map.put("birthDate",item.getId());
|
|
|
+ map.put("admissionDate",item.getDeptName());
|
|
|
+ map.put("dischargeDept",item.getDeptName());
|
|
|
+ map.put("attendingDoctor",item.getId());
|
|
|
+ map.put("nurse",item.getId());
|
|
|
+
|
|
|
+ String typeName = item.getTypename().substring(4);
|
|
|
+ map.put("typeName",typeName);
|
|
|
+ if("入院记录".equals(typeName)){
|
|
|
+ map.put("type","0");
|
|
|
+ }else if("首次病程记录".equals(typeName)){
|
|
|
+ map.put("type","1");
|
|
|
+ }else if("上级医师查房记录”".equals(typeName)){
|
|
|
+ map.put("type","2");
|
|
|
+ }else if("手术记录".equals(typeName)){
|
|
|
+ map.put("type","3");
|
|
|
+ }else if("检验报告".equals(typeName)){
|
|
|
+ map.put("type","4");
|
|
|
+ }else if("检查报告".equals(typeName)){
|
|
|
+ map.put("type","5");
|
|
|
+ }else if("医嘱记录".equals(typeName)){
|
|
|
+ map.put("type","6");
|
|
|
+ }else if("出院院小结”".equals(typeName)){
|
|
|
+ map.put("type","7");
|
|
|
+ }else if("知情同意书".equals(typeName)){
|
|
|
+ map.put("type","8");
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ dtoList.get(i).put("childrenList",childrenList);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
// 构造分页结果
|
|
|
- Page<ThinkTokenRoleDTO> dtoPage = new Page<>();
|
|
|
+ Page<Map> dtoPage = new Page<>();
|
|
|
dtoPage.setCurrent(page.getCurrent());
|
|
|
dtoPage.setSize(page.getSize());
|
|
|
dtoPage.setTotal(page.getTotal());
|
|
|
dtoPage.setPages(page.getPages());
|
|
|
dtoPage.setRecords(dtoList);
|
|
|
|
|
|
- TableDataInfo<ThinkTokenRoleDTO> result = TableDataInfo.build(dtoPage);
|
|
|
+ TableDataInfo<Map> result = TableDataInfo.build(dtoPage);
|
|
|
|
|
|
// 3️⃣ 查询所有符合条件的数据(不分页,用于统计)
|
|
|
List<ThinkTokenRole> allList = baseMapper.selectList(lqw);
|