From dedacd79c93f8ef95e0cb986f5e7fbd27ddbd907 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 03 七月 2025 09:12:49 +0800
Subject: [PATCH] 2025-07-03

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java |  573 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 443 insertions(+), 130 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
index 35a03ec..def672b 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
+++ b/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;
@@ -24,10 +31,13 @@
 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;
@@ -36,10 +46,9 @@
 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;
 
 
@@ -52,13 +61,16 @@
 @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;
 
@@ -113,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);
     }
 
 
@@ -131,25 +153,31 @@
 //    @Log(title = "瀹㈡埛韬唤淇℃伅", businessType = BusinessType.EXPORT)
     public AjaxResult getInfoByIdCard(@RequestParam @ApiParam(value = "瀹㈡埛韬唤璇佸彿") String cusIdcard) {
         if (!"".equals(cusIdcard) && cusIdcard != null) {
+
+            String sfjysfzh = sysConfigService.selectConfigByKey("sfjysfzh");
+
             //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
-//            if(cusIdcard.length()==18){
-//                if (! MatchUtils.isIdCard(cusIdcard)) {
-//                    return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
+            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("韬唤璇佸彿鐮侀敊璇�");
+//                    }
 //                }
-//            }
-//            if(cusIdcard.length()==9){
-//                if (!MatchUtils.cardValidates(cusIdcard)) {
-//                    return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
-//                }
-//            }
-            //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12
+            }
+
+
             final String getInfoFromSqlData = sysConfigService.selectConfigByKey("getInfoFromSqlData");
             if ("Y".equals(getInfoFromSqlData)) {
                 //鏍规嵁韬唤璇佸彿浠巋is鏌ヤ俊鎭�
                 LtkjTjPat tjPatByIdCard = testMapper.getTjPatByIdCard(cusIdcard);
                 if (null != tjPatByIdCard) {
                     String fcardNo = tjPatByIdCard.getFcardNo();
-                    if (null != fcardNo && !fcardNo.equals("")) {
+                    if (null != fcardNo && !fcardNo.isEmpty()) {
                         fcardNo = fcardNo.trim();
                         tjPatByIdCard.setFcardNo(fcardNo);
                     } else {
@@ -191,16 +219,17 @@
 
                 }
             }
-            //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("瀵逛笉璧锋偍鐨勯绾﹀凡瓒呮椂璇烽噸鏂伴绾�");
@@ -209,10 +238,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);
                     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());
@@ -223,51 +259,116 @@
                     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("韬唤璇佸彿涓嶅瓨鍦�");
     }
@@ -297,6 +398,27 @@
     }
 
 
+    @GetMapping("/getcusList")
+    @ApiOperation(value = "妗f绠$悊鎺ュ彛")
+    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);
+    }
+
+
     /**
      * 鏌ヨ瀹㈡埛淇℃伅鍒楄〃
      */
@@ -306,9 +428,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()));
@@ -349,11 +470,13 @@
      */
     @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("璇疯緭鍏ヨ韩浠借瘉鍙锋垨鎵嬫満鍙�");
         }
-        HisApiGetMethodService hisApiGetMethodService = new HisApiGetMethodService();
 
         Date dates = new Date();
         final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss");
@@ -361,12 +484,22 @@
         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")) {
-                b = MatchUtils.isIdCard(cusIdcard);
+                //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
+                if(sfjysfzh.equalsIgnoreCase("Y")){
+                    if(cusIdcard.length()==18){
+                        b = MatchUtils.isIdCard(cusIdcard);
+                    }
+                }
             }
 //            else {
-//                b = MatchUtils.cardValidate(cusIdcard, tjCustomer.getIdType());
+//                if(cusIdcard.length()==9){
+//                    b = MatchUtils.cardValidate(cusIdcard, tjCustomer.getIdType());
+//                }
+//
 //            }
         } else {
             return AjaxResult.error("璇烽�夋嫨璇佷欢绫诲瀷");
@@ -374,35 +507,96 @@
         if (!b) return AjaxResult.error("璇佷欢鍙锋湁璇�");
 
         //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
-        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);
-//        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");
-        if(null !=config && config.equals("Y")){
+        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<>();
+            // 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);
@@ -412,77 +606,196 @@
         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) {
+            if (null != resultData && !resultData.isEmpty()) {
                 String pationid = resultData.get("PationId").toString();
                 if (null != pationid) {
-                        OutpinregapplyDto outpinregapplyDto = new OutpinregapplyDto();
-                        outpinregapplyDto.setPationid(pationid);
-//                    outpinregapplyDto.setHisRegistrationId(pationid);
-                        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();
-                                if (null != hisRegistrationId) {
-                                    //闂ㄨ瘖鍖荤敓鎺ヨ瘖
-                                    AjaxResult result3 = controller.Outpinconapply(hisRegistrationId, date, SecurityUtils.getUsername());
-                                    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 toString = data.get("his_registration_id").toString();
-//                                        tjCustomer.setPationId(pationid);
-                                        tjCustomer.setCardId(toString);
-//                                        tjCustomerService.updateById(tjCustomer);
-                                    }
-                                }
-                            }
-                        }
-                    }
+                    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 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 = "淇敼瀹㈡埛淇℃伅")
+    @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");
+
+            //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
+            if(sfjysfzh.equalsIgnoreCase("Y")){
+                if(customer.getIdType().equals("1")){
+                    if (!(MatchUtils.isIdCard(tjCustomer.getCusIdcard())))
+                        return AjaxResult.error("韬唤璇佸彿閿欒");
+                }
+
+//                if(tjCustomer.getCusIdcard().length()==9){
+//                    if (!MatchUtils.cardValidates(tjCustomer.getCusIdcard())) {
+//                        return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
+//                    }
+//                }
+            }
+
+
+            //鍒ゆ柇韬唤璇佸彿鏍煎紡鏄惁姝g‘
+            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",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.success();
+        } 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));
+
+    }
+
+
+
+    @Log(title = "娉ㄥ唽his瀹㈡埛淇℃伅", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/zhuceTjCustomer")
+    @ApiOperation(value = "娉ㄥ唽his瀹㈡埛淇℃伅")
+    @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<String, Object> resultData = (Map<String, Object>) 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<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.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);
+
+        }
+
     }
 
     /**
@@ -493,6 +806,6 @@
     @DeleteMapping("/{cusIds}")
     @ApiOperation(value = "鍒犻櫎瀹㈡埛")
     public AjaxResult remove(@PathVariable @ApiParam(value = "鎵�鍒犻櫎瀹㈡埛鐨刬d") Long[] cusIds) {
-        return toAjax(tjCustomerService.deleteTjCustomerByCusIds(cusIds));
+        return toAjax(tjCustomerService.removeByIds(Arrays.asList(cusIds)));
     }
 }

--
Gitblit v1.8.0