| | |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import jodd.util.StringUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import lombok.var; |
| | | import org.aspectj.weaver.AjAttribute; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.text.Collator; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | |
| | | import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log; |
| | | import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.save; |
| | | import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.setClipRect; |
| | | import static org.jeecg.modules.jmreport.dyndb.util.b.a; |
| | | import static org.jeecg.modules.jmreport.dyndb.util.b.e; |
| | | |
| | | /** |
| | | * @Author: 西安路泰科技有限公司/赵佳豪 |
| | |
| | | private HisApiConfigService hisApiConfigService; |
| | | @Autowired |
| | | private RedissonClient redissonClient; |
| | | @Autowired |
| | | private ITjRulesService rulesService; |
| | | @Autowired |
| | | private ITjProAdvicerulesService tjProAdvicerulesService; |
| | | @Autowired |
| | | private TjOrderYcxmService ycxmService; |
| | | @Autowired |
| | | private SysConfigController configController; |
| | | @Autowired |
| | | private TjJcycxmService jcycxmService; |
| | | |
| | | |
| | | // public void csdsrw() throws InterruptedException { |
| | | // log.info("定时任务开始执行"+new Date()); |
| | | // Thread.sleep(1000*5); |
| | | // log.info("定时任务结束执行"+new Date()); |
| | | @GetMapping ("/ceshicc") |
| | | @ApiOperation (value = "测试调用存储过程耗时接口") |
| | | @RepeatSubmit |
| | | // @Transactional |
| | | public AjaxResult ceshicc() { |
| | | |
| | | List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd1("8003241206085556"); |
| | | if(null !=jcsqdList && !jcsqdList.isEmpty()){ |
| | | jcsqdService.deletedLtkjJcsqdByTjhAndTmh("8003241206085556"); |
| | | jcbgdService.deletedLtkjJcbgdByTjhAndTmh("8003241206085556"); |
| | | jcsqdService.saveBatch(jcsqdList); |
| | | List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd1("8003241206085556"); |
| | | if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList); |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | | } |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | |
| | | |
| | | // @GetMapping ("/ceshi") |
| | | // @ApiOperation (value = "测试调用lis视图数据接口") |
| | | // @RepeatSubmit |
| | | //// @Transactional |
| | | // public AjaxResult ceshi() { |
| | | // List<Map<String, Object>> ccXZxYyLisJgSt = testMapper.getCcXZxYyLisJgSt(); |
| | | // return AjaxResult.success(ccXZxYyLisJgSt); |
| | | // } |
| | | |
| | | |
| | | // @GetMapping ("/pacs") |
| | | // @ApiOperation (value = "测试调用pacs视图数据接口") |
| | | // @RepeatSubmit |
| | | // public AjaxResult pacs() { |
| | | // List<Map<String, Object>> ccXZxYyPacsJgSt = testMapper.getCcXZxYyPacsJgSt(); |
| | | // |
| | | // List<LtkjExamJcsqd> list = testMapper.getCcXZxYyPacsLtkjExamJcsqd(""); |
| | | // |
| | | // log.info(list.toString()); |
| | | // |
| | | // List<LtkjExamJcbgd> list1 = testMapper.getCcXZxYyPacsLtkjExamJcbgd(""); |
| | | // |
| | | // log.info(list1.toString()); |
| | | // |
| | | // return AjaxResult.success(ccXZxYyPacsJgSt); |
| | | // } |
| | | |
| | | |
| | | |
| | | |
| | | @GetMapping ("/getOperationPermissionsByTjNum") |
| | | @ApiOperation (value = "(初审页面 和 医生页面)根据体检号获取是否可操作权限接口 true可操作 反之不可") |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @GetMapping ("/ceshi") |
| | | @ApiOperation (value = "测试调用lis视图数据接口") |
| | | @RepeatSubmit |
| | | // @Transactional |
| | | public AjaxResult ceshi() { |
| | | List<Map<String, Object>> ccXZxYyLisJgSt = testMapper.getCcXZxYyLisJgSt(); |
| | | return AjaxResult.success(ccXZxYyLisJgSt); |
| | | } |
| | | |
| | | |
| | | @GetMapping ("/pacs") |
| | | @ApiOperation (value = "测试调用pacs视图数据接口") |
| | | @RepeatSubmit |
| | | public AjaxResult pacs() { |
| | | List<Map<String, Object>> ccXZxYyPacsJgSt = testMapper.getCcXZxYyPacsJgSt(); |
| | | |
| | | List<LtkjExamJcsqd> list = testMapper.getCcXZxYyPacsLtkjExamJcsqd(""); |
| | | |
| | | log.info(list.toString()); |
| | | |
| | | List<LtkjExamJcbgd> list1 = testMapper.getCcXZxYyPacsLtkjExamJcbgd(""); |
| | | |
| | | log.info(list1.toString()); |
| | | |
| | | return AjaxResult.success(ccXZxYyPacsJgSt); |
| | | } |
| | | |
| | | |
| | | @GetMapping ("/getCsList") |
| | | @ApiOperation (value = "初审查询体检记录客户列表")//0待1已 |
| | | @Transactional |
| | |
| | | @ApiParam (value = "体检单号") @RequestParam (required = false) String tjNumber, |
| | | @ApiParam (value = "单位") @RequestParam (required = false) Long compId, |
| | | @ApiParam (value = "姓名)") @RequestParam (required = false) String name, |
| | | @ApiParam (value = "套餐名)") @RequestParam (required = false) String tcm, |
| | | @ApiParam (value = "开始时间") @RequestParam (required = false) String beginTime, |
| | | @ApiParam (value = "结束时间") @RequestParam (required = false) String endTime) { |
| | | |
| | |
| | | if (name == null) name = ""; |
| | | if (beginTime == null) beginTime = ""; |
| | | if (endTime == null) endTime = ""; |
| | | return AjaxResult.success(orderService.getCsCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name)); |
| | | if (tcm == null) tcm = ""; |
| | | return AjaxResult.success(orderService.getCsCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name,tcm)); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | public List<CsProVo> getCsProVos(String tjNumber,boolean sfzpacs) { |
| | | List<CsProVo> list = orderRemarkService.cSWebGetProByTjNumAndOrderId(tjNumber,sfzpacs); |
| | | if (null != list && list.size() > 0) { |
| | | if (null != list && !list.isEmpty()) { |
| | | list.sort(new Comparator<CsProVo>() { |
| | | @Override |
| | | public int compare(CsProVo o1, CsProVo o2) { |
| | |
| | | @RepeatSubmit |
| | | // @Transactional |
| | | public AjaxResult dataSynchronization(@RequestParam String tjNumber) { |
| | | |
| | | String dqyyyqbm = configService.selectConfigByKey("dqyyyqbm"); |
| | | RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber); |
| | | try { |
| | | boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS); |
| | |
| | | maps.put("ksbm", "体检中心"); |
| | | maps.put("pagecount", 100); |
| | | maps.put("page", 1); |
| | | // AjaxResult results = service.getHISDataNew("Getexamreportinfo", maps); |
| | | |
| | | |
| | | LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo"); |
| | |
| | | |
| | | |
| | | /*同步检查 his存储过程*/ |
| | | AjaxResult results = jcsqdService.getTjJcProByHisCall("体检中心", order.getCardId(), "''", 100, 1, "'1'"); |
| | | |
| | | String jctbfs = configService.selectConfigByKey("jctbfs"); |
| | | AjaxResult results =null; |
| | | if (jctbfs.equalsIgnoreCase("Y")){ |
| | | results = service.getHISDataNew("Getexamreportinfo", maps); |
| | | }else{ |
| | | results = jcsqdService.getTjJcProByHisCall("体检中心", order.getCardId(), "''", 100, 1, "'1'"); |
| | | } |
| | | |
| | | |
| | | DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | |
| | | return AjaxResult.success("同步成功"); |
| | | } |
| | | else if(null !=sfkqdshitulianjie && sfkqdshitulianjie.equalsIgnoreCase("Y")){ |
| | | List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber()); |
| | | List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber(),dqyyyqbm); |
| | | if(null != hysqdList && !hysqdList.isEmpty()){ |
| | | for (LtkjHysqd hysqd : hysqdList) { |
| | | LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh()); |
| | |
| | | } |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | | } |
| | | List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber()); |
| | | List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber(),dqyyyqbm); |
| | | if(null !=jcsqdList && !jcsqdList.isEmpty()){ |
| | | jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); |
| | | jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); |
| | |
| | | } |
| | | return AjaxResult.error("该人员数据正在同步中,请稍等"); |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | log.error(String.valueOf(e),e.getMessage()); |
| | | return AjaxResult.error("该人员数据正在同步中,请稍等"); |
| | | }finally { |
| | | lock.unlock(); |
| | |
| | | String doctorId = configService.selectConfigByKey("request_default_check_doctorId"); |
| | | //根据配置调取存储过程 将临时表数据存入预约表2023.12.12 |
| | | final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); |
| | | |
| | | String dqyyyqbm = configService.selectConfigByKey("dqyyyqbm"); |
| | | final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis"); |
| | | TjOrder order = orderService.getOrderByTjNum(tjNumber); |
| | | if (null != order) { |
| | |
| | | if ("Y".equals(getInfoFromSqlData)) { |
| | | tbhyxm(order); |
| | | //同步化验项目 |
| | | testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | | // testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | | //同步检查项目 |
| | | testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | | // testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | | asyncService.updateCheckType(order.getTjNumber()); |
| | | |
| | | } |
| | | // 11:42:04.617 [http-nio-5000-exec-72] ERROR c.a.d.p.DruidDataSource - [init,905] - init datasource error, url: jdbc:sqlserver://192.168.10.2:1433;DatabaseName=hospital;&characterEncoding=utf8 |
| | | //com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“No appropriate protocol (protocol is disabled or cipher suites are inappropriate)”。 |
| | | // |
| | | //开启和his对接 |
| | | if (null != sfkqdyhis && sfkqdyhis.equals("Y")) { |
| | | List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId()); |
| | | List<String> jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId()); |
| | | //同步检验 |
| | | String resultMsg = ""; |
| | | if (null != baoGaoDans && !baoGaoDans.isEmpty()) { |
| | | Date dates = new Date(); |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | String result1 = getAjaxResult(result); |
| | | JSONObject object = getJSONObject(result1); |
| | | String code = object.getStr("ResultCode"); |
| | | if (null == code || !code.equals("0")) { |
| | | return AjaxResult.error("化验项目暂时未出结果,请稍后同步!!!"); |
| | | } |
| | | JSONArray data = object.getJSONArray("ResultData"); |
| | | for (Object datum : data) { |
| | | JSONObject jsonObject = (JSONObject) datum; |
| | | boolean isInsertHysqd = false; |
| | | LtkjHysqd hysqd = new LtkjHysqd(); |
| | | hysqd.setTjh(order.getCardId()); |
| | | hysqd.setTmh(jsonObject.getStr("JYBGID")); |
| | | hysqd.setBbbh(jsonObject.getStr("BBDM")); |
| | | hysqd.setBbmc(jsonObject.getStr("BBMC")); |
| | | hysqd.setXmid(jsonObject.getStr("JYXMDM")); |
| | | hysqd.setXmmc(jsonObject.getStr("JYXMMC")); |
| | | hysqd.setSqsj(jsonObject.getStr("SQRQ")); |
| | | hysqd.setSqys(jsonObject.getStr("SQRBH")); |
| | | hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); |
| | | hysqd.setSqrxm(jsonObject.getStr("SQRXM")); |
| | | hysqd.setSqdh(jsonObject.getStr("SQDBH")); |
| | | hysqd.setShrdm(jsonObject.getStr("JYYSBH")); |
| | | hysqd.setShrxm(jsonObject.getStr("JYYSQM")); |
| | | hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); |
| | | QueryWrapper<LtkjHysqd> queryWrapper = new QueryWrapper<>(hysqd); |
| | | List<LtkjHysqd> list = ltkjHysqdService.list(queryWrapper); |
| | | if (list.isEmpty()) |
| | | isInsertHysqd = true; |
| | | if (isInsertHysqd){ |
| | | saveHysqd(hysqd); |
| | | }else { |
| | | saveHybgd(hysqd); |
| | | // if (null == code || !code.equals("0")) { |
| | | // return AjaxResult.error("化验项目暂时未出结果,请稍后同步!!!"); |
| | | // } |
| | | if(null != code && code.equals("0")) { |
| | | JSONArray data = object.getJSONArray("ResultData"); |
| | | for (Object datum : data) { |
| | | JSONObject jsonObject = (JSONObject) datum; |
| | | LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID")); |
| | | if (null != jybgid) { |
| | | ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID")); |
| | | ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jybgid.getTmh()); |
| | | } |
| | | boolean isInsertHysqd = false; |
| | | LtkjHysqd hysqd = new LtkjHysqd(); |
| | | hysqd.setTjh(order.getCardId()); |
| | | hysqd.setTmh(jsonObject.getStr("JYBGID")); |
| | | hysqd.setBbbh(jsonObject.getStr("BBDM")); |
| | | hysqd.setBbmc(jsonObject.getStr("BBMC")); |
| | | hysqd.setXmid(jsonObject.getStr("JYXMDM")); |
| | | hysqd.setXmmc(jsonObject.getStr("JYXMMC")); |
| | | hysqd.setSqsj(jsonObject.getStr("SQRQ")); |
| | | hysqd.setSqys(jsonObject.getStr("SQRBH")); |
| | | hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); |
| | | hysqd.setSqrxm(jsonObject.getStr("SQRXM")); |
| | | hysqd.setSqdh(jsonObject.getStr("SQDBH")); |
| | | hysqd.setShrdm(jsonObject.getStr("JYYSBH")); |
| | | hysqd.setShrxm(jsonObject.getStr("JYYSQM")); |
| | | hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); |
| | | hysqd.setCreateTime(new Date()); |
| | | QueryWrapper<LtkjHysqd> queryWrapper = new QueryWrapper<>(hysqd); |
| | | List<LtkjHysqd> list = ltkjHysqdService.list(queryWrapper); |
| | | if (list.isEmpty()) |
| | | isInsertHysqd = true; |
| | | if (isInsertHysqd) { |
| | | saveHysqd(hysqd); |
| | | } else { |
| | | saveHybgd(hysqd); |
| | | } |
| | | } |
| | | }else{ |
| | | resultMsg = "化验项目暂时未出结果,请稍后同步!!!"; |
| | | } |
| | | //同步化验项目 |
| | | testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | | } |
| | | /*同步检查 his接口*/ |
| | | if (null != jianChaBaoGaoDan && jianChaBaoGaoDan.size() > 0) { |
| | | if (null != jianChaBaoGaoDan && !jianChaBaoGaoDan.isEmpty()) { |
| | | Map<String, Object> maps = new HashMap<>(); |
| | | maps.put("his_registration_id", order.getCardId()); |
| | | maps.put("ksbm", "体检中心"); |
| | |
| | | lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo"); |
| | | HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); |
| | | /*同步检查 his存储过程*/ |
| | | AjaxResult results = jcsqdService.getTjJcProByHisCall("体检中心", order.getCardId(), "''", 100, 1, "'1'"); |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | | String jctbfs = configService.selectConfigByKey("jctbfs"); |
| | | AjaxResult results =null; |
| | | if (jctbfs.equalsIgnoreCase("Y")){ |
| | | results = service.getHISDataNew("Getexamreportinfo", maps); |
| | | }else{ |
| | | results = jcsqdService.getTjJcProByHisCall("体检中心", order.getCardId(), "''", 100, 1, "'1'"); |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | | } |
| | | log.info("检查项目查询返回值: " + results.toString()); |
| | | if (Integer.parseInt(results.get("code").toString()) == 200) { |
| | | List<Map<String, Object>> datas = (List<Map<String, Object>>) results.get("data"); |
| | |
| | | jcbgd.setJcbw(objectMap.get("JCBW").toString()); |
| | | if (null != objectMap.get("SQRQSJ") || !objectMap.get("SQRQSJ").equals("")) |
| | | jcbgd.setSqsj(objectMap.get("SQRQSJ").toString()); |
| | | jcbgd.setCreateTime(new Date()); |
| | | jcbgdService.save(jcbgd); |
| | | |
| | | } |
| | | jcsqdService.saveLtkjExamJcsqd(order.getCardId()); |
| | | /* List<LtkjExamJcsqd> jcsqdList = jcsqdService.getLtkjJcsqdByTjh(order.getCardId()); |
| | | if(null !=jcsqdList && !jcsqdList.isEmpty()) { |
| | | for (LtkjExamJcsqd jcsqd : jcsqdList) { |
| | | if (StringUtil.isNotBlank(jcsqd.getJgzt())) { |
| | | String[] split = jcsqd.getJgzt().replaceAll("\n", "").split("。|;|;"); |
| | | for (String jg : split) { |
| | | if (StringUtil.isNotBlank(jg) && !jg.contains("未见异常") |
| | | && !jg.contains("未见明显异常") && !jg.contains("未见占位") && !jg.contains("未见") |
| | | && !jg.contains("未见明显") && !jg.contains("正常") && !jg.contains("双侧椎间孔无狭窄")) { |
| | | TjJcycxm jcycxm = new TjJcycxm(); |
| | | jcycxm.setTjh(order.getTjNumber()); |
| | | jcycxm.setYqid(dqyyyqbm); |
| | | String[] split1 = jcsqd.getJcxmid().split(";"); |
| | | jcycxm.setProId(split1[0]); |
| | | jcycxm.setProName(jcsqd.getJcxmmc()); |
| | | jcycxm.setCreateTime(new Date()); |
| | | jcycxm.setJcjg(jg); |
| | | jcycxmService.save(jcycxm); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }*/ |
| | | testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | | }else { |
| | | return AjaxResult.error("检查项目暂时未出结果,请稍后同步!!!"); |
| | | // return AjaxResult.error("检查项目暂时未出结果,请稍后同步!!!"); |
| | | resultMsg+="\n检查项目暂时未出结果,请稍后同步!!!"; |
| | | } |
| | | } |
| | | } |
| | | return AjaxResult.success("同步成功"); |
| | | if (StrUtil.isBlank(resultMsg)) |
| | | return AjaxResult.success("同步成功"); |
| | | else return AjaxResult.error(resultMsg); |
| | | } |
| | | //化验 |
| | | testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | | // testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); |
| | | //检查 |
| | | jcsqdService.saveLtkjExamJcsqd(order.getCardId()); |
| | | // jcsqdService.saveLtkjExamJcsqd(order.getCardId()); |
| | | return AjaxResult.success("同步成功"); |
| | | } |
| | | return AjaxResult.error("未查到该人员体检记录"); |
| | | } |
| | | return AjaxResult.error("该人员数据正在同步中,请稍等"); |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | log.error(String.valueOf(e),e.getMessage()); |
| | | return AjaxResult.error("该人员数据正在同步中,请稍等"); |
| | | } finally { |
| | | lock.unlock(); |
| | |
| | | bgd.setShys(js.getStr("SHRBH")); |
| | | bgd.setShysmc(js.getStr("SHRXM")); |
| | | bgd.setYcbz(js.getStr("YCTS")); |
| | | bgd.setCreateTime(new Date()); |
| | | // bgd.setTpurl(js.getStr("")); |
| | | QueryWrapper<LtkjHybgd> queryWrapper = new QueryWrapper<>(bgd); |
| | | List<LtkjHybgd> list = ltkjHybgdService.list(queryWrapper); |
| | |
| | | |
| | | private void tbhyxm(TjOrder order) { |
| | | List<LtkjHysqd> one = testMapper.getHysqdByTmh(order.getCardId()); |
| | | if (one != null && one.size() > 0) { |
| | | if (one != null && !one.isEmpty()) { |
| | | for (LtkjHysqd ltkjHysqd : one) { |
| | | ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(ltkjHysqd.getTjh(), ltkjHysqd.getTmh()); |
| | | ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(ltkjHysqd.getTmh()); |
| | |
| | | ltkjHysqdService.save(ltkjHysqd); |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | | List<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh()); |
| | | if (one1 != null && one1.size() > 0) { |
| | | if (one1 != null && !one1.isEmpty()) { |
| | | DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); |
| | | ltkjHybgdService.saveBatch(one1); |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | |
| | | int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber); |
| | | if (num > 0) return AjaxResult.error("存在未检或延期项目暂不能生成报告!!!"); |
| | | } |
| | | |
| | | Date date = new Date(); |
| | | if (null != tjNumber) { |
| | | Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId()); |
| | | SysUser sysUser = userService.getById(userId); |
| | |
| | | tjOrder.setCheckStatus(checkStatus); |
| | | tjOrder.setStatus(TjConstants.TJ_CHECK); |
| | | tjOrder.setCheckDoctor(sysUser.getNickName()); |
| | | tjOrder.setCheckTime(new Date()); |
| | | tjOrder.setCheckTime(date); |
| | | tjOrder.setStatus(401); |
| | | tjOrder.setFinishTime(date); |
| | | if (orderService.updateById(tjOrder)) { |
| | | TjCustomer customer = customerService.getById(tjOrder.getUserId()); |
| | | if (null != customer) { |
| | | customer.setCusNumber(customer.getCusNumber() + 1); |
| | | customer.setCardId("0"); |
| | | if (customerService.updateById(customer)) { |
| | | // LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>(); |
| | | // wqq.eq(TbTransition::getCusId, customer.getCusIdcard()); |
| | | // wqq.eq(TbTransition::getCardId, customer.getCardId()); |
| | | // transitionService.remove(wqq); |
| | | asyncService.updateCheckType(tjNumber); |
| | | return AjaxResult.success("操作成功"); |
| | | } |
| | |
| | | List<TjOrderDetail> tjOrderDetails = detailService.addHuaYanTable(tjNumber); |
| | | |
| | | |
| | | if (null != remarkList && remarkList.size() > 0) { |
| | | if (null != remarkList && !remarkList.isEmpty()) { |
| | | for (TjOrderRemark remark : remarkList) { |
| | | Map<String, Object> parent = new HashMap<>(); |
| | | parent.put("checkAdvice", one.getCheckAdvice()); |
| | | parent.put("parent", remark.getProName()); |
| | | parent.put("parentId", remark.getProId().toString()); |
| | | List<TjOrderDetail> dels = new ArrayList<>(); |
| | | if (null != tjOrderDetails && tjOrderDetails.size() > 0) { |
| | | if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | if (remark.getProId().equals(tjOrderDetail.getProId())) { |
| | | String ckfw = tjOrderDetail.getStanId(); |
| | |
| | | tjOrderDetail.setProResult(tjOrderDetail.getProResult()); |
| | | } |
| | | |
| | | dels.add(tjOrderDetail); |
| | | if(remark.getOrgType().equals(tjOrderDetail.getOrgType())){ |
| | | dels.add(tjOrderDetail); |
| | | } |
| | | } |
| | | } |
| | | String summary = remark.getSummary(); |
| | |
| | | if (dels.isEmpty()) { |
| | | continue; |
| | | } |
| | | dels=dels.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList()); |
| | | dels = dels.stream() |
| | | .sorted(Comparator.comparingInt( |
| | | tjPdfVO -> tjPdfVO.getProName().length() // 根据名字的长度排序 |
| | | )) |
| | | .collect(Collectors.toList()); |
| | | parent.put("sons", dels); |
| | | parent.put("remark", remark.getRemark()); |
| | | parent.put("jgbx", remark.getJgbx()); |
| | |
| | | @PostMapping ("/checkUpdateOrderRemark") |
| | | @ApiOperation (value = "总检修改备注接口") |
| | | public AjaxResult checkUpdateOrderRemark(@RequestBody List<UpdateOrderRemarkVo> updateOrderRemarkVos) { |
| | | if (null != updateOrderRemarkVos && updateOrderRemarkVos.size() > 0) { |
| | | if (null != updateOrderRemarkVos && !updateOrderRemarkVos.isEmpty()) { |
| | | for (UpdateOrderRemarkVo remarkVo : updateOrderRemarkVos) { |
| | | LambdaQueryWrapper<TjOrderRemark> wqm = new LambdaQueryWrapper<>(); |
| | | wqm.eq(TjOrderRemark::getTjNumber, remarkVo.getTjNumber()); |
| | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 总检修改备注 |
| | | * |
| | | * @return |
| | | */ |
| | | @GetMapping ("/getzongjianyishengchakanyichangxiangmu") |
| | | @ApiOperation (value = "总检查看异常项目接口") |
| | | public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) { |
| | | long l = System.currentTimeMillis(); |
| | | if (StrUtil.isNotBlank(tjNum)) { |
| | | return zongjianyishengchakanyichangxiangmu(tjNum); |
| | | TjOrder one = orderService.getOrderByTjNum(tjNum); |
| | | |
| | | if (one == null) { |
| | | return AjaxResult.error("暂无数据!!"); |
| | | } |
| | | String yqbm = configService.selectConfigByKey("common_api_service_hospbm"); |
| | | jcycxmService.deletedByTjh(tjNum); |
| | | configController.zongjianshengchengyichangxiangmu(tjNum,yqbm); |
| | | |
| | | LambdaQueryWrapper<TjOrderYcxm> wq=new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrderYcxm::getTjh,tjNum); |
| | | List<TjOrderYcxm> list = ycxmService.list(wq); |
| | | if(null !=list && !list.isEmpty()){ |
| | | Collections.reverse(list); |
| | | Map<String, List<TjOrderYcxm>> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName)); |
| | | List<Map<String, Object>> maps = new ArrayList<>(); |
| | | for (Map.Entry<String, List<TjOrderYcxm>> entry : map.entrySet()) { |
| | | Map<String, Object> parent = new HashMap<>(); |
| | | List<TjOrderDetail> dels = new ArrayList<>(); |
| | | for (TjOrderYcxm ycxm : entry.getValue()) { |
| | | TjOrderDetail detail=new TjOrderDetail(); |
| | | detail.setOrderDetailId(Long.valueOf(ycxm.getId())); |
| | | detail.setProName(ycxm.getJcxm()); |
| | | detail.setProResult(ycxm.getJcjg()); |
| | | detail.setStanId(ycxm.getCkfw()); |
| | | detail.setProAdvice(ycxm.getDw()); |
| | | List<Map<String,Object>> btnrlist=new ArrayList<>(); |
| | | String jynr = ycxm.getJynr(); |
| | | JSONArray array = JSONUtil.parseArray(jynr); |
| | | for (Object object : array) { |
| | | Map<String,Object> objectMap=new HashMap<>(); |
| | | JSONObject jsonObject = (JSONObject) object; |
| | | String bt = jsonObject.getStr("bt"); |
| | | String nr = jsonObject.getStr("nr"); |
| | | objectMap.put("bt",bt); |
| | | objectMap.put("nr",nr); |
| | | if(null !=bt || null !=nr) btnrlist.add(objectMap); |
| | | } |
| | | detail.setAdvices(btnrlist); |
| | | dels.add(detail); |
| | | } |
| | | |
| | | parent.put("proName",entry.getKey()); |
| | | parent.put("jyjc",entry.getValue().get(0).getJyjc()); |
| | | parent.put("sone",dels); |
| | | maps.add(parent); |
| | | } |
| | | List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum); |
| | | |
| | | |
| | | List<Map<String, Object>> collect = mapList.stream() |
| | | .filter(b -> maps.stream() |
| | | .noneMatch(a -> a.get("proName").equals(b.get("proName")))) // 过滤掉在 maps 中存在的相同元素 |
| | | .collect(Collectors.toList()); |
| | | if(!collect.isEmpty()){ |
| | | maps.addAll(collect); |
| | | } |
| | | if(!maps.isEmpty()){ |
| | | List<Map<String, Object>> collect1 = maps.stream() |
| | | .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString())) |
| | | .collect(Collectors.toList()); |
| | | System.out.println("总耗时:"+(System.currentTimeMillis()-l)); |
| | | return AjaxResult.success(collect1); |
| | | } |
| | | System.out.println("总耗时:"+(System.currentTimeMillis()-l)); |
| | | |
| | | return AjaxResult.success(maps); |
| | | }else { |
| | | List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum); |
| | | System.out.println("总耗时:"+(System.currentTimeMillis()-l)); |
| | | return AjaxResult.success(mapList); |
| | | } |
| | | |
| | | // return zongjianyishengchakanyichangxiangmu(tjNum); |
| | | } |
| | | return AjaxResult.error(); |
| | | } |
| | | |
| | | private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) { |
| | | asyncService.updateCheckType(tjNumber); |
| | | TjOrder one = orderService.getOrderByTjNum(tjNumber); |
| | | @GetMapping ("/delzongjianyishengchakanyichangxiangmu") |
| | | @ApiOperation (value = "总检删除异常项目接口") |
| | | public AjaxResult delzongjianyishengchakanyichangxiangmu(@RequestParam String id) { |
| | | ycxmService.removeById(id); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | if (one == null) { |
| | | return AjaxResult.error("暂无数据!!"); |
| | | } |
| | | /*private List<Map<String, Object>> zongjianyishengchakanyichangxiangmu(String tjNumber) { |
| | | // asyncService.updateCheckType(tjNumber); |
| | | |
| | | List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | |
| | | List<TjOrderDetail> dels = new ArrayList<>(); |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | if (remark.getProsId().equals(tjOrderDetail.getProsId())) { |
| | | if(null !=tjOrderDetail.getProId()&& null !=tjOrderDetail.getYcbz()){ |
| | | if(!tjOrderDetail.getDeptId().equals("2")){ |
| | | List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString() |
| | | ,"",tjOrderDetail.getYcbz().replaceAll(" ", ""),tjNumber |
| | | ,tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "") |
| | | .replaceAll("[ 测定检测]","") |
| | | ,tjOrderDetail.getProResult()); |
| | | if(null !=maps && !maps.isEmpty()){ |
| | | tjOrderDetail.setAdvices(maps); |
| | | } |
| | | }else { |
| | | String[] split = tjOrderDetail.getProResult().split("。|,|,"); |
| | | List<Map<String,Object>> mapList=new ArrayList<>(); |
| | | for (String s : split) { |
| | | s = s.replaceAll("\n", ""); |
| | | // Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s); |
| | | Map<String,Object> maps= tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(),s,"0"); |
| | | if(null !=maps && !maps.isEmpty()){ |
| | | Object bt = maps.get("bt"); |
| | | Object nr = maps.get("nr"); |
| | | if(null !=bt || null !=nr) mapList.add(maps); |
| | | } |
| | | } |
| | | tjOrderDetail.setAdvices(mapList); |
| | | } |
| | | |
| | | } |
| | | |
| | | dels.add(tjOrderDetail); |
| | | } |
| | | } |
| | | if(!dels.isEmpty()){ |
| | | parent.put("proName",remark.getProName()); |
| | | parent.put("jyjc",remark.getJyjc()); |
| | | parent.put("sone",dels); |
| | | list.add(parent); |
| | | } |
| | | } else { |
| | | return AjaxResult.success("该人员无异常项目"); |
| | | } |
| | | } |
| | | return AjaxResult.success(list); |
| | | |
| | | } |
| | | return AjaxResult.success("该人员没有体检项目数据!"); |
| | | return list; |
| | | }*/ |
| | | |
| | | private List<Map<String, Object>> zongjianyishengchakanyichangxiangmu(String tjNumber) { |
| | | // asyncService.updateCheckType(tjNumber); |
| | | |
| | | List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber); |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | if (null != remarkList && !remarkList.isEmpty()) { |
| | | for (TjOrderRemark remark : remarkList) { |
| | | Map<String, Object> parent = new HashMap<>(); |
| | | if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { |
| | | List<TjOrderDetail> dels = new ArrayList<>(); |
| | | for (TjOrderDetail tjOrderDetail : tjOrderDetails) { |
| | | if (remark.getProsId().equals(tjOrderDetail.getProsId())) { |
| | | if(null !=tjOrderDetail.getProId()&& null !=tjOrderDetail.getYcbz()){ |
| | | if(!tjOrderDetail.getDeptId().equals("2")){ |
| | | List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString() |
| | | ,tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "") |
| | | .replaceAll("[ 测定检测 ◆]","").replaceAll("\\[.*?\\]", "") |
| | | ,tjOrderDetail.getYcbz().replaceAll(" ", ""),tjNumber |
| | | ,tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "") |
| | | .replaceAll("[ 测定检测 ◆]","").replaceAll("\\[.*?\\]", "") |
| | | ,tjOrderDetail.getProResult()); |
| | | |
| | | |
| | | if(null !=maps && !maps.isEmpty()){ |
| | | tjOrderDetail.setAdvices(maps); |
| | | } |
| | | |
| | | }else { |
| | | String[] split = tjOrderDetail.getProResult().split("。|,|,"); |
| | | List<Map<String,Object>> mapList=new ArrayList<>(); |
| | | for (String s : split) { |
| | | s = s.replaceAll("\n", ""); |
| | | // Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s); |
| | | Map<String,Object> maps= tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(),s,"0"); |
| | | if(null !=maps && !maps.isEmpty()){ |
| | | Object bt = maps.get("bt"); |
| | | Object nr = maps.get("nr"); |
| | | if(null !=bt || null !=nr) mapList.add(maps); |
| | | } |
| | | } |
| | | tjOrderDetail.setAdvices(mapList); |
| | | } |
| | | |
| | | } |
| | | |
| | | dels.add(tjOrderDetail); |
| | | } |
| | | } |
| | | if(!dels.isEmpty()){ |
| | | parent.put("proName",remark.getProName()); |
| | | parent.put("jyjc",remark.getJyjc()); |
| | | parent.put("sone",dels); |
| | | list.add(parent); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | @GetMapping ("/chushenyemianchakanxiangmujieguo") |
| | | @ApiOperation (value = "初审页面查看项目结果接口") |
| | | public AjaxResult chushenyemianchakanxiangmujieguo(@RequestParam String proId,@RequestParam String tjNum) { |
| | | List<Map<String,Object>> maps = projectService.tjCsXmjgcx(tjNum,proId); |
| | | return AjaxResult.success(maps); |
| | | } |
| | | |
| | | @GetMapping ("/panduaniscunzaiweijian") |
| | | @ApiOperation (value = "初审页面查看项目前判断是否全部未检接口") |
| | | public AjaxResult panduaniscunzaiweijian(@RequestParam String tjNum) { |
| | | int a = orderRemarkService.panduaniscunzaiweijian(tjNum); |
| | | return AjaxResult.success(a); |
| | | } |
| | | |
| | | |
| | | @PostMapping ("/addOrderYcXmByTjh") |
| | | @ApiOperation (value = "总检医生页面新增异常项目建议") |
| | | public AjaxResult addOrderYcXmJyByTjh(@RequestBody List<TjOrderYcxm> ycxms) { |
| | | if(null !=ycxms && !ycxms.isEmpty()){ |
| | | String tjh = ycxms.get(0).getTjh(); |
| | | if(StringUtils.isNotBlank(tjh)){ |
| | | ycxmService.delOrderYcXmJyByTjh(tjh); |
| | | |
| | | for (TjOrderYcxm ycxm : ycxms) { |
| | | ycxm.setJynr(JSONUtil.toJsonStr(ycxm.getMap())); |
| | | } |
| | | // List<TjOrderYcxm> collect = ycxms.stream().distinct().collect(Collectors.toList()); |
| | | ycxmService.saveBatch(ycxms); |
| | | return AjaxResult.success(); |
| | | } |
| | | } |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 同步sql server数据到本地数据库数据接口 |
| | | */ |
| | | @GetMapping ("/newdataSynchronization") |
| | | @ApiOperation (value = "最新公共同步sql server数据到本地数据库数据接口") |
| | | @RepeatSubmit |
| | | public AjaxResult newdataSynchronization(@RequestParam String tjNumber) { |
| | | try { |
| | | //根据配置调取存储过程 将临时表数据存入预约表2023.12.12 |
| | | final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis"); |
| | | TjOrder order = orderService.getOrderByTjNum(tjNumber); |
| | | if (null != order) { |
| | | if (null != sfkqdyhis && sfkqdyhis.equals("Y")) { |
| | | dataSynchronizationApi(tjNumber); |
| | | }else { |
| | | configController.shoudongtbjyjcwsxmjg("jyjc",tjNumber); |
| | | } |
| | | return AjaxResult.success("同步成功"); |
| | | } |
| | | return AjaxResult.error("未查到该人员体检记录"); |
| | | } catch (Exception e) { |
| | | // throw new RuntimeException(ex); |
| | | log.error(String.valueOf(e),e.getMessage()); |
| | | return AjaxResult.error("该人员数据正在同步中,请稍等"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |