| | |
| | | import com.ruoyi.system.domain.SysConfig; |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.domain.VO.ServiceSubtaskVO; |
| | | import com.smartor.domain.entity.ServiceSubtaskEntity; |
| | | import com.smartor.mapper.PatMedInhospMapper; |
| | | import com.smartor.mapper.PatMedOuthospMapper; |
| | | import com.smartor.service.IServiceSubtaskRecordService; |
| | |
| | | * 查询患者随访信息 |
| | | */ |
| | | @ApiOperation("查询患者随访信息") |
| | | //@PreAuthorize("@ss.hasPermi('system:taskcall:list')") |
| | | // @Cacheable(value = "patItem", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskVO.toString().getBytes())", unless = "#result == null or #result.isEmpty()") |
| | | @PostMapping("/patItem") |
| | | public Map<String, Object> patItem(@RequestBody ServiceSubtaskVO serviceSubtaskVO) { |
| | | if (serviceSubtaskVO.getLeavehospitaldistrictcodes() != null && serviceSubtaskVO.getLeavehospitaldistrictcodes().size() > 10) { |
| | | throw new BaseException("病区查询数据不能超过10个"); |
| | | } |
| | | if (serviceSubtaskVO.getLeaveldeptcodes() != null && serviceSubtaskVO.getLeaveldeptcodes().size() > 10) { |
| | | throw new BaseException("科室查询数据不能超过10个"); |
| | | } |
| | | // if (serviceSubtaskVO.getLeavehospitaldistrictcodes() != null && serviceSubtaskVO.getLeavehospitaldistrictcodes().size() > 10) { |
| | | // throw new BaseException("病区查询数量不能超过10个"); |
| | | // } |
| | | // if (serviceSubtaskVO.getLeaveldeptcodes() != null && serviceSubtaskVO.getLeaveldeptcodes().size() > 10) { |
| | | // throw new BaseException("科室查询数量不能超过10个"); |
| | | // } |
| | | |
| | | serviceSubtaskVO.setPageNum(PageUtils.getOffset(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize())); |
| | | List<ServiceSubtask> serviceSubtaskList = null; |
| | | List<ServiceSubtaskRes> serviceSubtaskList = null; |
| | | LoginUser loginUser = getLoginUser(); |
| | | SysUser user = loginUser.getUser(); |
| | | serviceSubtaskVO.setOrgid(user.getOrgid()); |
| | | ServiceSubtaskEntity serviceSubtaskEntity = null; |
| | | if (serviceSubtaskVO != null) { |
| | | serviceSubtaskList = serviceSubtaskService.patItem(serviceSubtaskVO); |
| | | serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class); |
| | | serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null); |
| | | serviceSubtaskList = serviceSubtaskService.patItem(serviceSubtaskEntity); |
| | | } |
| | | for (ServiceSubtask serviceSubtask : serviceSubtaskList) { |
| | | for (ServiceSubtaskRes serviceSubtask : serviceSubtaskList) { |
| | | ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); |
| | | serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); |
| | | serviceSubtaskRecord.setOrgid(serviceSubtask.getOrgid()); |
| | |
| | | } |
| | | |
| | | // patItemCount 调用redisCache记录统计数据 |
| | | Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO); |
| | | Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskEntity); |
| | | map.put("serviceSubtaskList", serviceSubtaskList); |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | list.add(map); |
| | | |
| | | serviceSubtaskVO.setPageNum(null); |
| | | serviceSubtaskVO.setPageSize(null); |
| | | List<ServiceSubtask> serviceSubtasks = serviceSubtaskService.patItem(serviceSubtaskVO); |
| | | List<ServiceSubtaskRes> serviceSubtasks = serviceSubtaskService.patItem(serviceSubtaskEntity); |
| | | |
| | | return getDataTable3(CollectionUtils.isNotEmpty(serviceSubtasks) ? serviceSubtasks.size() : 0L, list); |
| | | } |
| | |
| | | @PostMapping("/patItemCount") |
| | | public Map<String, Object> patItemCount(@RequestBody ServiceSubtaskVO serviceSubtaskVO) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class); |
| | | serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null); |
| | | |
| | | // 通过redis记录结果 |
| | | Map<String, Object> redisMap = new HashMap<>(); |
| | | LoginUser loginUser = getLoginUser(); |
| | |
| | | redisMap = redisCache.getCacheObject(userId + "patItemCount"); |
| | | //记录是否有可用缓存 |
| | | Boolean redisFlag = false; |
| | | ServiceSubtaskVO oldCondition = null; |
| | | ServiceSubtaskEntity oldCondition = null; |
| | | if (MapUtils.isNotEmpty(redisMap)) { |
| | | oldCondition = (ServiceSubtaskVO) redisMap.get("searchCondition"); |
| | | oldCondition = (ServiceSubtaskEntity) redisMap.get("searchCondition"); |
| | | // 比较查询条件是否一致 |
| | | if (ObjectUtils.isNotEmpty(oldCondition) && isSameCondition(oldCondition, serviceSubtaskVO)) { |
| | | if (ObjectUtils.isNotEmpty(oldCondition) && isSameCondition(oldCondition, serviceSubtaskEntity)) { |
| | | // 条件一致,使用缓存 |
| | | redisFlag = true; |
| | | map = redisMap; |
| | |
| | | |
| | | // 如果没有缓存或者条件不一致,重新查询 |
| | | if (!redisFlag) { |
| | | map = serviceSubtaskService.patItemCount(serviceSubtaskVO); |
| | | map.put("searchCondition", serviceSubtaskVO); |
| | | map = serviceSubtaskService.patItemCount(serviceSubtaskEntity); |
| | | map.put("searchCondition", serviceSubtaskEntity); |
| | | redisCache.setCacheObject(userId + "patItemCount", map, 120, TimeUnit.MINUTES); |
| | | } |
| | | } |
| | |
| | | * 比较两个ServiceSubtaskVO的查询条件是否一致 |
| | | * 使用反射比较所有字段,排除分页参数和无关字段 |
| | | */ |
| | | private boolean isSameCondition(ServiceSubtaskVO oldCondition, ServiceSubtaskVO newCondition) { |
| | | private boolean isSameCondition(ServiceSubtaskEntity oldCondition, ServiceSubtaskEntity newCondition) { |
| | | // 使用ReflectUtils的通用方法比较,排除分页参数等无关字段 |
| | | return ReflectUtils.equalsAllFields(oldCondition, newCondition, |
| | | // 排除的字段:分页参数、序列化ID、时间戳等 |
| | |
| | | //@PreAuthorize("@ss.hasPermi('system:taskcall:export')") |
| | | @Log(title = "单一任务(随访宣教)", businessType = BusinessType.EXPORT) |
| | | @PostMapping("/patItemExport") |
| | | public void patItemExport(HttpServletResponse response, ServiceSubtaskVO serviceSubtaskVO) { |
| | | List<ServiceSubtask> serviceSubtaskList = null; |
| | | public void patItemExport(HttpServletResponse response, ServiceSubtaskEntity serviceSubtaskVO) { |
| | | List<ServiceSubtaskRes> serviceSubtaskList = null; |
| | | if (serviceSubtaskVO != null) { |
| | | if (serviceSubtaskVO.getPageNum() != null && serviceSubtaskVO.getPageSize() != null) |
| | | PageUtils.startPageByPost(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize()); |
| | |
| | | @PostMapping("/patItemByCondition") |
| | | public TableDataInfo patItemByCondition(@RequestBody ServiceSubtaskVO serviceSubtaskVO) { |
| | | List<ServiceSubtask> serviceSubtaskList = null; |
| | | if (serviceSubtaskVO != null) { |
| | | PageUtils.startPageByPost(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize()); |
| | | serviceSubtaskList = serviceSubtaskService.patItem2(serviceSubtaskVO); |
| | | ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class); |
| | | serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null); |
| | | if (serviceSubtaskEntity != null) { |
| | | PageUtils.startPageByPost(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize()); |
| | | |
| | | serviceSubtaskList = serviceSubtaskService.patItem2(serviceSubtaskEntity); |
| | | } |
| | | for (ServiceSubtask serviceSubtask : serviceSubtaskList) { |
| | | ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); |
| | |
| | | } |
| | | // patItemCount 调用redisCache记录统计数据 |
| | | // Map<String, Object> map = patItemCount(serviceSubtaskVO); |
| | | Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO); |
| | | Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskEntity); |
| | | |
| | | map.put("serviceSubtaskList", serviceSubtaskList); |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | |
| | | public void doSelect() { |
| | | serviceSubtaskVO.setPageNum(null); |
| | | serviceSubtaskVO.setPageSize(null); |
| | | serviceSubtaskService.patItem2(serviceSubtaskVO); |
| | | serviceSubtaskService.patItem2(serviceSubtaskEntity); |
| | | } |
| | | }); |
| | | return getDataTable2(total, list); |
| | |
| | | @Log(title = "单一任务(随访宣教)", businessType = BusinessType.EXPORT) |
| | | @PostMapping("/export") |
| | | public void export(HttpServletResponse response, ServiceSubtask serviceSubtask) { |
| | | ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class); |
| | | ServiceSubtaskEntity serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskEntity.class); |
| | | List<ServiceSubtask> list = serviceSubtaskService.selectServiceSubtaskList(serviceSubtaskVO); |
| | | ExcelUtil<ServiceSubtask> util = new ExcelUtil<ServiceSubtask>(ServiceSubtask.class); |
| | | util.exportExcel(response, list, "单一任务(随访)数据"); |
| | |
| | | @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid") |
| | | @PostMapping("/querySubtaskList") |
| | | public AjaxResult querySubtaskList(@RequestBody ServiceSubtaskVO serviceSubtaskVO) { |
| | | PageUtils.startPageByPost(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize()); |
| | | serviceSubtaskService.selectServiceSubtaskList(serviceSubtaskVO); |
| | | return success(serviceSubtaskService.selectServiceSubtaskList(serviceSubtaskVO)); |
| | | ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class); |
| | | serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null); |
| | | PageUtils.startPageByPost(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize()); |
| | | serviceSubtaskService.selectServiceSubtaskList(serviceSubtaskEntity); |
| | | return success(serviceSubtaskService.selectServiceSubtaskList(serviceSubtaskEntity)); |
| | | } |
| | | |
| | | |
| | |
| | | @Log(title = "再次随访数据查询", businessType = BusinessType.EXPORT) |
| | | @PostMapping("/querySubtaskListAgain") |
| | | public TableDataInfo querySubtaskListAgain(@RequestBody ServiceSubtaskVO serviceSubtaskVO) { |
| | | PageUtils.startPageByPost(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize()); |
| | | serviceSubtaskService.selectServiceSubtaskListAgain(serviceSubtaskVO); |
| | | return getDataTable(serviceSubtaskService.selectServiceSubtaskListAgain(serviceSubtaskVO)); |
| | | ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class); |
| | | serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null); |
| | | PageUtils.startPageByPost(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize()); |
| | | serviceSubtaskService.selectServiceSubtaskListAgain(serviceSubtaskEntity); |
| | | return getDataTable(serviceSubtaskService.selectServiceSubtaskListAgain(serviceSubtaskEntity)); |
| | | } |
| | | |
| | | |
| | |
| | | @ApiOperation("根据条件查询任务信息") |
| | | @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid") |
| | | @PostMapping("/queryTaskByCondition") |
| | | public AjaxResult queryTaskByCondition(@RequestBody ServiceSubtaskVO ivrTaskcallVO) { |
| | | public AjaxResult queryTaskByCondition(@RequestBody ServiceSubtaskVO serviceSubtaskVO) { |
| | | //根据入参查询信息 |
| | | ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(ivrTaskcallVO, ServiceSubtask.class); |
| | | ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtask.class); |
| | | serviceSubtask.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null); |
| | | ServiceTaskVO ivrTaskVO = serviceSubtaskService.queryTaskByCondition(serviceSubtask); |
| | | return success(ivrTaskVO); |
| | | } |