From 13a31edf7f569cdcf15d3c43a476a2c947f47fbf Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 09 十一月 2025 22:33:24 +0800
Subject: [PATCH] feat: 增加hospdata表,同步sqlserver过来
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java | 274 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 269 insertions(+), 5 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java
index 9f41c76..4205f96 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java
@@ -3,12 +3,22 @@
import java.util.List;
import java.util.Objects;
import java.text.SimpleDateFormat;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.ArrayList;
+import java.math.BigDecimal;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.constant.HttpStatus;
-import com.ruoyi.common.core.domain.entity.ServiceOrderAppVo;
+
import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.system.domain.*;
+import com.ruoyi.system.service.IDispatchOrdService;
+import com.ruoyi.system.service.IPayInfoService;
+import com.ruoyi.system.service.ITbOrdersService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -26,7 +36,6 @@
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.system.domain.ServiceOrder;
import com.ruoyi.system.service.IServiceOrderService;
@@ -39,10 +48,20 @@
*/
@RestController
@RequestMapping("/system/order")
-@DataSource(DataSourceType.SQLSERVER)
public class ServiceOrderController extends BaseController {
+
+ private static final Logger log = LoggerFactory.getLogger(ServiceOrderController.class);
@Autowired
private IServiceOrderService serviceOrderService;
+
+ @Autowired
+ private ITbOrdersService tbOrdersService;
+
+ @Autowired
+ private IDispatchOrdService dispatchOrdService;
+
+ @Autowired
+ private IPayInfoService payInfoService;
/**
* 鑾峰彇鏈嶅姟璁㈠崟鍒楄〃
@@ -75,12 +94,253 @@
/**
* 鏍规嵁鏈嶅姟璁㈠崟缂栧彿鑾峰彇璇︾粏淇℃伅
*/
- @PreAuthorize("@ss.hasPermi('system:order:query')")
+
+ @Anonymous(needSign = true)
@GetMapping(value = "/{serviceOrdId}")
public AjaxResult getInfo(@PathVariable Long serviceOrdId) {
- return success(serviceOrderService.selectServiceOrderById(serviceOrdId));
+ TbOrders orderDetail = tbOrdersService.selectTbOrdersByOrderID(serviceOrdId);
+
+ if(orderDetail==null){
+ return AjaxResult.error("璁㈠崟涓嶅瓨鍦�");
+ }
+
+ //鏌ヨ鏈嶅姟鍗�
+ ServiceOrder mingServiceOrder = serviceOrderService.selectServiceOrderById(Long.valueOf(orderDetail.getServiceOrdID()));
+
+ DispatchOrd dispatchOrd = dispatchOrdService.selectDispatchOrdByServiceOrdIDDt(mingServiceOrder.getServiceOrdId().toString());
+
+ Map<String, Object> data = new HashMap<>();
+
+ // 鏋勫缓璁㈠崟鍩烘湰淇℃伅
+ Map<String, Object> orderInfo = new HashMap<>();
+ orderInfo.put("OrderID", orderDetail.getOrderID());
+
+ // 鏍煎紡鍖栨椂闂�
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+ // 鏍煎紡鍖栧垱寤烘椂闂�
+ String formattedCreateTime = orderDetail.getCreateTime() != null ?
+ dateFormat.format(orderDetail.getCreateTime()) : "";
+ orderInfo.put("orderTime", formattedCreateTime);
+
+ // 鏍煎紡鍖栭绾︽椂闂�
+ String formattedBookingTime = orderDetail.getBookingDate() != null ?
+ dateFormat.format(orderDetail.getBookingDate()) : "";
+ orderInfo.put("appointmentTime", formattedBookingTime);
+
+
+
+
+ if(dispatchOrd!=null) {
+ //瑕佹煡璇㈣皟搴﹀崟
+ // 鏍煎紡鍖栬皟搴︽椂闂�
+ String formattedDispatchTime = dispatchOrd.getDispatchOrdStartDate() != null ?
+ dateFormat.format(dispatchOrd.getDispatchOrdStartDate()) : "";
+ orderInfo.put("dispatchTime", formattedDispatchTime);
+ }
+
+ // 璁㈠崟鐘舵�佽浆鎹㈤�昏緫
+ String orderStatus;
+ if (mingServiceOrder.getServiceOrdState() == 4) {
+ orderStatus = "宸插彇娑�";
+ } else if (mingServiceOrder.getServiceOrdState() == 3) {
+ orderStatus = "宸茶皟搴�";
+ } else if (mingServiceOrder.getServiceOrdTraTxnPrice().compareTo(BigDecimal.ZERO) > 0
+ && mingServiceOrder.getServiceOrdState() <= 1) {
+ orderStatus = "鍜ㄨ鍗�";
+ } else if (mingServiceOrder.getServiceOrdTraTxnPrice().compareTo(BigDecimal.ZERO) > 0
+ && mingServiceOrder.getServiceOrdState() != 4) {
+ orderStatus = "宸叉姤浠�";
+ } else {
+ orderStatus = "鍜ㄨ鍗�";
+ }
+
+ orderInfo.put("orderStatus", orderStatus);
+ orderInfo.put("orderSource","骞夸氦闆嗗洟");
+ orderInfo.put("externalNo",orderDetail.getServiceOrdNo());
+
+ if(orderStatus.contains("璋冨害")){
+ orderInfo.put("documentStatus", "璋冨害鍗�");
+ }
+ else{
+ orderInfo.put("documentStatus", "鍜ㄨ鍗�");
+ }
+
+ orderInfo.put("price",mingServiceOrder.getServiceOrdTraTxnPrice());//浠锋牸
+
+ // 鏋勫缓鎮h�呬俊鎭�
+ Map<String, Object> patientInfo = new HashMap<>();
+ patientInfo.put("contactName", orderDetail.getLinkPerson());
+ patientInfo.put("contactPhone", orderDetail.getLinkTel());
+ patientInfo.put("patientName", orderDetail.getPatientName());
+ patientInfo.put("patientAge", orderDetail.getAge());
+ // 鎬у埆杞崲锛�1鏄敺锛屽叾浠栨槸濂�
+ patientInfo.put("patientGender", "1".equals(orderDetail.getSex()) ? "鐢�" : "濂�");
+ patientInfo.put("patientWeight", orderDetail.getKg());
+
+ // 鏋勫缓鏈嶅姟淇℃伅
+ Map<String, Object> serviceInfo = new HashMap<>();
+ serviceInfo.put("startAddress", orderDetail.getLocalAddress());
+ serviceInfo.put("startLocation", orderDetail.getLocalLongitude() + "," + orderDetail.getLocalLatitude());
+ serviceInfo.put("endAddress", orderDetail.getSendAddress());
+ serviceInfo.put("endLocation", orderDetail.getSendLongitude() + "," + orderDetail.getSendLatitude());
+ serviceInfo.put("distance", orderDetail.getBookingKM());
+ serviceInfo.put("liftService", orderDetail.getLiftingCode());
+ serviceInfo.put("liftFloor", orderDetail.getLiftingFloor());
+
+
+ //鏋勫缓璋冨害淇℃伅
+ Map<String, Object> dispatchInfo = new HashMap<>();
+ if(dispatchOrd!=null){
+ String dispatchOAEntourage = dispatchOrd.getDispatchOrd_OAEntourage();
+ String dispatchOAName = dispatchOrd.getDispatchOrd_OAName();
+
+ if (dispatchOAEntourage != null && dispatchOAName != null) {
+ String[] entourages = dispatchOAEntourage.split(",");
+ String[] names = dispatchOAName.split(",");
+
+ // 鐢ㄤ簬瀛樺偍涓嶅悓瑙掕壊鐨勪汉鍛�
+ Map<String, StringBuilder> roleMap = new HashMap<>();
+ roleMap.put("driver", new StringBuilder());
+ roleMap.put("doctor", new StringBuilder());
+ roleMap.put("nurse", new StringBuilder());
+
+ // 閬嶅巻鎵惧嚭瀵瑰簲瑙掕壊鐨勪汉鍛�
+ for (int i = 0; i < Math.min(entourages.length, names.length); i++) {
+ String role = entourages[i].trim();
+ String name = names[i].trim();
+
+ switch(role) {
+ case "鍙告満":
+ appendName(roleMap.get("driver"), name);
+ break;
+ case "鍖荤敓":
+ appendName(roleMap.get("doctor"), name);
+ break;
+ case "鎶ゅ+":
+ appendName(roleMap.get("nurse"), name);
+ break;
+ }
+ }
+
+ // 灏嗘敹闆嗗埌鐨勪汉鍛樹俊鎭斁鍏ispatchInfo
+ dispatchInfo.put("driver", roleMap.get("driver").toString());
+ dispatchInfo.put("doctor", roleMap.get("doctor").toString());
+ dispatchInfo.put("nurse", roleMap.get("nurse").toString());
+
+ //璋冨害鏃堕棿
+ String formattedDispatchTime = dispatchOrd.getDispatchOrdStartDate() != null ?
+ dateFormat.format(dispatchOrd.getDispatchOrdStartDate()) : "";
+ dispatchInfo.put("dispatchTime", formattedDispatchTime);
+
+ dispatchInfo.put("dispatchStatus","宸茶皟搴�");
+ }
+
+
+ //杞︾墝鍙�
+ String carLicense = dispatchOrdService.selectCarLicenseByCarId(Integer.valueOf(dispatchOrd.getDispatchOrdCarID()));
+ dispatchInfo.put("carLicense", carLicense);
+ }
+
+ //鐥呬汉鎯呭喌
+ Map<String, Object> medicalInfo = new HashMap<>();
+ medicalInfo.put("hasConsciousness", orderDetail.getSense());
+ medicalInfo.put("complaint",orderDetail.getComplaint());
+
+ //鏉′欢
+ List<DictionaryCondition> conditions = dispatchOrdService.selectDictionaryConditions();
+ List<Integer> conditionIds = dispatchOrdService.selectConditionIdsByServiceOrdCoId(Long.valueOf(orderDetail.getServiceOrdID()));
+
+ String patientCondition = "";//鐥呬汉鎯呭喌
+ String useVentilator = "";//浣跨敤鍛煎惛鏈�
+ for(DictionaryCondition condition : conditions){
+
+ if(conditionIds.contains(condition.getVID())){
+ patientCondition += condition.getVOrder2() + ": " + condition.getVtext() + "; ";
+ }
+
+ if(condition.getVOrder2().contains("鍛煎惛鏈�")){
+ useVentilator = condition.getVtext();
+ }
+ }
+
+ medicalInfo.put("patientCondition", patientCondition);
+ medicalInfo.put("useVentilator", useVentilator);
+
+
+ List<PayInfo> payInfoList = new ArrayList<>();
+ if(serviceOrdId==88801)
+ {
+ //娴嬭瘯鏁版嵁
+ payInfoList = payInfoService.selectPayInfoByServiceOrdIDDt("1016302788");//娴嬭瘯浣跨敤
+ }
+ else{
+ payInfoList = payInfoService.selectPayInfoByServiceOrdIDDt(orderDetail.getServiceOrdID()); //姝e紡浣跨敤
+ }
+
+
+ //鍏朵粬淇℃伅
+ Map<String, Object> otherInfo = new HashMap<>();
+ //璇勪环
+ otherInfo.put("serviceOrdVisit", Objects.toString(mingServiceOrder.getServiceOrdVisit(), "-"));
+
+ //鐭ユ儏鍚屾剰涔�
+ List<String> imageUrls = dispatchOrdService.selectImageUrlsByDOrdIDDt(orderDetail.getServiceOrdID()); //姝e紡浣跨敤
+ otherInfo.put("imageUrls", imageUrls);
+ log.info("銆愮洃娴嬨�戠煡鎯呭悓鎰忎功:{}", imageUrls);
+
+ //鍙戠エ鑾峰彇
+ Map<String, Object> invoiceInfo = new HashMap<>();
+
+ if(serviceOrdId==88801)
+ {
+ //娴嬭瘯鏁版嵁
+ invoiceInfo = payInfoService.selectLatestInvoiceInfo("1016302788");
+ }
+ else{
+ invoiceInfo = payInfoService.selectLatestInvoiceInfo(orderDetail.getServiceOrdID()); //姝e紡浣跨敤
+ }
+
+ String invoiceStatus = "";
+ if (invoiceInfo != null && invoiceInfo.get("AuditStatus") != null) {
+ switch (String.valueOf(invoiceInfo.get("AuditStatus"))) {
+ case "0":
+ invoiceStatus = "鏈鐞�";
+ break;
+ case "1":
+ invoiceStatus = "寤跺悗澶勭悊";
+ break;
+ case "3":
+ invoiceStatus = "宸插紑绁�";
+ break;
+ case "4":
+ invoiceStatus = "鍙栨秷鐢宠";
+ break;
+ }
+ otherInfo.put("invoiceStatus",invoiceInfo.get("InvoiceMakeout")+"-"+invoiceStatus);
+ }
+
+
+
+ data.put("orderInfo", orderInfo);
+ data.put("patientInfo", patientInfo);
+ data.put("serviceInfo", serviceInfo);
+ data.put("medicalInfo", medicalInfo); // 鏆傛椂涓虹┖
+ data.put("dispatchInfo", dispatchInfo); // 鏇存柊涓哄寘鍚汉鍛樹俊鎭殑dispatchInfo
+ data.put("paymentInfo", payInfoList); // 鏆傛椂涓虹┖
+ data.put("otherInfo", otherInfo);
+
+
+ return AjaxResult.success(data);
}
+ // 娣诲姞杈呭姪鏂规硶鏉ュ鐞嗗悕瀛楃殑鎷兼帴
+ private void appendName(StringBuilder sb, String name) {
+ if (sb.length() > 0) {
+ sb.append(",");
+ }
+ sb.append(name);
+ }
/*
鏂板璁㈠崟
@@ -111,4 +371,8 @@
public AjaxResult remove(@PathVariable Long[] serviceOrdIds) {
return toAjax(serviceOrderService.deleteServiceOrderByIds(serviceOrdIds));
}
+
+
+
+
}
\ No newline at end of file
--
Gitblit v1.9.1