| | |
| | | package com.ltkj.web.controller.his; |
| | | |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.ltkj.common.core.domain.AjaxResult; |
| | | import com.ltkj.common.utils.SecurityUtils; |
| | | import com.ltkj.hosp.domain.TjCustomer; |
| | | import com.ltkj.hosp.domain.TjOrder; |
| | | import com.ltkj.hosp.domain.TjOrderDetail; |
| | | import com.ltkj.hosp.domain.TjProject; |
| | | import com.ltkj.hosp.hisDto.OutpinexamapplyDto; |
| | | import com.ltkj.hosp.hisDto.OutpinregapplyDto; |
| | | import com.ltkj.hosp.hisDto.OutpintestapplyDetailsDto; |
| | | import com.ltkj.hosp.hisDto.OutpintestapplyDto; |
| | | import com.ltkj.hosp.service.ITjCustomerService; |
| | | import com.ltkj.hosp.service.ITjOrderDetailService; |
| | | import com.ltkj.hosp.service.ITjOrderService; |
| | | import com.ltkj.hosp.service.ITjProjectService; |
| | | import com.ltkj.hosp.domain.*; |
| | | import com.ltkj.hosp.hisDto.*; |
| | | import com.ltkj.hosp.service.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | private ITjOrderDetailService detailService; |
| | | @Resource |
| | | private ITjProjectService projectService; |
| | | @Resource |
| | | private ITbTransitionService tbTransitionService; |
| | | @Autowired |
| | | private HisApiConfigService hisApiConfigService; |
| | | @Autowired |
| | | private HisApiGetMethodService hisApiGetMethodService; |
| | | |
| | | //将方法返回值解析成json格式 |
| | | public JSONObject getJSONObject(String builder) { |
| | |
| | | //对接his总接口 注册挂号接诊申请单操作 |
| | | @Transactional |
| | | public void HisApiMethods(TjCustomer customer, Long orderId) { |
| | | HisApiGetMethodService hisApiGetMethodService = new HisApiGetMethodService(); |
| | | // HisApiGetMethodService hisApiGetMethodService = new HisApiGetMethodService(); |
| | | |
| | | Date dates = new Date(); |
| | | final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss"); |
| | |
| | | if (null != pationid) { |
| | | customer.setPationId(pationid); |
| | | customerService.updateById(customer); |
| | | OutpinregapplyDto outpinregapplyDto = new OutpinregapplyDto(); |
| | | outpinregapplyDto.setPationid(pationid); |
| | | // outpinregapplyDto.setHisRegistrationId(pationid); |
| | | outpinregapplyDto.setSqysbm(SecurityUtils.getUsername()); |
| | | outpinregapplyDto.setMzksbm("0101"); |
| | | outpinregapplyDto.setCzybm("00029"); |
| | | outpinregapplyDto.setSfjz("0"); |
| | | outpinregapplyDto.setGhzlbm("01"); |
| | | outpinregapplyDto.setYwckbm("0001"); |
| | | outpinregapplyDto.setSflstd("0"); |
| | | outpinregapplyDto.setGhrq(date); |
| | | //门诊挂号 |
| | | AjaxResult ajaxResult = controller.Outpinregapply(outpinregapplyDto); |
| | | String result2 = getAjaxResult(ajaxResult); |
| | | JSONObject object1 = getJSONObject(result2); |
| | | String code1 = object1.getStr("ResultCode"); |
| | | if (code1.equals("0")) { |
| | | JSONArray resultDatas = object1.getJSONArray("ResultData"); |
| | | if (null != resultDatas && resultDatas.size() > 0) { |
| | | Map<String, Object> resultDatasss = (Map<String, Object>) resultDatas.get(0); |
| | | String hisRegistrationId = resultDatasss.get("his_registration_id").toString(); |
| | | if (null != hisRegistrationId) { |
| | | //门诊医生接诊 |
| | | AjaxResult result3 = controller.Outpinconapply(hisRegistrationId, date, SecurityUtils.getUsername()); |
| | | String result4 = getAjaxResult(result3); |
| | | JSONObject object2 = getJSONObject(result4); |
| | | String code2 = object2.getStr("ResultCode"); |
| | | if (code2.equals("0")) { |
| | | Map<String, Object> data = object2.getJSONObject("ResultData"); |
| | | String toString = data.get("his_registration_id").toString(); |
| | | if (null != toString) { |
| | | //检验申请 |
| | | OutpintestapplyDto dto = new OutpintestapplyDto(); |
| | | dto.setHisRegistrationId(hisRegistrationId); |
| | | dto.setSfjz(customer.getCusIdcard()); |
| | | dto.setSqysbm(SecurityUtils.getUsername()); |
| | | dto.setMzksbm("0101"); |
| | | dto.setSjrq(date); |
| | | dto.setCzybm("00029"); |
| | | dto.setCzyksbm("0101"); |
| | | dto.setSfjz("1"); |
| | | List<TjOrderDetail> detailList = detailService.getTjOrderDetailListByOrderId(orderId.toString()); |
| | | List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>(); |
| | | if (null != detailList && detailList.size() > 0) { |
| | | LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>(); |
| | | wq.in(TjProject::getProId, detailList.stream().map(TjOrderDetail::getProId).collect(Collectors.toList())); |
| | | List<TjProject> projects = projectService.list(wq); |
| | | if (null != projects && projects.size() > 0) { |
| | | for (TjProject project : projects) { |
| | | OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto(); |
| | | // if(null !=project.getHisXmbm()){ |
| | | // detailsDto.setMxfyxmbm(project.getHisXmbm()); |
| | | // }else { |
| | | // detailsDto.setMxfyxmbm(null); |
| | | // } |
| | | detailsDto.setMxfyxmbm("tj001"); |
| | | detailsDto.setSfzhfy("1"); |
| | | detailsDto.setSl(1); |
| | | detailsDtos.add(detailsDto); |
| | | } |
| | | } |
| | | } |
| | | dto.setDetails(detailsDtos); |
| | | AjaxResult ajaxResult1 = controller.Outpintestapply(dto); |
| | | String result5 = getAjaxResult(ajaxResult1); |
| | | JSONObject object3 = getJSONObject(result5); |
| | | String code3 = object3.getStr("ResultCode"); |
| | | if (code3.equals("0")) { |
| | | Map<String, Object> datas = object3.getJSONObject("ResultData"); |
| | | datas.put("cardId", hisRegistrationId); |
| | | JSONObject object4 = JSONUtil.parseObj(datas); |
| | | if(null ==orderService.getHuoQuJysqdh(hisRegistrationId)){ |
| | | hisApiGetMethodService.save(object4, "Outpintestapply"); |
| | | } |
| | | //门诊检查申请 |
| | | OutpinexamapplyDto outpinexamapplyDto = new OutpinexamapplyDto(); |
| | | outpinexamapplyDto.setHisRegistrationId(hisRegistrationId); |
| | | outpinexamapplyDto.setSfzh(customer.getCusIdcard()); |
| | | outpinexamapplyDto.setSqysbm(SecurityUtils.getUsername()); |
| | | outpinexamapplyDto.setMzksbm("0101"); |
| | | outpinexamapplyDto.setCzybm("00029"); |
| | | outpinexamapplyDto.setCzyksbm("0101"); |
| | | List<TjOrderDetail> detailLists = detailService.getTjOrderDetailListByOrderId(orderId.toString()); |
| | | List<OutpintestapplyDetailsDto> detailsDtoss = new ArrayList<>(); |
| | | if (null != detailList && detailList.size() > 0) { |
| | | LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>(); |
| | | wq.in(TjProject::getProId, detailLists.stream().map(TjOrderDetail::getProId).collect(Collectors.toList())); |
| | | List<TjProject> projects = projectService.list(wq); |
| | | if (null != projects && projects.size() > 0) { |
| | | for (TjProject project : projects) { |
| | | OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto(); |
| | | detailsDto.setMxfyxmbm("tj001"); |
| | | detailsDto.setSfzhfy("1"); |
| | | detailsDto.setSl(1); |
| | | detailsDtoss.add(detailsDto); |
| | | } |
| | | } |
| | | } |
| | | outpinexamapplyDto.setDetails(detailsDtoss); |
| | | AjaxResult ajaxResult2 = controller.Outpinexamapply(outpinexamapplyDto); |
| | | String result6 = getAjaxResult(ajaxResult2); |
| | | JSONObject object5 = getJSONObject(result6); |
| | | String code4 = object5.getStr("ResultCode"); |
| | | if (code4.equals("0")) { |
| | | Map<String, Object> map = object5.getJSONObject("ResultData"); |
| | | map.put("cardId", hisRegistrationId); |
| | | JSONObject jsonObject = JSONUtil.parseObj(map); |
| | | if(null ==orderService.getHuoQuJcsqdh(hisRegistrationId)) |
| | | hisApiGetMethodService.save(jsonObject, "Outpinexamapply"); |
| | | } |
| | | } |
| | | // OutpinregapplyDto outpinregapplyDto = new OutpinregapplyDto(); |
| | | // outpinregapplyDto.setPationid(pationid); |
| | | //// outpinregapplyDto.setHisRegistrationId(pationid); |
| | | // outpinregapplyDto.setSqysbm(SecurityUtils.getUsername()); |
| | | // outpinregapplyDto.setMzksbm("0101"); |
| | | // outpinregapplyDto.setCzybm("00029"); |
| | | // outpinregapplyDto.setSfjz("0"); |
| | | // outpinregapplyDto.setGhzlbm("01"); |
| | | // outpinregapplyDto.setYwckbm("0001"); |
| | | // outpinregapplyDto.setSflstd("0"); |
| | | // outpinregapplyDto.setGhrq(date); |
| | | // //门诊挂号 |
| | | // AjaxResult ajaxResult = controller.Outpinregapply(outpinregapplyDto); |
| | | // String result2 = getAjaxResult(ajaxResult); |
| | | // JSONObject object1 = getJSONObject(result2); |
| | | // String code1 = object1.getStr("ResultCode"); |
| | | // if (code1.equals("0")) { |
| | | // JSONArray resultDatas = object1.getJSONArray("ResultData"); |
| | | // if (null != resultDatas && resultDatas.size() > 0) { |
| | | // Map<String, Object> resultDatasss = (Map<String, Object>) resultDatas.get(0); |
| | | // String hisRegistrationId = resultDatasss.get("his_registration_id").toString(); |
| | | // if (null != hisRegistrationId) { |
| | | // //门诊医生接诊 |
| | | // AjaxResult result3 = controller.Outpinconapply(hisRegistrationId, date, SecurityUtils.getUsername()); |
| | | // String result4 = getAjaxResult(result3); |
| | | // JSONObject object2 = getJSONObject(result4); |
| | | // String code2 = object2.getStr("ResultCode"); |
| | | // if (code2.equals("0")) { |
| | | // Map<String, Object> data = object2.getJSONObject("ResultData"); |
| | | // String toString = data.get("his_registration_id").toString(); |
| | | // if (null != toString) { |
| | | //检验申请 |
| | | OutpintestapplyDto dto = new OutpintestapplyDto(); |
| | | dto.setHisRegistrationId(customer.getCardId()); |
| | | dto.setSfjz(customer.getCusIdcard()); |
| | | dto.setSqysbm(SecurityUtils.getUsername()); |
| | | dto.setMzksbm("0101"); |
| | | dto.setSjrq(date); |
| | | dto.setCzybm("00029"); |
| | | dto.setCzyksbm("0101"); |
| | | dto.setSfjz("1"); |
| | | List<TbTransition> detailList = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(), customer.getCardId()); |
| | | List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>(); |
| | | if (null != detailList && detailList.size() > 0) { |
| | | LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>(); |
| | | wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList())); |
| | | wq.groupBy(TjProject::getHisXmbm); |
| | | wq.in(TjProject::getDeptId, "241"); |
| | | List<TjProject> projects = projectService.list(wq); |
| | | if (null != projects && projects.size() > 0) { |
| | | for (TjProject project : projects) { |
| | | OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto(); |
| | | if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) { |
| | | if (null != project.getHisXmbm()) { |
| | | detailsDto.setMxfyxmbm(project.getHisXmbm()); |
| | | // if(project.getHisXmbm().toLowerCase().contains("z".toLowerCase())){ |
| | | detailsDto.setSfzhfy("1"); |
| | | // }else { |
| | | // detailsDto.setSfzhfy("0"); |
| | | // } |
| | | } else { |
| | | detailsDto.setMxfyxmbm(""); |
| | | detailsDto.setSfzhfy("0"); |
| | | } |
| | | detailsDto.setSfzhfy("1"); |
| | | detailsDto.setSl(1); |
| | | detailsDtos.add(detailsDto); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | dto.setDetails(detailsDtos); |
| | | AjaxResult ajaxResult1 = controller.Outpintestapply(dto); |
| | | String result5 = getAjaxResult(ajaxResult1); |
| | | JSONObject object3 = getJSONObject(result5); |
| | | String code3 = object3.getStr("ResultCode"); |
| | | if (code3.equals("0")) { |
| | | Map<String, Object> datas = object3.getJSONObject("ResultData"); |
| | | datas.put("cardId", customer.getCardId()); |
| | | JSONObject object4 = JSONUtil.parseObj(datas); |
| | | LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpintestapply"); |
| | | HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); |
| | | hisApiGetMethodService.save(object4, "Outpintestapply",hisApiConfig); |
| | | |
| | | } |
| | | //门诊检查申请 |
| | | OutpinexamapplyDto outpinexamapplyDto = new OutpinexamapplyDto(); |
| | | outpinexamapplyDto.setHisRegistrationId(customer.getCardId()); |
| | | outpinexamapplyDto.setSfzh(customer.getCusIdcard()); |
| | | outpinexamapplyDto.setSqysbm(SecurityUtils.getUsername()); |
| | | outpinexamapplyDto.setMzksbm("0101"); |
| | | outpinexamapplyDto.setCzybm("00029"); |
| | | outpinexamapplyDto.setCzyksbm("0101"); |
| | | List<TbTransition> detailLists = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(), customer.getCardId()); |
| | | List<OutpintestapplyDetailsDto> detailsDtoss = new ArrayList<>(); |
| | | if (null != detailLists && detailLists.size() > 0) { |
| | | LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>(); |
| | | wq.in(TjProject::getProId, detailLists.stream().map(TbTransition::getParentProId).collect(Collectors.toList())); |
| | | wq.groupBy(TjProject::getHisXmbm); |
| | | wq.in(TjProject::getDeptId, "247", "248", "249", "250", "251", "252", "271", "273", "274", "275"); |
| | | List<TjProject> projects = projectService.list(wq); |
| | | if (null != projects && projects.size() > 0) { |
| | | for (TjProject project : projects) { |
| | | OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto(); |
| | | if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) { |
| | | if (null != project.getHisXmbm()) { |
| | | detailsDto.setMxfyxmbm(project.getHisXmbm()); |
| | | // if(project.getHisXmbm().toLowerCase().contains("z".toLowerCase())){ |
| | | detailsDto.setSfzhfy("1"); |
| | | // }else { |
| | | // detailsDto.setSfzhfy("0"); |
| | | // } |
| | | } else { |
| | | detailsDto.setMxfyxmbm(""); |
| | | detailsDto.setSfzhfy("0"); |
| | | } |
| | | detailsDto.setSl(1); |
| | | detailsDtoss.add(detailsDto); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | outpinexamapplyDto.setDetails(detailsDtoss); |
| | | AjaxResult ajaxResult2 = controller.Outpinexamapply(outpinexamapplyDto); |
| | | String result6 = getAjaxResult(ajaxResult2); |
| | | JSONObject object5 = getJSONObject(result6); |
| | | String code4 = object5.getStr("ResultCode"); |
| | | if (code4.equals("0")) { |
| | | Map<String, Object> map = object5.getJSONObject("ResultData"); |
| | | map.put("cardId", customer.getCardId()); |
| | | JSONObject jsonObject = JSONUtil.parseObj(map); |
| | | LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpinexamapply"); |
| | | HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); |
| | | hisApiGetMethodService.save(jsonObject, "Outpinexamapply",hisApiConfig); |
| | | |
| | | } |
| | | |
| | | //门诊治疗处置申请 |
| | | OutpintreatapplyDto dao = new OutpintreatapplyDto(); |
| | | dao.setHisRegistrationId(customer.getCardId()); |
| | | dao.setSfzh(customer.getCusIdcard()); |
| | | dao.setSqysbm(SecurityUtils.getUsername()); |
| | | dao.setMzksbm("0101"); |
| | | dao.setSjrq(date); |
| | | dao.setCzybm("00029"); |
| | | dao.setCzyksbm("0101"); |
| | | List<TbTransition> details = tbTransitionService.getTbTransitionListByCusId(customer.getCusIdcard(), customer.getCardId()); |
| | | List<OutpintestapplyDetailsDto> detailDtos = new ArrayList<>(); |
| | | if (null != details && details.size() > 0) { |
| | | LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>(); |
| | | wq.in(TjProject::getProId, details.stream().map(TbTransition::getParentProId).collect(Collectors.toList())); |
| | | wq.groupBy(TjProject::getHisXmbm); |
| | | wq.in(TjProject::getDeptId, "100", "240", "253", "254", "255", "257", "258", "259", "269", "270"); |
| | | List<TjProject> projects = projectService.list(wq); |
| | | if (null != projects && projects.size() > 0) { |
| | | for (TjProject project : projects) { |
| | | OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto(); |
| | | if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) { |
| | | if (null != project.getHisXmbm()) { |
| | | detailsDto.setMxfyxmbm(project.getHisXmbm()); |
| | | if(project.getHisXmbm().toLowerCase().contains("z".toLowerCase())){ |
| | | detailsDto.setSfzhfy("1"); |
| | | }else { |
| | | detailsDto.setSfzhfy("0"); |
| | | } |
| | | } else { |
| | | detailsDto.setMxfyxmbm(""); |
| | | detailsDto.setSfzhfy("0"); |
| | | } |
| | | detailsDto.setSl(1); |
| | | detailDtos.add(detailsDto); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | dao.setDetails(detailDtos); |
| | | AjaxResult mzylyzsq1 = controller.Outpintreatapply(dao); |
| | | String mzylyzsq2 = getAjaxResult(mzylyzsq1); |
| | | JSONObject mzylyzsq3 = getJSONObject(mzylyzsq2); |
| | | String code5 = mzylyzsq3.getStr("ResultCode"); |
| | | if (code5.equals("0")) { |
| | | Map<String, Object> map = mzylyzsq3.getJSONObject("ResultData"); |
| | | map.put("cardId", customer.getCardId()); |
| | | JSONObject jsonObject = JSONUtil.parseObj(map); |
| | | LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpinmedapply"); |
| | | HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); |
| | | hisApiGetMethodService.save(jsonObject, "Outpinmedapply",hisApiConfig); |
| | | |
| | | } |
| | | |
| | | // } |
| | | } |
| | | } |
| | | |
| | | } |
| | | // } |
| | | |
| | | } |
| | | // } |
| | | //} |
| | | // } |
| | | // } |
| | | |
| | | |
| | | //退费后取消接诊作废申请单等操作 |
| | |
| | | Date dates = new Date(); |
| | | final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | String jcsqdh= orderService.getHuoQuJcsqdh(order.getCardId()); |
| | | String jcsqdh = orderService.getHuoQuJcsqdh(order.getCardId()); |
| | | |
| | | String jysqdh= orderService.getHuoQuJysqdh(order.getCardId()); |
| | | String jysqdh = orderService.getHuoQuJysqdh(order.getCardId()); |
| | | |
| | | |
| | | String zlsqdh = orderService.getHuoQuZlsqdh(order.getCardId()); |
| | | |
| | | //作废门诊检查申请 |
| | | AjaxResult result = controller.Outpindelexamapply(order.getCardId(), "00029", jcsqdh); |
| | | String result1 = getAjaxResult(result); |
| | | JSONObject object = getJSONObject(result1); |
| | | String code = object.getStr("ResultCode"); |
| | | if(code.equals("0")){ |
| | | if (code.equals("0")) { |
| | | orderService.delHuoQuJcsqdh(order.getCardId()); |
| | | } |
| | | |
| | |
| | | String result2 = getAjaxResult(ajaxResult); |
| | | JSONObject object1 = getJSONObject(result2); |
| | | String code1 = object1.getStr("ResultCode"); |
| | | if(code1.equals("0")){ |
| | | if (code1.equals("0")) { |
| | | orderService.delHuoQuJysqdh(order.getCardId()); |
| | | } |
| | | |
| | | controller.Outpinunconapply(order.getCardId(),date,"00029"); |
| | | controller.Outpinunconapply(order.getCardId(), date, "00029"); |
| | | |
| | | controller.Outpindelmedapply(order.getCardId(), "00029", zlsqdh); |
| | | |
| | | } |
| | | |
| | | |
| | | //获取门诊结算记录 |
| | | @Transactional |
| | | public void getHisMzJsJl(TjOrder order) { |
| | | Date dates = new Date(); |
| | | final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | } |
| | | |
| | | } |