| | |
| | | |
| | | 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.bean.BeanUtils; |
| | | import com.ltkj.common.utils.SecurityUtils; |
| | | 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.sun.xml.internal.bind.v2.TODO; |
| | | 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 org.apache.ibatis.annotations.Param; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | 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.annotation.Log; |
| | | import com.ltkj.common.core.controller.BaseController; |
| | | import com.ltkj.common.core.domain.AjaxResult; |
| | | import com.ltkj.common.enums.BusinessType; |
| | | import com.ltkj.hosp.domain.TjCustomer; |
| | | import com.ltkj.common.utils.poi.ExcelUtil; |
| | | import com.ltkj.common.core.page.TableDataInfo; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneId; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | |
| | | /** |
| | |
| | | @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; |
| | | |
| | |
| | | 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<Map<String, Object>> maps = testMapper.newGetTjPat(pacCode,pacName,pacRemark); |
| | | public AjaxResult newGetTjPat(@RequestParam(required = false) String pacCode, |
| | | @RequestParam(required = false) String pacName, |
| | | @RequestParam(required = false) String pacRemark) { |
| | | List<Map<String, Object>> maps = testMapper.newGetTjPat(pacCode, pacName, pacRemark); |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | | // List<Map<String, Object>> list=new ArrayList<>(); |
| | | // if(null !=maps && maps.size()>0){ |
| | | // for (Map<String, Object> map : maps) { |
| | | // String pacCode1 = map.get("pacCode").toString(); |
| | | // List<String> s = tjOrderService.selectTjOrderByCardId1(); |
| | | // if(null !=s && s.size()>0){ |
| | | // if(s.contains(pacCode1)){ |
| | | //// maps.remove(map); |
| | | // continue; |
| | | // } |
| | | // list.add(map); |
| | | // } |
| | | // } |
| | | // } |
| | | List<String> strings = tjOrderService.selectTjOrderByCardId1(); |
| | | if (null != strings && !strings.isEmpty()) { |
| | | List<Map<String, Object>> 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<Map<String, Object>> maps = tjCustomerService.vcustomerlist(name, sjh, sfzh); |
| | | return AjaxResult.success(maps); |
| | | } |
| | | |
| | | |
| | | /** |
| | |
| | | // @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"); |
| | | |
| | | //判断身份证号格式是否正确 |
| | | // TODO: 2023/2/10 判断身份证号格式是否正确 |
| | | // if(cusIdcard.length()==18){ |
| | | // if (! MatchUtils.isIdCard(cusIdcard)) { |
| | | // return AjaxResult.error("身份证号码错误"); |
| | | // } |
| | | // } |
| | | // if(cusIdcard.length()==9){ |
| | | // if (!MatchUtils.cardValidates(cusIdcard)) { |
| | | // return AjaxResult.error("身份证号码错误"); |
| | | // } |
| | | // } |
| | | //根据配置调取存储过程 将临时表数据存入预约表2023.12.12 |
| | | 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)){ |
| | | if ("Y".equals(getInfoFromSqlData)) { |
| | | //根据身份证号从his查信息 |
| | | LtkjTjPat tjPatByIdCard = testMapper.getTjPatByIdCard(cusIdcard); |
| | | if(null != tjPatByIdCard){ |
| | | if (null != tjPatByIdCard) { |
| | | String fcardNo = tjPatByIdCard.getFcardNo(); |
| | | if(null !=fcardNo){ |
| | | fcardNo=fcardNo.trim(); |
| | | 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){ |
| | | if (null == ltkjTjPat) { |
| | | tjvLtkjvtjpatService.save(tjPatByIdCard); |
| | | } |
| | | DynamicDataSourceContextHolder.clearDataSourceType(); |
| | | //再根据身份证号写customer表 |
| | | TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(tjPatByIdCard.getFcardNo()); |
| | | if(null == tjCustomer){ |
| | | if (null == tjCustomer) { |
| | | //为空的话掉存储过程保存到客户表 |
| | | testMapper.getTjPatByCusId(cusIdcard); |
| | | LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>(); |
| | |
| | | customer.setReservationId(customer.getCardId()); |
| | | extracted(customer); |
| | | return success(customer); |
| | | }else { |
| | | String cardId = tjCustomer.getCardId(); |
| | | // TODO: 2023/12/23 该处用cardid查询order表数据 |
| | | if(null !=cardId && cardId.equals(tjPatByIdCard.getFcardId())){ |
| | | return AjaxResult.error("不可重复签到"); |
| | | } 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()); |
| | |
| | | |
| | | } |
| | | } |
| | | //end====2023.12.12 |
| | | |
| | | String key = sysConfigService.selectConfigByKey("sfkqdyhis"); |
| | | String s = sysConfigService.selectConfigByKey("is_request_common_his_api"); |
| | | LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjReservation::getIdCard, cusIdcard); |
| | | wq.eq(TjReservation::getIsExpire, 2); |
| | | TjReservation tjReservation = tjReservationService.getOne(wq); |
| | | if (tjReservation != null) { |
| | | if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) { |
| | | return AjaxResult.error("未到预约时间"); |
| | | } |
| | | if (null != tjReservation.getReservationTime() && DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) { |
| | | |
| | | if (null != tjReservation.getReservationTime() && DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(), |
| | | tjReservation.getYxts())).before(new Date())) { |
| | | tjReservation.setIsExpire(1); |
| | | tjReservationService.updateById(tjReservation); |
| | | return AjaxResult.error("对不起您的预约已超时请重新预约"); |
| | |
| | | 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())); |
| | | tjCustomer1.setCusBrithday(tjReservation.getBirthday()); |
| | | try { |
| | | tjCustomer1.setCusBrithday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard())); |
| | | } catch (Exception e) { |
| | | return AjaxResult.error("身份证号不正确"); |
| | | } |
| | | tjCustomer1.setCusPhone(tjReservation.getPhoe()); |
| | | tjCustomer1.setCusEmail(tjReservation.getEmail()); |
| | | tjCustomer1.setCusAddr(tjReservation.getAddress()); |
| | |
| | | tjCustomer1.setAge(tjReservation.getAge()); |
| | | tjCustomer1.setAgeUnit(tjReservation.getAgeUnit()); |
| | | tjCustomer1.setCareer(tjReservation.getCareer()); |
| | | tjCustomer1.setPym(PinyinUtil.getFirstLetter(tjReservation.getName(),"")); |
| | | |
| | | tjCustomerService.updateById(tjCustomer1); |
| | | 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<String, Object> resultData = (Map<String, Object>) 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<HisApiConfig> 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); |
| | | } |
| | | TjCustomer tjCustomer = new TjCustomer(); |
| | | tjCustomer.setCusIdcard(tjReservation.getIdCard()); |
| | | tjCustomer.setCusName(tjReservation.getName()); |
| | | tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex())); |
| | | tjCustomer.setCusBrithday(tjReservation.getBirthday()); |
| | | 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()); |
| | | 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); |
| | | } |
| | | LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>(); |
| | | qw.eq(TjCustomer::getCusIdcard, cusIdcard); |
| | | TjCustomer tjCustomer = tjCustomerService.getOne(qw); |
| | | return AjaxResult.success("暂无预约信息",tjCustomer); |
| | | |
| | | //根据配置调取存储过程 将临时表数据存入预约表2023.12.12 |
| | | LambdaQueryWrapper<TjCustomer> 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("身份证号不存在"); |
| | | } |
| | |
| | | //从his表抓数据 |
| | | LtkjMiddleHead pat = testMapper.getMiddleHeadByPartId(customer.getCardId()); |
| | | if (null != pat) { |
| | | LambdaQueryWrapper<LtkjMiddleHead> wq1 = new LambdaQueryWrapper<>(); |
| | | wq1.eq(LtkjMiddleHead::getFeadId, customer.getCardId()); |
| | | headService.remove(wq1); |
| | | LambdaQueryWrapper<LtkjMiddleDetail> wq0 = new LambdaQueryWrapper<>(); |
| | | wq0.eq(LtkjMiddleDetail::getFheadId, pat.getFeadId()); |
| | | middleDetailService.remove(wq0); |
| | | List<LtkjMiddleDetail> list = testMapper.getMiddleDetailByFeadId(pat.getFeadId()); |
| | | DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); |
| | | LtkjMiddleHead o = headService.getMiddleHeadByPartId(customer.getCardId()); |
| | | if(o==null){ |
| | | 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<TjCustomer> 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); |
| | | } |
| | | |
| | | |
| | |
| | | public TableDataInfo list(TjCustomer tjCustomer) { |
| | | startPage(); |
| | | List<TjCustomer> list = tjCustomerService.selectTjCustomerList(tjCustomer); |
| | | if(null !=list && list.size()>0){ |
| | | if (null != list && !list.isEmpty()) { |
| | | for (TjCustomer customer : list) { |
| | | customer.setCusName(MatchUtils.hideCusName(customer.getCusName())); |
| | | 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); |
| | |
| | | */ |
| | | @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; |
| | | if(null !=tjCustomer.getIdType()){ |
| | | if(tjCustomer.getIdType().equals("1")){ |
| | | b = MatchUtils.isIdCard(cusIdcard); |
| | | }else { |
| | | b = MatchUtils.cardValidate(cusIdcard, tjCustomer.getIdType()); |
| | | 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 { |
| | | // else { |
| | | // if(cusIdcard.length()==9){ |
| | | // b = MatchUtils.cardValidate(cusIdcard, tjCustomer.getIdType()); |
| | | // } |
| | | // |
| | | // } |
| | | } else { |
| | | return AjaxResult.error("请选择证件类型"); |
| | | } |
| | | if(!b) return AjaxResult.error("证件号有误"); |
| | | if (!b) return AjaxResult.error("证件号有误"); |
| | | |
| | | //判断身份证号格式是否正确 |
| | | if (!(MatchUtils.isMobileNO(tjCustomer.getCusPhone()))) |
| | | return AjaxResult.error("手机号错误"); |
| | | if(sfjysjh.equalsIgnoreCase("Y")){ |
| | | if (!(MatchUtils.isMobileNO(tjCustomer.getCusPhone()))) |
| | | return AjaxResult.error("手机号错误"); |
| | | } |
| | | |
| | | LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjCustomer::getCusIdcard, cusIdcard); |
| | | TjCustomer customer = tjCustomerService.getOne(wq); |
| | | if (customer != null) { |
| | | // BeanUtils.copyBeanProp(tjCustomer, customer); |
| | | // String substring = cusIdcard.substring(cusIdcard.length() - 6); |
| | | // substring = DigestUtils.md5DigestAsHex(substring.getBytes()); |
| | | // customer.setCusPassword(substring); |
| | | // customer.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjCustomer.getCusIdcard()), "yyyy-MM-dd")); |
| | | // return AjaxResult.success(tjCustomerService.updateById(customer)); |
| | | return AjaxResult.error("该人员已存在"); |
| | | } |
| | | String substring = cusIdcard.substring(cusIdcard.length() - 6); |
| | | substring = DigestUtils.md5DigestAsHex(substring.getBytes()); |
| | | tjCustomer.setCusPassword(substring); |
| | | tjCustomer.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjCustomer.getCusIdcard()), "yyyy-MM-dd")); |
| | | if(cusIdcard.length()==18) { |
| | | try { |
| | | tjCustomer.setCusBrithday(MatchUtils.getBirthDayByIdCard(tjCustomer.getCusIdcard())); |
| | | } catch (Exception e) { |
| | | return AjaxResult.error("身份证号不正确"); |
| | | } |
| | | } |
| | | tjCustomer.setCusNumber(0L); |
| | | if (tjCustomerService.save(tjCustomer)) { |
| | | return AjaxResult.success(tjCustomer); |
| | | tjCustomer.setPym(PinyinUtil.getFirstLetter(tjCustomer.getCusName(),"")); |
| | | String config = sysConfigService.selectConfigByKey("sfkqdyhis"); |
| | | 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"); |
| | | 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<String, Object> 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<String, Object> map = new HashMap<>(); |
| | | map.put("cardId",""); |
| | | 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 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<String, Object> resultData = (Map<String, Object>) 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<HisApiConfig> 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) |
| | | @Log(title = "修改客户信息", businessType = BusinessType.UPDATE) |
| | | @PutMapping |
| | | @ApiOperation(value = "修改客户信息") |
| | | @Transactional |
| | | @RepeatSubmit |
| | | public AjaxResult edit(@RequestBody @ApiParam(value = "客户对象") TjCustomer tjCustomer) { |
| | | |
| | | String cusPhone = tjCustomer.getCusPhone(); |
| | | if (null == cusPhone) { |
| | | return AjaxResult.error("手机号不能为空"); |
| | | try { |
| | | 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.getCusIdcard().length()==18){ |
| | | 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(),"")); |
| | | tjCustomer.setCusBrithday(MatchUtils.getBirthDayByIdCard(tjCustomer.getCusIdcard())); |
| | | 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<String, Object> map = new HashMap<>(); |
| | | map.put("pationId",tjCustomer.getPationId()); |
| | | map.put("cardId",tjCustomer.getCardId()); |
| | | 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(); |
| | | } catch (Exception e) { |
| | | log.error(e.toString()); |
| | | throw new RuntimeException(e); |
| | | } |
| | | /*LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjCustomer::getCusPhone, cusPhone); |
| | | TjCustomer customer = tjCustomerService.getOne(wq); |
| | | if (customer != null) { |
| | | return AjaxResult.error("该手机号已被使用!"); |
| | | }*/ |
| | | tjCustomer.setCusPhone(cusPhone); |
| | | return toAjax(tjCustomerService.updateTjCustomer(tjCustomer)); |
| | | } |
| | | |
| | | /** |
| | |
| | | @DeleteMapping("/{cusIds}") |
| | | @ApiOperation(value = "删除客户") |
| | | public AjaxResult remove(@PathVariable @ApiParam(value = "所删除客户的id") Long[] cusIds) { |
| | | return toAjax(tjCustomerService.deleteTjCustomerByCusIds(cusIds)); |
| | | return toAjax(tjCustomerService.removeByIds(Arrays.asList(cusIds))); |
| | | } |
| | | } |