| | |
| | | import com.ltkj.common.core.domain.AjaxResult; |
| | | 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.StringUtils; |
| | | import com.ltkj.framework.config.MatchUtils; |
| | | import com.ltkj.hosp.domain.*; |
| | | import com.ltkj.hosp.service.*; |
| | | import com.ltkj.hosp.vodomain.AddNewReservationConfirm; |
| | | import com.ltkj.hosp.vodomain.LineChartsVo; |
| | | import com.ltkj.hosp.vodomain.PieChartVo; |
| | | import com.ltkj.hosp.vodomain.QjDomainVo; |
| | | import com.ltkj.mall.mallOrderUtils.TjConstants; |
| | | import com.ltkj.system.service.ISysUserService; |
| | |
| | | import java.util.*; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | import java.util.stream.Collectors; |
| | |
| | | private ITjPrintOrderService printOrderService; |
| | | @Resource |
| | | private IDictSfxmService dictSfxmService; |
| | | @Autowired |
| | | private ITjRulesService tjRulesService; |
| | | |
| | | |
| | | @Override |
| | |
| | | @Async("async") |
| | | public void collectFees(TjOrder order, List<TjConsumables> list2, List<TbTransition> tbTransitionList, SysUser sysUser, String discount) { |
| | | orderRemarkService.deletedOrderRemarkByTjNum(order.getTjNumber()); |
| | | redisCache.deleteObject("getOrderDetailByProParentId"+order.getTjNumber()); |
| | | for (TbTransition transition : tbTransitionList) { |
| | | transition.setNowPrice(transition.getOrdPrice().multiply(BigDecimal.valueOf(Double.parseDouble(discount)).divide(BigDecimal.valueOf(10)))); |
| | | transitionService.updateById(transition); |
| | |
| | | tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId())); |
| | | tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId())); |
| | | orderRemarkService.save(tjOrderRemark); |
| | | Map<String, Object> map = getOrderDetailByProParentId(String.valueOf(parentProId), order.getTjNumber()); |
| | | redisCache.setCacheMapValue("getOrderDetailByProParentId"+order.getTjNumber(),String.valueOf(parentProId),map); |
| | | } |
| | | } |
| | | } |
| | |
| | | wq2.eq(TjSampling::getTjNum,tjNum); |
| | | wq2.eq(TjSampling::getProId,refundPro.getProId()); |
| | | samplingService.remove(wq2); |
| | | redisCache.deleteCacheMapValue("getOrderDetailByProParentId"+tjNum, String.valueOf(refundPro.getProId())); |
| | | } |
| | | } |
| | | |
| | |
| | | td.setCreateId(String.valueOf(sysUser.getUserId())); |
| | | td.setUpdateId(String.valueOf(sysUser.getUserId())); |
| | | discardInspectionService.save(td); |
| | | redisCache.deleteCacheMapValue("getOrderDetailByProParentId"+domainVo.getTjNumber(),String.valueOf(remark.getProId())); |
| | | } |
| | | |
| | | LambdaQueryWrapper<TjProject>wq1=new LambdaQueryWrapper<>(); |
| | |
| | | @Override |
| | | @Async("async") |
| | | public void saveNewReservationConfirm(List<TjReservation> rightList) { |
| | | long l = System.currentTimeMillis(); |
| | | if(null !=rightList && rightList.size()>0){ |
| | | //创建线程池 |
| | | ExecutorService threadPool = Executors.newFixedThreadPool(rightList.size()); |
| | |
| | | }); |
| | | } |
| | | } |
| | | long ll = System.currentTimeMillis(); |
| | | |
| | | System.out.println("这段代码执行时间为"+ (ll-l)); |
| | | } |
| | | |
| | | @Override |
| | | @Async("async") |
| | | public void updateCheckType(String tjNum) { |
| | | // AjaxResult ajaxResult = getAjaxResult(tjNum); |
| | | redisCache.setCacheMapValue("updateCheckType"+tjNum,tjNum,getAjaxResult(tjNum)); |
| | | redisCache.setHashKeyExpireTime("updateCheckType"+tjNum,7L, TimeUnit.DAYS); |
| | | } |
| | | |
| | | @Override |
| | |
| | | public void getDictSfxms() { |
| | | List<DictSfxm> dictSfxm = getDictSfxm(); |
| | | redisCache.setCacheObject("getDictSfxms",dictSfxm); |
| | | } |
| | | |
| | | @Override |
| | | @Async("async") |
| | | public void getOrderDetailByProParentId(String tjNumber,Map<String, Object> map,String proParentId) { |
| | | if(null !=map && !map.isEmpty()){ |
| | | redisCache.setCacheMapValue("getOrderDetailByProParentId"+tjNumber,proParentId,map); |
| | | }else { |
| | | redisCache.setCacheMapValue("getOrderDetailByProParentId"+tjNumber,proParentId,getOrderDetailByProParentId(proParentId,tjNumber)); |
| | | } |
| | | redisCache.setHashKeyExpireTime("getOrderDetailByProParentId"+tjNumber,7L,TimeUnit.DAYS); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | @Async("async") |
| | | public void getLineChart() { |
| | | redisCache.setCacheObject("getLineChart",getLineCharts()); |
| | | } |
| | | |
| | | @Override |
| | | @Async("async") |
| | | public void getPieChart() { |
| | | redisCache.setCacheObject("getPieChart",getPieCharts()); |
| | | } |
| | | |
| | | //首页饼状图登记人数接口 |
| | | private AjaxResult getPieCharts() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | //获取体检登记数 |
| | | LambdaQueryWrapper<TjOrder> wq0 = new LambdaQueryWrapper<>(); |
| | | wq0.between(TjOrder::getCreateTime, DateUtil.lastMonth(), DateUtil.now()); |
| | | List<TjOrder> orderCountList = orderService.list(wq0); |
| | | if (null != orderCountList && orderCountList.size() > 0) { |
| | | List<PieChartVo> pieChartVoList = getTjorderCountMap(orderCountList); |
| | | map.put("tjdj", pieChartVoList); |
| | | } else { |
| | | map.put("tjdj", 0); |
| | | } |
| | | //获取体检异常数 |
| | | LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>(); |
| | | wq1.between(TjOrder::getFinishTime, DateUtil.lastMonth(), DateUtil.now()); |
| | | wq1.eq(TjOrder::getCheckStatus, 1); |
| | | List<TjOrder> orderAbnormalCountList = orderService.list(wq1); |
| | | if (null != orderAbnormalCountList && orderAbnormalCountList.size() > 0) { |
| | | List<PieChartVo> pieChartVoList = getTjorderAbnormalCountMap(orderAbnormalCountList); |
| | | map.put("tjyc", pieChartVoList); |
| | | } else { |
| | | map.put("tjyc", 0); |
| | | } |
| | | |
| | | return AjaxResult.success(map); |
| | | } |
| | | |
| | | //首页折线图数据 |
| | | private AjaxResult getLineCharts() { |
| | | // List<Map<Object, Object>> line = orderService.getLine(); |
| | | List<LineChartsVo> line = orderService.getLine(); |
| | | Collections.reverse(line); |
| | | return AjaxResult.success("折线图数据", line); |
| | | } |
| | | |
| | | |
| | | //获取体检登记数 |
| | | private List<PieChartVo> getTjorderCountMap(List<TjOrder> orderList) { |
| | | int a = 0; |
| | | int b = 0; |
| | | int c = 0; |
| | | int d = 0; |
| | | int e = 0; |
| | | Map<String, Object> map = null; |
| | | for (TjOrder tjOrder : orderList) { |
| | | map = new HashMap<>(); |
| | | TjCustomer customer = tjCustomerService.getById(tjOrder.getUserId()); |
| | | if (null != customer) { |
| | | int age = DateUtil.ageOfNow(customer.getCusBrithday()); |
| | | if (age >= 0 && age <= 3) { |
| | | a += 1; |
| | | } else if (age > 3 && age <= 16) { |
| | | b += 1; |
| | | } else if (age > 16 && age <= 40) { |
| | | c += 1; |
| | | } else if (age > 40 && age <= 60) { |
| | | d += 1; |
| | | } else { |
| | | e += 1; |
| | | } |
| | | } |
| | | map.put("0-3岁", a); |
| | | map.put("3-16岁", b); |
| | | map.put("16-40岁", c); |
| | | map.put("40-60岁", d); |
| | | map.put("60岁以上", e); |
| | | } |
| | | List<PieChartVo> pieChartVoList = new ArrayList<>(); |
| | | assert map != null; |
| | | for (Map.Entry<String, Object> entry : map.entrySet()) { |
| | | PieChartVo pieChartVo = new PieChartVo(); |
| | | pieChartVo.setName(entry.getKey()); |
| | | pieChartVo.setCount((Integer) entry.getValue()); |
| | | pieChartVoList.add(pieChartVo); |
| | | } |
| | | return pieChartVoList; |
| | | } |
| | | |
| | | //获取体检异常数 |
| | | private List<PieChartVo> getTjorderAbnormalCountMap(List<TjOrder> orderList) { |
| | | int a = 0; |
| | | int b = 0; |
| | | int c = 0; |
| | | int d = 0; |
| | | int e = 0; |
| | | Map<String, Object> map = null; |
| | | for (TjOrder tjOrder : orderList) { |
| | | map = new HashMap<>(); |
| | | LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId()); |
| | | wq.eq(TjOrderDetail::getExceptionDesc, 1); |
| | | List<TjOrderDetail> list = tjOrderDetailService.list(wq); |
| | | if (null != list && list.size() > 0) { |
| | | TjCustomer customer = tjCustomerService.getById(tjOrder.getUserId()); |
| | | if (null != customer) { |
| | | int age = DateUtil.ageOfNow(customer.getCusBrithday()); |
| | | if (age >= 0 && age <= 3) { |
| | | a += 1; |
| | | } else if (age > 3 && age <= 16) { |
| | | b += 1; |
| | | } else if (age > 16 && age <= 40) { |
| | | c += 1; |
| | | } else if (age > 40 && age <= 60) { |
| | | d += 1; |
| | | } else { |
| | | e += 1; |
| | | } |
| | | } |
| | | map.put("0-3岁", a); |
| | | map.put("3-16岁", b); |
| | | map.put("16-40岁", c); |
| | | map.put("40-60岁", d); |
| | | map.put("60岁以上", e); |
| | | } |
| | | } |
| | | List<PieChartVo> pieChartVoList = new ArrayList<>(); |
| | | assert map != null; |
| | | for (Map.Entry<String, Object> entry : map.entrySet()) { |
| | | PieChartVo pieChartVo = new PieChartVo(); |
| | | pieChartVo.setName(entry.getKey()); |
| | | pieChartVo.setCount((Integer) entry.getValue()); |
| | | pieChartVoList.add(pieChartVo); |
| | | } |
| | | return pieChartVoList; |
| | | } |
| | | |
| | | private List<DictSfxm> getDictSfxm() { |
| | |
| | | redisCache.setCacheMapValue("getTjPackageListBySex","getTjPackageListByManAndWoMan",tjPackageList); |
| | | } |
| | | } |
| | | |
| | | |
| | | //已检 |
| | | public List<TjCustomer> getYjAjaxResult(List<Long> ksproList) { |
| | | List<TjCustomer> customerLis = new ArrayList<>(); |
| | |
| | | customer.setTjTime(order.getCreateTime()); |
| | | customer.setTjNumber(order.getTjNumber()); |
| | | customer.setTjStatus(1L); |
| | | customer.setOrderId(order.getOrderId()); |
| | | customer.setIsHz(order.getIsHz()); |
| | | LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrderRemark::getTjNumber, order.getTjNumber()); |
| | | wq.in(TjOrderRemark::getType, 0,3); |
| | |
| | | } |
| | | return customerLis; |
| | | } |
| | | |
| | | //未检 |
| | | public List<TjCustomer> getWjAjaxResult(List<Long> ksproList) { |
| | | List<TjCustomer> customerLis = new ArrayList<>(); |
| | |
| | | } |
| | | customer.setTjTime(order.getCreateTime()); |
| | | customer.setTjNumber(order.getTjNumber()); |
| | | customer.setOrderId(order.getOrderId()); |
| | | customer.setIsHz(order.getIsHz()); |
| | | customer.setTjStatus(0L); |
| | | LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrderRemark::getTjNumber, order.getTjNumber()); |
| | |
| | | } |
| | | return customerLis; |
| | | } |
| | | |
| | | //已审 |
| | | private List<TjCustomer> getYsResult(String config) { |
| | | List<TjOrder> orderList = null; |
| | |
| | | } |
| | | return customerList; |
| | | } |
| | | |
| | | //未审 |
| | | private List<TjCustomer> getWsResult(String config) { |
| | | List<TjOrder> orderList = null; |
| | |
| | | } |
| | | return customerList; |
| | | } |
| | | |
| | | //总检点击体检信息详情 |
| | | private AjaxResult getAjaxResult(String tjNumber) { |
| | | private List<Map<String, Object>> getAjaxResult(String tjNumber) { |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | TjOrder one = orderService.getOrderByTjNum(tjNumber); |
| | | |
| | | if (one == null) { |
| | | return AjaxResult.error("暂无数据!!"); |
| | | return list; |
| | | } |
| | | |
| | | TjCustomer customer = tjCustomerService.getById(one.getUserId()); |
| | | List<TjOrderRemark> remarkList = orderRemarkService.getRemarkListByTjNumAndType(tjNumber); |
| | | |
| | |
| | | if (null != tjOrderDetails && tjOrderDetails.size() > 0) { |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | final TjProject byId = projectService.selectTjProjectByProId(tjOrderDetail.getProId()); |
| | | if(null==byId){ |
| | | tjOrderDetailService.removeById(tjOrderDetail.getOrderDetailId()); |
| | | }else { |
| | | tjOrderDetail.setProject(byId); |
| | | } |
| | | List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId())); |
| | | if (list2.size() == 0) { |
| | | tjOrderDetail.setStandard(new TjStandard()); |
| | |
| | | String summary = remark.getSummary(); |
| | | if (null != summary) { |
| | | String[] split = summary.split(";"); |
| | | parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(Arrays.asList(split))); |
| | | // List<Long> longList = new ArrayList<>(); |
| | | // for (String str : split) { |
| | | // if(!"".equals(str)){ |
| | | // longList.add(Long.valueOf(str)); |
| | | // } |
| | | // } |
| | | // parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(longList)); |
| | | parent.put("parentAdvice", tjAdviceService.getAdviceStringsByIds(Arrays.asList(split))); |
| | | |
| | | } else { |
| | | parent.put("parentAdvice", null); |
| | |
| | | parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName()); |
| | | } |
| | | list.add(parent); |
| | | } else { |
| | | return AjaxResult.success("该客户没有体检项目数据"); |
| | | } |
| | | // } |
| | | } |
| | | return AjaxResult.success(list); |
| | | } |
| | | return AjaxResult.success("该客户没有体检项目数据!"); |
| | | return list; |
| | | } |
| | | |
| | | //已签收/未签收 |
| | | private List<Map<String, Object>> getYWqsResult(int a) { |
| | | LambdaQueryWrapper<TjSampling>wq=new LambdaQueryWrapper<>(); |
| | |
| | | } |
| | | return arrayList; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 隐藏手机号 |
| | | * |
| | |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | /** |
| | | * 隐藏身份证号码 |
| | | * |
| | |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 隐藏用户姓名 |
| | | * |
| | |
| | | } |
| | | return cusName; |
| | | } |
| | | |
| | | |
| | | //临时表添加单项 |
| | | public void saveRedisTransitionByProId(String cusId, List<Long> proIds) { |
| | | for (Long proId : proIds) { |
| | |
| | | transitionService.saveRedisTransitionByProId(cusId,proId); |
| | | } |
| | | } |
| | | //向缓存中添加 父项目的子项目详情 |
| | | private Map<String, Object> getOrderDetailByProParentId(String proParentId, String tjNumber) { |
| | | TjOrderRemark remark = orderRemarkService.getTjOrderRemarkByTjNumAndProParentId(tjNumber, proParentId); |
| | | List<TjProject> proParentList = projectService.getTjProjectListBySoneId(proParentId); |
| | | if (null == proParentList) { |
| | | return AjaxResult.error("该项目下暂时没数据"); |
| | | } |
| | | 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 = tjOrderDetailService.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()); |
| | | 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){ |
| | | 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()); |
| | | return map; |
| | | } |
| | | } |