package com.ltkj.web.controller.system; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.extra.pinyin.PinyinUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.common.annotation.Log; import com.ltkj.common.annotation.RepeatSubmit; import com.ltkj.common.enums.BusinessType; import com.ltkj.common.enums.DataSourceType; import com.ltkj.common.utils.SecurityUtils; import com.ltkj.db.DataSourceContextHolder; import com.ltkj.framework.config.MatchUtils; import com.ltkj.framework.datasource.DynamicDataSourceContextHolder; import com.ltkj.hosp.domain.HisApiConfig; import com.ltkj.hosp.domain.TjCustomerBlack; import com.ltkj.hosp.domain.TjReservation; import com.ltkj.hosp.hisDto.OutpinregapplyDto; import com.ltkj.hosp.mapper.TestMapper; import com.ltkj.hosp.service.*; import com.ltkj.hosp.sqlDomain.LtkjMiddleDetail; import com.ltkj.hosp.sqlDomain.LtkjMiddleHead; import com.ltkj.hosp.sqlDomain.LtkjTjPat; import com.ltkj.system.service.ISysConfigService; import com.ltkj.web.controller.his.HisApiGetMethodService; import com.ltkj.web.controller.his.HisApiMethod; import com.ltkj.web.controller.his.HisApiMethodService; import com.ltkj.web.wxUtils.HttpClientUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.DigestUtils; import org.springframework.web.bind.annotation.*; import com.ltkj.common.core.controller.BaseController; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.hosp.domain.TjCustomer; import com.ltkj.common.utils.poi.ExcelUtil; import com.ltkj.common.core.page.TableDataInfo; import java.util.*; import java.util.stream.Collectors; /** * 客户信息Controller * * @author ltkj * @date 2022-11-17 */ @RestController @RequestMapping("/hosp/customer") @Api(tags = "客户管理接口") @Slf4j public class TjCustomerController extends BaseController { @Resource private ITjCustomerService tjCustomerService; @Autowired private HisApiGetMethodService hisApiGetMethodService; @Resource private ITjReservationService tjReservationService; @Autowired private HisApiConfigService hisApiConfigService; @Resource private ISysConfigService sysConfigService; @Resource private TestMapper testMapper; @Resource private TjvLtkjvtjpatService tjvLtkjvtjpatService; @Resource private LtkjMiddleHeadService headService; @Resource private LtkjMiddleDetailService middleDetailService; @Resource private ITjOrderService tjOrderService; @Resource private TjCustomerBlackService blackService; @Autowired private HisApiMethod hisApiMethod; @Autowired private HisApiMethodService controller; //将方法返回值解析成json格式 public JSONObject getJSONObject(String builder) { String Response = JSONUtil.parseObj(builder).getStr("Response"); return JSONUtil.parseObj(Response); } //获取方法返回值信息 public String getAjaxResult(AjaxResult result) { return result.get("data").toString(); } @GetMapping("/newGetTjPat") @ApiOperation(value = "查询his数据库返回新的数据") public AjaxResult newGetTjPat(@RequestParam(required = false) String pacCode, @RequestParam(required = false) String pacName, @RequestParam(required = false) String pacRemark) { List> maps = testMapper.newGetTjPat(pacCode, pacName, pacRemark); DynamicDataSourceContextHolder.clearDataSourceType(); // List> list=new ArrayList<>(); // if(null !=maps && maps.size()>0){ // for (Map map : maps) { // String pacCode1 = map.get("pacCode").toString(); // List s = tjOrderService.selectTjOrderByCardId1(); // if(null !=s && s.size()>0){ // if(s.contains(pacCode1)){ //// maps.remove(map); // continue; // } // list.add(map); // } // } // } List strings = tjOrderService.selectTjOrderByCardId1(); if (null != strings && !strings.isEmpty()) { List> collect = maps.stream() .filter(item -> !strings.contains(item.get("pacCode").toString())).collect(Collectors.toList()); return AjaxResult.success(collect); } return AjaxResult.success(maps); // return AjaxResult.success(maps); } @GetMapping("/vcustomerlist") @ApiOperation(value = "签到登记页面姓名栏弹框接口") public AjaxResult vcustomerlist(@RequestParam(required = false) String name, @RequestParam(required = false) String sjh, @RequestParam(required = false) String sfzh) { List> maps = tjCustomerService.vcustomerlist(name, sjh, sfzh); return AjaxResult.success(maps); } /** * 根据身份证号获取用户信息 */ @PostMapping(value = "/cusIdcard") @ApiOperation(value = "根据身份证号获取用户信息") // @Log(title = "客户身份信息", businessType = BusinessType.EXPORT) public AjaxResult getInfoByIdCard(@RequestParam @ApiParam(value = "客户身份证号") String cusIdcard) { if (!"".equals(cusIdcard) && cusIdcard != null) { String sfjysfzh = sysConfigService.selectConfigByKey("sfjysfzh"); // String sfjysjh = configService.selectConfigByKey("sfjysjh"); //判断身份证号格式是否正确 if(sfjysfzh.equalsIgnoreCase("Y")){ if(cusIdcard.length()==18){ if (! MatchUtils.isIdCard(cusIdcard)) { return AjaxResult.error("身份证号码错误"); } } // if(cusIdcard.length()==9){ // if (!MatchUtils.cardValidates(cusIdcard)) { // return AjaxResult.error("身份证号码错误"); // } // } } final String getInfoFromSqlData = sysConfigService.selectConfigByKey("getInfoFromSqlData"); if ("Y".equals(getInfoFromSqlData)) { //根据身份证号从his查信息 LtkjTjPat tjPatByIdCard = testMapper.getTjPatByIdCard(cusIdcard); if (null != tjPatByIdCard) { String fcardNo = tjPatByIdCard.getFcardNo(); if (null != fcardNo && !fcardNo.isEmpty()) { fcardNo = fcardNo.trim(); tjPatByIdCard.setFcardNo(fcardNo); } else { fcardNo = cusIdcard.trim(); tjPatByIdCard.setFcardNo(fcardNo); } //根据身份证号从数据库拿信息 没有的话保存 LtkjTjPat ltkjTjPat = tjvLtkjvtjpatService.getLtkjTjPatByCusIdCard(cusIdcard); if (null == ltkjTjPat) { tjvLtkjvtjpatService.save(tjPatByIdCard); } DynamicDataSourceContextHolder.clearDataSourceType(); //再根据身份证号写customer表 TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(tjPatByIdCard.getFcardNo()); if (null == tjCustomer) { //为空的话掉存储过程保存到客户表 testMapper.getTjPatByCusId(cusIdcard); LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); qw.eq(TjCustomer::getCusIdcard, tjPatByIdCard.getFcardNo()); TjCustomer customer = tjCustomerService.getOne(qw); customer.setReservationId(customer.getCardId()); extracted(customer); return success(customer); } else { String cardId = tjPatByIdCard.getFcardId(); if (null != cardId && !cardId.equals("0")) { int i = tjOrderService.selectTjOrderByCardId(cardId); if (i > 0) { return AjaxResult.error("不可重复签到"); } } tjCustomer.setReservationId(tjCustomer.getCardId()); tjCustomer.setCardId(tjPatByIdCard.getFcardId()); tjCustomerService.updateById(tjCustomer); extracted(tjCustomer); return success(tjCustomer); } } } String key = sysConfigService.selectConfigByKey("sfkqdyhis"); String s = sysConfigService.selectConfigByKey("is_request_common_his_api"); LambdaQueryWrapper wq = new LambdaQueryWrapper<>(); wq.eq(TjReservation::getIdCard, cusIdcard); wq.eq(TjReservation::getIsExpire, 2); TjReservation tjReservation = tjReservationService.getOne(wq); if (tjReservation != null) { if (null != tjReservation.getReservationTime() && DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(), tjReservation.getYxts())).before(new Date())) { tjReservation.setIsExpire(1); tjReservationService.updateById(tjReservation); return AjaxResult.error("对不起您的预约已超时请重新预约"); } LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); qw.eq(TjCustomer::getCusIdcard, cusIdcard); TjCustomer tjCustomer1 = tjCustomerService.getOne(qw); if (tjCustomer1 != null) { // if (null != tjReservation.getCompanyId()) tjCustomer1.setDictCompId(Long.valueOf(tjReservation.getCompanyId())); // if (null != tjReservation.getCompany()) tjCustomer1.setCompName(tjReservation.getCompany()); // tjCustomerService.updateById(tjCustomer1); tjCustomer1.setTjType(tjReservation.getTjType()); tjCustomer1.setCusName(tjReservation.getName()); tjCustomer1.setCusSex(Long.valueOf(tjReservation.getSex())); try { tjCustomer1.setCusBrithday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard().replaceAll(" ", ""))); } catch (Exception e) { return AjaxResult.error("身份证号不正确"); } tjCustomer1.setCusPhone(tjReservation.getPhoe()); tjCustomer1.setCusEmail(tjReservation.getEmail()); tjCustomer1.setCusAddr(tjReservation.getAddress()); tjCustomer1.setCusMarryStatus(String.valueOf(tjReservation.getMarriage())); tjCustomer1.setCusNational(String.valueOf(tjReservation.getNation())); tjCustomer1.setIdType(tjReservation.getIdType()); tjCustomer1.setAge(tjReservation.getAge()); tjCustomer1.setAgeUnit(tjReservation.getAgeUnit()); tjCustomer1.setCareer(tjReservation.getCareer()); tjCustomer1.setPym(PinyinUtil.getFirstLetter(tjReservation.getName(),"")); tjCustomer1.setTeamNo(tjReservation.getTeamNo()); tjCustomer1.setCompId(tjReservation.getCompanyId()); tjCustomer1.setReservationId(tjReservation.getId()); tjCustomer1.setDiscount(tjReservation.getDiscount()); tjCustomer1.setGroupingId(tjReservation.getGroupingId()); // if(null !=tjReservation.getCompanyId())tjCustomer1.setDictCompId(Long.valueOf(tjReservation.getCompanyId())); if(null !=tjReservation.getCompany())tjCustomer1.setCompName(tjReservation.getCompany()); // tjCustomerService.updateById(tjCustomer1); return success(tjCustomer1); }else { TjCustomer tjCustomer = new TjCustomer(); tjCustomer.setCusIdcard(tjReservation.getIdCard()); tjCustomer.setCusName(tjReservation.getName()); tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex())); try { tjCustomer.setCusBrithday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard())); } catch (Exception e) { return AjaxResult.error("身份证号不正确"); } tjCustomer.setCusPhone(tjReservation.getPhoe()); tjCustomer.setCusEmail(tjReservation.getEmail()); tjCustomer.setCusAddr(tjReservation.getAddress()); tjCustomer.setCusMarryStatus(String.valueOf(tjReservation.getMarriage())); tjCustomer.setCusNational(String.valueOf(tjReservation.getNation())); tjCustomer.setIdType(tjReservation.getIdType()); tjCustomer.setAge(tjReservation.getAge()); tjCustomer.setAgeUnit(tjReservation.getAgeUnit()); tjCustomer.setCareer(tjReservation.getCareer()); tjCustomer.setDwPhone(tjReservation.getDwPhone()); // tjCustomer.setCardId(tjReservation.getCardId()); tjCustomer.setIndexCard(tjReservation.getIndexCard()); //截取密码自动生成set进去 String substring = cusIdcard.substring(cusIdcard.length() - 6); substring = DigestUtils.md5DigestAsHex(substring.getBytes()); tjCustomer.setCusPassword(substring); tjCustomer.setTjType(tjReservation.getTjType()); tjCustomer.setPym(PinyinUtil.getFirstLetter(tjReservation.getName(),"")); if(null !=tjReservation.getCompanyId())tjCustomer.setCompId(tjReservation.getCompanyId()); if(null !=tjReservation.getCompany())tjCustomer.setCompName(tjReservation.getCompany()); if (null != key && key.equals("Y")) { AjaxResult result = controller.Outpincreateapply(tjCustomer); String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); if (code.equals("0")) { JSONArray resultDatass = object.getJSONArray("ResultData"); Map resultData = (Map) resultDatass.get(0); if (null != resultData && !resultData.isEmpty()) { String pationid = resultData.get("PationId").toString(); if (null != pationid) { tjCustomer.setPationId(pationid); tjCustomerService.save(tjCustomer); //保存注册入参出参 resultData.put("cardId",pationid); JSONObject object4 = JSONUtil.parseObj(resultData); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpincreateapply"); HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); hisApiGetMethodService.save(object4, "Outpincreateapply", hisApiConfig, JSONUtil.toJsonStr(BeanUtil.beanToMap(tjCustomer))); } } } } else if(null != s && s.equalsIgnoreCase("Y")) { TjCustomer requestCommonHisApi = isRequestCommonHisApi(tjCustomer); if (null !=requestCommonHisApi){ tjCustomerService.save(requestCommonHisApi); } }else { tjCustomerService.save(tjCustomer); } tjCustomer.setTeamNo(tjReservation.getTeamNo()); tjCustomer.setCompId(tjReservation.getCompanyId()); tjCustomer.setReservationId(tjReservation.getId()); tjCustomer.setDiscount(tjReservation.getDiscount()); tjCustomer.setGroupingId(tjReservation.getGroupingId()); return success(tjCustomer); } } //根据配置调取存储过程 将临时表数据存入预约表2023.12.12 LambdaQueryWrapper customerLambdaQueryWrapper = new LambdaQueryWrapper<>(); customerLambdaQueryWrapper.eq(TjCustomer::getCusIdcard, cusIdcard); TjCustomer tjCustomerServiceOne = tjCustomerService.getOne(customerLambdaQueryWrapper); if (null == tjCustomerServiceOne) { return AjaxResult.error("该人员信息不存在请先进行登记!!!"); } // if (null != key && key.equals("Y")) { String cardId = tjCustomerServiceOne.getCardId(); if (null != cardId && !cardId.equals("0")) { // int i = tjOrderService.selectTjOrderByCardId(cardId); // if (i > 0) { // return AjaxResult.error("不可重复签到"); // } } // } if(!tjCustomerServiceOne.getAge().equals(String.valueOf(DateUtil.ageOfNow(tjCustomerServiceOne.getCusBrithday())))){ tjCustomerServiceOne.setAge(String.valueOf(DateUtil.ageOfNow(tjCustomerServiceOne.getCusBrithday()))); tjCustomerService.updateById(tjCustomerServiceOne); } return AjaxResult.success(tjCustomerServiceOne); } return error("身份证号不存在"); } private void extracted(TjCustomer customer) { //从his表抓数据 LtkjMiddleHead pat = testMapper.getMiddleHeadByPartId(customer.getCardId()); if (null != pat) { LambdaQueryWrapper wq1 = new LambdaQueryWrapper<>(); wq1.eq(LtkjMiddleHead::getFeadId, customer.getCardId()); headService.remove(wq1); LambdaQueryWrapper wq0 = new LambdaQueryWrapper<>(); wq0.eq(LtkjMiddleDetail::getFheadId, pat.getFeadId()); middleDetailService.remove(wq0); List list = testMapper.getMiddleDetailByFeadId(pat.getFeadId()); DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); LtkjMiddleHead o = headService.getMiddleHeadByPartId(customer.getCardId()); if (o == null) { headService.save(pat); for (LtkjMiddleDetail ltkjMiddleDetail : list) { middleDetailService.save(ltkjMiddleDetail); } } testMapper.saveTjProByCusId(customer.getCardId(), customer.getCusIdcard()); } DynamicDataSourceContextHolder.clearDataSourceType(); } @GetMapping("/getcusList") @ApiOperation(value = "档案管理接口") public TableDataInfo getcusList(TjCustomer tjCustomer) { startPage(); List list = tjCustomerService.getcusList(tjCustomer); if (null != list && !list.isEmpty()) { for (TjCustomer customer : list) { customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone())); customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard())); TjCustomerBlack tjCustomerBlack = blackService.isTjCustomerBlack(String.valueOf(customer.getCusId())); if (null != tjCustomerBlack) { customer.setIsBlack("Y"); } else { customer.setIsBlack("N"); } } } return getDataTable(list); } /** * 查询客户信息列表 */ // @PreAuthorize("@ss.hasPermi('hosp:customer:list')") @GetMapping("/list") @ApiOperation(value = "查看客户列表") public TableDataInfo list(TjCustomer tjCustomer) { startPage(); List list = tjCustomerService.selectTjCustomerList(tjCustomer); if (null != list && !list.isEmpty()) { for (TjCustomer customer : list) { customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone())); customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard())); TjCustomerBlack tjCustomerBlack = blackService.isTjCustomerBlack(String.valueOf(customer.getCusId())); if (null != tjCustomerBlack) { customer.setIsBlack("Y"); } else { customer.setIsBlack("N"); } } } return getDataTable(list); } /** * 导出客户信息列表 */ //@PreAuthorize("@ss.hasPermi('hosp:customer:export')") //@Log(title = "客户信息", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, TjCustomer tjCustomer) { List list = tjCustomerService.selectTjCustomerList(tjCustomer); ExcelUtil util = new ExcelUtil(TjCustomer.class); util.exportExcel(response, list, "客户信息数据"); } /** * 获取客户信息详细信息 */ //@PreAuthorize("@ss.hasPermi('hosp:customer:query')") @GetMapping(value = "/{cusId}") @ApiOperation(value = "根据客户id获取客户详情") public AjaxResult getInfo(@PathVariable("cusId") @ApiParam(value = "客户id") Long cusId) { return success(tjCustomerService.selectTjCustomerByCusId(cusId)); } /** * 新增客户信息 */ @PostMapping @ApiOperation(value = "新增客户") @Transactional @RepeatSubmit @Log(title = "新增客户信息", businessType = BusinessType.INSERT) public AjaxResult add(@RequestBody @ApiParam(value = "客户对象信息") TjCustomer tjCustomer) { if (null == tjCustomer.getCusIdcard() || null == tjCustomer.getCusPhone()) { return AjaxResult.error("请输入身份证号或手机号"); } Date dates = new Date(); final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss"); String cusIdcard = tjCustomer.getCusIdcard(); boolean b = true; String sfjysfzh = sysConfigService.selectConfigByKey("sfjysfzh"); String sfjysjh = sysConfigService.selectConfigByKey("sfjysjh"); if (null != tjCustomer.getIdType()) { if (tjCustomer.getIdType().equals("1")) { //判断身份证号格式是否正确 if(sfjysfzh.equalsIgnoreCase("Y")){ if(cusIdcard.length()==18){ b = MatchUtils.isIdCard(cusIdcard); } } } // else { // if(cusIdcard.length()==9){ // b = MatchUtils.cardValidate(cusIdcard, tjCustomer.getIdType()); // } // // } } else { return AjaxResult.error("请选择证件类型"); } if (!b) return AjaxResult.error("证件号有误"); //判断身份证号格式是否正确 if(sfjysjh.equalsIgnoreCase("Y")){ if (!(MatchUtils.isMobileNO(tjCustomer.getCusPhone()))) return AjaxResult.error("手机号错误"); } LambdaQueryWrapper wq = new LambdaQueryWrapper<>(); wq.eq(TjCustomer::getCusIdcard, cusIdcard); TjCustomer customer = tjCustomerService.getOne(wq); if (customer != null) { return AjaxResult.error("该人员已存在"); } String substring = cusIdcard.substring(cusIdcard.length() - 6); substring = DigestUtils.md5DigestAsHex(substring.getBytes()); tjCustomer.setCusPassword(substring); if(cusIdcard.length()==18) { try { tjCustomer.setCusBrithday(MatchUtils.getBirthDayByIdCard(tjCustomer.getCusIdcard())); } catch (Exception e) { return AjaxResult.error("身份证号不正确"); } } tjCustomer.setCusNumber(0L); tjCustomer.setPym(PinyinUtil.getFirstLetter(tjCustomer.getCusName(),"")); String config = sysConfigService.selectConfigByKey("sfkqdyhis"); logger.info("config ->{}",config); String dataSourceType = DataSourceContextHolder.getDataSourceKey(); logger.info("登记当前数据源 ->{}",dataSourceType); if (null != config && config.equals("Y")) { AjaxResult tjCustomer1 = suijieHisXinXi(tjCustomer, date); if (tjCustomer1 != null) return tjCustomer1; } else { String s = sysConfigService.selectConfigByKey("is_request_common_his_api"); logger.info("s ->{}",s); if (null != s && s.equals("Y")){ TjCustomer requestCommonHisApi = isRequestCommonHisApi(tjCustomer); if (null !=requestCommonHisApi){ if (tjCustomerService.save(requestCommonHisApi)) { return AjaxResult.success(requestCommonHisApi); } } }else { if (tjCustomerService.save(tjCustomer)) { return AjaxResult.success(tjCustomer); } } } return AjaxResult.error(); } private TjCustomer isRequestCommonHisApi(TjCustomer tjCustomer) { String apiUrl = sysConfigService.selectConfigByKey("common_api_url"); String hospbm = sysConfigService.selectConfigByKey("common_api_service_hospbm"); HashMap isjd = new HashMap<>(); isjd.put("cusIdCard", tjCustomer.getCusIdcard()); isjd.put("compId",""); String isCreat = HttpClientUtils.sendPost(apiUrl+"/api/his/"+hospbm+"/isCreat", isjd); JSONObject isCreatjsonObject = JSONUtil.parseObj(isCreat); if (isCreatjsonObject.getStr("code").equals("200")){ JSONObject data = isCreatjsonObject.getJSONObject("data"); tjCustomer.setPationId(data.getStr("pationId")); tjCustomer.setCardId(data.getStr("cardId")); tjCustomer.setHisJzkh(data.getStr("cardId")); return tjCustomer; }else { HashMap map = new HashMap<>(); // 1是身份证 // 根据凌云his接口只要不是国内身份证号 身份证字段不传 将号码传递到卡号字段并单位编号必填 单位编号随便写 if (!tjCustomer.getIdType().equals("1")){ map.put("cardId",tjCustomer.getCusIdcard()); map.put("compId",tjCustomer.getCusIdcard()); map.put("cusIdCard", ""); }else { map.put("cardId",""); map.put("cusIdCard", tjCustomer.getCusIdcard()); map.put("compId",""); } map.put("cusName", tjCustomer.getCusName()); map.put("cusSex", tjCustomer.getCusSex()); map.put("cusBrithday", tjCustomer.getCusBrithday() != null ? DateUtil.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd") : ""); map.put("cusAddr", tjCustomer.getCusAddr()); map.put("cusPhone", tjCustomer.getCusPhone()); map.put("compName",""); String post = HttpClientUtils.sendPost(apiUrl+"/api/his/"+hospbm+"/creat", map); JSONObject jsonObject = JSONUtil.parseObj(post); if (jsonObject.getStr("code").equals("200")){ JSONObject data = jsonObject.getJSONObject("data"); tjCustomer.setPationId(data.getStr("pationId")); tjCustomer.setCardId(data.getStr("cardId")); tjCustomer.setHisJzkh(data.getStr("cardId")); return tjCustomer; } } return null; } private AjaxResult suijieHisXinXi(TjCustomer tjCustomer, String date) { AjaxResult result = controller.Outpincreateapply(tjCustomer); String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); if (code.equals("0")) { JSONArray resultDatass = object.getJSONArray("ResultData"); Map resultData = (Map) resultDatass.get(0); if (null != resultData && !resultData.isEmpty()) { String pationid = resultData.get("PationId").toString(); if (null != pationid) { tjCustomer.setPationId(pationid); // tjCustomerService.updateById(tjCustomer); //保存注册入参出参 resultData.put("cardId",pationid); JSONObject object4 = JSONUtil.parseObj(resultData); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpincreateapply"); HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); hisApiGetMethodService.save(object4, "Outpincreateapply", hisApiConfig, JSONUtil.toJsonStr(BeanUtil.beanToMap(tjCustomer))); } } if (tjCustomerService.save(tjCustomer)) { return AjaxResult.success(tjCustomer); } } return AjaxResult.error(object.getStr("ResultContent")); } /** * 修改客户信息 */ //@PreAuthorize("@ss.hasPermi('hosp:customer:edit')") @Log(title = "修改客户信息", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation(value = "修改客户信息") @Transactional @RepeatSubmit public AjaxResult edit(@RequestBody @ApiParam(value = "客户对象") TjCustomer tjCustomer) { TjCustomer customer = tjCustomerService.getById(tjCustomer.getCusId()); if(null==customer){ return AjaxResult.error("该人员不存在!"); } String cusPhone = tjCustomer.getCusPhone(); if (null == cusPhone) { return AjaxResult.error("手机号不能为空"); } String sfjysfzh = sysConfigService.selectConfigByKey("sfjysfzh"); String sfjysjh = sysConfigService.selectConfigByKey("sfjysjh"); //判断身份证号格式是否正确 if(sfjysfzh.equalsIgnoreCase("Y")){ if(tjCustomer.getIdType().equals("1") ){ if (!(MatchUtils.isIdCard(tjCustomer.getCusIdcard()))) return AjaxResult.error("身份证号错误"); } // if(tjCustomer.getCusIdcard().length()==9){ // if (!MatchUtils.cardValidates(tjCustomer.getCusIdcard())) { // return AjaxResult.error("身份证号码错误"); // } // } } //判断身份证号格式是否正确 if(sfjysjh.equalsIgnoreCase("Y")){ if (!(MatchUtils.isMobileNO(tjCustomer.getCusPhone()))) return AjaxResult.error("手机号错误"); } tjCustomer.setCusPhone(cusPhone); tjCustomer.setPym(PinyinUtil.getFirstLetter(tjCustomer.getCusName(),"")); if (tjCustomerService.updateById(tjCustomer)) { String config = sysConfigService.selectConfigByKey("sfkqdyhis"); if (null != config && config.equals("Y")) { AjaxResult result = controller.Outpincreateapply(tjCustomer); String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); if (code.equals("0")) { return AjaxResult.success(); } return AjaxResult.error(object.getStr("ResultContent")); }else { String s = sysConfigService.selectConfigByKey("is_request_common_his_api"); if (null != s && s.equals("Y")){ String apiUrl = sysConfigService.selectConfigByKey("common_api_url"); String hospbm = sysConfigService.selectConfigByKey("common_api_service_hospbm"); HashMap map = new HashMap<>(); map.put("pationId",customer.getPationId()); map.put("cardId",customer.getHisJzkh()); map.put("cusName",tjCustomer.getCusName()); map.put("cusSex",tjCustomer.getCusSex()); map.put("cusIdCard",tjCustomer.getCusIdcard()); map.put("compId",""); map.put("cusBrithday",tjCustomer.getCusBrithday() != null ? DateUtil.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd") : ""); map.put("cusAddr",tjCustomer.getCusAddr()); map.put("cusPhone",tjCustomer.getCusPhone()); map.put("compName",""); String isCreat = HttpClientUtils.sendPost(apiUrl+"/api/his/"+hospbm+"/update", map); JSONObject isCreatjsonObject = JSONUtil.parseObj(isCreat); if (isCreatjsonObject.getStr("code").equals("200")){ // JSONObject data = isCreatjsonObject.getJSONObject("data"); // tjCustomer.setPationId(data.getStr("pationId")); // tjCustomer.setCardId(data.getStr("cardId")); // tjCustomer.setHisJzkh(data.getStr("cardId")); // if (tjCustomerService.updateById(tjCustomer)) { return AjaxResult.success(tjCustomer); // } }else { return AjaxResult.error(); } } return AjaxResult.success(); } } return AjaxResult.error(); } @Log(title = "注册客户信息", businessType = BusinessType.UPDATE) @PostMapping(value = "/zhuceTjCustomer") @ApiOperation(value = "修改客户信息") @Transactional @RepeatSubmit public AjaxResult zhuceTjCustomer(@RequestBody @ApiParam(value = "客户对象") TjCustomer tjCustomer) { try { TjCustomer customer = tjCustomerService.getById(tjCustomer.getCusId()); if(null==customer){ return AjaxResult.error("该人员不存在!"); } if(!customer.getPationId().equals("0")){ return AjaxResult.error("该人员已经注册!"); } String config = sysConfigService.selectConfigByKey("sfkqdyhis"); if (null != config && config.equals("Y")) { AjaxResult result = controller.Outpincreateapply(customer); String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); if (code.equals("0")) { JSONArray resultDatass = object.getJSONArray("ResultData"); Map resultData = (Map) resultDatass.get(0); if (null != resultData && !resultData.isEmpty()) { String pationid = resultData.get("PationId").toString(); if (null != pationid) { customer.setPationId(pationid); //保存注册入参出参 resultData.put("cardId",pationid); JSONObject object4 = JSONUtil.parseObj(resultData); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpincreateapply"); HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); hisApiGetMethodService.save(object4, "Outpincreateapply", hisApiConfig, JSONUtil.toJsonStr(BeanUtil.beanToMap(tjCustomer))); } } if (tjCustomerService.updateById(customer)) { return AjaxResult.success("注册成功"); } }else{ return AjaxResult.error("注册失败"); } } String s = sysConfigService.selectConfigByKey("is_request_common_his_api"); if (null != s && s.equals("Y")){ TjCustomer requestCommonHisApi = isRequestCommonHisApi(customer); if (null !=requestCommonHisApi){ if (tjCustomerService.updateById(customer)) { return AjaxResult.success("注册成功"); } }else { return AjaxResult.error("注册失败"); } } return AjaxResult.error("请先连接his服务"); } catch (Exception e) { log.error(e.toString()); throw new RuntimeException(e); } } /** * 删除客户信息 */ //@PreAuthorize("@ss.hasPermi('hosp:customer:remove')") //@Log(title = "客户信息", businessType = BusinessType.DELETE) @DeleteMapping("/{cusIds}") @ApiOperation(value = "删除客户") public AjaxResult remove(@PathVariable @ApiParam(value = "所删除客户的id") Long[] cusIds) { return toAjax(tjCustomerService.removeByIds(Arrays.asList(cusIds))); } }