| | |
| | | import com.ltkj.common.core.domain.AjaxResult; |
| | | import com.ltkj.common.core.domain.entity.SysDept; |
| | | import com.ltkj.common.core.domain.entity.SysUser; |
| | | import com.ltkj.common.core.redis.RedisCache; |
| | | import com.ltkj.common.utils.DateUtils; |
| | | import com.ltkj.hosp.domain.*; |
| | | import com.ltkj.hosp.dto.TjChartVo; |
| | | import com.ltkj.hosp.service.*; |
| | | import com.ltkj.hosp.vodomain.*; |
| | | import com.ltkj.system.service.ISysDeptService; |
| | |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import io.swagger.models.auth.In; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.text.DateFormat; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | |
| | | @Resource |
| | | private ITjProjectService projectService; |
| | | @Resource |
| | | private RedisCache redisCache; |
| | | @Resource |
| | | private TjAsyncService asyncService; |
| | | @Resource |
| | | private ISysDeptService deptService; |
| | | @Resource |
| | | private ISysUserService userService; |
| | | @Resource |
| | | private ITjOrderRemarkService remarkService; |
| | | |
| | | @Resource |
| | | private ITjFlowingWaterService tjFlowingWaterService; |
| | | |
| | | |
| | | @GetMapping("/GetChartByDate") |
| | |
| | | if (s.equals(tjOrder.getCheckDoctor()) && tjOrder.getReleaseTime() != null) { |
| | | releaseCount++; |
| | | } |
| | | // TODO: 2023/3/31 发送短信/邮件统计 |
| | | if (s.equals(tjOrder.getCheckDoctor()) && "1".equals(tjOrder.getSendEmail())) { |
| | | messageCount++; |
| | | } |
| | |
| | | @GetMapping("/getLineChart") |
| | | @ApiOperation(value = "首页折线图数据") |
| | | public AjaxResult getLineChart() { |
| | | List<Map<Object, Object>> line = orderService.getLine(); |
| | | asyncService.getLineChart(); |
| | | if(redisCache.hasKey("getLineChart")){ |
| | | return redisCache.getCacheObject("getLineChart"); |
| | | } |
| | | return getResult(); |
| | | } |
| | | |
| | | private AjaxResult getResult() { |
| | | // List<Map<Object, Object>> line = orderService.getLine(); |
| | | List<LineChartsVo> line = orderService.getLine(); |
| | | Collections.reverse(line); |
| | | return AjaxResult.success("折线图数据", line); |
| | | } |
| | |
| | | @GetMapping("/getPieChart") |
| | | @ApiOperation(value = "首页饼状图登记人数接口") |
| | | public AjaxResult getPieChart() { |
| | | asyncService.getPieChart(); |
| | | if(redisCache.hasKey("getPieChart")){ |
| | | return redisCache.getCacheObject("getPieChart"); |
| | | } |
| | | return getAjaxResult(); |
| | | } |
| | | |
| | | private AjaxResult getAjaxResult() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | //获取体检登记数 |
| | |
| | | } else { |
| | | map.put("tjyc", 0); |
| | | } |
| | | |
| | | return AjaxResult.success(map); |
| | | } |
| | | |
| | |
| | | public Integer RegisterToday() { |
| | | return orderService.count(new QueryWrapper<TjOrder>().between("create_time", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()))); |
| | | } |
| | | |
| | | |
| | | @GetMapping("/getChartByDeptId") |
| | | @ApiOperation("根据部门查询体检统计") |
| | | public AjaxResult getChartByDeptId(@RequestParam Long deptId, |
| | | @ApiParam(value = "开始时间") @RequestParam(required = false) String beginTime, |
| | | @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime) { |
| | | List<TjChartVo> res=new ArrayList(); |
| | | LambdaQueryWrapper<TjOrderRemark> wq0 = new LambdaQueryWrapper<>(); |
| | | wq0.eq(TjOrderRemark::getDeptId, deptId); |
| | | List<TjOrderRemark> remarkList = remarkService.list(wq0); |
| | | |
| | | List<Long> proIdList = remarkList.stream().map(TjOrderRemark::getProId).distinct().collect(Collectors.toList()); |
| | | for (Long aLong : proIdList) { |
| | | LambdaQueryWrapper<TjOrderRemark> wq00 = new LambdaQueryWrapper<>(); |
| | | wq00.eq(TjOrderRemark::getDeptId, deptId); |
| | | List<TjOrderRemark> remarkList1 = remarkService.list(wq00); |
| | | Integer num1=0; |
| | | Integer num2=0; |
| | | Integer num3=0; |
| | | Integer num4=0; |
| | | TjChartVo chartVo=new TjChartVo(); |
| | | chartVo.setDeptId(deptId); |
| | | chartVo.setDeptName(deptService.getById(deptId).getDeptName()); |
| | | for (TjOrderRemark tjOrderRemark : remarkList1) { |
| | | if (tjOrderRemark.getType()==1){ |
| | | num1+=1; |
| | | }else if (tjOrderRemark.getType()==0){ |
| | | num1+=1; |
| | | }else if (tjOrderRemark.getType()==3){ |
| | | num1+=1; |
| | | }else if (tjOrderRemark.getType()==2){ |
| | | num1+=1; |
| | | } |
| | | } |
| | | chartVo.setYijianNum(String.valueOf(num1)); |
| | | chartVo.setWeijianNum(String.valueOf(num2)); |
| | | chartVo.setYanqiNum(String.valueOf(num3)); |
| | | chartVo.setQijianNum(String.valueOf(num4)); |
| | | res.add(chartVo); |
| | | } |
| | | return AjaxResult.success(res); |
| | | } |
| | | |
| | | |
| | | @GetMapping("/getTiaoByDeptId") |
| | | @ApiOperation("根据部门和时间段查询体检统计图表") |
| | | public AjaxResult getTiaoByDeptId(@RequestParam Long deptId, |
| | | @ApiParam(value = "开始时间") @RequestParam(required = false) String beginTime, |
| | | @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime) { |
| | | |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | @GetMapping("/getTiaoNumsByDate") |
| | | @ApiOperation("根据时间查询体检统计图表") |
| | | public AjaxResult getTiaoNumsByDate(@ApiParam(value = "开始时间")String beginTime, |
| | | @ApiParam(value = "结束时间") String endTime) { |
| | | TjChartVo chartVo=new TjChartVo(); |
| | | LambdaQueryWrapper<TjOrder> wqq = new LambdaQueryWrapper<>(); |
| | | wqq.gt(TjOrder::getStatus,200); |
| | | if (null != beginTime && null != endTime) { |
| | | wqq.between(TjOrder::getCreateTime, beginTime, endTime); |
| | | } |
| | | final List<TjOrder> list = orderService.list(wqq); |
| | | chartVo.setTijianNum(list.size()); |
| | | |
| | | Integer boys=0; |
| | | Integer girls=0; |
| | | Integer person=0; |
| | | Integer tuan=0; |
| | | BigDecimal shouyi=new BigDecimal(0); |
| | | for (TjOrder tjOrder : list) { |
| | | final TjCustomer byId = customerService.getById(tjOrder.getUserId()); |
| | | if (byId.getCusSex()==0){ |
| | | boys+=1; |
| | | }else if (byId.getCusSex()==1){ |
| | | girls+=1; |
| | | } |
| | | |
| | | if ("2".equals(tjOrder.getTjType())){ |
| | | person+=1; |
| | | } else if ("1".equals(tjOrder.getTjType())) { |
| | | tuan+=1; |
| | | } |
| | | //计算收益 |
| | | LambdaQueryWrapper<TjFlowingWater> wqqq=new LambdaQueryWrapper<>(); |
| | | wqqq.eq(TjFlowingWater::getOrderId,tjOrder.getOrderId()); |
| | | final List<TjFlowingWater> list1 = tjFlowingWaterService.list(wqqq); |
| | | for (TjFlowingWater tjFlowingWater : list1) { |
| | | shouyi.add(tjFlowingWater.getPaidIn()); |
| | | } |
| | | } |
| | | chartVo.setBoysNum(boys); |
| | | chartVo.setGirlsNum(girls); |
| | | chartVo.setPersonNum(person); |
| | | chartVo.setTuanDuiNum(tuan); |
| | | chartVo.setMoneysNum(shouyi); |
| | | return AjaxResult.success(chartVo); |
| | | } |
| | | |
| | | |
| | | @GetMapping("/getListByTjNumber") |
| | | @ApiOperation("根据体检号下的项目列表") |
| | | public AjaxResult getListByTjNumber(@RequestParam String tjNumber) { |
| | | LambdaQueryWrapper<TjOrderRemark> wq0 = new LambdaQueryWrapper<>(); |
| | | wq0.eq(TjOrderRemark::getTjNumber, tjNumber); |
| | | List<TjOrderRemark> remarkList = remarkService.list(wq0); |
| | | return AjaxResult.success(remarkList); |
| | | } |
| | | |
| | | |
| | | } |