From a9e42bd044e835f49a08b9d5852ef10e669cd153 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期一, 15 七月 2024 18:00:07 +0800
Subject: [PATCH] zjh 2024/07/15-1

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java |  112 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 97 insertions(+), 15 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java
index b9085b3..7f18c74 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java
@@ -1,27 +1,41 @@
 package com.ltkj.web.controller.app;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
+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.RepeatSubmit;
 import com.ltkj.common.core.controller.BaseController;
 import com.ltkj.common.core.domain.AjaxResult;
 import com.ltkj.common.core.domain.entity.SysDictData;
 import com.ltkj.common.utils.StringUtils;
 import com.ltkj.framework.config.MatchUtils;
+import com.ltkj.hosp.domain.HisApiConfig;
 import com.ltkj.hosp.domain.TjCustomer;
 import com.ltkj.hosp.domain.TjOrder;
+import com.ltkj.hosp.service.HisApiConfigService;
 import com.ltkj.hosp.service.ITjCustomerService;
 import com.ltkj.hosp.service.ITjOrderService;
+import com.ltkj.system.service.ISysConfigService;
 import com.ltkj.system.service.ISysDictTypeService;
+import com.ltkj.web.controller.his.HisApiGetMethodService;
+import com.ltkj.web.controller.his.HisApiMethodService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.util.DigestUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -41,6 +55,16 @@
 
     @Autowired
     private ISysDictTypeService dictTypeService;
+
+    @Resource
+    private ISysConfigService sysConfigService;
+
+    @Autowired
+    private HisApiConfigService hisApiConfigService;
+    @Autowired
+    private HisApiMethodService controller;
+    @Autowired
+    private HisApiGetMethodService hisApiGetMethodService;
 
     /**
      * 灏忕▼搴忓氨璇婁汉鍒楄〃
@@ -83,6 +107,8 @@
      */
     @PostMapping("/addNew")
     @ApiOperation(value = "灏忕▼搴�-鏂板骞剁粦瀹氬氨璇婁汉")
+    @Transactional
+    @RepeatSubmit
     public AjaxResult addNew(@RequestBody @ApiParam(value = "瀹㈡埛瀵硅薄淇℃伅") TjCustomer tjCustomer) {
         if (tjCustomer == null) {
             return AjaxResult.error("娣诲姞澶辫触");
@@ -110,22 +136,19 @@
         wq.eq(TjCustomer::getCusIdcard, cusIdcard);
         TjCustomer customer = customerService.getOne(wq);
 
+        String key = sysConfigService.selectConfigByKey("sfkqdyhis");
+
         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(cusIdcard), "yyyy-MM-dd"));
-//            tjCustomer.setCusSex(Long.valueOf(MatchUtils.getSexByIdCard(cusIdcard)));
-//            // tjCustomer.setAddr(MatchUtils.getNativePlace(Integer.parseInt(cusIdcard)));
-//            tjCustomer.setAge(String.valueOf(MatchUtils.getAgeByIdCard(cusIdcard)));
-//            tjCustomer.setIdType("1");
-//            tjCustomer.setAgeUnit("0");
-//            if (customerService.updateById(customer)) {
-//                return AjaxResult.success(tjCustomer);
-//            }
             customer.setConnect(tjCustomer.getConnect());
-            customerService.updateById(customer);
+            if (customerService.updateById(customer)) {
+                if(null !=key && key.equals("Y")){
+                    AjaxResult xinXi = suijieHisXinXi(tjCustomer);
+                    if(!xinXi.get("code").toString().equals("200")){
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("娣诲姞灏辫瘖浜轰俊鎭け璐�!" + xinXi.get("msg").toString());
+                    }
+                }
+            }
             return AjaxResult.success(customer);
         }
         String substring = cusIdcard.substring(cusIdcard.length() - 6);
@@ -142,6 +165,13 @@
         tjCustomer.setCusNumber(0L);
         tjCustomer.setCusIsvip("N");
         if (customerService.save(tjCustomer)) {
+            if(null !=key && key.equals("Y")){
+                AjaxResult xinXi = suijieHisXinXi(tjCustomer);
+                if(!xinXi.get("code").toString().equals("200")){
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("娣诲姞灏辫瘖浜轰俊鎭け璐�!" + xinXi.get("msg").toString());
+                }
+            }
             return AjaxResult.success(tjCustomer);
         }
         return AjaxResult.error("娣诲姞澶辫触");
@@ -165,7 +195,7 @@
         if (tjCustomer == null) {
             return AjaxResult.error();
         }
-        LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper();
+        LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
         wq.eq(TjCustomer::getCusIdcard, tjCustomer.getCusIdcard());
         wq.eq(TjCustomer::getCusPhone, tjCustomer.getCusPhone());
         wq.eq(TjCustomer::getCusName, tjCustomer.getCusName());
@@ -196,10 +226,13 @@
      */
     @PostMapping("/updateCustomerBy")
     @ApiOperation(value = "灏忕▼搴�-淇敼灏辫瘖浜轰俊鎭�")
+    @Transactional
+    @RepeatSubmit
     public AjaxResult updateCustomerBy(@RequestBody TjCustomer tjCustomer) {
         if (tjCustomer == null) {
             return AjaxResult.error("淇敼澶辫触");
         }
+        String key = sysConfigService.selectConfigByKey("sfkqdyhis");
         TjCustomer one = customerService.getById(tjCustomer);
         one.setCusName(tjCustomer.getCusName());
         one.setCusIdcard(tjCustomer.getCusIdcard());
@@ -207,6 +240,13 @@
         one.setCusNational(tjCustomer.getCusNational());
         one.setCusMarryStatus(tjCustomer.getCusMarryStatus());
         if (customerService.updateById(one)) {
+            if(null !=key && key.equals("Y")){
+                AjaxResult xinXi = suijieHisXinXi(one);
+                if(!xinXi.get("code").toString().equals("200")){
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("娣诲姞灏辫瘖浜轰俊鎭け璐�!" + xinXi.get("msg").toString());
+                }
+            }
             return AjaxResult.success(one);
         }
         return AjaxResult.error("淇敼澶辫触");
@@ -246,4 +286,46 @@
         return success(data);
     }
 
+
+
+    //灏嗘柟娉曡繑鍥炲�艰В鏋愭垚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();
+    }
+
+
+    private AjaxResult suijieHisXinXi(TjCustomer tjCustomer) {
+        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);
+                    customerService.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)));
+                }
+
+            }
+           return AjaxResult.success();
+        }
+        return AjaxResult.error(object.getStr("ResultContent"));
+    }
+
 }

--
Gitblit v1.8.0