From 79f9fbd9f999e26af3f0bca534d825eb687e092c Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期三, 25 十二月 2024 08:47:24 +0800
Subject: [PATCH] 20241225

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java |  132 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 118 insertions(+), 14 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
index 6b179a0..3065dac 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
@@ -8,7 +8,12 @@
 
 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.RepeatSubmit;
+import com.ltkj.common.core.domain.entity.SysDept;
 import com.ltkj.common.core.domain.entity.SysUser;
 import com.ltkj.common.utils.SecurityUtils;
 import com.ltkj.framework.config.MatchUtils;
@@ -17,12 +22,17 @@
 import com.ltkj.hosp.vodomain.TjCollectFeesVo;
 import com.ltkj.hosp.vodomain.TjRefundProInfoVo;
 import com.ltkj.hosp.vodomain.TjRefundVo;
+import com.ltkj.system.service.ISysConfigService;
+import com.ltkj.system.service.ISysDeptService;
 import com.ltkj.system.service.ISysUserService;
+import com.ltkj.web.wxUtils.HttpClientUtils;
 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.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
 import com.ltkj.common.annotation.Log;
 import com.ltkj.common.core.controller.BaseController;
@@ -71,6 +81,12 @@
     private IJimuOnlineReportService reportService;
     @Resource
     private ITjPackageProjectService tjPackageProjectService;
+    @Autowired
+    private ISysConfigService configService;
+    @Autowired
+    private ISysDeptService sysDeptService;
+    @Autowired
+    private TjFlowingWaterHisService tjFlowingWaterHisService;
 
     /**
      * 鏌ヨ璇ヤ綋妫�鍙峰搴旂殑璁㈠崟娴佹按鍒楄〃
@@ -91,7 +107,7 @@
         LambdaQueryWrapper<TjChargingStandard> wq3 = new LambdaQueryWrapper<>();
         wq3.eq(TjChargingStandard::getTjNum, TjNumber);
         List<TjChargingStandard> list = chargingStandardService.list(wq3);
-        if (null != list && list.size() > 0) {
+        if (null != list && !list.isEmpty()) {
             for (TjChargingStandard standard : list) {
                 TjProject project = projectService.getById(standard.getProId());
                 if (null != project && null != project.getProCheckType()) {
@@ -197,21 +213,104 @@
     @PutMapping
     @ApiOperation(value = "浣撴鐐瑰嚮鏀惰垂鎸夐挳鎺ュ彛")
     @Transactional
+    @RepeatSubmit
     public AjaxResult edit(@RequestBody TjFlowingWater tjFlowingWater) {
         Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
         SysUser sysUser = userService.getById(userId);
 
         TjFlowingWater flowingWater = tjFlowingWaterService.getById(tjFlowingWater.getTjSerialNumber());
-        tjFlowingWater.setTollCollectorId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
-        tjFlowingWater.setPayStasus(1L);
+//        tjFlowingWater.setTollCollectorId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+//        tjFlowingWater.setPayStasus(1L);
         TjOrder order = orderService.getById(tjFlowingWater.getOrderId());
+
+        if(order.getFinishTime() !=null){
+            return AjaxResult.error("璇ヤ汉鍛樺凡绛剧,涓嶅彲琛ュ綍椤圭洰!");
+        }
+
         TjCustomer customer = customerService.getById(order.getUserId());
         if (null != tjFlowingWater.getTjProIds() && tjFlowingWater.getTjProIds().length > 0) {
-            tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(customer.getCusName(), "").toUpperCase() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
+            tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(customer.getCusName(), "").toUpperCase() +SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
             tjFlowingWater.setIsAddition("Y");
             if (tjFlowingWaterService.save(tjFlowingWater)) {
+
+                Date dates = new Date();
+                String jxbz = DateUtil.format(dates, "yyyyMMddHHmmss")+order.getOrderId();
                 //寮傛鍗曢」鏀惰垂鏄庣粏
-                asyncService.iundividualCharges(tjFlowingWater, order, customer, sysUser);
+                Boolean b = asyncService.iundividualCharges(tjFlowingWater, order, customer, sysUser,jxbz);
+                if (!b){
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error();
+                }
+
+                String s = configService.selectConfigByKey("is_request_common_his_api");
+                if (null != s && s.equals("Y") && order.getTjType().equals("2")) {
+                    String apiUrl = configService.selectConfigByKey("common_api_url");
+                    String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
+                    HashMap<String, Object> map = new HashMap<>();
+                    map.put("pationId",customer.getPationId());
+                    map.put("cardId",customer.getHisJzkh());
+                    map.put("tjNum",tjFlowingWater.getTjSerialNumber());
+                    map.put("kaiDanKs","7805");
+                    // 鏀惰垂鏍囧織 1寰呭敭璐� 2寰呴��璐�
+                    map.put("shouTuiStatus","1");
+
+                    JSONArray array = JSONUtil.createArray();
+                    LambdaQueryWrapper<TbTransition> wrapper = new LambdaQueryWrapper<>();
+                    wrapper.eq(TbTransition::getTjNum,order.getTjNumber());
+                    wrapper.eq(TbTransition::getCusId,customer.getCusIdcard());
+                    wrapper.eq(TbTransition::getCardId,customer.getCardId());
+                    wrapper.eq(TbTransition::getJxbz,jxbz);
+                    wrapper.isNotNull(TbTransition::getOrdPrice);
+                    wrapper.gt(TbTransition::getOrdPrice,0);
+
+                    List<TbTransition> list = transitionService.list(wrapper);
+                    for (TbTransition transition : list) {
+                        LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
+                        wrapper1.eq(TjProject::getProId,transition.getProId());
+                        TjProject project = projectService.getOne(wrapper1);
+
+                        LambdaQueryWrapper<SysDept> wrapper2 = new LambdaQueryWrapper<>();
+                        wrapper2.eq(SysDept::getDeptId,project.getDeptId());
+                        SysDept dept = sysDeptService.getOne(wrapper2);
+
+                        JSONObject obj = JSONUtil.createObj();
+                        BigDecimal danjia = transition.getOrdPrice();
+                        Integer sl = project.getSl();
+                        BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
+                        obj.putOpt("danJia",danjia);
+                        obj.putOpt("jieSuanJe",allPrice);
+                        obj.putOpt("shuliang",sl);
+                        obj.putOpt("zhiXingKs",dept.getDeptId());
+                        obj.putOpt("zhiXingKsMc",dept.getDeptName());
+                        obj.putOpt("shouFeiXmId",project.getHisXmbm());
+                        obj.putOpt("shouFeiXmMc",project.getHisXmmc());
+
+//                        obj.putOpt("zhiXingKs","7805");
+//                        obj.putOpt("zhiXingKsMc","浣撴绉�");
+//                        obj.putOpt("shouFeiXmId","4735346");
+//                        obj.putOpt("shouFeiXmMc","浣撴璐�");
+                        array.add(obj);
+                    }
+                    map.put("feiYongInfoList",array);
+
+                    String post = HttpClientUtils.sendPost(apiUrl + "/api/his/"+hospbm+"/creatCostInfo", map);
+                    JSONObject object = JSONUtil.parseObj(post);
+                    if (object.getInt("code") == 200) {
+                        JSONObject data = object.getJSONObject("data");
+                        tjFlowingWater.setHisWaterId(data.getStr("feiYongId"));
+                        JSONArray mxList = data.getJSONArray("mxList");
+                        if (mxList != null && mxList.size() > 0) {
+                            List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class);
+                            tjFlowingWaterHisService.saveBatch(his);
+                        }
+                        tjFlowingWaterService.updateById(tjFlowingWater);
+                    }else {
+                        return AjaxResult.error();
+                    }
+                }
+//                if(!b){
+//                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                }
                 //extracted(tjFlowingWater, order, customer);
                 Map<String, Object> map = new HashMap<>();
                 map.put("waterId", tjFlowingWater.getWaterId());
@@ -542,7 +641,8 @@
                 } else {
                     tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNotNull(OrderId);
                 }
-                String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(order.getTjNumber());
+                String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(order.getTjNumber(),order.getCardId());
+                String s = tjFlowingWaterService.getDiscount(OrderId);
                 if (null != tjProjectList && tjProjectList.size() > 0) {
                     for (TjProject project : tjProjectList) {
                         if (project.getProParentId() == 0) {
@@ -576,7 +676,6 @@
                                     project.setProOrdPrice(new BigDecimal("0.00").setScale(2));
                                 }
                             }*/
-                            String s = tjFlowingWaterService.getDiscount(OrderId);
                             if (null != pacId) {
                                 TjPackageProject pp = tjPackageProjectService.getOne(new LambdaQueryWrapper<TjPackageProject>().eq(TjPackageProject::getPacId, pacId)
                                         .eq(TjPackageProject::getProId, String.valueOf(project.getProId())));
@@ -593,15 +692,20 @@
                             }
                         }
                     }
-                    TjPackageProject ppp = tjPackageProjectService.getOne(new LambdaQueryWrapper<TjPackageProject>().eq(TjPackageProject::getPacId, pacId)
-                            .eq(TjPackageProject::getProId, "1735504273274236929"));
+
                     List<TjFlowingWater> list = tjFlowingWaterService.list(new LambdaQueryWrapper<TjFlowingWater>()
                             .eq(TjFlowingWater::getOrderId, order)
                             .eq(TjFlowingWater::getPayStasus, 2));
-                    if (null != ppp && tjProjectList.size() > 0 && null != list && list.size() > 0) {
-                        TjProject project = projectService.selectTjProjectByProId(1735504273274236929L);
-                        project.setProOrdPrice(project.getProPrice());
-                        tjProjectList.add(project);
+                    if (null != list && list.size() > 0) {
+                        List<TjProject> projectList = projectService.getTjProListByPacIdAndDeptId(pacId);
+                        if(null !=projectList && projectList.size()>0){
+                            for (TjProject project : projectList) {
+                                project.setProOrdPrice(tjPackageProjectService.getPacProPriceByPacIdAndPro(project.getProId(),pacId)
+                                        .multiply(new BigDecimal(s)).setScale(2));
+                                tjProjectList.add(project);
+                            }
+                        }
+
                     }
                 }
                 return AjaxResult.success(tjProjectList);
@@ -629,7 +733,7 @@
             wq.ne(TjOrderDetail::getTjStatus, 3);
             wq.isNotNull(TjOrderDetail::getFlowingWaterId);
             List<TjOrderDetail> detailList = detailService.list(wq);
-            String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(tjOrder.getTjNumber());
+            String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(tjOrder.getTjNumber(),tjOrder.getCardId());
             if (null != detailList && detailList.size() > 0) {
                 List<TjRefundProInfoVo> tjRefundProInfoVoList = new ArrayList<>();
                 for (TjOrderDetail detail : detailList) {

--
Gitblit v1.8.0