From 09faa36132c8cbada5327649875534ef01c1a3b1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 11 十二月 2025 20:44:31 +0800
Subject: [PATCH] feat: 优化任务里程统计
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbOrdersController.java | 353 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 322 insertions(+), 31 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbOrdersController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbOrdersController.java
index 7d4a966..d22458c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbOrdersController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbOrdersController.java
@@ -1,17 +1,25 @@
package com.ruoyi.web.controller.system;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
import java.util.List;
+import java.util.Objects;
import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.common.core.domain.entity.*;
+import com.ruoyi.common.utils.civilAviation.ServiceOrderUtil;
+import com.ruoyi.system.domain.SysClientApp;
+import com.ruoyi.system.service.ISysClientAppService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -27,6 +35,7 @@
* @author wzp
* @date 2025-05-01
*/
+@Api("璁㈠崟绠$悊")
@RestController
@RequestMapping("/system/orders")
public class TbOrdersController extends BaseController
@@ -34,9 +43,10 @@
@Autowired
private ITbOrdersService tbOrdersService;
- /**
- * 鏌ヨorders鍒楄〃
- */
+ @Autowired
+ private ISysClientAppService clientAppService;
+
+ @ApiOperation("鏌ヨ璁㈠崟鍒楄〃")
@PreAuthorize("@ss.hasPermi('system:orders:list')")
@GetMapping("/list")
public TableDataInfo list(TbOrders tbOrders)
@@ -46,9 +56,7 @@
return getDataTable(list);
}
- /**
- * 瀵煎嚭orders鍒楄〃
- */
+ @ApiOperation("瀵煎嚭璁㈠崟鍒楄〃")
@PreAuthorize("@ss.hasPermi('system:orders:export')")
@Log(title = "orders", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@@ -59,9 +67,8 @@
util.exportExcel(response, list, "orders鏁版嵁");
}
- /**
- * 鑾峰彇orders璇︾粏淇℃伅
- */
+ @ApiOperation("鑾峰彇璁㈠崟璇︾粏淇℃伅")
+ @ApiImplicitParam(name = "OrderID", value = "璁㈠崟ID", required = true, dataType = "Long", paramType = "path")
@PreAuthorize("@ss.hasPermi('system:orders:query')")
@GetMapping(value = "/{OrderID}")
public AjaxResult getInfo(@PathVariable("OrderID") Long OrderID)
@@ -70,19 +77,304 @@
}
/**
- * 鏂板orders
+ * 鎻愪緵澶栭儴鎺ュ彛鍙互璋冪敤
+ * @param tbOrders
+ * @return
*/
- @PreAuthorize("@ss.hasPermi('system:orders:add')")
- @Log(title = "orders", businessType = BusinessType.INSERT)
- @PostMapping
- public AjaxResult add(@RequestBody TbOrders tbOrders)
- {
- return toAjax(tbOrdersService.insertTbOrders(tbOrders));
+ @Anonymous(needSign = true)
+// @Anonymous
+// @Log(title = "orders", businessType = BusinessType.INSERT)
+ @ApiOperation("鏂板璁㈠崟")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "orderID", value = "璁㈠崟ID", dataType = "Long"),
+ @ApiImplicitParam(name = "typeCode", value = "璁㈠崟绫诲瀷", dataType = "Integer"),
+ @ApiImplicitParam(name = "linkTel", value = "鑱旂郴鐢佃瘽", dataType = "String"),
+ @ApiImplicitParam(name = "linkPerson", value = "鑱旂郴浜�", dataType = "String"),
+ @ApiImplicitParam(name = "bookingDate", value = "棰勭害鏃堕棿", dataType = "Date"),
+ @ApiImplicitParam(name = "patientName", value = "鎮h�呭鍚�", dataType = "String"),
+ @ApiImplicitParam(name = "age", value = "骞撮緞", dataType = "Integer"),
+ @ApiImplicitParam(name = "sex", value = "鎬у埆", dataType = "Integer"),
+ @ApiImplicitParam(name = "localAddress", value = "杞嚭鍖婚櫌", dataType = "String"),
+ @ApiImplicitParam(name = "sendAddress", value = "杞叆鍖婚櫌", dataType = "String"),
+ @ApiImplicitParam(name = "complaint", value = "璇婃柇淇℃伅", dataType = "String"),
+ @ApiImplicitParam(name = "remark", value = "澶囨敞", dataType = "String"),
+ @ApiImplicitParam(name = "bookingPrice", value = "鎶ヤ环", dataType = "BigDecimal")
+ })
+ @PostMapping("/add")
+ public AjaxResult add(@RequestBody TbOrders tbOrders,String appId) {
+ try {
+ if (tbOrders == null || tbOrders.getOrderID() == null) {
+ return AjaxResult.error("浼犺緭鏁版嵁涓虹┖锛�");
+ }
+
+ if(appId ==null|| Objects.equals(appId, ""))
+ {
+ return AjaxResult.error("appid涓嶈兘涓虹┖锛�");
+ }
+
+ tbOrders.setAppId(appId);
+ tbOrders.setCreateTime(new Date());
+
+ try
+ {
+ tbOrdersService.insertTbOrders(tbOrders);
+ }
+ catch (Exception ex)
+ {
+ return AjaxResult.error("璁㈠崟鍙蜂笉鑳介噸澶�");
+ }
+
+
+ SysClientApp scApp = clientAppService.selectSysClientAppByAppKey(tbOrders.getAppId());
+
+ ServiceOrderAppVo model = new ServiceOrderAppVo();
+ model.setMethod("ServiceOrder_APP"); // 璁剧疆鎺ュ彛鍚嶇О
+ model.setAppId(scApp.getMinAppId()); // 璁剧疆鍟嗘埛 APPID
+ model.setUserID(scApp.getUserId());
+
+ //璁剧疆璁㈠崟绫诲瀷
+ if(tbOrders.getTypeCode() == 0) {
+ model.setOrdType(1);
+ } else {
+ model.setOrdType(tbOrders.getTypeCode().intValue());
+ }
+
+ model.setCoPhone(tbOrders.getLinkTel()); // 瀹㈡埛鑱旂郴鐢佃瘽
+ model.setCoName(tbOrders.getLinkPerson()); // 瀹㈡埛濮撳悕
+// model.setCoTies("瀹跺睘"); // 闅忔満璁剧疆瀹㈡埛鑱旂郴浜轰笌鎮h�呭叧绯�
+ // 璁剧疆棰勭害鏃堕棿涓轰竴澶╁悗
+ Calendar calendar = Calendar.getInstance();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ model.setApptDate(sdf.format(tbOrders.getBookingDate())); // 鏍煎紡鍖栭绾﹁繍閫佹椂闂�
+
+ if(tbOrders.getPatientName() != null && !tbOrders.getPatientName().equals(""))
+ {
+ model.setPtName(tbOrders.getPatientName()); // 鎮h�呭鍚�
+ }
+ else
+ {
+ model.setPtName("鎮h��"); // 闅忔満鐢熸垚鎮h�呭鍚�
+ }
+
+ model.setPtAge(tbOrders.getAge()); // 闅忔満鐢熸垚鎮h�呭勾榫�
+ model.setPtSex(tbOrders.getSex() == 1 ? "鐢�" : "濂�"); // 闅忔満鐢熸垚鎮h�呮�у埆
+// model.setPtNat("涓浗"); // 璁剧疆鎮h�呭浗绫�
+ model.setOutHosp(tbOrders.getLocalAddress()); // 璁剧疆杞嚭鍖婚櫌
+ model.setInHosp(tbOrders.getSendAddress()); // 璁剧疆杞叆鍖婚櫌
+// model.setPtServices("绉戝" + (int) (Math.random() * 10)); // 闅忔満璁剧疆鎮h�呮墍鍦ㄧ瀹�
+
+ //濡傛灉璇婃柇淇℃伅涓虹┖锛屽垯涓嶈缃瘖鏂俊鎭�
+ if(tbOrders.getComplaint() != null && !tbOrders.getComplaint().equals(""))
+ {
+ model.setPtDiagnosis(tbOrders.getComplaint()); // 璁剧疆璇婃柇淇℃伅
+ }
+
+
+ //棰勪及璺濈
+ if(tbOrders.getBookingKM()!=null)
+ {
+ model.setTraDistance(tbOrders.getBookingKM().toString());
+ }
+
+ //濡傛灉澶囨敞淇℃伅涓虹┖锛屽垯涓嶈缃娉ㄤ俊鎭�
+ if(tbOrders.getRemark() != null && !tbOrders.getRemark().equals(""))
+ {
+ model.setCondition(tbOrders.getRemark()); // 璁剧疆澶囨敞淇℃伅
+ }
+
+ model.setPrice(tbOrders.getBookingPrice().doubleValue());
+ model.setOfferPrice(tbOrders.getBookingPrice().doubleValue()); // 鐢熸垚鎶ヤ环
+ model.setReferrals(scApp.getReferrals()); // 璁剧疆鎺ㄤ粙浜哄悕绉颁负鏈烘瀯鍚嶇О
+// model.setUnitRemarks("鍟嗘埛闅忔満澶囨敞淇℃伅"); // 闅忔満璁剧疆鍟嗘埛澶囨敞
+ model.setPayQRcodeURL(scApp.getPayUrl());
+
+ ServiceOrderAppResultVo result = ServiceOrderUtil.CreateServiceOrder(model,scApp.getMinAppSecret());
+
+ if (result.getResult() == 1) {
+ tbOrders.setOrderID(tbOrders.getOrderID());
+ tbOrders.setServiceOrdID(result.getServiceOrdID());
+ tbOrders.setServiceOrdNo(result.getServiceOrdNo());
+ tbOrders.setThirdPartyResult(result.getResult());
+ tbOrders.setUpdateTime(new Date());
+ tbOrders.setOrderStatus(1);
+ tbOrdersService.updateTbOrders(tbOrders);
+ return AjaxResult.success(result);
+ } else {
+ return AjaxResult.error("鎻愪氦澶辫触");
+ }
+ } catch (Exception e) {
+ return AjaxResult.error("鎻愪氦澶辫触:"+e.getMessage());
+ }
}
- /**
- * 淇敼orders
- */
+ @ApiOperation("閲嶆柊鍙戦�佽鍗�")
+ @ApiImplicitParam(name = "orderId", value = "璁㈠崟ID", required = true, dataType = "Long", paramType = "path")
+ @PostMapping("/resend/{orderId}")
+ public AjaxResult resendOrder(@PathVariable Long orderId) {
+
+ TbOrders tbOrders = tbOrdersService.selectTbOrdersByOrderID(orderId);
+ if (tbOrders == null) {
+ return AjaxResult.error("璁㈠崟涓嶅瓨鍦�");
+ }
+ if (tbOrders.getOrderStatus() == 2) {
+ return AjaxResult.error("璁㈠崟鐘舵�佸凡鍙栨秷");
+ }
+
+ SysClientApp scApp = clientAppService.selectSysClientAppByAppKey(tbOrders.getAppId());
+
+
+ ServiceOrderAppVo model = new ServiceOrderAppVo();
+ model.setMethod("ServiceOrder_APP"); // 璁剧疆鎺ュ彛鍚嶇О
+ model.setAppId(scApp.getMinAppId()); // 璁剧疆鍟嗘埛 APPID
+ model.setUserID(scApp.getUserId());
+
+ model.setOrdType(tbOrders.getTypeCode().intValue());
+ model.setCoPhone(tbOrders.getLinkTel()); // 瀹㈡埛鑱旂郴鐢佃瘽
+
+ if(tbOrders.getLinkPerson() != null && !tbOrders.getLinkPerson().equals(""))
+ {
+ model.setCoName(tbOrders.getLinkPerson()); // 瀹㈡埛濮撳悕
+ }
+ else
+ {
+ model.setCoName("鑱旂郴浜�"); // 闅忔満鐢熸垚鎮h�呭鍚�
+ }
+
+// model.setCoTies("瀹跺睘"); // 闅忔満璁剧疆瀹㈡埛鑱旂郴浜轰笌鎮h�呭叧绯�
+ // 璁剧疆棰勭害鏃堕棿涓轰竴澶╁悗
+ Calendar calendar = Calendar.getInstance();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ model.setApptDate(sdf.format(tbOrders.getBookingDate())); // 鏍煎紡鍖栭绾﹁繍閫佹椂闂�
+
+ if(tbOrders.getPatientName() != null && !tbOrders.getPatientName().equals(""))
+ {
+ model.setPtName(tbOrders.getPatientName()); // 鎮h�呭鍚�
+ }
+ else
+ {
+ model.setPtName("鎮h��"); // 闅忔満鐢熸垚鎮h�呭鍚�
+ }
+
+
+
+ if(tbOrders.getAge()!=null && !tbOrders.getAge().equals(""))
+ {
+ model.setPtAge(tbOrders.getAge()); // 鎮h�呭勾榫�
+ }
+ else {
+ model.setPtAge("骞撮緞");
+ }
+
+ model.setPtSex(tbOrders.getSex() == 1 ? "鐢�" : "濂�");
+// model.setPtNat("涓浗"); // 璁剧疆鎮h�呭浗绫�
+ model.setOutHosp(tbOrders.getLocalAddress()); // 璁剧疆杞嚭鍖婚櫌
+ model.setInHosp(tbOrders.getSendAddress()); // 璁剧疆杞叆鍖婚櫌
+// model.setPtServices("绉戝" + (int) (Math.random() * 10)); // 闅忔満璁剧疆鎮h�呮墍鍦ㄧ瀹�
+
+ //濡傛灉璇婃柇淇℃伅涓虹┖锛屽垯涓嶈缃瘖鏂俊鎭�
+ if(tbOrders.getComplaint() != null && !tbOrders.getComplaint().equals(""))
+ {
+ model.setPtDiagnosis(tbOrders.getComplaint()); // 璁剧疆璇婃柇淇℃伅
+ }
+
+
+ //棰勪及璺濈
+ if(tbOrders.getBookingKM()!=null)
+ {
+ model.setTraDistance(tbOrders.getBookingKM().toString());
+ }
+
+ //濡傛灉澶囨敞淇℃伅涓虹┖锛屽垯涓嶈缃娉ㄤ俊鎭�
+ if(tbOrders.getRemark() != null && !tbOrders.getRemark().equals(""))
+ {
+ model.setCondition(tbOrders.getRemark()); // 璁剧疆澶囨敞淇℃伅
+ }
+
+
+ model.setOfferPrice(tbOrders.getBookingPrice().doubleValue()); // 鐢熸垚鎶ヤ环
+ model.setPrice(tbOrders.getBookingPrice().doubleValue());
+ model.setReferrals(scApp.getReferrals()); // 璁剧疆鎺ㄤ粙浜哄悕绉颁负鏈烘瀯鍚嶇О
+// model.setUnitRemarks("鍟嗘埛闅忔満澶囨敞淇℃伅"); // 闅忔満璁剧疆鍟嗘埛澶囨敞
+ model.setPayQRcodeURL(scApp.getPayUrl());
+
+
+ ServiceOrderAppResultVo result = ServiceOrderUtil.CreateServiceOrder(model,scApp.getMinAppSecret());
+
+ if (result.getResult() == 1) {
+ tbOrders.setOrderID(tbOrders.getOrderID());
+ tbOrders.setServiceOrdID(result.getServiceOrdID());
+ tbOrders.setServiceOrdNo(result.getServiceOrdNo());
+ tbOrders.setThirdPartyResult(result.getResult());
+ tbOrders.setUpdateTime(new Date());
+ tbOrders.setOrderStatus(1);
+ tbOrdersService.updateTbOrders(tbOrders);
+ return AjaxResult.success(result);
+ } else {
+ return AjaxResult.error("鎻愪氦澶辫触");
+ }
+ }
+
+
+
+ @ApiOperation("鍙栨秷璁㈠崟")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "orderID", value = "璁㈠崟ID", required = true, dataType = "Long"),
+ @ApiImplicitParam(name = "thirdOrderNo", value = "绗笁鏂硅鍗曞彿", required = true, dataType = "String"),
+ @ApiImplicitParam(name = "reason", value = "鍙栨秷鍘熷洜", required = true, dataType = "String")
+ })
+ @Anonymous(needSign = true)
+ @PostMapping("/cancelOrder")
+ public AjaxResult cancelOrder(@RequestBody OrderCancelVo cancelVo,String appId)
+ {
+ try {
+ if (cancelVo == null || cancelVo.getOrderID() == null ||
+ cancelVo.getThirdOrderNo() == null || cancelVo.getReason() == null) {
+ return AjaxResult.error("蹇呰鍙傛暟涓嶈兘涓虹┖锛�");
+ }
+
+ SysClientApp scApp = clientAppService.selectSysClientAppByAppKey(appId);
+
+ ServiceOrderDelVo model = new ServiceOrderDelVo();
+ model.setMethod("ServiceOrder_DEL"); // 璁剧疆鎺ュ彛鍚嶇О
+ model.setAPPID(scApp.getMinAppId()); // 璁剧疆鍟嗘埛 APPID
+ model.setServiceOrdID(cancelVo.getThirdOrderNo()); // 璁剧疆绗笁鏂硅鍗曞彿
+ model.setDELRemarks(cancelVo.getReason()); // 璁剧疆鍙栨秷鍘熷洜
+ logger.info("鍙栨秷璁㈠崟-{}",cancelVo.getThirdOrderNo());
+
+ ServiceOrderDelResultVo result = ServiceOrderUtil.CancelServiceOrder(model,scApp.getMinAppSecret());
+
+ if (result.getResult() == 1) {
+ // 鏇存柊鏈湴璁㈠崟鐘舵��
+ TbOrders tbOrders = new TbOrders();
+ tbOrders.setOrderID(cancelVo.getOrderID());
+ tbOrders.setOrderStatus(2); // 2鏄彇娑�
+ tbOrdersService.updateTbOrders(tbOrders);
+ logger.info("璁㈠崟鍙栨秷鎴愬姛锛�");
+ return AjaxResult.success(result);
+ } else {
+ return AjaxResult.error("鍙栨秷璁㈠崟澶辫触",result);
+ }
+ } catch (Exception e) {
+ return AjaxResult.error("鍙栨秷璁㈠崟澶辫触:" + e.getMessage());
+ }
+ }
+
+ @ApiOperation("淇敼璁㈠崟")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "orderID", value = "璁㈠崟ID", required = true, dataType = "Long"),
+ @ApiImplicitParam(name = "typeCode", value = "璁㈠崟绫诲瀷", dataType = "Integer"),
+ @ApiImplicitParam(name = "linkTel", value = "鑱旂郴鐢佃瘽", dataType = "String"),
+ @ApiImplicitParam(name = "linkPerson", value = "鑱旂郴浜�", dataType = "String"),
+ @ApiImplicitParam(name = "bookingDate", value = "棰勭害鏃堕棿", dataType = "Date"),
+ @ApiImplicitParam(name = "patientName", value = "鎮h�呭鍚�", dataType = "String"),
+ @ApiImplicitParam(name = "age", value = "骞撮緞", dataType = "Integer"),
+ @ApiImplicitParam(name = "sex", value = "鎬у埆", dataType = "Integer"),
+ @ApiImplicitParam(name = "localAddress", value = "杞嚭鍖婚櫌", dataType = "String"),
+ @ApiImplicitParam(name = "sendAddress", value = "杞叆鍖婚櫌", dataType = "String"),
+ @ApiImplicitParam(name = "complaint", value = "璇婃柇淇℃伅", dataType = "String"),
+ @ApiImplicitParam(name = "remark", value = "澶囨敞", dataType = "String"),
+ @ApiImplicitParam(name = "bookingPrice", value = "鎶ヤ环", dataType = "BigDecimal")
+ })
@PreAuthorize("@ss.hasPermi('system:orders:edit')")
@Log(title = "orders", businessType = BusinessType.UPDATE)
@PutMapping
@@ -91,12 +383,11 @@
return toAjax(tbOrdersService.updateTbOrders(tbOrders));
}
- /**
- * 鍒犻櫎orders
- */
+ @ApiOperation("鍒犻櫎璁㈠崟")
+ @ApiImplicitParam(name = "OrderIDs", value = "璁㈠崟ID鏁扮粍", required = true, dataType = "Long[]", paramType = "path")
@PreAuthorize("@ss.hasPermi('system:orders:remove')")
@Log(title = "orders", businessType = BusinessType.DELETE)
- @DeleteMapping("/{OrderIDs}")
+ @DeleteMapping("/{OrderIDs}")
public AjaxResult remove(@PathVariable Long[] OrderIDs)
{
return toAjax(tbOrdersService.deleteTbOrdersByOrderIDs(OrderIDs));
--
Gitblit v1.9.1