package com.ltkj.web.controller.system;
|
|
import java.io.*;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
import cn.hutool.core.date.DateUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.google.common.base.Joiner;
|
import com.ltkj.common.core.domain.entity.SysUser;
|
import com.ltkj.common.core.redis.RedisCache;
|
import com.ltkj.common.utils.SecurityUtils;
|
import com.ltkj.common.utils.bean.BeanUtils;
|
import com.ltkj.framework.config.MatchUtils;
|
import com.ltkj.hosp.domain.*;
|
import com.ltkj.hosp.service.*;
|
import com.ltkj.system.domain.SysPost;
|
import com.ltkj.system.domain.SysUserPost;
|
import com.ltkj.system.service.ISysPostService;
|
import com.ltkj.system.service.ISysUserPostService;
|
import com.ltkj.system.service.ISysUserService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.ibatis.jdbc.Null;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.ConvertingCursor;
|
import org.springframework.data.redis.core.Cursor;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.ScanOptions;
|
import org.springframework.data.redis.serializer.RedisSerializer;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
import com.ltkj.common.annotation.Log;
|
import com.ltkj.common.constant.UserConstants;
|
import com.ltkj.common.core.controller.BaseController;
|
import com.ltkj.common.core.domain.AjaxResult;
|
import com.ltkj.common.core.domain.entity.SysDept;
|
import com.ltkj.common.enums.BusinessType;
|
import com.ltkj.common.utils.StringUtils;
|
import com.ltkj.system.service.ISysDeptService;
|
|
import javax.annotation.Resource;
|
|
/**
|
* 部门信息
|
*
|
* @author ltkj
|
*/
|
@RestController
|
@RequestMapping("/system/dept")
|
@Api(tags = "科室部门信息")
|
public class SysDeptController extends BaseController implements Serializable {
|
@Resource
|
private ISysDeptService deptService;
|
@Resource
|
private ITjCustomerService customerService;
|
@Resource
|
private ITjProjectService projectService;
|
@Autowired
|
private ITjRuleAdviceService tjRuleAdviceService;
|
@Resource
|
private ITjOrderService orderService;
|
@Resource
|
private ITjOrderRemarkService remarkService;
|
@Resource
|
private ITjOrderDetailService detailService;
|
@Resource
|
private ISysUserService userService;
|
@Resource
|
private ITjStandardService tjStandardService;
|
@Resource
|
private ITjAdviceService tjAdviceService;
|
@Resource
|
private ITjCustomerService tjCustomerService;
|
|
@Resource
|
private ISysUserPostService userPostService;
|
@Resource
|
private ISysPostService postService;
|
|
@Resource
|
private TjAsyncService asyncService;
|
@Resource
|
private RedisCache redisCache;
|
|
@Autowired
|
private ITjOrderDetailRulesService tjOrderDetailRulesService;
|
|
@Autowired
|
private ITjRulesService tjRulesService;
|
@Autowired
|
public RedisTemplate<Object,Object> redisTemplate;
|
|
|
/**
|
* 该体检科室下客户列表显示接口
|
*/
|
@GetMapping("/getProList")
|
@ApiOperation("该体检科室下客户列表显示接口")
|
public AjaxResult getProList(@ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber,
|
@ApiParam(value = "0未检,1已检") @RequestParam(defaultValue = "0") Integer type,
|
@ApiParam(value = "姓名)") @RequestParam(required = false) String name,
|
@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page,
|
@ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize) {
|
String userId = SecurityUtils.getLoginUser().getUserId();
|
Integer ksId = null;
|
SysUser sysUser = null;
|
if (null != userId) {
|
sysUser = userService.getById(Long.valueOf(userId));
|
if (null != sysUser) {
|
ksId = Math.toIntExact(sysUser.getDeptId());
|
}
|
}
|
if (ksId == null) {
|
return AjaxResult.error("请输入科室id");
|
}
|
//根据当前登陆的人的科室id,获取该科室下的所有项目
|
List<Long> postIds = sysUser.getPostIds();
|
List<Long> ksproList = null;
|
if (postIds != null) {
|
for (Long postId : postIds) {
|
LambdaQueryWrapper<SysUserPost> wq111 = new LambdaQueryWrapper<>();
|
wq111.eq(SysUserPost::getPostId, postId);
|
SysUserPost one = userPostService.getOne(wq111);
|
if (one != null) {
|
SysPost byId = postService.getById(one.getPostId());
|
if (byId.getPostName().equals("录入员")) {
|
ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId));
|
}
|
}
|
}
|
} else {
|
ksproList = projectService.getKsTjProjectIdList();
|
}
|
|
if (ksproList == null || ksproList.size() == 0) {
|
return AjaxResult.error("请完善科室项目信息");
|
}
|
List<TjCustomer> customerLis = new ArrayList<>();
|
if(null==name) name="";
|
if(null==tjNumber) tjNumber="";
|
|
// //根据体检号查
|
// if (null != tjNumber) {
|
// List<TjOrder> orderList = orderService.getOrderListByLikeTjNum(tjNumber);
|
// if (null == orderList) {
|
// return AjaxResult.success("暂时没有数据");
|
// }
|
// for (TjOrder order : orderList) {
|
// List<TjOrderDetail> list = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
|
// if (list.size() == 0) {
|
// continue;
|
// }
|
// LambdaQueryWrapper<TjOrderRemark> wqs = new LambdaQueryWrapper<>();
|
// wqs.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
|
// wqs.in(TjOrderRemark::getType, 0,3);
|
// List<TjOrderRemark> lists = remarkService.list(wqs);
|
// TjCustomer customer = customerService.getById(order.getUserId());
|
//
|
// //遍历项目 判断是否有重大阳性 标记
|
// for (TjOrderDetail tjOrderDetail11 : list) {
|
// customer.setIsPositive(tjOrderDetail11.getIsPositive());
|
// if (tjOrderDetail11.getIsPositive()==1){
|
// break;
|
// }
|
// }
|
//
|
// customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
|
// customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
|
// customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
|
// if (null != lists && lists.size() > 0) {
|
// StringBuilder stringBuilder = new StringBuilder();
|
// for (TjOrderRemark remark : lists) {
|
// TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
|
// TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
|
// if (one.getFlowingWaterId() != null) {
|
// stringBuilder.append(byId.getProName()).append(";");
|
// }
|
//
|
// }
|
// customer.setNotCheckeds(String.valueOf(stringBuilder));
|
// customer.setTjStatus(0L);
|
// } else {
|
// customer.setTjStatus(1L);
|
// customer.setNotCheckeds("无");
|
// }
|
// if (order.getTjType().equals("1")) {
|
// customer.setTjType("团体");
|
// }
|
// if (order.getTjType().equals("2")) {
|
// customer.setTjType("个人");
|
// }
|
// customer.setTjTime(order.getCreateTime());
|
// customer.setTjNumber(order.getTjNumber());
|
// customer.setOrderId(order.getOrderId());
|
// customer.setIsHz(order.getIsHz());
|
// customer.setTjCategory(order.getTjCategory());
|
// customerLis.add(customer);
|
// }
|
// if (customerLis.size() > 0) {
|
// List<TjCustomer> customerList = customerLis.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
// Collections.reverse(customerList);
|
// Map<String, Object> map = new HashMap<>();
|
// map.put("date", customerList);
|
// map.put("total", customerLis.size());
|
// return AjaxResult.success(map);
|
// } else {
|
// return AjaxResult.success("暂无数据");
|
// }
|
// }
|
//
|
// //根据姓名查询
|
// if (null != name && !"".equals(name)) {
|
// LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
|
// wq.like(TjCustomer::getCusName, name);
|
// List<TjCustomer> list = customerService.list(wq);
|
// List<TjCustomer> list11111 = new ArrayList<>();
|
// if (null != list && list.size() > 0) {
|
// for (TjCustomer customer : list) {
|
// customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
|
// customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
|
// customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
|
// List<TjOrder> orderList = orderService.getOrderListByCusId(String.valueOf(customer.getCusId()));
|
// if (null != orderList && orderList.size() > 0) {
|
// for (TjOrder order : orderList) {
|
// List<TjOrderDetail> list111 = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
|
// if (list111.size() == 0) {
|
// continue;
|
// }
|
// //遍历项目 判断是否有重大阳性 标记
|
// for (TjOrderDetail tjOrderDetail11 : list111) {
|
// customer.setIsPositive(tjOrderDetail11.getIsPositive());
|
// if (tjOrderDetail11.getIsPositive()==1){
|
// break;
|
// }
|
// }
|
// List<TjOrderRemark> lists = remarkService.getTjOrderRemarkListByYjNum(order.getTjNumber());
|
// if (null != lists && lists.size() > 0) {
|
// StringBuilder stringBuilder = new StringBuilder();
|
// for (TjOrderRemark remark : lists) {
|
// TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
|
// TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
|
// if (one.getFlowingWaterId() != null) {
|
// stringBuilder.append(byId.getProName()).append(";");
|
// }
|
// }
|
// customer.setNotCheckeds(String.valueOf(stringBuilder));
|
// if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
|
// customer.setTjStatus(0L);
|
// } else {
|
// customer.setNotCheckeds("无");
|
// customer.setTjStatus(1L);
|
// }
|
// if (order.getTjType().equals("1")) {
|
// customer.setTjType("团体");
|
// }
|
// if (order.getTjType().equals("2")) {
|
// customer.setTjType("个人");
|
// }
|
// customer.setTjTime(order.getCreateTime());
|
// customer.setTjNumber(order.getTjNumber());
|
// customer.setOrderId(order.getOrderId());
|
// customer.setIsHz(order.getIsHz());
|
// customer.setTjCategory(order.getTjCategory());
|
// list11111.add(customer);
|
// }
|
// }
|
// }
|
// if (list11111.size() == 0) {
|
// return AjaxResult.success("暂无数据");
|
// }
|
// Map<String, Object> map = new HashMap<>();
|
// List<TjCustomer> customers = list11111.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
// Collections.reverse(customers);
|
// map.put("customers", customers);
|
// map.put("total", list11111.size());
|
// return AjaxResult.success(map);
|
// } else {
|
// return AjaxResult.success("暂无数据");
|
// }
|
// }
|
// List<TjCustomer> customerLists = new ArrayList<>();
|
|
// String key="*";
|
// if(sysUser.isAdmin()){
|
// key="ks"+":*";
|
// }else {
|
// key="ks:"+ksId+":*";
|
// }
|
// ScanOptions options = ScanOptions.scanOptions()
|
// //这里指定每次扫描key的数量(很多博客瞎说要指定Integer.MAX_VALUE,这样的话跟 keys有什么区别?)
|
// .count(10000)
|
// .match(key).build();
|
// RedisSerializer<String> redisSerializer = (RedisSerializer<String>) redisTemplate.getKeySerializer();
|
// 0未检,1已检
|
Map<String,Object> map=null;
|
if (type == 0) {
|
// Cursor cursor = redisTemplate.executeWithStickyConnection(redisConnection -> new ConvertingCursor<>(redisConnection.scan(options), redisSerializer::deserialize));
|
// List<TjCustomer> customers = new ArrayList<>();
|
// while(cursor.hasNext()){
|
// String s = cursor.next().toString();
|
// TjCustomer wj = redisCache.getCacheMapValue(s,"0");
|
// if(null !=wj){
|
// customers.add(wj);
|
// }
|
// }
|
//// //切记这里一定要关闭,否则会耗尽连接数。报Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisException: Could not get a
|
// cursor.close();
|
// customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
|
map = deptService.getSysDeptYjWjCustomerList13(String.valueOf(ksId), name, tjNumber, 0, page, pageSize);
|
// customerLists = customers;
|
}
|
if (type == 1) {
|
// Cursor cursor = redisTemplate.executeWithStickyConnection(redisConnection -> new ConvertingCursor<>(redisConnection.scan(options), redisSerializer::deserialize));
|
// List<TjCustomer> customers = new ArrayList<>();
|
// while(cursor.hasNext()){
|
// String s = cursor.next().toString();
|
// TjCustomer wj = redisCache.getCacheMapValue(s,"1");
|
// if(null !=wj){
|
// customers.add(wj);
|
// }
|
// }
|
//// //切记这里一定要关闭,否则会耗尽连接数。报Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisException: Could not get a
|
// cursor.close();
|
// customerLists = redisCache.getCacheMapValue(ksId + "ks", "yj");
|
map = deptService.getSysDeptYjWjCustomerList13(String.valueOf(ksId), name, tjNumber, 1, page, pageSize);
|
// customerLists = customers;
|
}
|
return AjaxResult.success(map);
|
// asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
|
// if (null !=customerLists && customerLists.size() > 0) {
|
// Collections.reverse(customerLists);
|
// List<TjCustomer> customerList = customerLists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
// Map<String, Object> map = new HashMap<>();
|
// map.put("date", customerList);
|
// map.put("total", customerLists.size());
|
// return AjaxResult.success(map);
|
// } else {
|
// AjaxResult map = getAjaxResult(type, page, pageSize, ksproList, customerLis);
|
// if (map != null) return map;
|
// return AjaxResult.success("暂时没有数据");
|
// }
|
}
|
|
private AjaxResult getAjaxResult(Integer type, Integer page, Integer pageSize, List<Long> ksproList, List<TjCustomer> customerLis) {
|
LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrderDetail::getTjStatus, type);
|
wq1.in(TjOrderDetail::getProId, ksproList);
|
wq1.isNotNull(TjOrderDetail::getFlowingWaterId);
|
wq1.orderByDesc(TjOrderDetail::getCreateTime);
|
List<TjOrderDetail> detailList = detailService.list(wq1);
|
if (null != detailList && detailList.size() > 0) {
|
//收集orderId并去重
|
List<Long> orderIds = detailList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(
|
() -> new TreeSet<>(Comparator.comparing(TjOrderDetail::getOrderId))
|
), ArrayList::new)).stream().map(TjOrderDetail::getOrderId).collect(Collectors.toList());
|
for (Long orderId : orderIds) {
|
if (null != orderId) {
|
TjOrder order = orderService.getById(orderId);
|
if(null ==order){
|
continue;
|
}
|
if (type == 1) {
|
List<TjOrderDetail> list = detailService.getTjOrderDetailListByOrderIdAndStatus(String.valueOf(orderId));
|
if (null != list && list.size() > 0) {
|
continue;
|
}
|
}
|
TjCustomer customer = customerService.getById(order.getUserId());
|
if (null != customer) {
|
if (order.getTjType().equals("1")) {
|
customer.setTjType("团体");
|
}
|
if (order.getTjType().equals("2")) {
|
customer.setTjType("个人");
|
}
|
customer.setTjTime(order.getCreateTime());
|
customer.setTjNumber(order.getTjNumber());
|
customer.setOrderId(orderId);
|
customer.setIsHz(order.getIsHz());
|
customer.setTjStatus(Long.valueOf(type));
|
List<TjOrderRemark> list = remarkService.getTjOrderRemarkListByYjNum(order.getTjNumber());
|
if (null != list && list.size() > 0) {
|
StringBuilder stringBuilder = new StringBuilder();
|
for (TjOrderRemark remark : list) {
|
TjProject byId = projectService.getById(remark.getProId());
|
stringBuilder.append(byId.getProName()).append(";");
|
}
|
customer.setNotCheckeds(String.valueOf(stringBuilder));
|
if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
|
}
|
customerLis.add(customer);
|
}
|
}
|
}
|
if (customerLis.size() > 0) {
|
List<TjCustomer> customerList = customerLis.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
Collections.reverse(customerList);
|
Map<String, Object> map = new HashMap<>();
|
map.put("date", customerList);
|
map.put("total", customerLis.size());
|
return AjaxResult.success(map);
|
}
|
}
|
return null;
|
}
|
|
/**
|
* 化验检查页面列表
|
*/
|
@GetMapping("/huaYangetProList")
|
@ApiOperation("化验检查页面列表")
|
public AjaxResult huaYangetProList(@ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber,
|
@ApiParam(value = "0未检,1已检") @RequestParam(defaultValue = "0") Integer type,
|
@ApiParam(value = "姓名)") @RequestParam(required = false) String name,
|
@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page,
|
@ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize) {
|
String userId = SecurityUtils.getLoginUser().getUserId();
|
Integer ksId = null;
|
SysUser sysUser = null;
|
if (null != userId) {
|
sysUser = userService.getById(Long.valueOf(userId));
|
if (null != sysUser) {
|
ksId = Math.toIntExact(sysUser.getDeptId());
|
}
|
}
|
if (ksId == null) {
|
return AjaxResult.error("请输入科室id");
|
}
|
//根据当前登陆的人的科室id,获取该科室下的所有项目
|
List<Long> postIds = sysUser.getPostIds();
|
List<Long> ksproList = null;
|
if (postIds != null) {
|
for (Long postId : postIds) {
|
LambdaQueryWrapper<SysUserPost> wq111 = new LambdaQueryWrapper<>();
|
wq111.eq(SysUserPost::getPostId, postId);
|
SysUserPost one = userPostService.getOne(wq111);
|
if (one != null) {
|
SysPost byId = postService.getById(one.getPostId());
|
if (byId.getPostName().equals("录入员")) {
|
ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId));
|
}
|
}
|
}
|
} else {
|
ksproList = projectService.getKsTjProjectIdList();
|
}
|
if (ksproList == null || ksproList.size() == 0) {
|
return AjaxResult.error("请完善科室项目信息");
|
}
|
//筛选化验的项目。
|
ksproList = ksproList.stream()
|
.filter(element -> element ==1633660948860522629L)
|
.collect(Collectors.toList());
|
|
List<TjCustomer> customerLis = new ArrayList<>();
|
|
//根据体检号查
|
if (null != tjNumber) {
|
List<TjOrder> orderList = orderService.getOrderListByLikeTjNum(tjNumber);
|
if (null == orderList) {
|
return AjaxResult.success("暂时没有数据");
|
}
|
for (TjOrder order : orderList) {
|
List<TjOrderDetail> list = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
|
if (list.size() == 0) {
|
continue;
|
}
|
LambdaQueryWrapper<TjOrderRemark> wqs = new LambdaQueryWrapper<>();
|
wqs.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
|
wqs.in(TjOrderRemark::getType, 0,3);
|
List<TjOrderRemark> lists = remarkService.list(wqs);
|
TjCustomer customer = customerService.getById(order.getUserId());
|
//遍历项目 判断是否有重大阳性 标记
|
for (TjOrderDetail tjOrderDetail11 : list) {
|
customer.setIsPositive(tjOrderDetail11.getIsPositive());
|
if (tjOrderDetail11.getIsPositive()==1){
|
break;
|
}
|
}
|
customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
|
customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
|
customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
|
if (null != lists && lists.size() > 0) {
|
StringBuilder stringBuilder = new StringBuilder();
|
for (TjOrderRemark remark : lists) {
|
TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
|
TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
|
if (one.getFlowingWaterId() != null) {
|
stringBuilder.append(byId.getProName()).append(";");
|
}
|
|
}
|
customer.setNotCheckeds(String.valueOf(stringBuilder));
|
customer.setTjStatus(0L);
|
} else {
|
customer.setTjStatus(1L);
|
customer.setNotCheckeds("无");
|
}
|
if (order.getTjType().equals("1")) {
|
customer.setTjType("团体");
|
}
|
if (order.getTjType().equals("2")) {
|
customer.setTjType("个人");
|
}
|
customer.setTjTime(order.getCreateTime());
|
customer.setTjNumber(order.getTjNumber());
|
customer.setOrderId(order.getOrderId());
|
customer.setIsHz(order.getIsHz());
|
customerLis.add(customer);
|
|
}
|
if (customerLis.size() > 0) {
|
List<TjCustomer> customerList = customerLis.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
Collections.reverse(customerList);
|
Map<String, Object> map = new HashMap<>();
|
map.put("date", customerList);
|
map.put("total", customerLis.size());
|
return AjaxResult.success(map);
|
} else {
|
return AjaxResult.success("暂无数据");
|
}
|
}
|
|
//根据姓名查询
|
if (null != name && !"".equals(name)) {
|
LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
|
wq.like(TjCustomer::getCusName, name);
|
List<TjCustomer> list = customerService.list(wq);
|
List<TjCustomer> list11111 = new ArrayList<>();
|
if (null != list && list.size() > 0) {
|
for (TjCustomer customer : list) {
|
customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
|
customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
|
customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
|
List<TjOrder> orderList = orderService.getOrderListByCusId(String.valueOf(customer.getCusId()));
|
if (null != orderList && orderList.size() > 0) {
|
for (TjOrder order : orderList) {
|
List<TjOrderDetail> list111 = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
|
if (list111.size() == 0) {
|
continue;
|
}
|
//遍历项目 判断是否有重大阳性 标记
|
for (TjOrderDetail tjOrderDetail11 : list111) {
|
customer.setIsPositive(tjOrderDetail11.getIsPositive());
|
if (tjOrderDetail11.getIsPositive()==1){
|
break;
|
}
|
}
|
List<TjOrderRemark> lists = remarkService.getTjOrderRemarkListByYjNum(order.getTjNumber());
|
if (null != lists && lists.size() > 0) {
|
StringBuilder stringBuilder = new StringBuilder();
|
for (TjOrderRemark remark : lists) {
|
TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
|
TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
|
if (one.getFlowingWaterId() != null) {
|
stringBuilder.append(byId.getProName()).append(";");
|
}
|
}
|
customer.setNotCheckeds(String.valueOf(stringBuilder));
|
if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
|
customer.setTjStatus(0L);
|
} else {
|
customer.setNotCheckeds("无");
|
customer.setTjStatus(1L);
|
}
|
if (order.getTjType().equals("1")) {
|
customer.setTjType("团体");
|
}
|
if (order.getTjType().equals("2")) {
|
customer.setTjType("个人");
|
}
|
customer.setTjTime(order.getCreateTime());
|
customer.setTjNumber(order.getTjNumber());
|
customer.setOrderId(order.getOrderId());
|
customer.setIsHz(order.getIsHz());
|
list11111.add(customer);
|
}
|
}
|
}
|
if (list11111.size() == 0) {
|
return AjaxResult.success("暂无数据");
|
}
|
Map<String, Object> map = new HashMap<>();
|
List<TjCustomer> customers = list11111.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
Collections.reverse(customers);
|
map.put("customers", customers);
|
map.put("total", list11111.size());
|
return AjaxResult.success(map);
|
} else {
|
return AjaxResult.success("暂无数据");
|
}
|
}
|
List<TjCustomer> customerLists = null;
|
if (type == 0) {
|
// customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
|
}
|
if (type == 1) {
|
// customerLists = redisCache.getCacheMapValue(ksId + "ks", "yj");
|
}
|
asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
|
AjaxResult map = getAjaxResult(type, page, pageSize, ksproList, customerLis);
|
if (map != null) return map;
|
return AjaxResult.success("暂时没有数据");
|
}
|
|
|
/**
|
* 影像检查页面列表
|
*/
|
@GetMapping("/yingXiangGetProList")
|
@ApiOperation("影像检查页面列表")
|
public AjaxResult yingXiangGetProList(@ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber,
|
@ApiParam(value = "0未检,1已检") @RequestParam(defaultValue = "0") Integer type,
|
@ApiParam(value = "姓名)") @RequestParam(required = false) String name,
|
@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page,
|
@ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize) {
|
String userId = SecurityUtils.getLoginUser().getUserId();
|
Integer ksId = null;
|
SysUser sysUser = null;
|
if (null != userId) {
|
sysUser = userService.getById(Long.valueOf(userId));
|
if (null != sysUser) {
|
ksId = Math.toIntExact(sysUser.getDeptId());
|
}
|
}
|
if (ksId == null) {
|
return AjaxResult.error("请输入科室id");
|
}
|
//根据当前登陆的人的科室id,获取该科室下的所有项目
|
List<Long> postIds = sysUser.getPostIds();
|
List<Long> ksproList = null;
|
if (postIds != null) {
|
for (Long postId : postIds) {
|
LambdaQueryWrapper<SysUserPost> wq111 = new LambdaQueryWrapper<>();
|
wq111.eq(SysUserPost::getPostId, postId);
|
SysUserPost one = userPostService.getOne(wq111);
|
if (one != null) {
|
SysPost byId = postService.getById(one.getPostId());
|
if (byId.getPostName().equals("录入员")) {
|
ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId));
|
|
}
|
}
|
}
|
} else {
|
ksproList = projectService.getKsTjProjectIdList();
|
}
|
//筛选影像的项目。
|
if (ksproList.size() == 0) {
|
return AjaxResult.error("请完善科室项目信息");
|
}
|
ksproList = ksproList.stream()
|
.filter(element -> element ==1633660948860522589L
|
// || element ==1633660948860522504L
|
// ||
|
// element ==1633660948860522507L|| element ==1633660948860522508L
|
// ||
|
// element ==1633660948860522515L|| element ==1633660948860522516L
|
// ||
|
// element ==1633660948860522517L|| element ==1633660948860522519L
|
// ||
|
// element ==1633660948860522524L|| element ==1633660948860522530L
|
// ||
|
// element ==1633660948860522531L|| element ==1633660948860522533L
|
)
|
.collect(Collectors.toList());
|
List<TjCustomer> customerLis = new ArrayList<>();
|
|
//根据体检号查
|
if (null != tjNumber) {
|
List<TjOrder> orderList = orderService.getOrderListByLikeTjNum(tjNumber);
|
if (null == orderList) {
|
return AjaxResult.success("暂时没有数据");
|
}
|
for (TjOrder order : orderList) {
|
List<TjOrderDetail> list = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
|
if (list.size() == 0) {
|
continue;
|
}
|
LambdaQueryWrapper<TjOrderRemark> wqs = new LambdaQueryWrapper<>();
|
wqs.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
|
wqs.in(TjOrderRemark::getType, 0,3);
|
List<TjOrderRemark> lists = remarkService.list(wqs);
|
TjCustomer customer = customerService.getById(order.getUserId());
|
//遍历项目 判断是否有重大阳性 标记
|
for (TjOrderDetail tjOrderDetail11 : list) {
|
customer.setIsPositive(tjOrderDetail11.getIsPositive());
|
if (tjOrderDetail11.getIsPositive()==1){
|
break;
|
}
|
}
|
customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
|
customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
|
customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
|
if (null != lists && lists.size() > 0) {
|
StringBuilder stringBuilder = new StringBuilder();
|
for (TjOrderRemark remark : lists) {
|
TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
|
TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
|
if (one.getFlowingWaterId() != null) {
|
stringBuilder.append(byId.getProName()).append(";");
|
}
|
|
}
|
customer.setNotCheckeds(String.valueOf(stringBuilder));
|
customer.setTjStatus(0L);
|
} else {
|
customer.setTjStatus(1L);
|
customer.setNotCheckeds("无");
|
}
|
if (order.getTjType().equals("1")) {
|
customer.setTjType("团体");
|
}
|
if (order.getTjType().equals("2")) {
|
customer.setTjType("个人");
|
}
|
customer.setTjTime(order.getCreateTime());
|
customer.setTjNumber(order.getTjNumber());
|
customer.setOrderId(order.getOrderId());
|
customer.setIsHz(order.getIsHz());
|
customerLis.add(customer);
|
|
}
|
if (customerLis.size() > 0) {
|
List<TjCustomer> customerList = customerLis.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
Collections.reverse(customerList);
|
Map<String, Object> map = new HashMap<>();
|
map.put("date", customerList);
|
map.put("total", customerLis.size());
|
return AjaxResult.success(map);
|
} else {
|
return AjaxResult.success("暂无数据");
|
}
|
}
|
|
//根据姓名查询
|
if (null != name && !"".equals(name)) {
|
LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
|
wq.like(TjCustomer::getCusName, name);
|
List<TjCustomer> list = customerService.list(wq);
|
List<TjCustomer> list11111 = new ArrayList<>();
|
if (null != list && list.size() > 0) {
|
for (TjCustomer customer : list) {
|
customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
|
customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
|
customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
|
List<TjOrder> orderList = orderService.getOrderListByCusId(String.valueOf(customer.getCusId()));
|
if (null != orderList && orderList.size() > 0) {
|
for (TjOrder order : orderList) {
|
List<TjOrderDetail> list111 = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
|
if (list111.size() == 0) {
|
continue;
|
}
|
//遍历项目 判断是否有重大阳性 标记
|
for (TjOrderDetail tjOrderDetail11 : list111) {
|
customer.setIsPositive(tjOrderDetail11.getIsPositive());
|
if (tjOrderDetail11.getIsPositive()==1){
|
break;
|
}
|
}
|
List<TjOrderRemark> lists = remarkService.getTjOrderRemarkListByYjNum(order.getTjNumber());
|
if (null != lists && lists.size() > 0) {
|
StringBuilder stringBuilder = new StringBuilder();
|
for (TjOrderRemark remark : lists) {
|
TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
|
TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
|
if (one.getFlowingWaterId() != null) {
|
stringBuilder.append(byId.getProName()).append(";");
|
}
|
}
|
customer.setNotCheckeds(String.valueOf(stringBuilder));
|
if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
|
customer.setTjStatus(0L);
|
} else {
|
customer.setNotCheckeds("无");
|
customer.setTjStatus(1L);
|
}
|
if (order.getTjType().equals("1")) {
|
customer.setTjType("团体");
|
}
|
if (order.getTjType().equals("2")) {
|
customer.setTjType("个人");
|
}
|
customer.setTjTime(order.getCreateTime());
|
customer.setTjNumber(order.getTjNumber());
|
customer.setOrderId(order.getOrderId());
|
customer.setIsHz(order.getIsHz());
|
list11111.add(customer);
|
}
|
}
|
}
|
if (list11111.size() == 0) {
|
return AjaxResult.success("暂无数据");
|
}
|
Map<String, Object> map = new HashMap<>();
|
List<TjCustomer> customers = list11111.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
Collections.reverse(customers);
|
map.put("customers", customers);
|
map.put("total", list11111.size());
|
return AjaxResult.success(map);
|
} else {
|
return AjaxResult.success("暂无数据");
|
}
|
}
|
List<TjCustomer> customerLists = null;
|
if (type == 0) {
|
// customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
|
}
|
if (type == 1) {
|
// customerLists = redisCache.getCacheMapValue(ksId + "ks", "yj");
|
}
|
// asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
|
// if (customerLists.size() > 0) {
|
// Collections.reverse(customerLists);
|
// List<TjCustomer> customerList = customerLists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
// Map<String, Object> map = new HashMap<>();
|
// map.put("date", customerList);
|
// map.put("total", customerLists.size());
|
// return AjaxResult.success(map);
|
// } else {
|
AjaxResult map = getAjaxResult(type, page, pageSize, ksproList, customerLis);
|
if (map != null) return map;
|
return AjaxResult.success("暂时没有数据");
|
// }
|
}
|
|
|
|
|
|
/**
|
* 查询客户体检历史记录
|
*
|
* @param cusId
|
* @return
|
*/
|
@GetMapping("/getHistory")
|
@ApiOperation("查询客户体检历史记录")
|
//@PreAuthorize("@ss.hasPermi('system:dept:getHistory')")
|
public AjaxResult getHistory(@RequestParam @ApiParam(value = "体检客户id") Long cusId) {
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
Integer ksId = null;
|
SysUser sysUser = userService.getById(userId);
|
if (null != sysUser) {
|
ksId = Math.toIntExact(sysUser.getDeptId());
|
}
|
if (ksId == null) {
|
return AjaxResult.error("请输入科室id");
|
}
|
LambdaQueryWrapper<TjProject> wq0 = new LambdaQueryWrapper<>();
|
if (!sysUser.getUserName().equals("10001")) {
|
wq0.eq(TjProject::getDeptId, ksId);
|
}
|
wq0.in(TjProject::getDeleted, 0, 1);
|
List<TjProject> projectList = projectService.list(wq0);
|
if (projectList == null || projectList.size() <= 0) {
|
return AjaxResult.error("请完善科室项目信息");
|
}
|
List<Long> ksproList = projectList.stream().map(TjProject::getProId).collect(Collectors.toList());
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrder::getUserId, cusId);
|
List<TjOrder> orderList = orderService.list(wq1);
|
if (null != orderList && orderList.size() > 0) {
|
List<TjOrder> orderList0 = new ArrayList<>();
|
for (TjOrder tjOrder : orderList) {
|
LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
|
wq2.eq(TjOrderDetail::getTjStatus, 1);
|
wq2.in(TjOrderDetail::getProId, ksproList);
|
List<TjOrderDetail> detailList = detailService.list(wq2);
|
tjOrder.setTjOrderList(detailList);
|
orderList0.add(tjOrder);
|
}
|
return AjaxResult.success(orderList0);
|
}
|
return AjaxResult.success("暂时没有历史数据");
|
}
|
|
|
/**
|
* 查询客户体检历史记录
|
*/
|
@GetMapping("/getHistoryDetail")
|
@ApiOperation("查询客户体检历史记录详情")
|
//@PreAuthorize("@ss.hasPermi('system:dept:getHistoryDetail')")
|
public AjaxResult getHistoryDetail(@RequestParam @ApiParam(value = "体检客户id") Integer orderId) {
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
Integer ksId = null;
|
SysUser sysUser = null;
|
if (null != userId) {
|
sysUser = userService.getById(userId);
|
if (null != sysUser) {
|
ksId = Math.toIntExact(sysUser.getDeptId());
|
}
|
}
|
if (ksId == null) {
|
return AjaxResult.error("请输入科室id");
|
}
|
LambdaQueryWrapper<TjProject> wq0 = new LambdaQueryWrapper<>();
|
if (!sysUser.getUserName().equals("10001")) {
|
wq0.eq(TjProject::getDeptId, ksId);
|
}
|
List<TjProject> projectList = projectService.list(wq0);
|
List<Long> ksproList = projectList.stream().map(TjProject::getProId).collect(Collectors.toList());
|
if (projectList == null) {
|
return AjaxResult.error("请完善科室项目信息");
|
}
|
LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrderDetail::getOrderId, orderId);
|
wq1.in(TjOrderDetail::getProId, ksproList);
|
wq1.eq(TjOrderDetail::getTjStatus, 1);
|
List<TjOrderDetail> detailList = detailService.list(wq1);
|
return AjaxResult.success(detailList);
|
}
|
|
|
/**
|
* 获取科室部门列表
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:dept:list')")
|
@GetMapping("/list")
|
@ApiOperation(value = "获取科室部门列表")
|
public AjaxResult list(SysDept dept) {
|
List<SysDept> depts = deptService.selectDeptList(dept);
|
if (depts != null) {
|
for (SysDept sysDept : depts) {
|
Long parentId = sysDept.getParentId();
|
if (parentId != 0) {
|
SysDept sysDept1 = deptService.getById(parentId);
|
String name = sysDept1.getDeptName();
|
if (null != name) sysDept.setParentName(name);
|
} else {
|
sysDept.setParentName(null);
|
}
|
}
|
}
|
return success(depts);
|
}
|
|
/**
|
* 查询科室部门列表(排除节点)
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:dept:excludeChild')")
|
@GetMapping("/list/exclude/{deptId}")
|
@ApiOperation(value = "查询科室部门列表(排除节点)")
|
public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) {
|
List<SysDept> depts = deptService.selectDeptList(new SysDept());
|
depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""));
|
return success(depts);
|
}
|
|
/**
|
* 根据科室部门编号获取详细信息
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:dept:getInfo')")
|
@GetMapping(value = "/{deptId}")
|
@ApiOperation(value = "根据科室部门编号获取详细信息")
|
public AjaxResult getInfo(@PathVariable Long deptId) {
|
deptService.checkDeptDataScope(deptId);
|
return success(deptService.selectDeptById(deptId));
|
}
|
|
/**
|
* 新增科室部门
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:dept:add')")
|
@Log(title = "部门管理", businessType = BusinessType.INSERT)
|
@PostMapping
|
@ApiOperation(value = "新增科室部门")
|
public AjaxResult add(@Validated @RequestBody SysDept dept) {
|
if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
|
return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
|
}
|
dept.setCreateBy(getUsername());
|
return toAjax(deptService.insertDept(dept));
|
}
|
|
/**
|
* 修改科室部门
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:dept:edit')")
|
@Log(title = "部门管理", businessType = BusinessType.UPDATE)
|
@PutMapping
|
@ApiOperation(value = "修改科室部门")
|
public AjaxResult edit(@Validated @RequestBody SysDept dept) {
|
Long deptId = dept.getDeptId();
|
deptService.checkDeptDataScope(deptId);
|
if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
|
return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
|
} else if (dept.getParentId().equals(deptId)) {
|
return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
|
} else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) {
|
return error("该部门包含未停用的子部门!");
|
}
|
dept.setUpdateBy(getUsername());
|
return toAjax(deptService.updateDept(dept));
|
}
|
|
/**
|
* 删除科室部门
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:dept:remove')")
|
@Log(title = "部门管理", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{deptId}")
|
@ApiOperation(value = "删除科室部门")
|
public AjaxResult remove(@PathVariable Long deptId) {
|
if (deptService.hasChildByDeptId(deptId)) {
|
return warn("存在下级部门,不允许删除");
|
}
|
if (deptService.checkDeptExistUser(deptId)) {
|
return warn("部门存在用户,不允许删除");
|
}
|
deptService.checkDeptDataScope(deptId);
|
return toAjax(deptService.deleteDeptById(deptId));
|
}
|
|
|
/**
|
* 提交该科室下客户体检结果接口
|
*/
|
@PostMapping("/addRemark")
|
@ApiOperation("提交该科室下客户体检结果接口")
|
@Transactional
|
public AjaxResult addRemark(@ApiParam(value = "体检父项目备注集合") @RequestBody List<TjOrderRemark> remarklList) {
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
SysUser sysUser = userService.getById(userId);
|
if (remarklList == null || remarklList.size() == 0) {
|
return AjaxResult.success("操作失败");
|
}
|
for (TjOrderRemark orderRemark : remarklList) {
|
List<String> summaryList = orderRemark.getSummaryList();
|
if (null != summaryList && summaryList.size()>0 && !summaryList.contains(null) ) {
|
orderRemark.setSummary(Joiner.on(";").join(orderRemark.getSummaryList()));
|
}
|
LambdaQueryWrapper<TjOrder> qw = new LambdaQueryWrapper<>();
|
qw.eq(TjOrder::getTjNumber, orderRemark.getTjNumber());
|
TjOrder order = orderService.getOne(qw);
|
orderRemark.setDeptId(sysUser.getDeptId());
|
if (orderRemark.getDoctorName() == null) {
|
orderRemark.setDoctorName(String.valueOf(sysUser.getUserId()));
|
}
|
List<TjOrderDetail> tjOrderDetailList = orderRemark.getTjOrderDetailList();
|
|
final TjCustomer byId1 = customerService.getById(order.getUserId());
|
if (null != tjOrderDetailList && tjOrderDetailList.size() > 0) {
|
//----------------------------------start
|
for (TjOrderDetail tjOrderDetail : tjOrderDetailList) {
|
final TjProject byId = projectService.getById(tjOrderDetail.getProId());
|
//给病种记录表存 方便统计病种和客户信息之间的关系
|
if (tjOrderDetail.getRulesList()!=null){
|
for (TjRules tjRules : tjOrderDetail.getRulesList()) {
|
TjOrderDetailRules orderDetailRules=new TjOrderDetailRules();
|
orderDetailRules.setAid(tjRules.getAid());
|
if (byId1!=null){
|
orderDetailRules.setCusName(byId1.getCusName());
|
orderDetailRules.setCusSex(String.valueOf(byId1.getCusSex()));
|
orderDetailRules.setCusAge(String.valueOf(MatchUtils.getAgeByIdCard(byId1.getCusIdcard())));
|
orderDetailRules.setCusId(String.valueOf(byId1.getCusId()));
|
}
|
orderDetailRules.setBingzhong(tjRules.getBingzhong());
|
orderDetailRules.setDoctorName(sysUser.getNickName());
|
orderDetailRules.setTjNumber(order.getTjNumber());
|
if (byId!=null){
|
orderDetailRules.setProId(String.valueOf(byId.getProId()));
|
orderDetailRules.setProName(byId.getProName());
|
}
|
orderDetailRules.setDoctorId(String.valueOf(sysUser.getUserId()));
|
tjOrderDetailRulesService.save(orderDetailRules);
|
}
|
}
|
}
|
asyncService.updateOrdeltile(tjOrderDetailList, sysUser, order);
|
LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
|
qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
|
qww.eq(TjOrderDetail::getProId, orderRemark.getProId());
|
TjOrderDetail detail = detailService.getOne(qww);
|
detail.setTjStatus(1L);
|
detailService.updateById(detail);
|
orderRemark.setType(1);
|
LambdaQueryWrapper<TjOrderRemark> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrderRemark::getTjNumber, orderRemark.getTjNumber());
|
wq1.eq(TjOrderRemark::getProId, orderRemark.getProId());
|
TjOrderRemark one = remarkService.getOne(wq1);
|
if (one == null) {
|
TjOrderRemark remark = new TjOrderRemark();
|
BeanUtils.copyBeanProp(orderRemark, remark);
|
remarkService.save(remark);
|
} else {
|
one.setRemark(orderRemark.getRemark());
|
if (null != summaryList && summaryList.size()>0 && !summaryList.contains(null)) {
|
one.setSummary(Joiner.on(";").join(orderRemark.getSummaryList()));
|
}
|
one.setDeptId(orderRemark.getDeptId());
|
one.setDoctorName(orderRemark.getDoctorName());
|
one.setType(1);
|
remarkService.updateById(one);
|
}
|
asyncService.updateCheckType(orderRemark.getTjNumber());
|
asyncService.getOrderDetailByProParentId(orderRemark.getTjNumber(),null, String.valueOf(orderRemark.getProId()));
|
return AjaxResult.success("操作成功");
|
}
|
asyncService.updateCheckType(orderRemark.getTjNumber());
|
asyncService.getOrderDetailByProParentId(orderRemark.getTjNumber(),null, String.valueOf(orderRemark.getProId()));
|
}
|
return AjaxResult.success("操作成功");
|
}
|
|
/**
|
* 医生点击体检信息详情(只显示父项目列表)
|
*
|
* @param tjNumber
|
* @return
|
*/
|
@GetMapping("/getParentList")
|
@ApiOperation(value = "医生点击体检信息详情(只显示父项目列表)")
|
public AjaxResult getParentList(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
|
String userId = SecurityUtils.getLoginUser().getUserId();
|
Integer ksId = null;
|
SysUser sysUser = null;
|
if (null != userId) {
|
sysUser = userService.getById(Long.valueOf(userId));
|
if (null == sysUser) {
|
return AjaxResult.error();
|
}
|
ksId = Math.toIntExact(sysUser.getDeptId());
|
}
|
//判断当前登陆的人是不是管理员。管理员可以看当前体检号下所有项目
|
// if (sysUser.getUserName().equals("10001")) {
|
// QueryWrapper<TjOrderRemark> wqq = new QueryWrapper<>();
|
// wqq.eq("tj_number", tjNumber);
|
// List<TjOrderRemark> listq = remarkService.list(wqq);
|
// if (listq.size() == 0) {
|
// return AjaxResult.error("该科室下无项目!");
|
// }
|
// for (TjOrderRemark tjOrderRemark : listq) {
|
// TjProject tjProjectq = projectService.getById(tjOrderRemark.getProId());
|
// if (null != tjProjectq) {
|
// tjOrderRemark.setProName(tjProjectq.getProName());
|
// }
|
// }
|
// return AjaxResult.success(listq);
|
// }
|
LambdaQueryWrapper<TjProject> wq2 = new LambdaQueryWrapper<>();
|
if ((null != sysUser && !sysUser.getUserName().equals("10001")) && 100!=ksId) {
|
wq2.eq(TjProject::getDeptId, ksId);
|
}
|
//判断该项目是否需要打印报告
|
wq2.eq(TjProject::getNeedReport,"Y");
|
List<TjProject> Deptlist = projectService.list(wq2);
|
List<Long> proIdList = Deptlist.stream().map(TjProject::getProId).collect(Collectors.toList());
|
if (Deptlist.size() == 0 || proIdList.size() == 0) {
|
return AjaxResult.error("该科室下无项目!");
|
}
|
LambdaQueryWrapper<TjOrder> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjOrder::getTjNumber, tjNumber);
|
TjOrder one = orderService.getOne(wqqq);
|
if (null != one) {
|
LambdaQueryWrapper<TjOrderDetail> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjOrderDetail::getOrderId, one.getOrderId());
|
wqq.isNotNull(TjOrderDetail::getFlowingWaterId);
|
wqq.in(TjOrderDetail::getProId, proIdList);
|
List<TjOrderDetail> detailList = detailService.list(wqq);
|
if (detailList != null && detailList.size() > 0) {
|
List<Long> collect = detailList.stream().map(TjOrderDetail::getProId).collect(Collectors.toList());
|
QueryWrapper<TjOrderRemark> wq = new QueryWrapper<>();
|
wq.eq("tj_number", tjNumber);
|
wq.in("pro_id", collect);
|
wq.ne("type", 2);
|
List<TjOrderRemark> list = remarkService.list(wq);
|
if (list.size() == 0) {
|
return AjaxResult.success("该科室下无项目!");
|
}
|
for (TjOrderRemark tjOrderRemark : list) {
|
TjProject tjProject = projectService.getById(tjOrderRemark.getProId());
|
if (null != tjProject) {
|
tjOrderRemark.setProName(tjProject.getProName());
|
}
|
}
|
return AjaxResult.success(list);
|
}
|
return AjaxResult.success();
|
}
|
return AjaxResult.error();
|
}
|
|
/**
|
* 点击父项目显示子项目详情
|
*
|
* @return
|
*/
|
@GetMapping("/getOrderDetailByProParentId")
|
@ApiOperation("点击父项目显示子项目详情")
|
public AjaxResult getOrderDetailByProParentId(@ApiParam(value = "父项目id") @RequestParam String proParentId,
|
@ApiParam(value = "体检号") @RequestParam String tjNumber) {
|
if (null == SecurityUtils.getLoginUser().getUserId() || null == userService.getById(SecurityUtils.getLoginUser().getUserId())) {
|
return AjaxResult.error("获取用户信息错误");
|
}
|
|
// if(redisCache.hasHKey("getOrderDetailByProParentId"+tjNumber,proParentId)){
|
// Map<String, Object> mapValue = redisCache.getCacheMapValue("getOrderDetailByProParentId" + tjNumber, proParentId);
|
// return AjaxResult.success(mapValue);
|
// }
|
|
TjOrderRemark remark = remarkService.getTjOrderRemarkByTjNumAndProParentId(tjNumber, proParentId);
|
List<TjProject> proParentList = projectService.getTjProjectListBySoneId(proParentId);
|
if (null == proParentList || proParentList.size()==0) {
|
Map<String, Object> map = new HashMap<>();
|
map.put("xiaoJieIds", null);
|
map.put("sons", projectService.list(new LambdaQueryWrapper<TjProject>().eq(TjProject::getProId,proParentId)));
|
map.put("xiaoJie", null);
|
map.put("remark", remark.getRemark());
|
return AjaxResult.success(map);
|
}
|
List<Long> proParentIdList = proParentList.stream().map(TjProject::getProId).collect(Collectors.toList());
|
TjOrder one = orderService.getOrderByTjNum(tjNumber);
|
if (null == one) {
|
return AjaxResult.success("该用户暂时没有体检数据");
|
}
|
List<TjOrderDetail> tjOrderDetails = detailService.getTjOrderDetailListInProParentIdList(String.valueOf(one.getOrderId()), proParentIdList);
|
TjCustomer customer = tjCustomerService.getById(one.getUserId());
|
if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
|
for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
|
TjProject project = projectService.getById(tjOrderDetail.getProId());
|
//判断该项目是否需要打印报告
|
if ("N".equals(project.getNeedReport())){
|
continue;
|
}
|
//病种回显
|
// LambdaQueryWrapper<TjOrderDetailRules> wq=new LambdaQueryWrapper<>();
|
// wq.eq(TjOrderDetailRules::getProId,project.getProId());
|
// wq.eq(TjOrderDetailRules::getTjNumber,tjNumber);
|
// List<TjOrderDetailRules> list = tjOrderDetailRulesService.list(wq);
|
// List<TjRules> res=new ArrayList<>();
|
// for (TjOrderDetailRules orderDetailRules : list) {
|
// final TjRules byId = tjRulesService.getById(orderDetailRules.getAid());
|
// res.add(byId);
|
// }
|
List<TjRules> rulesList = tjRulesService.getTjRulesListByTjNumAndProId(tjNumber, tjOrderDetail.getProId());
|
tjOrderDetail.setRulesList(rulesList);
|
|
//查标准和单位----start
|
List<TjStandard> list26 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
|
if (list26.size() == 0) {
|
project.setProMetering("/");
|
project.setProScope("/");
|
} else if (list26.size() == 1) {
|
project.setProMetering(list26.get(0).getCompany() == null ? " " : list26.get(0).getCompany());
|
project.setProScope((list26.get(0).getTjStandardLtValue() == null ? " " : list26.get(0).getTjStandardLtValue()) + "-" + (list26.get(0).getTjStandardGtValue() == null ? " " : list26.get(0).getTjStandardGtValue()));
|
} else {
|
Long cusSex = customer.getCusSex();
|
Date cusBrithday = customer.getCusBrithday();
|
int age = DateUtil.ageOfNow(cusBrithday);
|
for (TjStandard tjStandard : list26) {
|
LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>();
|
if (tjStandard.getTjSex() != null) {
|
wq8.eq(TjStandard::getTjSex, cusSex);
|
}
|
if (tjStandard.getTjType() != null) {
|
wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(age));
|
}
|
TjStandard standard = tjStandardService.getOne(wq8);
|
project.setProMetering(standard.getCompany());
|
project.setProScope((standard.getTjStandardLtValue() == null ? " " : standard.getTjStandardLtValue()) + "-" + (standard.getTjStandardGtValue() == null ? " " : standard.getTjStandardGtValue()));
|
}
|
}
|
//查标准和单位-----end
|
tjOrderDetail.setProject(project);
|
List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(project.getProId()));
|
if (list2.size() == 0) {
|
tjOrderDetail.setStandard(null);
|
} else if (list2.size() == 1) {
|
tjOrderDetail.setStandard(list2.get(0));
|
} else {
|
for (TjStandard tjStandard : list2) {
|
LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>();
|
if (tjStandard.getTjSex() != null) {
|
wq8.eq(TjStandard::getTjSex, customer.getCusSex());
|
}
|
if (tjStandard.getTjType() != null) {
|
wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday())));
|
}
|
TjStandard standard = tjStandardService.getOne(wq8);
|
tjOrderDetail.setStandard(standard);
|
}
|
}
|
if (null != remark.getDoctorName()) {
|
//lg0412
|
SysUser byId = userService.getById(remark.getDoctorName());
|
if (byId != null) {
|
tjOrderDetail.setDoctorName(userService.getById(remark.getDoctorName()).getNickName());
|
}
|
} else {
|
tjOrderDetail.setDoctorName(null);
|
}
|
}
|
}
|
Map<String, Object> map = new HashMap<>();
|
List<TjAdvice> adviceList = new ArrayList<>();
|
if (null != remark) {
|
String[] strings = StringUtils.split(remark.getSummary(), ";");
|
// if (null != strings && strings.length > 0) {
|
// for (String string : strings) {
|
// adviceList.add(tjAdviceService.getById(string));
|
// }
|
// }
|
if(null !=strings && strings.length>0){
|
List<TjAdvice> list = tjAdviceService.getAdviceStringByIds(strings);
|
adviceList.addAll(list);
|
}
|
map.put("xiaoJieIds", StringUtils.split(remark.getSummary(), ";"));
|
} else {
|
map.put("xiaoJieIds", null);
|
}
|
map.put("sons", tjOrderDetails);
|
map.put("xiaoJie", adviceList);
|
map.put("remark", remark.getRemark());
|
|
// asyncService.getOrderDetailByProParentId(tjNumber,map,proParentId);
|
return AjaxResult.success(map);
|
}
|
|
/**
|
* 状态修改
|
*/
|
@PutMapping("/changeStatus")
|
@ApiOperation("部门状态修改")
|
public AjaxResult changeStatus(@RequestBody SysDept dept) {
|
//判断是启用还是
|
if ("1".equals(dept.getStatus())) {
|
//判断用户表中有没有人在该科室下
|
LambdaQueryWrapper<SysUser> wq = new LambdaQueryWrapper<>();
|
wq.eq(SysUser::getDeptId, dept.getDeptId());
|
List<SysUser> list = userService.list(wq);
|
if (list.size() != 0) {
|
return AjaxResult.error("该科室下有工作人员,不能停用!");
|
}
|
}
|
dept.setUpdateBy(getUsername());
|
int i = deptService.updateDeptStatus(dept);
|
if (i == 0) {
|
return AjaxResult.error("修改失败");
|
}
|
return AjaxResult.success("修改成功");
|
|
}
|
|
|
/**
|
* 根据项目id获取建议
|
*/
|
@GetMapping("/getDeptAdvice/{proId}")
|
@ApiOperation(value = "根据项目id获取建议")
|
public AjaxResult getDeptAdvice(@ApiParam(value = "父项目项目id") @PathVariable String proId) {
|
List<TjAdvice> list = new ArrayList<>();
|
LambdaQueryWrapper<TjAdvice> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjAdvice::getProId, proId);
|
List<TjAdvice> list1 = tjAdviceService.list(wq1);
|
//如果没有项目id 就返回所有的建议集合
|
if (list1.size() == 0) {
|
return AjaxResult.success(tjAdviceService.list());
|
}
|
for (TjAdvice tjAdvice : list1) {
|
list.add(tjAdvice);
|
}
|
return AjaxResult.success(list);
|
}
|
|
/**
|
* 获取部门树列表
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:dept:list')")
|
@GetMapping("/deptTree")
|
@ApiOperation("获取部门树列表")
|
public AjaxResult deptTree(SysDept dept) {
|
return success(deptService.selectDeptTreeList(dept));
|
}
|
|
|
/**
|
* 获取子科室部门列表
|
*/
|
@GetMapping("/getChildList")
|
@ApiOperation(value = "获取子科室部门列表")
|
public AjaxResult getChildList(String deptName) {
|
LambdaQueryWrapper<SysDept> wq=new LambdaQueryWrapper<>();
|
wq.ne(SysDept::getParentId,0);
|
if (deptName!=null){
|
wq.like(SysDept::getDeptName,deptName);
|
}
|
List<SysDept> depts = deptService.list(wq);
|
return success(depts);
|
}
|
|
}
|