zjh
2025-04-24 672ce84d5ce6545a0e81709ea736c69cbbef8c1a
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
@@ -35,6 +35,7 @@
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;
@@ -45,6 +46,8 @@
import com.ltkj.common.utils.poi.ExcelUtil;
import com.ltkj.common.core.page.TableDataInfo;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
@@ -58,6 +61,7 @@
@RestController
@RequestMapping("/hosp/customer")
@Api(tags = "客户管理接口")
@Slf4j
public class TjCustomerController extends BaseController {
    @Resource
    private ITjCustomerService tjCustomerService;
@@ -121,13 +125,23 @@
//            }
//        }
        List<String> strings = tjOrderService.selectTjOrderByCardId1();
        if (null != strings && strings.size() > 0) {
        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);
    }
@@ -208,7 +222,7 @@
            }
            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);
@@ -225,13 +239,17 @@
                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);
//                    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(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
                    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());
@@ -250,7 +268,7 @@
                    tjCustomer1.setDiscount(tjReservation.getDiscount());
                    tjCustomer1.setGroupingId(tjReservation.getGroupingId());
                    if(null !=tjReservation.getCompanyId())tjCustomer1.setDictCompId(Long.valueOf(tjReservation.getCompanyId()));
//                    if(null !=tjReservation.getCompanyId())tjCustomer1.setDictCompId(Long.valueOf(tjReservation.getCompanyId()));
                    if(null !=tjReservation.getCompany())tjCustomer1.setCompName(tjReservation.getCompany());
//                    tjCustomerService.updateById(tjCustomer1);
@@ -261,7 +279,11 @@
                    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"));
                    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());
@@ -281,10 +303,10 @@
                    tjCustomer.setCusPassword(substring);
                    tjCustomer.setTjType(tjReservation.getTjType());
                    tjCustomer.setPym(PinyinUtil.getFirstLetter(tjReservation.getName(),""));
                    if(null !=tjReservation.getCompanyId())tjCustomer.setDictCompId(Long.valueOf(tjReservation.getCompanyId()));
                    if(null !=tjReservation.getCompanyId())tjCustomer.setCompId(tjReservation.getCompanyId());
                    if(null !=tjReservation.getCompany())tjCustomer.setCompName(tjReservation.getCompany());
                    if (null != key && key.equals("Y"))
                    {
                    if (null != key && key.equals("Y")) {
                        AjaxResult result = controller.Outpincreateapply(tjCustomer);
                        String result1 = getAjaxResult(result);
                        JSONObject object = getJSONObject(result1);
@@ -306,6 +328,11 @@
                                    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);
@@ -330,10 +357,10 @@
//            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("不可重复签到");
                    }
//                    int i = tjOrderService.selectTjOrderByCardId(cardId);
//                    if (i > 0) {
//                        return AjaxResult.error("不可重复签到");
//                    }
                }
//            }
@@ -372,6 +399,27 @@
    }
    @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);
    }
    /**
     * 查询客户信息列表
     */
@@ -381,9 +429,8 @@
    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()));
@@ -448,12 +495,13 @@
                        b = MatchUtils.isIdCard(cusIdcard);
                    }
                }
            } else {
                if(cusIdcard.length()==9){
                    b = MatchUtils.cardValidate(cusIdcard, tjCustomer.getIdType());
                }
            }
//            else {
//                if(cusIdcard.length()==9){
//                    b = MatchUtils.cardValidate(cusIdcard, tjCustomer.getIdType());
//                }
//
//            }
        } else {
            return AjaxResult.error("请选择证件类型");
        }
@@ -469,20 +517,18 @@
        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);
//        if (tjCustomer.getIdType().equals("1")) {
            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);
        tjCustomer.setPym(PinyinUtil.getFirstLetter(tjCustomer.getCusName(),""));
        String config = sysConfigService.selectConfigByKey("sfkqdyhis");
@@ -492,43 +538,11 @@
        } 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> 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"));
                    if (tjCustomerService.save(tjCustomer)) {
                        return AjaxResult.success(tjCustomer);
                TjCustomer requestCommonHisApi = isRequestCommonHisApi(tjCustomer);
                if (null !=requestCommonHisApi){
                    if (tjCustomerService.save(requestCommonHisApi)) {
                        return AjaxResult.success(requestCommonHisApi);
                    }
                }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"));
                        if (tjCustomerService.save(tjCustomer)) {
                            return AjaxResult.success(tjCustomer);
                        }
                    }else return AjaxResult.error();
                }
            }else {
                if (tjCustomerService.save(tjCustomer)) {
@@ -537,6 +551,44 @@
            }
        }
        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) {
@@ -580,17 +632,18 @@
    @RepeatSubmit
    public AjaxResult edit(@RequestBody @ApiParam(value = "客户对象") TjCustomer tjCustomer) {
        TjCustomer customer = tjCustomerService.getById(tjCustomer.getCusId());
        if(null==customer){
            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");
            String cusPhone = tjCustomer.getCusPhone();
            if (null == cusPhone) {
                return AjaxResult.error("手机号不能为空");
            }
            String sfjysfzh = sysConfigService.selectConfigByKey("sfjysfzh");
            String sfjysjh = sysConfigService.selectConfigByKey("sfjysjh");
            //判断身份证号格式是否正确
            if(sfjysfzh.equalsIgnoreCase("Y")){
@@ -607,59 +660,66 @@
            }
        //判断身份证号格式是否正确
        if(sfjysjh.equalsIgnoreCase("Y")){
            if (!(MatchUtils.isMobileNO(tjCustomer.getCusPhone())))
                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")) {
            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",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(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.success();
        } catch (Exception e) {
            log.error(e.toString());
            throw new RuntimeException(e);
        }
       return AjaxResult.error();
    }
    /**