Эх сурвалжийг харах

教练端学员查询学员列表

小么熊🐻 1 жил өмнө
parent
commit
5769860d81

+ 67 - 0
jsjp-admin/src/main/java/com/miaxis/app/controller/tms/TmsStudentInfoController.java

@@ -0,0 +1,67 @@
+package com.miaxis.app.controller.tms;
+
+
+import com.miaxis.common.constant.Constants;
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.tms.dto.TmsStudentInfoDTO;
+import com.miaxis.tms.dto.TmsStudentInfoIdDTO;
+import com.miaxis.tms.service.ITmsStudentInfoService;
+import com.miaxis.tms.vo.TmsStudentInfoIdVo;
+import com.miaxis.tms.vo.TmsStudentInfoVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 学员基本信息表 前端控制器
+ * </p>
+ *
+ * @since 2021-03-09
+ */
+@RestController
+@Api(tags = "【app-教练端-学员接口】")
+@RequestMapping(Constants.OPEN_PREFIX + "/tms/coachInfo")
+public class TmsStudentInfoController extends BaseController {
+
+    @Autowired
+    private ITmsStudentInfoService studentInfoService;
+
+    /**
+     * 查询考场信息列表
+     */
+    @GetMapping("/list")
+    @ApiOperation("查询考场信息列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "当前页码", dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize", value = "每页数据量", dataType = "int", paramType = "query", required = false),
+    })
+    public ResponsePageInfo<TmsStudentInfoVo> list(@ModelAttribute TmsStudentInfoDTO studentInfoDTO) throws Exception {
+        startPage();
+        List<TmsStudentInfoVo> stuInfoList = studentInfoService.getTmsStudentInfoList(studentInfoDTO);
+        return toResponsePageInfo(stuInfoList);
+    }
+
+
+    /**
+     * 获取用户id获取详细信息
+     */
+    @GetMapping("/getTmsStudentInfoById")
+    @ApiOperation("根据ID获取学员员详细信息")
+    public Response<TmsStudentInfoIdVo> getTmsStudentInfoById(TmsStudentInfoIdDTO studentInfoIdDTO) {
+        return Response.success(studentInfoService.getTmsStudentInfoById(studentInfoIdDTO));
+    }
+
+
+}
+

+ 49 - 0
jsjp-admin/src/test/java/com/miaxis/test/Test6.java

@@ -0,0 +1,49 @@
+package com.miaxis.test;
+
+import com.miaxis.JsjpApplication;
+import com.miaxis.newgzpt.domain.GzptSchActivation;
+import com.miaxis.newgzpt.dto.GzptSchActivationListDTO;
+import com.miaxis.newgzpt.service.IGzptSchActivationService;
+import com.miaxis.newgzpt.vo.GzptSchActivationListVO;
+import com.miaxis.tms.dto.TmsStudentInfoDTO;
+import com.miaxis.tms.service.ITmsStudentInfoService;
+import com.miaxis.tms.vo.TmsStudentInfoVo;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+@SpringBootTest(classes = JsjpApplication.class)
+@RunWith(SpringRunner.class)
+public class Test6 {
+
+
+
+    @Autowired
+    private ITmsStudentInfoService studentInfoService;
+
+    @Autowired
+    private IGzptSchActivationService schActivationService;
+
+    @Test
+    public void test() {
+        TmsStudentInfoDTO tmsStudentInfoDTO  = new TmsStudentInfoDTO();
+        tmsStudentInfoDTO.setCity("3501");
+       // tmsStudentInfoDTO.setCoachId("");
+        tmsStudentInfoDTO.setField("35018220040617151X");
+        tmsStudentInfoDTO.setState("1");
+        List<TmsStudentInfoVo> list = studentInfoService.getTmsStudentInfoList(tmsStudentInfoDTO);
+        System.out.println(list);
+
+//        GzptSchActivationListDTO schActivationListDTO = new GzptSchActivationListDTO();
+//        schActivationListDTO.setUserId(1372586l);
+//        List<GzptSchActivationListVO> schActivationList = schActivationService.selectSchActivationList(schActivationListDTO);
+//        System.out.println(schActivationList);
+    }
+
+
+
+}

+ 29 - 0
jsjp-service/src/main/java/com/miaxis/tms/dto/TmsStudentInfoDTO.java

@@ -0,0 +1,29 @@
+package com.miaxis.tms.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+@Data
+public class TmsStudentInfoDTO implements Serializable {
+
+
+    @ApiModelProperty(value = "身份证号或姓名或手机")
+    private String field;
+
+    @ApiModelProperty(value = "驾校ID")
+    private Integer schoolId;
+
+    @ApiModelProperty(value = "教练员ID")
+    private String coachId;
+
+    @ApiModelProperty(value = "地区编号",required = true)
+    private String city;
+
+    @ApiModelProperty(value = "学驾状态 1 第一阶段 2 第二阶段 3 第三阶段 4 第四阶段 5已结业")
+    private String state;
+
+
+}

+ 21 - 0
jsjp-service/src/main/java/com/miaxis/tms/dto/TmsStudentInfoIdDTO.java

@@ -0,0 +1,21 @@
+package com.miaxis.tms.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+@Data
+public class TmsStudentInfoIdDTO implements Serializable {
+
+
+    @ApiModelProperty(value = "id",required = true)
+    private Long id;
+
+    @ApiModelProperty(value = "地区编号",required = true)
+    private String city;
+
+
+
+}

+ 25 - 0
jsjp-service/src/main/java/com/miaxis/tms/mapper/TmsStudentInfoMapper.java

@@ -0,0 +1,25 @@
+package com.miaxis.tms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.miaxis.tms.dto.TmsStudentInfoDTO;
+import com.miaxis.tms.dto.TmsStudentInfoIdDTO;
+import com.miaxis.tms.vo.TmsStudentInfoIdVo;
+import com.miaxis.tms.vo.TmsStudentInfoVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 学员基本信息表 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2021-03-09
+ */
+public interface TmsStudentInfoMapper extends BaseMapper<TmsStudentInfoVo> {
+
+
+    List<TmsStudentInfoVo> getTmsStudentInfoList(TmsStudentInfoDTO studentDTO);
+
+    TmsStudentInfoIdVo getTmsStudentInfoById(TmsStudentInfoIdDTO stuIdDTO);
+}

+ 0 - 4
jsjp-service/src/main/java/com/miaxis/tms/service/ICoachInfoService.java

@@ -1,14 +1,10 @@
 package com.miaxis.tms.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.miaxis.newgzpt.domain.GzptUserInfo;
-import com.miaxis.newgzpt.dto.GzptUserInfoDTO;
 import com.miaxis.tms.domain.CoachInfo;
 import com.miaxis.tms.dto.CoachInfoDTO;
 import com.miaxis.tms.dto.CoachInfoIdDTO;
 
-import java.util.List;
-
 /**
  * <p>
  * 学员基本信息表 服务类

+ 30 - 0
jsjp-service/src/main/java/com/miaxis/tms/service/ITmsStudentInfoService.java

@@ -0,0 +1,30 @@
+package com.miaxis.tms.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.miaxis.tms.domain.CoachInfo;
+import com.miaxis.tms.dto.CoachInfoIdDTO;
+import com.miaxis.tms.dto.TmsStudentInfoDTO;
+import com.miaxis.tms.dto.TmsStudentInfoIdDTO;
+import com.miaxis.tms.vo.TmsStudentInfoIdVo;
+import com.miaxis.tms.vo.TmsStudentInfoVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 学员基本信息表 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2021-03-09
+ */
+public interface ITmsStudentInfoService extends IService<TmsStudentInfoVo> {
+
+
+
+    List<TmsStudentInfoVo> getTmsStudentInfoList(TmsStudentInfoDTO studentInfoDTO);
+
+    TmsStudentInfoIdVo getTmsStudentInfoById(TmsStudentInfoIdDTO stuIdDTO);
+
+
+}

+ 45 - 0
jsjp-service/src/main/java/com/miaxis/tms/service/impl/TmsStudentInfoServiceImpl.java

@@ -0,0 +1,45 @@
+package com.miaxis.tms.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.miaxis.common.annotation.DataSource;
+import com.miaxis.common.enums.DataSourceTypeEnum;
+import com.miaxis.tms.dto.TmsStudentInfoDTO;
+import com.miaxis.tms.dto.TmsStudentInfoIdDTO;
+import com.miaxis.tms.mapper.TmsStudentInfoMapper;
+import com.miaxis.tms.service.ITmsStudentInfoService;
+import com.miaxis.tms.vo.TmsStudentInfoIdVo;
+import com.miaxis.tms.vo.TmsStudentInfoVo;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 学员基本信息表 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2021-03-09
+ */
+@Service
+@DataSource(value = DataSourceTypeEnum.NEWGZPT)
+public class TmsStudentInfoServiceImpl extends ServiceImpl<TmsStudentInfoMapper, TmsStudentInfoVo> implements ITmsStudentInfoService {
+
+
+    @Resource
+    TmsStudentInfoMapper mapper;
+
+
+    @Override
+    public List<TmsStudentInfoVo> getTmsStudentInfoList(TmsStudentInfoDTO studentInfoDto) {
+       List<TmsStudentInfoVo> list =  mapper.getTmsStudentInfoList(studentInfoDto);
+        return list;
+    }
+
+    @Override
+    public TmsStudentInfoIdVo getTmsStudentInfoById(TmsStudentInfoIdDTO stuIdDTO) {
+        return mapper.getTmsStudentInfoById(stuIdDTO);
+    }
+
+}

+ 132 - 0
jsjp-service/src/main/java/com/miaxis/tms/vo/TmsStudentInfoIdVo.java

@@ -0,0 +1,132 @@
+package com.miaxis.tms.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TmsStudentInfoIdVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableField("TSO_ID")
+    private Long id;
+
+    @TableField("TSO_CARDTYPE")
+    private String cardType;
+
+    @TableField("TSO_IDCARD")
+    private String idcard;
+
+    @TableField("TSO_NAME")
+    private String name;
+
+    @TableField("TSO_SEX")
+    private String sex;
+
+    @TableField("TSO_PHONE")
+    private String phone;
+
+    @TableField("TSO_SOURCE")
+    private String source;
+
+    @TableField("TSO_NATIONALITY")
+    private String nationality;
+
+    @TableField("TSO_TRAINTYPE")
+    private String trainType;
+
+    @TableField("TSO_ACTIVE")
+    private String active;
+
+    @TableField("TSO_RECORD_DATE")
+    private Date recordDate;
+
+    @TableField("TSO_ADDRESS")
+    private String address;
+
+    @TableField("TSO_PHOTO_PATH")
+    private String photoPath;
+
+    @TableField("FACE")
+    private String face;
+
+    @TableField("TSI_ID")
+    private Long schoolId;
+
+    @TableField("TSI_NAME")
+    private String schoolName;
+
+    @TableField("TSI_SHORTNAME")
+    private String schoolShortName;
+
+    @TableField("TSI_ADDRESS")
+    private String schoolAddress;
+
+    @TableField("TSI_INSCODE")
+    private String schollInscode;
+
+    @TableField("TSI_QXBH")
+    private String qxbh;
+
+    @TableField("TSI_QXMC")
+    private String qxmc;
+
+    @TableField("TSI_DQBH")
+    private String dqbh;
+
+    @TableField("TSI_DQMC")
+    private String dqmc;
+
+    @TableField("SRI_TRAIN_ONE_EXAM_STATUS")
+    private String trainOneExamStatus;
+
+    @TableField("SRI_TRAIN_ONE_EXAM_TIME")
+    private Date trainOneExamTime;
+
+    @TableField("SRI_TRAIN_TWO_EXAM_STATUS")
+    private String trainTwoExamStatus;
+
+    @TableField("SRI_TRAIN_TWO_EXAM_TIME")
+    private Date trainTwoExamTime;
+
+    @TableField("K1")
+    private String k1;
+
+    @TableField("K2")
+    private String k2;
+
+    @TableField("K3")
+    private String k3;
+
+    @TableField("K4")
+    private String k4;
+
+    @TableField("TOTAL_KM1")
+    private String totalKm1;
+
+    @TableField("TOTAL_KM2")
+    private String totalKm2;
+
+    @TableField("TOTAL_KM3")
+    private String totalKm3;
+
+    @TableField("TOTAL_KM4")
+    private String totalKm4;
+
+    @TableField("K2MILEAGE")
+    private String k2Mileage;
+
+    @TableField("MILEAGE")
+    private String mileage;
+
+    @TableField("K3MILEAGE")
+    private String k3Mileage;
+
+}

+ 77 - 0
jsjp-service/src/main/java/com/miaxis/tms/vo/TmsStudentInfoVo.java

@@ -0,0 +1,77 @@
+package com.miaxis.tms.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TmsStudentInfoVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("TSO_ID")
+    private Long id;
+
+    @TableField("TSO_IDCARD")
+    private String idcard;
+
+    @TableField("TSO_NAME")
+    private String name;
+
+    @TableField("TSO_PHONE")
+    private String phone;
+
+    @TableField("TSO_APPLYDATE")
+    private Date applydate;
+
+    @TableField("TSO_STATE")
+    private String state;
+
+    @TableField("TSO_TRAINTYPE")
+    private String trainType;
+
+    @TableField("TSO_PHOTO_PATH")
+    private String photoPath;
+
+    @TableField("TSO_REMARK")
+    private String remark;
+
+    @TableField("SRI_TRAIN_ONE_EXAM_STATUS")
+    private String trainOneExamStatus;
+
+    @TableField("SRI_TRAIN_ONE_EXAM_TIME")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date trainOneExamTime;
+
+    @TableField("SRI_TRAIN_TWO_EXAM_STATUS")
+    private String trainTwoExamStatus;
+
+    @TableField("SRI_TRAIN_TWO_EXAM_TIME")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date trainTwoExamTime;
+
+    @TableField("SRI_TRAIN_THREE_EXAM_STATUS")
+    private String trainThreeExamStatus;
+
+    @TableField("SRI_TRAIN_THREE_EXAM_TIME")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date trainThreeExamTime;
+
+    @TableField("SRI_TRAIN_FOUR_EXAM_STATUS")
+    private String trainFourExamStatus;
+
+    @TableField("SRI_TRAIN_FOUR_EXAM_TIME")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date trainFourExamTime;
+
+
+
+}

+ 137 - 0
jsjp-service/src/main/resources/mapper/tms/TmsStudentInfoMapper.xml

@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.miaxis.tms.mapper.TmsStudentInfoMapper">
+
+    <resultMap id="TmsStudentInfoResultMap" type="com.miaxis.tms.vo.TmsStudentInfoVo">
+        <id property="id" column="TSO_ID" />
+        <result property="idcard" column="TSO_IDCARD" />
+        <result property="name" column="TSO_NAME" />
+        <result property="phone" column="TSO_PHONE" />
+        <result property="applydate" column="TSO_APPLYDATE" />
+        <result property="state" column="TSO_STATE" />
+        <result property="trainType" column="TSO_TRAINTYPE" />
+        <result property="photoPath" column="TSO_PHOTO_PATH" />
+        <result property="remark" column="TSO_REMARK" />
+        <result property="trainOneExamStatus" column="SRI_TRAIN_ONE_EXAM_STATUS" />
+        <result property="trainOneExamTime" column="SRI_TRAIN_ONE_EXAM_TIME" />
+        <result property="trainTwoExamStatus" column="SRI_TRAIN_TWO_EXAM_STATUS" />
+        <result property="trainTwoExamTime" column="SRI_TRAIN_TWO_EXAM_TIME" />
+        <result property="trainThreeExamStatus" column="SRI_TRAIN_THREE_EXAM_STATUS" />
+        <result property="trainThreeExamTime" column="SRI_TRAIN_THREE_EXAM_TIME" />
+        <result property="trainFourExamStatus" column="SRI_TRAIN_FOUR_EXAM_STATUS" />
+        <result property="trainFourExamTime" column="SRI_TRAIN_FOUR_EXAM_TIME" />
+    </resultMap>
+
+
+    <resultMap id="TmsStudentInfoIdResultMap" type="com.miaxis.tms.vo.TmsStudentInfoIdVo">
+        <id property="id" column="TSO_ID" />
+        <result property="cardType" column="TSO_CARDTYPE" />
+        <result property="idcard" column="TSO_IDCARD" />
+        <result property="name" column="TSO_NAME" />
+        <result property="sex" column="TSO_SEX" />
+        <result property="phone" column="TSO_PHONE" />
+        <result property="source" column="TSO_SOURCE" />
+        <result property="nationality" column="TSO_NATIONALITY" />
+        <result property="trainType" column="TSO_TRAINTYPE" />
+        <result property="active" column="TSO_ACTIVE" />
+        <result property="recordDate" column="TSO_RECORD_DATE" />
+        <result property="address" column="TSO_ADDRESS" />
+        <result property="photoPath" column="TSO_PHOTO_PATH" />
+        <result property="face" column="FACE" />
+        <result property="schoolId" column="TSI_ID" />
+        <result property="schoolName" column="TSI_NAME" />
+        <result property="schoolShortName" column="TSI_SHORTNAME" />
+        <result property="schoolAddress" column="TSI_ADDRESS" />
+        <result property="schollInscode" column="TSI_INSCODE" />
+        <result property="qxbh" column="TSI_QXBH" />
+        <result property="qxmc" column="TSI_QXMC" />
+        <result property="dqbh" column="TSI_DQBH" />
+        <result property="dqmc" column="TSI_DQMC" />
+        <result property="trainOneExamStatus" column="SRI_TRAIN_ONE_EXAM_STATUS" />
+        <result property="trainOneExamTime" column="SRI_TRAIN_ONE_EXAM_TIME" />
+        <result property="trainTwoExamStatus" column="SRI_TRAIN_TWO_EXAM_STATUS" />
+        <result property="trainTwoExamTime" column="SRI_TRAIN_TWO_EXAM_TIME" />
+        <result property="k1" column="K1" />
+        <result property="k2" column="K2" />
+        <result property="k3" column="K3" />
+        <result property="k4" column="K4" />
+        <result property="totalKm1" column="TOTAL_KM1" />
+        <result property="totalKm2" column="TOTAL_KM2" />
+        <result property="totalKm3" column="TOTAL_KM3" />
+        <result property="totalKm4" column="TOTAL_KM4" />
+        <result property="k2Mileage" column="K2MILEAGE" />
+        <result property="mileage" column="MILEAGE" />
+        <result property="k3Mileage" column="K3MILEAGE" />
+    </resultMap>
+
+
+
+    <select id="getTmsStudentInfoList"  parameterType="com.miaxis.tms.dto.TmsStudentInfoDTO" resultMap="TmsStudentInfoResultMap">
+        select t1.TSO_ID, t1.TSO_IDCARD, t1.TSO_NAME,t1.Tso_Phone,t1.TSO_APPLYDATE, t1.TSO_STATE , t1.TSO_TRAINTYPE, t1.tso_photo_path, t1.TSO_REMARK,
+               t2.Sri_Train_One_Exam_Status,t2.Sri_Train_One_Exam_Time,t2.Sri_Train_TWO_Exam_Status,t2.Sri_Train_Two_Exam_Time,
+               t2.Sri_Train_Three_Exam_Status,t2.Sri_Train_Three_Exam_Time,t2.Sri_Train_Four_Exam_Status,t2.Sri_Train_Four_Exam_Time
+        from tms_student_info@tms${city} t1
+                 left join tms_student_train_info@tms${city} t2
+                           on t1.tso_id = t2.sri_student_id
+        <where>
+            AND t1.TSO_HISTORY = '0'
+            AND t1.TSO_BUSITYPE in ('0', '1')
+            AND t1.TSO_LOGOUT = 0
+            <if test="coachId!=null" > AND t1.TSO_COACHID = #{coachId } </if>
+            <if test="field != null  and field != ''"> AND (t1.Tso_Name like '%' || #{field,jdbcType=VARCHAR} || '%' or t1.TSO_IDCARD like '%' || #{field,jdbcType=VARCHAR} || '%' or t1.Tso_Phone like '%' || #{field,jdbcType=VARCHAR} || '%') </if>
+            <if test="schoolId != null "> and t1.TSO_SCHOOL_ID = #{schoolId} </if>
+            <if test="state != null  and state != ''"> AND t1.TSO_STATE = #{state}</if>
+        </where>
+        ORDER BY t1.TSO_ID desc, NLSSORT(t1.TSO_NAME, 'NLS_SORT=SCHINESE_PINYIN_M')
+    </select>
+
+
+    <select id="getTmsStudentInfoById"  parameterType="com.miaxis.tms.dto.TmsStudentInfoIdDTO" resultMap="TmsStudentInfoIdResultMap">
+        SELECT t.tso_cardtype,
+               t.tso_Idcard,
+               t.tso_name,
+               t.tso_sex,
+               t.tso_phone,
+               t.tso_source,
+               t.TSO_NATIONALITY,
+               t.tso_traintype,
+               t.tso_active,
+               t.tso_record_date,
+               t.tso_address,
+               t.tso_photo_path,
+               fi.face,
+               S.TSI_ID,
+               S.TSI_NAME,
+               S.TSI_SHORTNAME,
+               S.TSI_ADDRESS,
+               S.TSI_INSCODE,
+               S.TSI_QXBH,
+               S.TSI_QXMC,
+               S.TSI_DQBH,
+               S.TSI_DQMC,
+               t2.Sri_Train_One_Exam_Status,t2.Sri_Train_One_Exam_Time,t2.Sri_Train_TWO_Exam_Status,t2.Sri_Train_Two_Exam_Time,
+               nvl(trunc(t2.sri_train_one / 45), 0) || '学时' ||nvl((mod(t2.sri_train_one, 45)), 0) || '分钟' as K1,
+               nvl(trunc(t2.sri_train_two / 45), 0) || '学时' ||nvl((mod(t2.sri_train_two, 45)), 0) || '分钟' as K2,
+               nvl(trunc(t2.sri_train_three / 45), 0) || '学时' ||nvl((mod(t2.sri_train_three, 45)), 0) || '分钟' as K3,
+               nvl(trunc(t2.sri_train_four / 45), 0) || '学时' ||nvl((mod(t2.sri_train_four, 45)), 0) || '分钟' as K4,
+               (select nvl(trunc(sum(tsc_credit_ration) / 45), 0) || '学时' ||nvl((mod(sum(tsc_credit_ration), 45)), 0) || '分钟' from tms_train_subject_credit@tms${city} c where c.tsc_permit_drive_car_type = t.tso_traintype and tsc_apply_exam_subject = 1) as total_km1,
+               (select nvl(trunc(sum(tsc_credit_ration) / 45), 0) || '学时' ||nvl((mod(sum(tsc_credit_ration), 45)), 0) || '分钟' from tms_train_subject_credit@tms${city} c where c.tsc_permit_drive_car_type = t.tso_traintype and tsc_apply_exam_subject = 2) as total_km2,
+               (select nvl(trunc(sum(tsc_credit_ration) / 45), 0) || '学时' ||nvl((mod(sum(tsc_credit_ration), 45)), 0) || '分钟' from tms_train_subject_credit@tms${city} c where c.tsc_permit_drive_car_type = t.tso_traintype and tsc_apply_exam_subject = 3) as total_km3,
+               (select nvl(trunc(sum(tsc_credit_ration) / 45), 0) || '学时' ||nvl((mod(sum(tsc_credit_ration), 45)), 0) || '分钟' from tms_train_subject_credit@tms${city} c where c.tsc_permit_drive_car_type = t.tso_traintype and tsc_apply_exam_subject = 4) as total_km4,
+       nvl(ttv.SCTWOTOTALMILE, 0) K2MILEAGE,
+       nvl(ttv.SCTOTALMILE, 0) MILEAGE,
+       nvl(ttv.SCTHREETOTALMILE, 0) K3MILEAGE
+      FROM TMS_STUDENT_INFO@tms${city} T
+      LEFT JOIN TMS_SCHOOL_INFO@tms${city} S
+        ON T.TSO_SCHOOL_ID = S.TSI_ID
+      left join tms_student_train_info@tms${city} t2
+        on t.tso_id = t2.sri_student_id
+      left join TMS_TRAIN_TIME_VIEW@tms${city} ttv
+        on ttv.studentId = tso_id
+      left join tms_student_face_info@tms${city} fi
+        on t.tso_id = fi.student_id
+     WHERE T.TSO_ID = #{id}
+    </select>
+
+
+</mapper>