wzp
2025-05-03 00c657c1f695771d625e28d958bd3e57fb56da58
feat: 新增发票和评价
8个文件已修改
131 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/domain/ServiceOrder.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/PayInfoMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/IPayInfoService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PayInfoServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/PayInfoMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/ServiceOrderMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/order/detail.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java
@@ -265,13 +265,42 @@
//        List<PayInfo> payInfoList = payInfoService.selectPayInfoByServiceOrdIDDt(orderDetail.getServiceOrdID()); //1016302788
        List<PayInfo> payInfoList = payInfoService.selectPayInfoByServiceOrdIDDt("1016302788");
        //其他信息
        Map<String, Object> otherInfo = new HashMap<>();
        //评价
        otherInfo.put("serviceOrdVisit", Objects.toString(mingServiceOrder.getServiceOrdVisit(), "无"));
        //发票获取
        Map<String, Object> invoiceInfo = payInfoService.selectLatestInvoiceInfo("1016302788");
        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("operationInfo", new ArrayList<>()); // 暂时为空
        data.put("otherInfo", otherInfo);
        
        return AjaxResult.success(data);
    }
ruoyi-system/src/main/java/com/ruoyi/system/domain/ServiceOrder.java
@@ -123,6 +123,9 @@
    @Excel(name = "调度时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date serviceOrdCCTime;
    /** 评价 */
    @Excel(name = "评价")
    private String serviceOrdVisit;
    /** 分页参数 */
@@ -354,6 +357,14 @@
        this.serviceOrdCCTime = serviceOrdCCTime;
    }   
    public String getServiceOrdVisit() {
        return serviceOrdVisit;
    }
    public void setServiceOrdVisit(String serviceOrdVisit) {
        this.serviceOrdVisit = serviceOrdVisit;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
ruoyi-system/src/main/java/com/ruoyi/system/mapper/PayInfoMapper.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.mapper;
import java.util.List;
import java.util.Map;
import com.ruoyi.system.domain.PayInfo;
import org.apache.ibatis.annotations.Mapper;
@@ -16,4 +18,13 @@
     * @return 支付信息列表
     */
    public List<PayInfo> selectPayInfoByServiceOrdIDDt(String serviceOrdIDDt);
    /**
     * 根据服务订单ID查询最新发票信息
     *
     * @param serviceOrderId 服务订单ID
     * @return 最新发票信息
     */
    public Map<String, Object> selectLatestInvoiceInfo(String serviceOrderId);
ruoyi-system/src/main/java/com/ruoyi/system/service/IPayInfoService.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.service;
import java.util.List;
import java.util.Map;
import com.ruoyi.system.domain.PayInfo;
/**
@@ -14,4 +16,14 @@
     * @return 支付信息列表
     */
    public List<PayInfo> selectPayInfoByServiceOrdIDDt(String serviceOrdIDDt);
    /**
     * 根据服务订单ID查询最新发票信息
     *
     * @param serviceOrderId 服务订单ID
     * @return 最新发票信息
     */
    public Map<String, Object> selectLatestInvoiceInfo(String serviceOrderId);
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PayInfoServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.system.service.impl;
import java.util.List;
import java.util.Map;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
@@ -29,4 +30,17 @@
    public List<PayInfo> selectPayInfoByServiceOrdIDDt(String serviceOrdIDDt) {
        return payInfoMapper.selectPayInfoByServiceOrdIDDt(serviceOrdIDDt);
    }
    /**
     * 根据服务订单ID查询最新发票信息
     *
     * @param serviceOrderId 服务订单ID
     * @return 最新发票信息
     */
    @Override
    public Map<String, Object> selectLatestInvoiceInfo(String serviceOrderId) {
        return payInfoMapper.selectLatestInvoiceInfo(serviceOrderId);
    }
ruoyi-system/src/main/resources/mapper/system/PayInfoMapper.xml
@@ -28,4 +28,14 @@
        order by PaidMoneyTime desc
    </select>
    <select id="selectLatestInvoiceInfo" parameterType="String" resultType="java.util.Map">
        select top 1 InvoiceMakeout, AuditStatus
        from InvoiceData
        where ServiceOrderIDPK = #{serviceOrderId}
    </select>
</mapper> 
ruoyi-system/src/main/resources/mapper/system/ServiceOrderMapper.xml
@@ -31,10 +31,11 @@
        <result property="serviceOrdTraPaidPrice"    column="ServiceOrdTraPaidPrice"    />
        <result property="serviceOrdUnitRemarks"    column="ServiceOrdUnitRemarks"    />
        <result property="serviceOrdCCTime"    column="ServiceOrd_CC_Time"    />
        <result property="serviceOrdVisit"    column="ServiceOrdVisit"    />
    </resultMap>
    <sql id="selectServiceOrderVo">
        select ServiceOrdID, ServiceOrdUserID, ServiceOrdClass, ServiceOrdType, ServiceOrdState, ServiceOrdStartDate, ServiceOrdApptDate, ServiceOrdCoName, ServiceOrdCoPhone, ServiceOrdPtName, ServiceOrdPtAge, ServiceOrdPtSex, ServiceOrdPtKG, ServiceOrdPtNat, ServiceOrdPtIDCard, ServiceOrdTraProvince, ServiceOrdTraCity, ServiceOrdTraStreet, ServiceOrdTraEnd, ServiceOrdTraDistance, ServiceOrdTraUnitPrice, ServiceOrdTraTxnPrice, ServiceOrdTraPaidType, ServiceOrdTraPaidPrice, ServiceOrdUnitRemarks, ServiceOrd_CC_Time from ServiceOrder
        select ServiceOrdID, ServiceOrdUserID, ServiceOrdClass, ServiceOrdType, ServiceOrdState, ServiceOrdStartDate, ServiceOrdApptDate, ServiceOrdCoName, ServiceOrdCoPhone, ServiceOrdPtName, ServiceOrdPtAge, ServiceOrdPtSex, ServiceOrdPtKG, ServiceOrdPtNat, ServiceOrdPtIDCard, ServiceOrdTraProvince, ServiceOrdTraCity, ServiceOrdTraStreet, ServiceOrdTraEnd, ServiceOrdTraDistance, ServiceOrdTraUnitPrice, ServiceOrdTraTxnPrice, ServiceOrdTraPaidType, ServiceOrdTraPaidPrice, ServiceOrdUnitRemarks, ServiceOrd_CC_Time, ServiceOrdVisit from ServiceOrder
    </sql>
    <sql id="selectServiceOrderWhere">
ruoyi-ui/src/views/system/order/detail.vue
@@ -112,43 +112,16 @@
        </el-col>
      </el-row>
      <!-- 运行情况 -->
      <el-row>
        <el-col :span="24">
          <el-card class="inner-card">
            <div slot="header">
              <b>运行情况</b>
              <span style="float: right">{{dispatchInfo.carLicense}}</span>
            </div>
            <el-table
              :data="operationInfo"
              border
              style="width: 100%"
              :size="isMobile ? 'mini' : 'medium'"
              class="responsive-table">
              <el-table-column prop="status" label="出车状态" min-width="100" />
              <el-table-column prop="operator" label="操作人" min-width="100" />
              <el-table-column prop="operateTime" label="操作时间" min-width="140" />
              <el-table-column prop="location" label="坐标位置" min-width="200" show-overflow-tooltip />
            </el-table>
          </el-card>
        </el-col>
      </el-row>
      <!-- 订单情况 -->
      <el-row :gutter="20">
        <!-- 调度信息 -->
        <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
          <el-card class="inner-card">
            <div slot="header"><b>调度信息</b></div>
            <div slot="header"><b>详情</b></div>
            <el-descriptions :column="isMobile ? 1 : 2" border>
              <el-descriptions-item label="服务评价">{{ dispatchInfo.dispatchTime }}</el-descriptions-item>
              <el-descriptions-item label="发票状态">{{ dispatchInfo.dispatchStatus }}</el-descriptions-item>
              <el-descriptions-item label="支付状态">{{ dispatchInfo.driver }}</el-descriptions-item>
              <el-descriptions-item label="车牌">{{ dispatchInfo.carLicense }}</el-descriptions-item>
              <el-descriptions-item label="医生">{{ dispatchInfo.doctor }}</el-descriptions-item>
              <!-- <el-descriptions-item label="职位">{{ dispatchInfo.doctorPosition }}</el-descriptions-item> -->
              <el-descriptions-item label="护士">{{ dispatchInfo.nurse }}</el-descriptions-item>
              <el-descriptions-item label="服务评价">{{ otherInfo.serviceOrdVisit }}</el-descriptions-item>
              <el-descriptions-item label="发票状态">{{ otherInfo.invoiceStatus }}</el-descriptions-item>
            </el-descriptions>
          </el-card>
        </el-col>
@@ -173,7 +146,7 @@
      medicalInfo: {},
      dispatchInfo: {},
      paymentInfo: [],
      operationInfo: [],
      otherInfo: [],
      screenWidth: document.documentElement.clientWidth // 屏幕宽度
    }
  },
@@ -204,7 +177,7 @@
        this.medicalInfo = data.medicalInfo || {}
        this.dispatchInfo = data.dispatchInfo || {}
        this.paymentInfo = data.paymentInfo || []
        this.operationInfo = data.operationInfo || []
        this.otherInfo = data.otherInfo || []
        console.log(this.orderInfo)