Browse Source

新增外包审核模块

anderx 6 years ago
parent
commit
b050fabd0f

+ 1 - 1
GeneratorConfig.xml

@@ -9,6 +9,6 @@
     <javaModelGenerator targetPackage="com.goafanti.common.model" targetProject="kede-server" />
     <sqlMapGenerator targetPackage="com.goafanti.common.mapper" targetProject="kede-server" />
     <javaClientGenerator targetPackage="com.goafanti.common.dao" targetProject="kede-server" type="XMLMAPPER" />
-    <table schema="aft" tableName="outsource_organization"/>
+    <table schema="aft" tableName="t_order_outsource"/>
   </context>
 </generatorConfiguration>

+ 101 - 0
src/main/java/com/goafanti/common/dao/TOrderOutsourceMapper.java

@@ -0,0 +1,101 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.TOrderOutsource;
+import com.goafanti.common.model.TOrderOutsourceExample;
+import com.goafanti.order.bo.OrderOutsourceDtails;
+
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface TOrderOutsourceMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    long countByExample(TOrderOutsourceExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    int deleteByExample(TOrderOutsourceExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    int deleteByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    int insert(TOrderOutsource record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    int insertSelective(TOrderOutsource record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    List<TOrderOutsource> selectByExample(TOrderOutsourceExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    TOrderOutsource selectByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    int updateByExampleSelective(@Param("record") TOrderOutsource record, @Param("example") TOrderOutsourceExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    int updateByExample(@Param("record") TOrderOutsource record, @Param("example") TOrderOutsourceExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    int updateByPrimaryKeySelective(TOrderOutsource record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    int updateByPrimaryKey(TOrderOutsource record);
+
+
+	OrderOutsourceDtails selectByOrderNo(String orderNo);
+}

+ 42 - 0
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -1426,5 +1426,47 @@ where super_id is null ) e on e.order_no=a.order_no
   <select id="checkContractNo" resultType="java.lang.Integer">
   	select count(contract_no) from t_order_new
 	where contract_no= #{0}
+  </select>										
+  <select id="orderOutsourceList" resultType="com.goafanti.order.bo.OrderOutsourceBo">
+  select a.order_no orderNo,b.contract_no contractNo,date_format(b.create_time,'%Y-%m-%d %H:%i:%S') createTime,
+	date_format(b.sign_time,'%Y-%m-%d') signTime,c.nickname userName, e.name depName,b.total_amount totalAmount,
+	b.liquidation_status liquidationStatus,a.refund_status refundStatus,d.name adminName,f.name financeName
+	from t_order_outsource a
+	left join t_order_new b on a.order_no=b.order_no left join `user` c on b.buyer_id=c.id
+	left join admin d on b.salesman_id=d.id left join department e on d.department_id=e.id
+	left join admin f on b.finance_id=f.id
+	where 1=1
+	<if test="refundStatus != null">
+	and a.refund_status= #{refundStatus}
+	</if>
+	<if test="contractNo != null">
+	and b.contract_no like concat('%',#{contractNo},'%')
+	</if>
+	<if test="name != null">
+	and c.nickname like concat('%',#{name},'%')
+	</if>
+	<if test="startTime != null and endTime != null">
+	and b.create_time between #{startTime} and  #{endTime}
+	</if>
+	order by b.create_time desc
+  	<if test="page_sql!=null">
+			${page_sql}
+	</if>
+  </select>
+  <select id="orderOutsourceCount" resultType="java.lang.Integer">
+  select count(*) from t_order_outsource a left join t_order_new b on a.order_no=b.order_no 
+  left join `user` c on b.buyer_id=c.id where 1=1
+  <if test="refundStatus != null">
+	and a.refund_status= #{refundStatus}
+	</if>
+	<if test="contractNo != null">
+	and b.contract_no like concat('%',#{contractNo},'%')
+	</if>
+	<if test="name != null">
+	and c.nickname like concat('%',#{name},'%')
+	</if>
+	<if test="starTime != null and endTime != null">
+	and b.create_time between #{starTime} and  #{endTime}
+	</if>
   </select>
 </mapper>

+ 356 - 0
src/main/java/com/goafanti/common/mapper/TOrderOutsourceMapper.xml

@@ -0,0 +1,356 @@
+<?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.goafanti.common.dao.TOrderOutsourceMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.TOrderOutsource">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="refund_status" jdbcType="INTEGER" property="refundStatus" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="attachment_url" jdbcType="VARCHAR" property="attachmentUrl" />
+    <result column="picture_url" jdbcType="VARCHAR" property="pictureUrl" />
+    <result column="amount" jdbcType="DECIMAL" property="amount" />
+    <result column="company_name" jdbcType="VARCHAR" property="companyName" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    id, order_no, refund_status, create_time, remarks, attachment_url, picture_url, amount, 
+    company_name
+  </sql>
+  <select id="selectByExample" parameterType="com.goafanti.common.model.TOrderOutsourceExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from t_order_outsource
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from t_order_outsource
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    delete from t_order_outsource
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.goafanti.common.model.TOrderOutsourceExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    delete from t_order_outsource
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.TOrderOutsource">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    insert into t_order_outsource (id, order_no, refund_status, 
+      create_time, remarks, attachment_url, 
+      picture_url, amount, company_name
+      )
+    values (#{id,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{refundStatus,jdbcType=INTEGER}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR}, #{attachmentUrl,jdbcType=VARCHAR}, 
+      #{pictureUrl,jdbcType=VARCHAR}, #{amount,jdbcType=DECIMAL}, #{companyName,jdbcType=VARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.TOrderOutsource">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    insert into t_order_outsource
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="orderNo != null">
+        order_no,
+      </if>
+      <if test="refundStatus != null">
+        refund_status,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+      <if test="attachmentUrl != null">
+        attachment_url,
+      </if>
+      <if test="pictureUrl != null">
+        picture_url,
+      </if>
+      <if test="amount != null">
+        amount,
+      </if>
+      <if test="companyName != null">
+        company_name,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="orderNo != null">
+        #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="refundStatus != null">
+        #{refundStatus,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="remarks != null">
+        #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="attachmentUrl != null">
+        #{attachmentUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="pictureUrl != null">
+        #{pictureUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="amount != null">
+        #{amount,jdbcType=DECIMAL},
+      </if>
+      <if test="companyName != null">
+        #{companyName,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.goafanti.common.model.TOrderOutsourceExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    select count(*) from t_order_outsource
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    update t_order_outsource
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.orderNo != null">
+        order_no = #{record.orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="record.refundStatus != null">
+        refund_status = #{record.refundStatus,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.remarks != null">
+        remarks = #{record.remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="record.attachmentUrl != null">
+        attachment_url = #{record.attachmentUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="record.pictureUrl != null">
+        picture_url = #{record.pictureUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="record.amount != null">
+        amount = #{record.amount,jdbcType=DECIMAL},
+      </if>
+      <if test="record.companyName != null">
+        company_name = #{record.companyName,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    update t_order_outsource
+    set id = #{record.id,jdbcType=INTEGER},
+      order_no = #{record.orderNo,jdbcType=VARCHAR},
+      refund_status = #{record.refundStatus,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      remarks = #{record.remarks,jdbcType=VARCHAR},
+      attachment_url = #{record.attachmentUrl,jdbcType=VARCHAR},
+      picture_url = #{record.pictureUrl,jdbcType=VARCHAR},
+      amount = #{record.amount,jdbcType=DECIMAL},
+      company_name = #{record.companyName,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TOrderOutsource">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    update t_order_outsource
+    <set>
+      <if test="orderNo != null">
+        order_no = #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="refundStatus != null">
+        refund_status = #{refundStatus,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="attachmentUrl != null">
+        attachment_url = #{attachmentUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="pictureUrl != null">
+        picture_url = #{pictureUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="amount != null">
+        amount = #{amount,jdbcType=DECIMAL},
+      </if>
+      <if test="companyName != null">
+        company_name = #{companyName,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TOrderOutsource">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Jul 30 09:27:41 CST 2019.
+    -->
+    update t_order_outsource
+    set order_no = #{orderNo,jdbcType=VARCHAR},
+      refund_status = #{refundStatus,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      remarks = #{remarks,jdbcType=VARCHAR},
+      attachment_url = #{attachmentUrl,jdbcType=VARCHAR},
+      picture_url = #{pictureUrl,jdbcType=VARCHAR},
+      amount = #{amount,jdbcType=DECIMAL},
+      company_name = #{companyName,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectByOrderNo" resultType="com.goafanti.order.bo.OrderOutsourceDtails">
+   select id, order_no orderNo, refund_status refundStatus, date_format(create_time,'%Y-%m-%d %H:%i:%S') createTimes , remarks, 
+   attachment_url attachmentUrl, picture_url pictureUrl, amount,company_name companyName from t_order_outsource
+    where order_no =  #{orderNo}
+  </select>
+</mapper>

+ 303 - 0
src/main/java/com/goafanti/common/model/TOrderOutsource.java

@@ -0,0 +1,303 @@
+package com.goafanti.common.model;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class TOrderOutsource {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_outsource.id
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    private Integer id;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_outsource.order_no
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    private String orderNo;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_outsource.refund_status
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    private Integer refundStatus;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_outsource.create_time
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    private Date createTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_outsource.remarks
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    private String remarks;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_outsource.attachment_url
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    private String attachmentUrl;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_outsource.picture_url
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    private String pictureUrl;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_outsource.amount
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    private BigDecimal amount;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_outsource.company_name
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    private String companyName;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_outsource.id
+     *
+     * @return the value of t_order_outsource.id
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_outsource.id
+     *
+     * @param id the value for t_order_outsource.id
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_outsource.order_no
+     *
+     * @return the value of t_order_outsource.order_no
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_outsource.order_no
+     *
+     * @param orderNo the value for t_order_outsource.order_no
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_outsource.refund_status
+     *
+     * @return the value of t_order_outsource.refund_status
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public Integer getRefundStatus() {
+        return refundStatus;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_outsource.refund_status
+     *
+     * @param refundStatus the value for t_order_outsource.refund_status
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setRefundStatus(Integer refundStatus) {
+        this.refundStatus = refundStatus;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_outsource.create_time
+     *
+     * @return the value of t_order_outsource.create_time
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_outsource.create_time
+     *
+     * @param createTime the value for t_order_outsource.create_time
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_outsource.remarks
+     *
+     * @return the value of t_order_outsource.remarks
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public String getRemarks() {
+        return remarks;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_outsource.remarks
+     *
+     * @param remarks the value for t_order_outsource.remarks
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_outsource.attachment_url
+     *
+     * @return the value of t_order_outsource.attachment_url
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public String getAttachmentUrl() {
+        return attachmentUrl;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_outsource.attachment_url
+     *
+     * @param attachmentUrl the value for t_order_outsource.attachment_url
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setAttachmentUrl(String attachmentUrl) {
+        this.attachmentUrl = attachmentUrl;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_outsource.picture_url
+     *
+     * @return the value of t_order_outsource.picture_url
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public String getPictureUrl() {
+        return pictureUrl;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_outsource.picture_url
+     *
+     * @param pictureUrl the value for t_order_outsource.picture_url
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setPictureUrl(String pictureUrl) {
+        this.pictureUrl = pictureUrl;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_outsource.amount
+     *
+     * @return the value of t_order_outsource.amount
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_outsource.amount
+     *
+     * @param amount the value for t_order_outsource.amount
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_outsource.company_name
+     *
+     * @return the value of t_order_outsource.company_name
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_outsource.company_name
+     *
+     * @param companyName the value for t_order_outsource.company_name
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+}

+ 894 - 0
src/main/java/com/goafanti/common/model/TOrderOutsourceExample.java

@@ -0,0 +1,894 @@
+package com.goafanti.common.model;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class TOrderOutsourceExample {
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    protected String orderByClause;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    protected boolean distinct;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    protected List<Criteria> oredCriteria;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public TOrderOutsourceExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoIsNull() {
+            addCriterion("order_no is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoIsNotNull() {
+            addCriterion("order_no is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoEqualTo(String value) {
+            addCriterion("order_no =", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoNotEqualTo(String value) {
+            addCriterion("order_no <>", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoGreaterThan(String value) {
+            addCriterion("order_no >", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoGreaterThanOrEqualTo(String value) {
+            addCriterion("order_no >=", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoLessThan(String value) {
+            addCriterion("order_no <", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoLessThanOrEqualTo(String value) {
+            addCriterion("order_no <=", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoLike(String value) {
+            addCriterion("order_no like", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoNotLike(String value) {
+            addCriterion("order_no not like", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoIn(List<String> values) {
+            addCriterion("order_no in", values, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoNotIn(List<String> values) {
+            addCriterion("order_no not in", values, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoBetween(String value1, String value2) {
+            addCriterion("order_no between", value1, value2, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoNotBetween(String value1, String value2) {
+            addCriterion("order_no not between", value1, value2, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusIsNull() {
+            addCriterion("refund_status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusIsNotNull() {
+            addCriterion("refund_status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusEqualTo(Integer value) {
+            addCriterion("refund_status =", value, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusNotEqualTo(Integer value) {
+            addCriterion("refund_status <>", value, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusGreaterThan(Integer value) {
+            addCriterion("refund_status >", value, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("refund_status >=", value, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusLessThan(Integer value) {
+            addCriterion("refund_status <", value, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("refund_status <=", value, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusIn(List<Integer> values) {
+            addCriterion("refund_status in", values, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusNotIn(List<Integer> values) {
+            addCriterion("refund_status not in", values, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusBetween(Integer value1, Integer value2) {
+            addCriterion("refund_status between", value1, value2, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andRefundStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("refund_status not between", value1, value2, "refundStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIsNull() {
+            addCriterion("remarks is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIsNotNull() {
+            addCriterion("remarks is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksEqualTo(String value) {
+            addCriterion("remarks =", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotEqualTo(String value) {
+            addCriterion("remarks <>", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksGreaterThan(String value) {
+            addCriterion("remarks >", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
+            addCriterion("remarks >=", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLessThan(String value) {
+            addCriterion("remarks <", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLessThanOrEqualTo(String value) {
+            addCriterion("remarks <=", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLike(String value) {
+            addCriterion("remarks like", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotLike(String value) {
+            addCriterion("remarks not like", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIn(List<String> values) {
+            addCriterion("remarks in", values, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotIn(List<String> values) {
+            addCriterion("remarks not in", values, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksBetween(String value1, String value2) {
+            addCriterion("remarks between", value1, value2, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotBetween(String value1, String value2) {
+            addCriterion("remarks not between", value1, value2, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlIsNull() {
+            addCriterion("attachment_url is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlIsNotNull() {
+            addCriterion("attachment_url is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlEqualTo(String value) {
+            addCriterion("attachment_url =", value, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlNotEqualTo(String value) {
+            addCriterion("attachment_url <>", value, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlGreaterThan(String value) {
+            addCriterion("attachment_url >", value, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlGreaterThanOrEqualTo(String value) {
+            addCriterion("attachment_url >=", value, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlLessThan(String value) {
+            addCriterion("attachment_url <", value, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlLessThanOrEqualTo(String value) {
+            addCriterion("attachment_url <=", value, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlLike(String value) {
+            addCriterion("attachment_url like", value, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlNotLike(String value) {
+            addCriterion("attachment_url not like", value, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlIn(List<String> values) {
+            addCriterion("attachment_url in", values, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlNotIn(List<String> values) {
+            addCriterion("attachment_url not in", values, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlBetween(String value1, String value2) {
+            addCriterion("attachment_url between", value1, value2, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAttachmentUrlNotBetween(String value1, String value2) {
+            addCriterion("attachment_url not between", value1, value2, "attachmentUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlIsNull() {
+            addCriterion("picture_url is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlIsNotNull() {
+            addCriterion("picture_url is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlEqualTo(String value) {
+            addCriterion("picture_url =", value, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlNotEqualTo(String value) {
+            addCriterion("picture_url <>", value, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlGreaterThan(String value) {
+            addCriterion("picture_url >", value, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlGreaterThanOrEqualTo(String value) {
+            addCriterion("picture_url >=", value, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlLessThan(String value) {
+            addCriterion("picture_url <", value, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlLessThanOrEqualTo(String value) {
+            addCriterion("picture_url <=", value, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlLike(String value) {
+            addCriterion("picture_url like", value, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlNotLike(String value) {
+            addCriterion("picture_url not like", value, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlIn(List<String> values) {
+            addCriterion("picture_url in", values, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlNotIn(List<String> values) {
+            addCriterion("picture_url not in", values, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlBetween(String value1, String value2) {
+            addCriterion("picture_url between", value1, value2, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andPictureUrlNotBetween(String value1, String value2) {
+            addCriterion("picture_url not between", value1, value2, "pictureUrl");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountIsNull() {
+            addCriterion("amount is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountIsNotNull() {
+            addCriterion("amount is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountEqualTo(BigDecimal value) {
+            addCriterion("amount =", value, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountNotEqualTo(BigDecimal value) {
+            addCriterion("amount <>", value, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountGreaterThan(BigDecimal value) {
+            addCriterion("amount >", value, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountGreaterThanOrEqualTo(BigDecimal value) {
+            addCriterion("amount >=", value, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountLessThan(BigDecimal value) {
+            addCriterion("amount <", value, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountLessThanOrEqualTo(BigDecimal value) {
+            addCriterion("amount <=", value, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountIn(List<BigDecimal> values) {
+            addCriterion("amount in", values, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountNotIn(List<BigDecimal> values) {
+            addCriterion("amount not in", values, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("amount between", value1, value2, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andAmountNotBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("amount not between", value1, value2, "amount");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameIsNull() {
+            addCriterion("company_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameIsNotNull() {
+            addCriterion("company_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameEqualTo(String value) {
+            addCriterion("company_name =", value, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameNotEqualTo(String value) {
+            addCriterion("company_name <>", value, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameGreaterThan(String value) {
+            addCriterion("company_name >", value, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameGreaterThanOrEqualTo(String value) {
+            addCriterion("company_name >=", value, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameLessThan(String value) {
+            addCriterion("company_name <", value, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameLessThanOrEqualTo(String value) {
+            addCriterion("company_name <=", value, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameLike(String value) {
+            addCriterion("company_name like", value, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameNotLike(String value) {
+            addCriterion("company_name not like", value, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameIn(List<String> values) {
+            addCriterion("company_name in", values, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameNotIn(List<String> values) {
+            addCriterion("company_name not in", values, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameBetween(String value1, String value2) {
+            addCriterion("company_name between", value1, value2, "companyName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCompanyNameNotBetween(String value1, String value2) {
+            addCriterion("company_name not between", value1, value2, "companyName");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated do_not_delete_during_merge Tue Jul 30 09:27:41 CST 2019
+     */
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table t_order_outsource
+     *
+     * @mbg.generated Tue Jul 30 09:27:41 CST 2019
+     */
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 1 - 1
src/main/java/com/goafanti/common/utils/FileUtils.java

@@ -110,7 +110,7 @@ public class FileUtils {
 				||sign.indexOf("business_project_max_picture") != -1||sign.indexOf("business_project_min_picture") != -1
 				||sign.indexOf("varieties_picture") != -1  || sign.indexOf("organization_application") != -1
 				||sign.indexOf("order_task_file") != -1||sign.indexOf("patent_certificate") != -1
-				||sign.indexOf("order_invoice_file") != -1){
+				||sign.indexOf("order_invoice_file") != -1 ||sign.indexOf("order_outsource") != -1 ){
 			uniq = true;
 		}
 		String fileName = "";

+ 87 - 0
src/main/java/com/goafanti/order/bo/OrderOutsourceBo.java

@@ -0,0 +1,87 @@
+package com.goafanti.order.bo;
+
+
+public class OrderOutsourceBo  {
+	private String orderNo;
+	private String contractNo;
+	private String createTime;
+	private String signTime;
+	private String userName;
+	private String depName;
+	private String totalAmount;
+	private String adminName;
+	private String financeName;
+	private Integer liquidationStatus;
+	private Integer refundStatus;
+	
+	
+	public String getOrderNo() {
+		return orderNo;
+	}
+	public void setOrderNo(String orderNo) {
+		this.orderNo = orderNo;
+	}
+	public String getContractNo() {
+		return contractNo;
+	}
+	public void setContractNo(String contractNo) {
+		this.contractNo = contractNo;
+	}
+
+	public String getSignTime() {
+		return signTime;
+	}
+	public void setSignTime(String signTime) {
+		this.signTime = signTime;
+	}
+	public String getUserName() {
+		return userName;
+	}
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+	public String getDepName() {
+		return depName;
+	}
+	public void setDepName(String depName) {
+		this.depName = depName;
+	}
+	public String getTotalAmount() {
+		return totalAmount;
+	}
+	public void setTotalAmount(String totalAmount) {
+		this.totalAmount = totalAmount;
+	}
+	public String getAdminName() {
+		return adminName;
+	}
+	public void setAdminName(String adminName) {
+		this.adminName = adminName;
+	}
+	public String getFinanceName() {
+		if(financeName==null)return "";
+		return financeName;
+	}
+	public void setFinanceName(String financeName) {
+		this.financeName = financeName;
+	}
+	public Integer getLiquidationStatus() {
+		return liquidationStatus;
+	}
+	public void setLiquidationStatus(Integer liquidationStatus) {
+		this.liquidationStatus = liquidationStatus;
+	}
+	public Integer getRefundStatus() {
+		return refundStatus;
+	}
+	public void setRefundStatus(Integer refundStatus) {
+		this.refundStatus = refundStatus;
+	}
+	public String getCreateTime() {
+		return createTime;
+	}
+	public void setCreateTime(String createTime) {
+		this.createTime = createTime;
+	}
+	
+}

+ 7 - 0
src/main/java/com/goafanti/order/bo/OrderOutsourceDtails.java

@@ -0,0 +1,7 @@
+package com.goafanti.order.bo;
+
+import com.goafanti.common.model.TOrderOutsource;
+
+public class OrderOutsourceDtails extends TOrderOutsource {
+		
+}

+ 66 - 2
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -22,8 +22,10 @@ import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.TOrderNew;
+import com.goafanti.common.model.TOrderOutsource;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
+import com.goafanti.order.bo.OrderOutsourceDtails;
 import com.goafanti.order.enums.ApprovalNewState;
 import com.goafanti.order.enums.OrderNewState;
 import com.goafanti.order.service.OrderNewService;
@@ -249,7 +251,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	 * 订单审核
 	 */
 	@RequestMapping(value="/auditOrderNew", method = RequestMethod.POST)
-	public Result auditOrderNew(String orderNo,Integer orderStatus,String reason,Integer outsource){
+	public Result auditOrderNew(String orderNo,Integer orderStatus,String reason){
 		Result res=new Result();
 		if(StringUtils.isBlank(orderNo)){
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
@@ -264,9 +266,28 @@ public class AdminNewOrderApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"驳回原因", "驳回原因"));
 			return res;
 		}
-		return res.data(orderNewService.updateOrderNew(orderNo,orderStatus,reason,outsource));
+		return res.data(orderNewService.updateOrderNew(orderNo,orderStatus,reason,0,null));
 	}
 	/**
+	 * 审核并外包
+	 */
+	@RequestMapping(value="/auditOutsource", method = RequestMethod.POST)
+	public Result auditOutsource(TOrderOutsource o,Integer orderStatus){
+		Result res=new Result();
+		if(StringUtils.isBlank(o.getOrderNo())||StringUtils.isBlank(o.getCompanyName())||
+				o.getAmount()==null){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "外包信息","外包信息"));
+			return res;
+		}
+		if(orderStatus==null||(orderStatus!=OrderNewState.QDSHTG.getCode()&&orderStatus!=OrderNewState.QDSHJJ.getCode())||
+				orderNewService.chekeOrderStatus(o.getOrderNo())){
+			res.getError().add(buildError( "审核状态错误","审核状态错误"));
+			return res;
+		}
+		return res.data(orderNewService.updateOrderNew(o.getOrderNo(),orderStatus,null,1,o));
+	}
+	
+	/**
 	 * 催款统计列表
 	 */
 	@RequestMapping(value="/dunOrderNewList", method = RequestMethod.GET)
@@ -397,6 +418,40 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	}
 	
 	/**
+	 * 外包审核列表
+	 */
+	@RequestMapping(value="/orderOutsourceList", method = RequestMethod.GET)
+	public Result orderOutsourceList(String name,String contractNo,String starTime,String endTime,Integer refundStatus,Integer pageNo,Integer pageSize){
+		Result res=new Result();
+		res.data(orderNewService.orderOutsourceList(name, contractNo, starTime, endTime,refundStatus, pageNo, pageSize));
+		return res;
+	}
+	/**
+	 * 外包审核详情
+	 */
+	@RequestMapping(value="/orderOutsourceDtails", method = RequestMethod.GET)
+	public Result orderOutsourceDtails(String orderNo){
+		Result res=new Result();
+		res.data(orderNewService.orderOutsourceDtails(orderNo));
+		return res;
+	}
+	/**
+	 * 外包审核
+	 */
+	@RequestMapping(value="/auditOutsource", method = RequestMethod.GET)
+	public Result auditOutsource(OrderOutsourceDtails o){
+		Result res=new Result();
+		if (o.getId()==null||o.getRefundStatus()==null||o.getRemarks()==null) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "外包信息","外包信息"));
+			return res;
+		}
+		res.data(orderNewService.updateAuditOutsource(o));
+		return res;
+	}
+	
+	
+	
+	/**
 	 * 订单结单
 	 */
 	@RequestMapping(value="/OrderOver", method = RequestMethod.GET)
@@ -459,6 +514,15 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		return res;
 	}
 	
+	/** 外包文件上传 **/
+	@RequestMapping(value = "/uploadOutsourceFile", method = RequestMethod.POST)
+	public Result uploadOutsourceFile(HttpServletRequest req,String sign){
+		Result res = new Result();
+		//order_refund_file
+		res.setData(handleFile(res, "/order_outsource/", false, req, sign));
+		return res;
+	}
+	
 	
 
 	

+ 9 - 1
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -9,6 +9,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.common.model.TOrderDun;
 import com.goafanti.common.model.TOrderNew;
+import com.goafanti.common.model.TOrderOutsource;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -19,6 +20,8 @@ import com.goafanti.order.bo.TOrderLogBo;
 import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.bo.TOrderRefundBo;
 import com.goafanti.order.bo.TOrderTaskBo;
+import com.goafanti.order.bo.OrderOutsourceBo;
+import com.goafanti.order.bo.OrderOutsourceDtails;
 
 public interface OrderNewService {
 	
@@ -87,9 +90,10 @@ public interface OrderNewService {
 	 * 订单审核
 	 * @param orderNo
 	 * @param orderStatus
+	 * @param object 
 	 * @return
 	 */
-	int updateOrderNew(String orderNo, Integer orderStatus,String reason,Integer outsource);
+	int updateOrderNew(String orderNo, Integer orderStatus,String reason,Integer outsource, TOrderOutsource object);
 	
 	/**
 	 * 催款订单列表
@@ -165,6 +169,10 @@ public interface OrderNewService {
 	
 	int updateFinance(String orderNo, String newFinance);
 	List<TOrderLogBo> selectOrderLog(String orderNo);
+	Pagination<OrderOutsourceBo> orderOutsourceList(String name, String contractNo, String starTime, String endTime,Integer refundStatus, Integer pageNo,
+			Integer pageSize);
+	OrderOutsourceDtails orderOutsourceDtails(String orderNo);
+	int updateAuditOutsource(OrderOutsourceDtails o);
 	
 	
 }

+ 59 - 12
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -36,6 +36,7 @@ import com.goafanti.common.dao.TOrderBackMapper;
 import com.goafanti.common.dao.TOrderDunMapper;
 import com.goafanti.common.dao.TOrderLogMapper;
 import com.goafanti.common.dao.TOrderNewMapper;
+import com.goafanti.common.dao.TOrderOutsourceMapper;
 import com.goafanti.common.dao.TOrderRefundMapper;
 import com.goafanti.common.dao.TOrderTaskMapper;
 import com.goafanti.common.dao.UserLockReleaseMapper;
@@ -50,6 +51,7 @@ import com.goafanti.common.model.TOrderBack;
 import com.goafanti.common.model.TOrderDun;
 import com.goafanti.common.model.TOrderLog;
 import com.goafanti.common.model.TOrderNew;
+import com.goafanti.common.model.TOrderOutsource;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
 import com.goafanti.common.utils.ExportExcelUtil;
@@ -67,6 +69,8 @@ import com.goafanti.order.bo.TOrderLogBo;
 import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.bo.TOrderRefundBo;
 import com.goafanti.order.bo.TOrderTaskBo;
+import com.goafanti.order.bo.OrderOutsourceBo;
+import com.goafanti.order.bo.OrderOutsourceDtails;
 import com.goafanti.order.enums.ActiveState;
 import com.goafanti.order.enums.ApprovalNewState;
 import com.goafanti.order.enums.LiquidationNewState;
@@ -104,9 +108,11 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Autowired
 	private TOrderLogMapper tOrderLogMapper;
 	@Autowired
-	NoticeMapper	noticeMapper;
+	private NoticeMapper	noticeMapper;
 	@Autowired
-	OrderService	orderService;
+	private OrderService	orderService;
+	@Autowired
+	private TOrderOutsourceMapper tOrderOutsourceMapper;
 	@Autowired
 	private UserLockReleaseMapper	userLockReleaseMapper;
 	@Value(value = "${mobileRemindCodeTemplate}")
@@ -410,7 +416,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	
 
 	@Override
-	public int updateOrderNew(String orderNo, Integer orderStatus,String reason,Integer outsource) {
+	public int updateOrderNew(String orderNo, Integer orderStatus,String reason,Integer outsource, TOrderOutsource o) {
 		TOrderNew t= new TOrderNew();
 		TOrderNew t2= tOrderNewMapper.selectByPrimaryKey(orderNo);
 		t.setOrderNo(orderNo);
@@ -418,19 +424,28 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			if (t2.getApproval()==ApprovalNewState.FTP.getCode()) {//如果通过分配给财务管理员
 				t.setProcessStatus(ProcessStatus.YPCWGLY.getCode());
 				addOrderLog(orderNo, OrderLogProcess.SH.getCode());
-		}else if (t2.getApproval()==ApprovalNewState.DSH.getCode()) {
+			}else if (t2.getApproval()==ApprovalNewState.DSH.getCode()) {
 				addOrderLog(orderNo, OrderLogProcess.SH.getCode());
-		}
+			}
 			if(outsource!=null&&outsource==1)t.setOutsource(outsource);
-			
 		}
-	
-		if (orderStatus==OrderNewState.QDSHJJ.getCode()) {//如果不通过新增驳回
-			t.setProcessStatus(ProcessStatus.YPYXY.getCode());
-			addBackOrder(orderNo, reason);
-			addOrderLog(orderNo, OrderLogProcess.BH.getCode());
+		if (outsource==0) {//非外包
+			if (orderStatus==OrderNewState.QDSHJJ.getCode()) {//如果不通过新增驳回
+				t.setProcessStatus(ProcessStatus.YPYXY.getCode());
+				addBackOrder(orderNo, reason);
+				addOrderLog(orderNo, OrderLogProcess.BH.getCode());
+			}
+			t.setOrderStatus(orderStatus);
+		}else if (outsource==1) {//外包
+			o.setRefundStatus(0);
+			if(o.getId()==null) {
+				o.setCreateTime(new Date());
+				tOrderOutsourceMapper.insertSelective(o);
+			}else {
+				tOrderOutsourceMapper.updateByPrimaryKeySelective(o);
+			}
 		}
-		t.setOrderStatus(orderStatus);
+		
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
 	}
 
@@ -799,5 +814,37 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	public List<TOrderLogBo> selectOrderLog(String orderNo) {
 		return tOrderLogMapper.selectOrderByNo(orderNo);
 	}
+
+
+
+	@Override
+	@SuppressWarnings("unchecked")
+	public Pagination<OrderOutsourceBo> orderOutsourceList(String name, String contractNo, String starTime,
+			String endTime,Integer refundStatus, Integer pageNo, Integer pageSize) {
+		Map<String, Object> params = new HashMap<String, Object>();
+		if(pageSize==null||pageSize<0)pageSize=10;
+		if(pageNo==null||pageNo<0)pageNo=1;
+		if (StringUtils.isNotBlank(name)) params.put("name", name);
+		if(refundStatus != null) params.put("refundStatus", refundStatus);
+		if (StringUtils.isNotBlank(contractNo)) params.put("contractNo", contractNo);
+		if (StringUtils.isNotBlank(starTime)) params.put("starTime", starTime);
+		if (StringUtils.isNotBlank(endTime)) params.put("endTime", endTime+" 23:59:59");
+		Pagination<OrderOutsourceBo> p = (Pagination<OrderOutsourceBo>)findPage("orderOutsourceList", "orderOutsourceCount", params, pageNo, pageSize);
+		return p;
+	}
+
+
+
+	@Override
+	public OrderOutsourceDtails orderOutsourceDtails(String orderNo) {
+		return tOrderOutsourceMapper.selectByOrderNo(orderNo);
+	}
+
+
+
+	@Override
+	public int updateAuditOutsource(OrderOutsourceDtails o) {
+		return tOrderOutsourceMapper.updateByPrimaryKeySelective(o);
+	}
 	
 }