wzp
2025-05-05 94ff46df856f6d4f8d8393e22001351c793f4e5b
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbOrdersController.java
@@ -9,7 +9,10 @@
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.domain.entity.ServiceOrderAppResultVo;
import com.ruoyi.common.core.domain.entity.ServiceOrderAppVo;
import com.ruoyi.common.core.domain.entity.ServiceOrderDelVo;
import com.ruoyi.common.utils.civilAviation.ServiceOrderUtil;
import com.ruoyi.system.domain.SysClientApp;
import com.ruoyi.system.service.ISysClientAppService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -29,6 +32,7 @@
import com.ruoyi.system.service.ITbOrdersService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.entity.OrderCancelVo;
/**
 * ordersController
@@ -42,6 +46,9 @@
{
    @Autowired
    private ITbOrdersService tbOrdersService;
    @Autowired
    private ISysClientAppService clientAppService;
    /**
     * 查询orders列表
@@ -95,15 +102,14 @@
            tbOrders.setCreateTime(new Date());
            int insertNum = tbOrdersService.insertTbOrders(tbOrders);
            if(insertNum<1)
            {
                return AjaxResult.error("上传失败!");
            }
            tbOrdersService.insertTbOrders(tbOrders);
            SysClientApp scApp = clientAppService.selectSysClientAppByAppId(1L);
            ServiceOrderAppVo model = new ServiceOrderAppVo();
            model.setMethod("ServiceOrder_APP"); // 设置接口名称
            model.setAppId("GDS-000001"); // 设置商户 APPID
            model.setAppId(scApp.getMinAppId()); // 设置商户 APPID
            model.setOrdType(tbOrders.getTypeCode().intValue());
            model.setCoPhone(tbOrders.getLinkTel()); // 客户联系电话
            model.setCoName(tbOrders.getLinkPerson()); // 客户姓名
@@ -124,23 +130,128 @@
            model.setCondition(tbOrders.getRemark()); // 设置备注信息
//        model.setDoctor("医生" + (int) (Math.random() * 10)); // 随机设置患者医生
//        model.setDoctorPhone("13" + (int) (Math.random() * 900000000 + 100000000)); // 随机生成患者医生电话
            model.setOfferPrice(tbOrders.getBookingPrice().doubleValue()); // 随机生成报价
            model.setOfferPrice(tbOrders.getBookingPrice().doubleValue()); // 生成报价
//        model.setReferrals("推介人" + (int) (Math.random() * 10)); // 随机设置推介人信息
//        model.setUnitRemarks("商户随机备注信息"); // 随机设置商户备注
//        model.setPayQRcodeURL("https://example.com/qrcode/" + (int) (Math.random() * 100)); // 随机生成外部支付二维码链接
          model.setPayQRcodeURL(scApp.getPayUrl());
            ServiceOrderAppResultVo result = ServiceOrderUtil.CreateServiceOrder(model);
            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());
        }
    }
    /**
     * 重新发送订单
     */
    @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("appId1");
        ServiceOrderAppVo model = new ServiceOrderAppVo();
        model.setMethod("ServiceOrder_APP"); // 设置接口名称
        model.setAppId(scApp.getMinAppId()); // 设置商户 APPID
        model.setOrdType(tbOrders.getTypeCode().intValue());
        model.setCoPhone(tbOrders.getLinkTel()); // 客户联系电话
        model.setCoName(tbOrders.getLinkPerson()); // 客户姓名
//        model.setCoTies("家属"); // 随机设置客户联系人与患者关系
        // 设置预约时间为一天后
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd%20HH:mm");
        model.setApptDate(sdf.format(tbOrders.getBookingDate())); // 格式化预约运送时间
        model.setPtName(tbOrders.getPatientName()); // 患者姓名
        model.setPtAge(tbOrders.getAge()); // 随机生成患者年龄
        model.setPtSex(tbOrders.getSex() == 1 ? "男" : "女"); // 随机生成患者性别
//        model.setPtNat("中国"); // 设置患者国籍--默认中国,不需要设置
        model.setOutHosp(tbOrders.getLocalAddress()); // 设置转出医院
        model.setInHosp(tbOrders.getSendAddress()); // 设置转入医院
//        model.setPtServices("科室")); // 设置患者所在科室
        model.setPtDiagnosis(tbOrders.getComplaint()); // 设置诊断信息
        model.setCondition(tbOrders.getRemark()); // 设置备注信息
//        model.setDoctor("医生")); // 设置患者医生--没有医生信息
//        model.setDoctorPhone("")); // 设置患者医生电话--没有医生电话
        model.setOfferPrice(tbOrders.getBookingPrice().doubleValue()); // 报价
//        model.setReferrals("推介人")); // 设置推介人信息--没有推介人信息
//        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("提交失败");
        }
    }
    @Anonymous
    @PostMapping("/cancelOrder")
    public AjaxResult cancelOrder(@RequestBody OrderCancelVo cancelVo)
    {
        try {
            if (cancelVo == null || cancelVo.getOrderID() == null ||
                cancelVo.getThirdOrderNo() == null || cancelVo.getReason() == null) {
                return AjaxResult.error("必要参数不能为空!");
            }
            SysClientApp scApp = clientAppService.selectSysClientAppByAppId(1L);
            ServiceOrderDelVo model = new ServiceOrderDelVo();
            model.setMethod("ServiceOrder_DEL"); // 设置接口名称
            model.setAPPID(scApp.getMinAppId()); // 设置商户 APPID
            model.setServiceOrdID(cancelVo.getThirdOrderNo()); // 设置第三方订单号
            model.setDELRemarks(cancelVo.getReason()); // 设置取消原因
            ServiceOrderAppResultVo 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);
                return AjaxResult.success(result);
            } else {
                return AjaxResult.error("取消订单失败");
            }
        } catch (Exception e) {
            return AjaxResult.error("取消订单失败:" + e.getMessage());
        }
    }
    /**
     * 修改orders
     */