zjh
2024-09-05 9155df2aeab5b0d95c89dd928dbaefbfbaeae9d1
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
@@ -3,15 +3,22 @@
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.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;
@@ -56,10 +63,12 @@
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;
@@ -143,13 +152,9 @@
//                    return AjaxResult.error("身份证号码错误");
//                }
//            }
            //根据配置调取存储过程 将临时表数据存入预约表2023.12.12
            LambdaQueryWrapper<TjCustomer> customerLambdaQueryWrapper = new LambdaQueryWrapper<>();
            customerLambdaQueryWrapper.eq(TjCustomer::getCusIdcard, cusIdcard);
            TjCustomer tjCustomerServiceOne = tjCustomerService.getOne(customerLambdaQueryWrapper);
            if (null == tjCustomerServiceOne) {
                return AjaxResult.error("该人员信息不存在请先进行登记!!!");
            }
//            Date dates = new Date();
//            final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
            final String getInfoFromSqlData = sysConfigService.selectConfigByKey("getInfoFromSqlData");
            if ("Y".equals(getInfoFromSqlData)) {
                //根据身份证号从his查信息
@@ -200,48 +205,7 @@
            }
            String key = sysConfigService.selectConfigByKey("sfkqdyhis");
            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("不可重复签到");
                    }
                }
//                controller.Outpincreateapply(tjCustomer);
/*                Date dates = new Date();
                final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
                OutpinregapplyDto outpinregapplyDto = new OutpinregapplyDto();
                outpinregapplyDto.setPationid(tjCustomerServiceOne.getPationId());
                outpinregapplyDto.setSqysbm("00029");
                outpinregapplyDto.setMzksbm("0101");
                outpinregapplyDto.setCzybm("00029");
                outpinregapplyDto.setSfjz("0");
                outpinregapplyDto.setGhzlbm("01");
                outpinregapplyDto.setYwckbm("0001");
                outpinregapplyDto.setSflstd("0");
                outpinregapplyDto.setGhrq(date);
                //门诊挂号
                AjaxResult ajaxResult = controller.Outpinregapply(outpinregapplyDto);
                String result2 = getAjaxResult(ajaxResult);
                JSONObject object1 = getJSONObject(result2);
                String code1 = object1.getStr("ResultCode");
                if (code1.equals("0")) {
                    JSONArray resultDatas = object1.getJSONArray("ResultData");
                    if (null != resultDatas && resultDatas.size() > 0) {
                        Map<String, Object> resultDatasss = (Map<String, Object>) resultDatas.get(0);
                        String hisRegistrationId = resultDatasss.get("his_registration_id").toString();
                        //门诊医生接诊
                        controller.Outpinconapply(hisRegistrationId, date, SecurityUtils.getUsername());
//                        tjCustomerServiceOne.setCardId(hisRegistrationId);
//                        tjCustomerServiceOne.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjCustomerServiceOne.getCusIdcard()),"yyyy-MM-dd"));
//                        tjCustomerService.updateById(tjCustomerServiceOne);
                        tjCustomerService.updateCardId(tjCustomerServiceOne.getCusId(),hisRegistrationId);
                    }
                }*/
            }
            //end====2023.12.12
            LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
@@ -249,55 +213,23 @@
            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 (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) {
//                    return AjaxResult.error("未到预约时间");
//                }
                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<TjCustomer> qw = new LambdaQueryWrapper<>();
                qw.eq(TjCustomer::getCusIdcard, cusIdcard);
                TjCustomer tjCustomer1 = tjCustomerService.getOne(qw);
                if (tjCustomer1 != null) {
         /*           String key = sysConfigService.selectConfigByKey("sfkqdyhis");
                    if (null != key && key.equals("Y")) {
                        Date dates = new Date();
                        final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
                        OutpinregapplyDto outpinregapplyDto = new OutpinregapplyDto();
                        outpinregapplyDto.setPationid(tjCustomer1.getPationId());
                        outpinregapplyDto.setSqysbm(SecurityUtils.getUsername());
                        outpinregapplyDto.setMzksbm("0101");
                        outpinregapplyDto.setCzybm("00029");
                        outpinregapplyDto.setSfjz("0");
                        outpinregapplyDto.setGhzlbm("01");
                        outpinregapplyDto.setYwckbm("0001");
                        outpinregapplyDto.setSflstd("0");
                        outpinregapplyDto.setGhrq(date);
                        //门诊挂号
                        AjaxResult ajaxResult = controller.Outpinregapply(outpinregapplyDto);
                        String result2 = getAjaxResult(ajaxResult);
                        JSONObject object1 = getJSONObject(result2);
                        String code1 = object1.getStr("ResultCode");
                        if (code1.equals("0")) {
                            JSONArray resultDatas = object1.getJSONArray("ResultData");
                            if (null != resultDatas && resultDatas.size() > 0) {
                                Map<String, Object> resultDatasss = (Map<String, Object>) resultDatas.get(0);
                                String hisRegistrationId = resultDatasss.get("his_registration_id").toString();
                                //门诊医生接诊
                                controller.Outpinconapply(hisRegistrationId, date, SecurityUtils.getUsername());
                                tjCustomer1.setCardId(hisRegistrationId);
                            }
                        }
                    }*/
                    tjCustomer1.setTjType(tjReservation.getTjType());
                    tjCustomer1.setCusName(tjReservation.getName());
                    tjCustomer1.setCusSex(Long.valueOf(tjReservation.getSex()));
                    tjCustomer1.setCusBrithday(tjReservation.getBirthday());
                    tjCustomer1.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
                    tjCustomer1.setCusPhone(tjReservation.getPhoe());
                    tjCustomer1.setCusEmail(tjReservation.getEmail());
                    tjCustomer1.setCusAddr(tjReservation.getAddress());
@@ -308,53 +240,122 @@
                    tjCustomer1.setAge(tjReservation.getAge());
                    tjCustomer1.setAgeUnit(tjReservation.getAgeUnit());
                    tjCustomer1.setCareer(tjReservation.getCareer());
                    tjCustomerService.updateById(tjCustomer1);
                    tjCustomer1.setPym(PinyinUtil.getFirstLetter(tjReservation.getName(),""));
/*                    if (null != key && key.equals("Y"))
                    {
                        AjaxResult result = controller.Outpincreateapply(tjCustomer1);
                        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.size() > 0) {
                                String pationid = resultData.get("PationId").toString();
                                if (null != pationid) {
//                                    tjCustomer1.setPationId(pationid);
                                    tjCustomerService.updateById(tjCustomer1);
                                    //保存注册入参出参
                                    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(tjCustomer1)));
                                }
                            }
                        }
                    }else {
                        tjCustomerService.updateById(tjCustomer1);
                    }*/
                    tjCustomer1.setTeamNo(tjReservation.getTeamNo());
                    tjCustomer1.setCompId(tjReservation.getCompanyId());
                    tjCustomer1.setReservationId(tjReservation.getId());
                    tjCustomer1.setDiscount(tjReservation.getDiscount());
                    tjCustomer1.setGroupingId(tjReservation.getGroupingId());
                    return success(tjCustomer1);
                }else {
                    TjCustomer tjCustomer = new TjCustomer();
                    tjCustomer.setCusIdcard(tjReservation.getIdCard());
                    tjCustomer.setCusName(tjReservation.getName());
                    tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex()));
                    tjCustomer.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
                    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 != 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.size() > 0) {
                                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 {
                        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);
            } else {
                LambdaQueryWrapper<TjCustomer> customerLambdaQueryWrapper1 = new LambdaQueryWrapper<>();
                customerLambdaQueryWrapper1.eq(TjCustomer::getCusIdcard, cusIdcard);
                TjCustomer one = tjCustomerService.getOne(customerLambdaQueryWrapper1);
                System.out.println("------------------"+one.getCusBrithday());
                return AjaxResult.success("暂无预约信息", tjCustomerServiceOne);
            }
            //根据配置调取存储过程 将临时表数据存入预约表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("不可重复签到");
                    }
                }
            }
            return AjaxResult.success(tjCustomerServiceOne);
        }
        return error("身份证号不存在");
    }
@@ -437,6 +438,7 @@
    @PostMapping
    @ApiOperation(value = "新增客户")
    @Transactional
    @RepeatSubmit
    public AjaxResult add(@RequestBody @ApiParam(value = "客户对象信息") TjCustomer tjCustomer) {
        if (null == tjCustomer.getCusIdcard() || null == tjCustomer.getCusPhone()) {
            return AjaxResult.error("请输入身份证号或手机号");
@@ -484,6 +486,7 @@
            tjCustomer.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjCustomer.getCusIdcard()), "yyyy-MM-dd"));
//        }
        tjCustomer.setCusNumber(0L);
        tjCustomer.setPym(PinyinUtil.getFirstLetter(tjCustomer.getCusName(),""));
        String config = sysConfigService.selectConfigByKey("sfkqdyhis");
        if (null != config && config.equals("Y")) {
            AjaxResult tjCustomer1 = suijieHisXinXi(tjCustomer, date);
@@ -508,43 +511,14 @@
                String pationid = resultData.get("PationId").toString();
                if (null != pationid) {
                    tjCustomer.setPationId(pationid);
                    tjCustomerService.updateById(tjCustomer);
/*                        OutpinregapplyDto outpinregapplyDto = new OutpinregapplyDto();
                        outpinregapplyDto.setPationid(pationid);
                        outpinregapplyDto.setSqysbm("00029");
                        outpinregapplyDto.setMzksbm("0101");
                        outpinregapplyDto.setCzybm("00029");
                        outpinregapplyDto.setSfjz("0");
                        outpinregapplyDto.setGhzlbm("01");
                        outpinregapplyDto.setYwckbm("0001");
                        outpinregapplyDto.setSflstd("0");
                        outpinregapplyDto.setGhrq(date);
                        //门诊挂号
                        AjaxResult ajaxResult = controller.Outpinregapply(outpinregapplyDto);
                        String result2 = getAjaxResult(ajaxResult);
                        JSONObject object1 = getJSONObject(result2);
                        String code1 = object1.getStr("ResultCode");
                        if (code1.equals("0")) {
                            JSONArray resultDatas = object1.getJSONArray("ResultData");
                            if (null != resultDatas && resultDatas.size() > 0) {
                                Map<String, Object> resultDatasss = (Map<String, Object>) resultDatas.get(0);
                                String hisRegistrationId = resultDatasss.get("his_registration_id").toString();
                                if (null != hisRegistrationId) {
                                    //门诊医生接诊
                                    AjaxResult result3 = controller.Outpinconapply(hisRegistrationId, date,"00029");
                                    String result4 = getAjaxResult(result3);
                                    JSONObject object2 = getJSONObject(result4);
                                    String code2 = object2.getStr("ResultCode");
                                    if (code2.equals("0")) {
                                        Map<String, Object> data = object2.getJSONObject("ResultData");
                                        String hisRegistrationId1 = data.get("his_registration_id").toString();
                                        tjCustomer.setPationId(pationid);
                                        tjCustomer.setCardId(hisRegistrationId1);
//                                        tjCustomerService.updateById(tjCustomer);
                                    }
                                }
                            }
                        }*/
//                    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)));
                }
            }
@@ -552,17 +526,22 @@
                return AjaxResult.success(tjCustomer);
            }
        }
        return null;
        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 = "修改客户信息")
    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) {
@@ -575,7 +554,37 @@
            return AjaxResult.error("该手机号已被使用!");
        }*/
        tjCustomer.setCusPhone(cusPhone);
        return toAjax(tjCustomerService.updateTjCustomer(tjCustomer));
        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")) {
                    /*               JSONArray resultDatass = object.getJSONArray("ResultData");
                    Map<String, Object> resultData = (Map<String, Object>) resultDatass.get(0);
                    if (null != resultData && resultData.size() > 0) {
                        String pationid = resultData.get("PationId").toString();
                        if (null != pationid) {
                            tjCustomer.setPationId(pationid);
                            tjCustomerService.updateById(tjCustomer);
                        }
                    }*/
                    //保存修改入参出参
//                    object.putOpt("cardId",customer.getPationId());
//                    LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
//                    lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpincreateapply");
//                    HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper);
//                    hisApiGetMethodService.save(object, "Outpincreateapply", hisApiConfig, JSONUtil.toJsonStr(BeanUtil.beanToMap(tjCustomer)));
                    return AjaxResult.success();
                }
                return AjaxResult.error(object.getStr("ResultContent"));
            }
            return AjaxResult.success();
        }
       return AjaxResult.error();
    }
    /**