liyg 2 лет назад
Родитель
Сommit
f0d2f5904c

+ 2 - 1
src/main/java/com/steerinfo/dil/controller/TmstruckTimeTaskResultController.java

@@ -68,7 +68,8 @@ public class TmstruckTimeTaskResultController extends BaseRESTfulController {
         try {
             i=tmstruckTimeTaskResultService.addTimeTaskResult(mapValue);
         } catch (Exception e) {
-            return failed(e.getMessage());
+            e.printStackTrace();
+            return failed("计时失败");
         }
         return success(i);
     }

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.java

@@ -48,4 +48,6 @@ public interface TmstruckTimeTaskResultMapper extends IBaseMapper<TmstruckTimeTa
     //查找总时长
     Map<String,Object> getResultValue(String orderNumber);
 
+    //根据运输订单号查询用车单位
+    String getShipperName(Map<String,Object> map);
 }

+ 15 - 0
src/main/java/com/steerinfo/dil/model/TmstruckTimeTaskResult.java

@@ -135,6 +135,12 @@ public class TmstruckTimeTaskResult implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="依照合同预估时间",required=false)
     private String resultAboutTime;
 
+    /**
+     * 结算时长(RESULT_BALANCE_TIME,DECIMAL,0)
+     */
+    @ApiModelProperty(value="结算时长",required=false)
+    private BigDecimal resultBalanceTime;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -315,6 +321,14 @@ public class TmstruckTimeTaskResult implements IBasePO<BigDecimal> {
         this.resultAboutTime = resultAboutTime == null ? null : resultAboutTime.trim();
     }
 
+    public BigDecimal getResultBalanceTime() {
+        return resultBalanceTime;
+    }
+
+    public void setResultBalanceTime(BigDecimal resultBalanceTime) {
+        this.resultBalanceTime = resultBalanceTime;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -342,6 +356,7 @@ public class TmstruckTimeTaskResult implements IBasePO<BigDecimal> {
         sb.append(", deleteName=").append(deleteName);
         sb.append(", deleteTime=").append(deleteTime);
         sb.append(", resultAboutTime=").append(resultAboutTime);
+        sb.append(", resultBalanceTime=").append(resultBalanceTime);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 66 - 95
src/main/java/com/steerinfo/dil/service/impl/TmstruckTimeTaskResultServiceImpl.java

@@ -61,6 +61,7 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
 
     private static final String FourHour="220吨吊车,130吨吊车,120吨吊车,150吨吊车,100吨吊车";
 
+    private static final String DxTemp="达兴能源二厂,化工厂";
 
 
     /**
@@ -314,109 +315,79 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
             map2.put("type", 7);
             map2.put("orderId", orderId);
             BigDecimal resultPauseTime = utilsMapper.TimeTaskPause(map2);
+            //通用处理
+            Map<String, Object> timeMaps = utilsMapper.FristTimeTask(map);
+            Date resultTime2 = (Date) timeMaps.get("resultTime");
+            Map<String, Object> timeStatus = utilsMapper.getTimeStatus(map);
+            Date resultTime1 = (Date) timeStatus.get("resultTime");
+            long dateTime1 = resultTime2.getTime() - resultTime1.getTime();
+            BigDecimal dateTime3 = new BigDecimal(dateTime1 / (1000 * 60));
+            int Time1 = 0;//实际时长
+            Map<String, Object> requirementInfo = tmstruckTimeTaskResultMapper.getRequirementInfo(orderId);
+            String capacityTypeName =(String) requirementInfo.get("capacityTypeName");
             if(resultPauseTime != null) {
-                Map<String, Object> timeMaps = utilsMapper.FristTimeTask(map);
-                Date resultTime2 = (Date) timeMaps.get("resultTime");
-                Map<String, Object> timeStatus = utilsMapper.getTimeStatus(map);
-                Date resultTime1 = (Date) timeStatus.get("resultTime");
-                long dateTime1 = resultTime2.getTime() - resultTime1.getTime();
-                BigDecimal dateTime3 = new BigDecimal(dateTime1 / (1000 * 60));
-                int Time1 = dateTime3.intValue() - resultPauseTime.intValue();
-                Map<String, Object> requirementInfo = tmstruckTimeTaskResultMapper.getRequirementInfo(orderId);
-                String capacityTypeName =(String) requirementInfo.get("capacityTypeName");
-                if (capacityTypeName != null && capacityTypeName.contains("吊车")) {
-                    //100吨以下
-                    int hours=Time1/60;
-                    BigDecimal minutes=new BigDecimal(Time1%60);
-                    int hour = Integer.parseInt(String.valueOf(hours));
-                    if (TwoHour.contains(capacityTypeName)) {
-                        //判断是否小于2个小时
-                        if (hour<2&&hour>=0){
-                            //设置为两个小时
-                            tmstruckTimeTaskResult.setResultAboutTime(2+"小时");
-                        }else {
-                            //设置实际作业时长-dateTime3
-                            tmstruckTimeTaskResult.setResultAboutTime(hour+"小时"+minutes+"分钟");
-                        }
-                        //如果为100吨以上吊车
-                    }else if (FourHour.contains(capacityTypeName)){
+                //存在暂停时间
+                Time1 = dateTime3.intValue() - resultPauseTime.intValue();
+            } else {
+                //不存在暂停时间
+                Time1 = dateTime3.intValue();
+            }
+            //只要车辆类型不为空,就计算结算时长
+            if (capacityTypeName != null) {
+                //一般情况直接计算2小时规则
+                int hour=Time1/60;
+                int minutes=Time1%60;
+                //判断是否小于2个小时
+                if (hour<2){
+                    //设置为两个小时
+                    tmstruckTimeTaskResult.setResultAboutTime("2小时");
+                    tmstruckTimeTaskResult.setResultBalanceTime(new BigDecimal(120));
+                }else {
+                    //设置实际作业时长
+                    tmstruckTimeTaskResult.setResultAboutTime(hour+"小时"+minutes+"分钟");
+                    tmstruckTimeTaskResult.setResultBalanceTime(new BigDecimal(Time1));
+                }
+                //特殊情况,根据不同计时规则重新计算
+                //4小时规则:100吨以上吊车
+                if (FourHour.contains(capacityTypeName)){
+                    if (hour<4&&hour>=0){
                         //1、如实际使用时间不足4小时按照(使用时间+4小时)进行最终结算
-                        if (hour<0) {
-                            tmstruckTimeTaskResult.setResultAboutTime("4小时");
-                        }
-                        else if (hour<4&&hour>=0){
-                             //计算小时和分钟
-                            tmstruckTimeTaskResult.setResultAboutTime(4+hours+"小时"+minutes+"分钟");
-                        }else if (hour>=4&&hour<8){
-                               //2、如实际使用时间超出4小时加上车辆往返时间4小时超过8小时的按8小时计算
-                                tmstruckTimeTaskResult.setResultAboutTime(8+"小时");
-                        }else if (hour>=8){
-                            tmstruckTimeTaskResult.setResultAboutTime(hour+"小时"+minutes+"分钟");
-                        }
+                        tmstruckTimeTaskResult.setResultAboutTime(4+hour+"小时"+minutes+"分钟");
+                        tmstruckTimeTaskResult.setResultBalanceTime(new BigDecimal(240+Time1));
+                    }else if (hour>=4&&hour<8){
+                        //2、如实际使用时间超出4小时加上车辆往返时间4小时超过8小时的按8小时计算
+                        tmstruckTimeTaskResult.setResultAboutTime("8小时");
+                        tmstruckTimeTaskResult.setResultBalanceTime(new BigDecimal(480));
+                    }else if (hour>=8){
+                        tmstruckTimeTaskResult.setResultAboutTime(hour+"小时"+minutes+"分钟");
+                        tmstruckTimeTaskResult.setResultBalanceTime(new BigDecimal(Time1));
                     }
                 }
-                tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResult.getTimeTaskResultId());
-                tmstruckTimeTaskResult.setResultValue(new BigDecimal((Time1)));
-                tmstruckTimeTaskResult.setResultUomId(new BigDecimal(900));
-                if (personnelSsoId != null) {
-                    tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
-                }
-                i += tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
-                map.put("Time1",Time1);
-               genernateInwardTime(map);
-            } else {
-                //用于计时结束判断
-                Map<String, Object> timeMaps = utilsMapper.FristTimeTask(map);
-                Date resultTime2 = (Date) timeMaps.get("resultTime");
-                Map<String, Object> timeStatus = utilsMapper.getTimeStatus(map);
-                Date resultTime1 = (Date) timeStatus.get("resultTime");
-                long dateTime1 = resultTime2.getTime() - resultTime1.getTime();
-                BigDecimal dateTime3 = new BigDecimal(dateTime1 / (1000 * 60));
-                //如果车辆类型为吊车,则进行以下判断
-                //如果车辆类型为100 吨以下吨位吊车作业时间以2小时为起点计算,超过2小时以实际作业时间计算
-                Map<String, Object> requirementInfo = tmstruckTimeTaskResultMapper.getRequirementInfo(orderId);
-                String capacityTypeName =(String) requirementInfo.get("capacityTypeName");
-                if (capacityTypeName != null && capacityTypeName.contains("吊车")) {
-                    //100吨以下
-                    BigDecimal hours =new BigDecimal(dateTime1 / (1000*60*60));
-                    BigDecimal minutes =new BigDecimal(dateTime3.intValue()%60);
-                    int hour = Integer.parseInt(String.valueOf(hours));
-                    if (TwoHour.contains(capacityTypeName)) {
-                        //判断是否小于2个小时
-                        if (hour<2&&hour>0){
-                            //设置为两个小时
-                            tmstruckTimeTaskResult.setResultAboutTime(2+"小时");
-                        }else {
-                            //设置实际作业时长-dateTime3
-                            tmstruckTimeTaskResult.setResultAboutTime(hour+"小时"+minutes+"分钟");
-                        }
-                        //如果为100吨以上吊车
-                    }else if (FourHour.contains(capacityTypeName)){
-                        //1、如实际使用时间不足4小时按照(使用时间+4小时)进行最终结算
-                        if (hour<0) {
-                            tmstruckTimeTaskResult.setResultAboutTime("4小时");
-                        }
-                        else if (hour<4&&hour>0){
-                            //计算小时和分钟
-                            tmstruckTimeTaskResult.setResultAboutTime(4+hours.intValue()+"小时"+minutes+"分钟");
-                        }else if (hour>=4&&hour<8){
-                            //2、如实际使用时间超出4小时加上车辆往返时间4小时超过8小时的按8小时计算
-                            tmstruckTimeTaskResult.setResultAboutTime(8+"小时");
-                        }else if (hour>=8){
-                            tmstruckTimeTaskResult.setResultAboutTime(hours+"小时"+minutes+"分钟");
+                //查询用车单位,使用特殊规则
+                String shipperName=tmstruckTimeTaskResultMapper.getShipperName(map);
+                if(shipperName!=null){
+                    //达兴能源二厂及化工厂临时规则
+                    if(shipperName.contains("达兴能源") || shipperName.contains("化工厂")){
+                        if(capacityTypeName.contains("汽车")){
+                            tmstruckTimeTaskResult.setResultAboutTime(1+hour+"小时"+minutes+"分钟");
+                            tmstruckTimeTaskResult.setResultBalanceTime(new BigDecimal(Time1+60));
+                        }else if(capacityTypeName.contains("装载机")){
+                            tmstruckTimeTaskResult.setResultAboutTime(4+hour+"小时"+minutes+"分钟");
+                            tmstruckTimeTaskResult.setResultBalanceTime(new BigDecimal(Time1+240));
                         }
                     }
                 }
-                tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResult.getTimeTaskResultId());
-                tmstruckTimeTaskResult.setResultValue(dateTime3);
-                tmstruckTimeTaskResult.setResultUomId(new BigDecimal(900));
-                if (personnelSsoId != null) {
-                    tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
-                }
-                i += tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
-              map.put("Time1",dateTime3);
-               genernateInwardTime(map);
             }
+            tmstruckTimeTaskResult.setTimeTaskResultId(tmstruckTimeTaskResult.getTimeTaskResultId());
+            tmstruckTimeTaskResult.setResultValue(new BigDecimal((Time1)));//实际时长
+            tmstruckTimeTaskResult.setResultUomId(new BigDecimal(900));
+            if (personnelSsoId != null) {
+                tmstruckTimeTaskResult.setUpdateUsername(personnelSsoId);
+            }
+            i += tmstruckTimeTaskResultMapper.updateByPrimaryKeySelective(tmstruckTimeTaskResult);
+            map.put("Time1",Time1);
+            genernateInwardTime(map);
+            //计算完成
             Map<String, Object> orderMes = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
             BigDecimal orderType =DataChange.dataToBigDecimal(orderMes.get("orderType"));
             if (orderType.intValue()==21) {

+ 53 - 13
src/main/resources/com/steerinfo/dil/mapper/TmstruckTimeTaskResultMapper.xml

@@ -23,20 +23,21 @@
     <result column="DELETE_NAME" jdbcType="VARCHAR" property="deleteName" />
     <result column="DELETE_TIME" jdbcType="TIMESTAMP" property="deleteTime" />
     <result column="RESULT_ABOUT_TIME" jdbcType="VARCHAR" property="resultAboutTime" />
+    <result column="RESULT_BALANCE_TIME" jdbcType="DECIMAL" property="resultBalanceTime" />
   </resultMap>
   <sql id="columns">
     TIME_TASK_RESULT_ID, RESULT_TOTAL_ID, RESULT_VALUE, RESULT_UOM_ID, RESULT_TIME_TYPE,
     RESULT_TIME, RESULT_START_NODE_ID, RESULT_START_LONGITUDE_VAL, RESULT_START_LATITUDE_VAL,
     RESULT_END_NODE_ID, RESULT_END_LONGITUDE_VAL, RESULT_END_LATITUDE_VAL, RESULT_MEMO,
     INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
-    DELETE_NAME, DELETE_TIME, RESULT_ABOUT_TIME
+    DELETE_NAME, DELETE_TIME, RESULT_ABOUT_TIME, RESULT_BALANCE_TIME
   </sql>
   <sql id="columns_alias">
     t.TIME_TASK_RESULT_ID, t.RESULT_TOTAL_ID, t.RESULT_VALUE, t.RESULT_UOM_ID, t.RESULT_TIME_TYPE,
     t.RESULT_TIME, t.RESULT_START_NODE_ID, t.RESULT_START_LONGITUDE_VAL, t.RESULT_START_LATITUDE_VAL,
     t.RESULT_END_NODE_ID, t.RESULT_END_LONGITUDE_VAL, t.RESULT_END_LATITUDE_VAL, t.RESULT_MEMO,
     t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK,
-    t.DELETE_NAME, t.DELETE_TIME, t.RESULT_ABOUT_TIME
+    t.DELETE_NAME, t.DELETE_TIME, t.RESULT_ABOUT_TIME, t.RESULT_BALANCE_TIME
   </sql>
   <sql id="select">
     SELECT <include refid="columns" /> FROM TMSTRUCK_TIME_TASK_RESULT
@@ -109,6 +110,9 @@
       <if test="resultAboutTime != null and resultAboutTime != ''">
         and RESULT_ABOUT_TIME = #{resultAboutTime}
       </if>
+      <if test="resultBalanceTime != null">
+        and RESULT_BALANCE_TIME = #{resultBalanceTime}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -176,6 +180,9 @@
       <if test="resultAboutTime != null and resultAboutTime != ''">
         and RESULT_ABOUT_TIME LIKE '%${resultAboutTime}%'
       </if>
+      <if test="resultBalanceTime != null">
+        and RESULT_BALANCE_TIME = #{resultBalanceTime}
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Short">
@@ -245,6 +252,9 @@
     <if test="resultAboutTime != null and resultAboutTime != ''">
       or RESULT_ABOUT_TIME = #{resultAboutTime}
     </if>
+    <if test="resultBalanceTime != null">
+      or RESULT_BALANCE_TIME = #{resultBalanceTime}
+    </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.dil.model.TmstruckTimeTaskResult">
     insert into TMSTRUCK_TIME_TASK_RESULT (TIME_TASK_RESULT_ID, RESULT_TOTAL_ID,
@@ -254,8 +264,8 @@
                                            RESULT_END_LONGITUDE_VAL, RESULT_END_LATITUDE_VAL,
                                            RESULT_MEMO, INSERT_USERNAME, INSERT_TIME,
                                            UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
-                                           DELETE_NAME, DELETE_TIME, RESULT_ABOUT_TIME
-    )
+                                           DELETE_NAME, DELETE_TIME, RESULT_ABOUT_TIME,
+                                           RESULT_BALANCE_TIME)
     values (#{timeTaskResultId,jdbcType=DECIMAL}, #{resultTotalId,jdbcType=DECIMAL},
             #{resultValue,jdbcType=DECIMAL}, #{resultUomId,jdbcType=DECIMAL}, #{resultTimeType,jdbcType=DECIMAL},
             #{resultTime,jdbcType=TIMESTAMP}, #{resultStartNodeId,jdbcType=DECIMAL}, #{resultStartLongitudeVal,jdbcType=VARCHAR},
@@ -263,8 +273,8 @@
             #{resultEndLongitudeVal,jdbcType=VARCHAR}, #{resultEndLatitudeVal,jdbcType=VARCHAR},
             #{resultMemo,jdbcType=VARCHAR}, #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP},
             #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR},
-            #{deleteName,jdbcType=VARCHAR}, #{deleteTime,jdbcType=TIMESTAMP}, #{resultAboutTime,jdbcType=VARCHAR}
-           )
+            #{deleteName,jdbcType=VARCHAR}, #{deleteTime,jdbcType=TIMESTAMP}, #{resultAboutTime,jdbcType=VARCHAR},
+            #{resultBalanceTime,jdbcType=DECIMAL})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.TmstruckTimeTaskResult">
     insert into TMSTRUCK_TIME_TASK_RESULT
@@ -332,6 +342,9 @@
       <if test="resultAboutTime != null">
         RESULT_ABOUT_TIME,
       </if>
+      <if test="resultBalanceTime != null">
+        RESULT_BALANCE_TIME,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="timeTaskResultId != null">
@@ -397,6 +410,9 @@
       <if test="resultAboutTime != null">
         #{resultAboutTime,jdbcType=VARCHAR},
       </if>
+      <if test="resultBalanceTime != null">
+        #{resultBalanceTime,jdbcType=DECIMAL},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.TmstruckTimeTaskResult">
@@ -420,7 +436,8 @@
         INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
         DELETE_NAME = #{deleteName,jdbcType=VARCHAR},
         DELETE_TIME = #{deleteTime,jdbcType=TIMESTAMP},
-        RESULT_ABOUT_TIME = #{resultAboutTime,jdbcType=VARCHAR}
+        RESULT_ABOUT_TIME = #{resultAboutTime,jdbcType=VARCHAR},
+        RESULT_BALANCE_TIME = #{resultBalanceTime,jdbcType=DECIMAL}
     where TIME_TASK_RESULT_ID = #{timeTaskResultId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.TmstruckTimeTaskResult">
@@ -486,6 +503,9 @@
       <if test="resultAboutTime != null">
         RESULT_ABOUT_TIME = #{resultAboutTime,jdbcType=VARCHAR},
       </if>
+      <if test="resultBalanceTime != null">
+        RESULT_BALANCE_TIME = #{resultBalanceTime,jdbcType=DECIMAL},
+      </if>
     </set>
     where TIME_TASK_RESULT_ID = #{timeTaskResultId,jdbcType=DECIMAL}
   </update>
@@ -512,8 +532,8 @@
     RESULT_MEMO, INSERT_USERNAME, INSERT_TIME,
     UPDATE_USERNAME, UPDATE_TIME,
     INSERT_UPDATE_REMARK, DELETE_NAME,
-    DELETE_TIME, RESULT_ABOUT_TIME
-    )
+    DELETE_TIME, RESULT_ABOUT_TIME,
+    RESULT_BALANCE_TIME)
     ( <foreach collection="list" item="item" separator="union all">
     select
     #{item.timeTaskResultId,jdbcType=DECIMAL},
@@ -525,8 +545,8 @@
     #{item.resultMemo,jdbcType=VARCHAR}, #{item.insertUsername,jdbcType=VARCHAR}, #{item.insertTime,jdbcType=TIMESTAMP},
     #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
     #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.deleteName,jdbcType=VARCHAR},
-    #{item.deleteTime,jdbcType=TIMESTAMP}, #{item.resultAboutTime,jdbcType=VARCHAR}
-    from dual
+    #{item.deleteTime,jdbcType=TIMESTAMP}, #{item.resultAboutTime,jdbcType=VARCHAR},
+    #{item.resultBalanceTime,jdbcType=DECIMAL} from dual
   </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
@@ -616,6 +636,10 @@
     <foreach close="end" collection="list" index="index" item="item" open="case TIME_TASK_RESULT_ID" separator=" ">
       when #{item.timeTaskResultId,jdbcType=DECIMAL} then #{item.resultAboutTime,jdbcType=VARCHAR}
     </foreach>
+    ,RESULT_BALANCE_TIME=
+    <foreach close="end" collection="list" index="index" item="item" open="case TIME_TASK_RESULT_ID" separator=" ">
+      when #{item.timeTaskResultId,jdbcType=DECIMAL} then #{item.resultBalanceTime,jdbcType=DECIMAL}
+    </foreach>
     where TIME_TASK_RESULT_ID in
     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
       #{item.timeTaskResultId,jdbcType=DECIMAL}
@@ -629,7 +653,6 @@
     </foreach>
   </delete>
 
-
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
   <!--  通过运输订单号查询总实绩ID -->
@@ -861,7 +884,8 @@
   </select>
   <!--获取需求信息-->
   <select id="getRequirementInfo" resultType="java.util.Map" parameterType="decimal">
-    select AIR.CAPACITY_TYPE_ID "capacityTypeId" ,
+    select DISTINCT
+           AIR.CAPACITY_TYPE_ID "capacityTypeId" ,
            AIR.REQUIREMENT_TYPE "requirementType",
            RCT.CAPACITY_TYPE_NAME "capacityTypeName"
     from OMSTRUCK_ORDER OO
@@ -874,6 +898,7 @@
            LEFT JOIN RMS_CAPACITY_TYPE RCT
                      ON AIR.CAPACITY_TYPE_ID = RCT.CAPACITY_TYPE_ID
     where oo.ORDER_ID = #{orderId1}
+    fetch next 1 rows only
   </select>
 
 <!-- 查找计时开始时间-->
@@ -901,4 +926,19 @@
     WHERE  TTTR.RESULT_TIME_TYPE= 3 AND OO.ORDER_NUMBER=#{orderNumber}
   </select>
 
+  <select id="getShipperName" resultType="java.lang.String">
+    SELECT RS.SHIPPER_NAME
+    from OMSTRUCK_ORDER OO
+           LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
+                     ON AIP.PLAN_ID=OO.ORDER_PLAN_ID
+           LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+                     ON ARP.PLAN_ID=AIP.PLAN_ID
+           LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+                     ON AIR.REQUIREMENT_ID=ARP.REQUIREMENT_ID
+           LEFT JOIN RMS_SHIPPER RS
+                     ON RS.SHIPPER_ID = AIR.REQUIREMENT_SHIPPER_ID
+    where RS.SHIPPER_NAME is not null AND OO.ORDER_NUMBER=#{orderNumber}
+      FETCH NEXT 1 rows only
+  </select>
+
 </mapper>