Browse Source

订单退单,订单列表修改

anderx 7 years ago
parent
commit
c4a94a7ff2

+ 1 - 1
GeneratorConfig.xml

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

+ 122 - 0
src/main/java/com/goafanti/common/dao/TOrderBackMapper.java

@@ -0,0 +1,122 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.TOrderBack;
+import com.goafanti.common.model.TOrderBackExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface TOrderBackMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    long countByExample(TOrderBackExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int deleteByExample(TOrderBackExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int deleteByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int insert(TOrderBack record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int insertSelective(TOrderBack record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    List<TOrderBack> selectByExampleWithBLOBs(TOrderBackExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    List<TOrderBack> selectByExample(TOrderBackExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    TOrderBack selectByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int updateByExampleSelective(@Param("record") TOrderBack record, @Param("example") TOrderBackExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int updateByExampleWithBLOBs(@Param("record") TOrderBack record, @Param("example") TOrderBackExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int updateByExample(@Param("record") TOrderBack record, @Param("example") TOrderBackExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int updateByPrimaryKeySelective(TOrderBack record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int updateByPrimaryKeyWithBLOBs(TOrderBack record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    int updateByPrimaryKey(TOrderBack record);
+
+	int updateByOrderNoAndBackStatus(String orderNo);
+}

+ 4 - 0
src/main/java/com/goafanti/common/dao/TOrderNewMapper.java

@@ -2,6 +2,8 @@ package com.goafanti.common.dao;
 
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.model.TOrderNewExample;
+import com.goafanti.order.bo.TOrderNewBo;
+
 import java.util.List;
 import org.apache.ibatis.annotations.Param;
 
@@ -117,4 +119,6 @@ public interface TOrderNewMapper {
      * @mbg.generated Mon Nov 19 10:12:37 CST 2018
      */
     int updateByPrimaryKey(TOrderNew record);
+
+    TOrderNewBo getOrderNewDetail(String orderNo);
 }

+ 426 - 0
src/main/java/com/goafanti/common/mapper/TOrderBackMapper.xml

@@ -0,0 +1,426 @@
+<?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.TOrderBackMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.TOrderBack">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="back_status" jdbcType="INTEGER" property="backStatus" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="initiate" jdbcType="VARCHAR" property="initiate" />
+    <result column="accept" jdbcType="VARCHAR" property="accept" />
+    <result column="reason" jdbcType="VARCHAR" property="reason" />
+    <result column="result" jdbcType="VARCHAR" property="result" />
+  </resultMap>
+  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.goafanti.common.model.TOrderBack">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    <result column="reason_attachment_url" jdbcType="LONGVARCHAR" property="reasonAttachmentUrl" />
+  </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 Wed Nov 21 11:44:14 CST 2018.
+    -->
+    <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 Wed Nov 21 11:44:14 CST 2018.
+    -->
+    <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 Wed Nov 21 11:44:14 CST 2018.
+    -->
+    id, order_no, back_status, create_time, initiate, accept, reason, result
+  </sql>
+  <sql id="Blob_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    reason_attachment_url
+  </sql>
+  <select id="selectByExampleWithBLOBs" parameterType="com.goafanti.common.model.TOrderBackExample" resultMap="ResultMapWithBLOBs">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from t_order_back
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByExample" parameterType="com.goafanti.common.model.TOrderBackExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from t_order_back
+    <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="ResultMapWithBLOBs">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from t_order_back
+    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 Wed Nov 21 11:44:14 CST 2018.
+    -->
+    delete from t_order_back
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.goafanti.common.model.TOrderBackExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    delete from t_order_back
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.TOrderBack">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    insert into t_order_back (id, order_no, back_status, 
+      create_time, initiate, accept, 
+      reason, result, reason_attachment_url
+      )
+    values (#{id,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{backStatus,jdbcType=INTEGER}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{initiate,jdbcType=VARCHAR}, #{accept,jdbcType=VARCHAR}, 
+      #{reason,jdbcType=VARCHAR}, #{result,jdbcType=VARCHAR}, #{reasonAttachmentUrl,jdbcType=LONGVARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.TOrderBack">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    insert into t_order_back
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="orderNo != null">
+        order_no,
+      </if>
+      <if test="backStatus != null">
+        back_status,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="initiate != null">
+        initiate,
+      </if>
+      <if test="accept != null">
+        accept,
+      </if>
+      <if test="reason != null">
+        reason,
+      </if>
+      <if test="result != null">
+        result,
+      </if>
+      <if test="reasonAttachmentUrl != null">
+        reason_attachment_url,
+      </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="backStatus != null">
+        #{backStatus,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="initiate != null">
+        #{initiate,jdbcType=VARCHAR},
+      </if>
+      <if test="accept != null">
+        #{accept,jdbcType=VARCHAR},
+      </if>
+      <if test="reason != null">
+        #{reason,jdbcType=VARCHAR},
+      </if>
+      <if test="result != null">
+        #{result,jdbcType=VARCHAR},
+      </if>
+      <if test="reasonAttachmentUrl != null">
+        #{reasonAttachmentUrl,jdbcType=LONGVARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.goafanti.common.model.TOrderBackExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    select count(*) from t_order_back
+    <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 Wed Nov 21 11:44:14 CST 2018.
+    -->
+    update t_order_back
+    <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.backStatus != null">
+        back_status = #{record.backStatus,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.initiate != null">
+        initiate = #{record.initiate,jdbcType=VARCHAR},
+      </if>
+      <if test="record.accept != null">
+        accept = #{record.accept,jdbcType=VARCHAR},
+      </if>
+      <if test="record.reason != null">
+        reason = #{record.reason,jdbcType=VARCHAR},
+      </if>
+      <if test="record.result != null">
+        result = #{record.result,jdbcType=VARCHAR},
+      </if>
+      <if test="record.reasonAttachmentUrl != null">
+        reason_attachment_url = #{record.reasonAttachmentUrl,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExampleWithBLOBs" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    update t_order_back
+    set id = #{record.id,jdbcType=INTEGER},
+      order_no = #{record.orderNo,jdbcType=VARCHAR},
+      back_status = #{record.backStatus,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      initiate = #{record.initiate,jdbcType=VARCHAR},
+      accept = #{record.accept,jdbcType=VARCHAR},
+      reason = #{record.reason,jdbcType=VARCHAR},
+      result = #{record.result,jdbcType=VARCHAR},
+      reason_attachment_url = #{record.reasonAttachmentUrl,jdbcType=LONGVARCHAR}
+    <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 Wed Nov 21 11:44:14 CST 2018.
+    -->
+    update t_order_back
+    set id = #{record.id,jdbcType=INTEGER},
+      order_no = #{record.orderNo,jdbcType=VARCHAR},
+      back_status = #{record.backStatus,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      initiate = #{record.initiate,jdbcType=VARCHAR},
+      accept = #{record.accept,jdbcType=VARCHAR},
+      reason = #{record.reason,jdbcType=VARCHAR},
+      result = #{record.result,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TOrderBack">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    update t_order_back
+    <set>
+      <if test="orderNo != null">
+        order_no = #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="backStatus != null">
+        back_status = #{backStatus,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="initiate != null">
+        initiate = #{initiate,jdbcType=VARCHAR},
+      </if>
+      <if test="accept != null">
+        accept = #{accept,jdbcType=VARCHAR},
+      </if>
+      <if test="reason != null">
+        reason = #{reason,jdbcType=VARCHAR},
+      </if>
+      <if test="result != null">
+        result = #{result,jdbcType=VARCHAR},
+      </if>
+      <if test="reasonAttachmentUrl != null">
+        reason_attachment_url = #{reasonAttachmentUrl,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.goafanti.common.model.TOrderBack">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    update t_order_back
+    set order_no = #{orderNo,jdbcType=VARCHAR},
+      back_status = #{backStatus,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      initiate = #{initiate,jdbcType=VARCHAR},
+      accept = #{accept,jdbcType=VARCHAR},
+      reason = #{reason,jdbcType=VARCHAR},
+      result = #{result,jdbcType=VARCHAR},
+      reason_attachment_url = #{reasonAttachmentUrl,jdbcType=LONGVARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TOrderBack">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Nov 21 11:44:14 CST 2018.
+    -->
+    update t_order_back
+    set order_no = #{orderNo,jdbcType=VARCHAR},
+      back_status = #{backStatus,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      initiate = #{initiate,jdbcType=VARCHAR},
+      accept = #{accept,jdbcType=VARCHAR},
+      reason = #{reason,jdbcType=VARCHAR},
+      result = #{result,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByOrderNoAndBackStatus" parameterType="java.lang.String">
+  update t_order_back set back_status=1 where  back_status=0 and order_no= #{orderNo,jdbcType=VARCHAR} 
+  </update>
+</mapper>

+ 49 - 7
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -802,10 +802,22 @@
   		a.liquidation_status as liquidationStatus,a.approval,c.name as salesmanName,d.name as financeName
   	from t_order_new a  left join `user` b on a.buyer_id=b.id 
   	left join admin c on a.salesman_id=c.id
-  	left join admin d on a.finance_id=c.id
-  	where a.delete_sign = 0
-  	<if test="orderStatus != null">
-  	and a.order_status = #{orderStatus,jdbcType=VARCHAR}
+  	left join admin d on a.finance_id=d.id
+  	where a.delete_sign = 0 
+  	<if test="specially == 0">
+  	and a.order_status not in(3,5) and a.approval !=3
+  	</if>
+  	<if test="specially == 1">
+  	and a.process_status =1  and a.order_status=1
+  	</if>
+  	<if test="specially == 2">
+  	and a.order_status in(3,5) 
+  	</if>
+  	<if test="specially == 3">
+  	and a.approval = 1 and  a.order_status=2
+  	</if>
+  	<if test="aid != null">
+  	and a.salesman_id = #{aid,jdbcType=VARCHAR}
   	</if>
   	<if test="name != null">
   	and b.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
@@ -827,9 +839,21 @@
   	select 
   		count(*)
   	from t_order_new a  left join `user` b on a.buyer_id=b.id 
-  	where a.delete_sign = 0
-  	<if test="orderStatus != null">
-  	and a.order_status = #{orderStatus,jdbcType=VARCHAR}
+  	where a.delete_sign = 0  
+ 	<if test="specially == 0">
+  	and a.order_status not in(3,5) and a.approval !=3
+  	</if>
+  	<if test="specially == 1">
+  	and a.process_status =1  and a.order_status=1
+  	</if>
+  	<if test="specially == 2">
+  	and a.order_status in(3,5) 
+  	</if>
+  	<if test="specially == 3">
+  	and a.approval = 1 and  a.order_status=2
+  	</if>
+  	<if test="aid != null">
+  	and a.salesman_id = #{aid,jdbcType=VARCHAR}
   	</if>
   	<if test="name != null">
   	and b.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
@@ -885,4 +909,22 @@
   	and b.sign_time &lt; #{endTime,jdbcType=VARCHAR}
   	</if>
   </select>
+  
+  <select id="getOrderNewDetail" parameterType="java.lang.String" resultType="com.goafanti.order.bo.TOrderNewBo">
+     select 
+    a.order_no as orderNo, a.order_type as ordertType, a.creater, a.create_time as createTime,a.update_time as updateTime, a.buyer_id as buyerId, a.first_amount as firstAmount, 
+    a.total_amount as totalAmount, a.settlement_amount as settlementAmount, order_status as orderStatus, a.liquidation_status as liquidationStatus, a.process_status as processStatus, 
+    a.project_status as projectStatus, a.approval, a.order_remarks as orderRemarks, a.delete_sign as deleteSign, a.salesman_id as salesmanId, finance_id as financeId, technician_id as technicianId, 
+    a.sign_time as signTime, a.settlement_time as settlementTime, a.contract_no as contractNo, a.contract_type as contractType, a.contacts, a.contact_mobile as contactMobile, 
+    a.legal_person as legalPerson, a.legal_person_tel as legalPersonTel, a.proof_count as proofCount, a.proof_aid as proofAid,contract_picture_url as contractPictureUrl,
+    c.name as salesmanName,d.name as financeName,c.contact_mobile as salesmanMobile,d.contact_mobile as financeMobile,b.nickname as userName
+    ,e.back_status as backStatus,f.name as initiateName,e.reason,date_format(e.create_time,'%Y-%m-%d') as backDate
+    from t_order_new a
+    left join `user` b on a.buyer_id=b.id
+    left join admin c on a.salesman_id=c.id
+  	left join admin d on a.finance_id=d.id
+  	left join t_order_back e on a.order_no=e.order_no
+  	left join admin f on e.initiate=f.id
+    where a.order_no = #{orderNo,jdbcType=VARCHAR}
+  </select>
 </mapper>

+ 3 - 3
src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml

@@ -650,9 +650,9 @@
   <select id="selectOrderTask"  resultType="com.goafanti.order.bo.TOrderTaskBo">
   	select 
   		a.id,a.order_no as orderNo,a.commodity_name as commodityName,a.commodity_id as commodityId,
-  		a.commodity_price as commodityPrice,a.task_comment as taskComment,a.task_status as taskStatus,
-  		a.project_status as project_status,a.main,a.task_receiver as taskReceiver ,d.name as contacts,
-  		d.contact_mobile as contactsMobile,c.cname
+  		a.commodity_quantity as commodityQuantity,a.commodity_price as commodityPrice,a.task_comment as taskComment,
+  		a.task_status as taskStatus,a.project_status as project_status,a.main,a.task_receiver as taskReceiver ,
+  		d.name as contacts,d.contact_mobile as contactsMobile,c.cname
   	 from t_order_task a left join business_project b on a.commodity_id=b.id
   	 left join business_category c on b.cid=c.id left join admin d on a.task_receiver=d.id
   	where order_no=  #{orderNo,jdbcType=VARCHAR}

+ 302 - 0
src/main/java/com/goafanti/common/model/TOrderBack.java

@@ -0,0 +1,302 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+
+public class TOrderBack {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_back.id
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    private Integer id;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_back.order_no
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    private String orderNo;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_back.back_status
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    private Integer backStatus;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_back.create_time
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    private Date createTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_back.initiate
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    private String initiate;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_back.accept
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    private String accept;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_back.reason
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    private String reason;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_back.result
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    private String result;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column t_order_back.reason_attachment_url
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    private String reasonAttachmentUrl;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_back.id
+     *
+     * @return the value of t_order_back.id
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_back.id
+     *
+     * @param id the value for t_order_back.id
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    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_back.order_no
+     *
+     * @return the value of t_order_back.order_no
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_back.order_no
+     *
+     * @param orderNo the value for t_order_back.order_no
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    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_back.back_status
+     *
+     * @return the value of t_order_back.back_status
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public Integer getBackStatus() {
+        return backStatus;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_back.back_status
+     *
+     * @param backStatus the value for t_order_back.back_status
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public void setBackStatus(Integer backStatus) {
+        this.backStatus = backStatus;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_back.create_time
+     *
+     * @return the value of t_order_back.create_time
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_back.create_time
+     *
+     * @param createTime the value for t_order_back.create_time
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    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_back.initiate
+     *
+     * @return the value of t_order_back.initiate
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public String getInitiate() {
+        return initiate;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_back.initiate
+     *
+     * @param initiate the value for t_order_back.initiate
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public void setInitiate(String initiate) {
+        this.initiate = initiate;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_back.accept
+     *
+     * @return the value of t_order_back.accept
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public String getAccept() {
+        return accept;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_back.accept
+     *
+     * @param accept the value for t_order_back.accept
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public void setAccept(String accept) {
+        this.accept = accept;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_back.reason
+     *
+     * @return the value of t_order_back.reason
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public String getReason() {
+        return reason;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_back.reason
+     *
+     * @param reason the value for t_order_back.reason
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_back.result
+     *
+     * @return the value of t_order_back.result
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public String getResult() {
+        return result;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_back.result
+     *
+     * @param result the value for t_order_back.result
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public void setResult(String result) {
+        this.result = result;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column t_order_back.reason_attachment_url
+     *
+     * @return the value of t_order_back.reason_attachment_url
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public String getReasonAttachmentUrl() {
+        return reasonAttachmentUrl;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column t_order_back.reason_attachment_url
+     *
+     * @param reasonAttachmentUrl the value for t_order_back.reason_attachment_url
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public void setReasonAttachmentUrl(String reasonAttachmentUrl) {
+        this.reasonAttachmentUrl = reasonAttachmentUrl;
+    }
+}

+ 833 - 0
src/main/java/com/goafanti/common/model/TOrderBackExample.java

@@ -0,0 +1,833 @@
+package com.goafanti.common.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class TOrderBackExample {
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    protected String orderByClause;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    protected boolean distinct;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    protected List<Criteria> oredCriteria;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public TOrderBackExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table t_order_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    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_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    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_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    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_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    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_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    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 andBackStatusIsNull() {
+            addCriterion("back_status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusIsNotNull() {
+            addCriterion("back_status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusEqualTo(Integer value) {
+            addCriterion("back_status =", value, "backStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusNotEqualTo(Integer value) {
+            addCriterion("back_status <>", value, "backStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusGreaterThan(Integer value) {
+            addCriterion("back_status >", value, "backStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("back_status >=", value, "backStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusLessThan(Integer value) {
+            addCriterion("back_status <", value, "backStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("back_status <=", value, "backStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusIn(List<Integer> values) {
+            addCriterion("back_status in", values, "backStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusNotIn(List<Integer> values) {
+            addCriterion("back_status not in", values, "backStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusBetween(Integer value1, Integer value2) {
+            addCriterion("back_status between", value1, value2, "backStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andBackStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("back_status not between", value1, value2, "backStatus");
+            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 andInitiateIsNull() {
+            addCriterion("initiate is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateIsNotNull() {
+            addCriterion("initiate is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateEqualTo(String value) {
+            addCriterion("initiate =", value, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateNotEqualTo(String value) {
+            addCriterion("initiate <>", value, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateGreaterThan(String value) {
+            addCriterion("initiate >", value, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateGreaterThanOrEqualTo(String value) {
+            addCriterion("initiate >=", value, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateLessThan(String value) {
+            addCriterion("initiate <", value, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateLessThanOrEqualTo(String value) {
+            addCriterion("initiate <=", value, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateLike(String value) {
+            addCriterion("initiate like", value, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateNotLike(String value) {
+            addCriterion("initiate not like", value, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateIn(List<String> values) {
+            addCriterion("initiate in", values, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateNotIn(List<String> values) {
+            addCriterion("initiate not in", values, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateBetween(String value1, String value2) {
+            addCriterion("initiate between", value1, value2, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInitiateNotBetween(String value1, String value2) {
+            addCriterion("initiate not between", value1, value2, "initiate");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptIsNull() {
+            addCriterion("accept is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptIsNotNull() {
+            addCriterion("accept is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptEqualTo(String value) {
+            addCriterion("accept =", value, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptNotEqualTo(String value) {
+            addCriterion("accept <>", value, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptGreaterThan(String value) {
+            addCriterion("accept >", value, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptGreaterThanOrEqualTo(String value) {
+            addCriterion("accept >=", value, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptLessThan(String value) {
+            addCriterion("accept <", value, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptLessThanOrEqualTo(String value) {
+            addCriterion("accept <=", value, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptLike(String value) {
+            addCriterion("accept like", value, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptNotLike(String value) {
+            addCriterion("accept not like", value, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptIn(List<String> values) {
+            addCriterion("accept in", values, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptNotIn(List<String> values) {
+            addCriterion("accept not in", values, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptBetween(String value1, String value2) {
+            addCriterion("accept between", value1, value2, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andAcceptNotBetween(String value1, String value2) {
+            addCriterion("accept not between", value1, value2, "accept");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonIsNull() {
+            addCriterion("reason is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonIsNotNull() {
+            addCriterion("reason is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonEqualTo(String value) {
+            addCriterion("reason =", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotEqualTo(String value) {
+            addCriterion("reason <>", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonGreaterThan(String value) {
+            addCriterion("reason >", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonGreaterThanOrEqualTo(String value) {
+            addCriterion("reason >=", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonLessThan(String value) {
+            addCriterion("reason <", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonLessThanOrEqualTo(String value) {
+            addCriterion("reason <=", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonLike(String value) {
+            addCriterion("reason like", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotLike(String value) {
+            addCriterion("reason not like", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonIn(List<String> values) {
+            addCriterion("reason in", values, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotIn(List<String> values) {
+            addCriterion("reason not in", values, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonBetween(String value1, String value2) {
+            addCriterion("reason between", value1, value2, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotBetween(String value1, String value2) {
+            addCriterion("reason not between", value1, value2, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultIsNull() {
+            addCriterion("result is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultIsNotNull() {
+            addCriterion("result is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultEqualTo(String value) {
+            addCriterion("result =", value, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultNotEqualTo(String value) {
+            addCriterion("result <>", value, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultGreaterThan(String value) {
+            addCriterion("result >", value, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultGreaterThanOrEqualTo(String value) {
+            addCriterion("result >=", value, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultLessThan(String value) {
+            addCriterion("result <", value, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultLessThanOrEqualTo(String value) {
+            addCriterion("result <=", value, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultLike(String value) {
+            addCriterion("result like", value, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultNotLike(String value) {
+            addCriterion("result not like", value, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultIn(List<String> values) {
+            addCriterion("result in", values, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultNotIn(List<String> values) {
+            addCriterion("result not in", values, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultBetween(String value1, String value2) {
+            addCriterion("result between", value1, value2, "result");
+            return (Criteria) this;
+        }
+
+        public Criteria andResultNotBetween(String value1, String value2) {
+            addCriterion("result not between", value1, value2, "result");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table t_order_back
+     *
+     * @mbg.generated do_not_delete_during_merge Wed Nov 21 11:44:14 CST 2018
+     */
+    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_back
+     *
+     * @mbg.generated Wed Nov 21 11:44:14 CST 2018
+     */
+    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);
+        }
+    }
+}

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

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

+ 58 - 0
src/main/java/com/goafanti/order/bo/TOrderNewBo.java

@@ -1,5 +1,6 @@
 package com.goafanti.order.bo;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 
 import com.goafanti.common.constant.AFTConstants;
@@ -13,8 +14,17 @@ public class TOrderNewBo extends TOrderNew{
 	private String financeName;
 	private String dunSubject;
 	private String startDate;
+	private String financeMobile;
+	private String salesmanMobile;
+	private Integer backStatus;
+	private String initiateName;
+	private String reason;
+	private String backDate;
 	
 	public String getSignDate() {
+		if (StringUtils.isBlank(signDate)&&super.getSignTime()!=null) {
+			return DateFormatUtils.format(super.getSignTime(), AFTConstants.YYYYMMDD);
+		}
 		return signDate;
 	}
 
@@ -85,5 +95,53 @@ public class TOrderNewBo extends TOrderNew{
 	public void setId(String id) {
 		this.id = id;
 	}
+
+	public String getFinanceMobile() {
+		return financeMobile;
+	}
+
+	public void setFinanceMobile(String financeMobile) {
+		this.financeMobile = financeMobile;
+	}
+
+	public String getSalesmanMobile() {
+		return salesmanMobile;
+	}
+
+	public void setSalesmanMobile(String salesmanMobile) {
+		this.salesmanMobile = salesmanMobile;
+	}
+
+	public Integer getBackStatus() {
+		return backStatus;
+	}
+
+	public void setBackStatus(Integer backStatus) {
+		this.backStatus = backStatus;
+	}
+
+	public String getInitiateName() {
+		return initiateName;
+	}
+
+	public void setInitiateName(String initiateName) {
+		this.initiateName = initiateName;
+	}
+
+	public String getReason() {
+		return reason;
+	}
+
+	public void setReason(String reason) {
+		this.reason = reason;
+	}
+
+	public String getBackDate() {
+		return backDate;
+	}
+
+	public void setBackDate(String backDate) {
+		this.backDate = backDate;
+	}
 	
 }

+ 53 - 12
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -16,6 +16,8 @@ import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
+import com.goafanti.order.enums.ApprovalNewState;
+import com.goafanti.order.enums.OrderNewState;
 import com.goafanti.order.service.OrderNewService;
 
 @RestController
@@ -71,7 +73,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	public Result updateOrderTask(TOrderTask t){
 		Result res=new Result();
 		if(null==t.getId()){
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","项目编号"));
 			return res;
 		}
 		if (t.getOrderNo()!=null&&orderNewService.checkOrderMain(t)) {
@@ -94,6 +96,20 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		}
 		return res.data(orderNewService.delectOrderTask(id));
 	}
+	/**
+	 * 删除订单
+	 * @param detailId
+	 * @return
+	 */
+	@RequestMapping(value = "/deleteOrderNew",method = RequestMethod.POST)
+	public Result deleteOrderNew(String orderNo){
+		Result res = new Result();
+		if(StringUtils.isBlank(orderNo)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
+			return res;
+		}
+		return res.data(orderNewService.deleteOrderNew(orderNo));
+	}
 	
 	/**
 	 * 获取订单项目信息
@@ -193,27 +209,32 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	 * 订单列表
 	 */
 	@RequestMapping(value="/orderNewList", method = RequestMethod.GET)
-	public Result orderNewList(String name,String orderNo,String starTime,String endTime,Integer orderStatus,Integer pageNo,Integer pageSize){
+	public Result orderNewList(String name,String orderNo,String starTime,String endTime ,Integer specially ,Integer pageNo,Integer pageSize){
 		Result res=new Result();
-		res.data(orderNewService.orderNewList(name, orderNo, starTime, endTime,orderStatus, pageNo, pageSize));
+		res.data(orderNewService.orderNewList(name, orderNo, starTime, endTime, specially , pageNo, pageSize));
 		return res;
 	}
+	
 	/**
 	 * 订单审核
 	 */
-	@RequestMapping(value="/auditOrderNew", method = RequestMethod.GET)
-	public Result auditOrderNewList(String orderNo,Integer orderStatus){
+	@RequestMapping(value="/auditOrderNew", method = RequestMethod.POST)
+	public Result auditOrderNewList(String orderNo,Integer orderStatus,String reason){
 		Result res=new Result();
 		if(StringUtils.isBlank(orderNo)){
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
 			return res;
 		}
-		if(orderStatus==null||(orderStatus!=2&&orderStatus!=3)){
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "审核状态","审核状态"));
+		if(orderStatus==null||(orderStatus!=OrderNewState.QDSHTG.getCode()&&orderStatus!=OrderNewState.QDSHJJ.getCode())||
+				orderNewService.chekeOrderStatus(orderNo)){
+			res.getError().add(buildError( "审核状态错误","审核状态错误"));
 			return res;
 		}
-		orderNewService.updateOrderNew(orderNo,orderStatus);
-		return res;
+		if (orderStatus==OrderNewState.QDSHJJ.getCode()&&StringUtils.isBlank(reason)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"驳回原因", "驳回原因"));
+			return res;
+		}
+		return res.data(orderNewService.updateOrderNew(orderNo,orderStatus,reason));
 	}
 	/**
 	 * 催款统计列表
@@ -269,6 +290,14 @@ public class AdminNewOrderApiController extends CertifyApiController {
 				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "合同与申请表","合同与申请表"));
 				return res;
 			}
+			if (StringUtils.isBlank(t.getReason())) {
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "退单原因","退单原因"));
+				return res;
+			}
+			if(orderNewService.checkOderSettlementAmount(t.getOrderNo())){
+				res.getError().add(buildError( "未达退单条件","未达退单条件"));
+				return res;
+			}
 			res.data(orderNewService.addOrderRefund(t));
 			return res;
 	}
@@ -277,10 +306,22 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	 * @param orderNo
 	 * @return
 	 */
-	@RequestMapping(value = "/approvalOrder",method = RequestMethod.GET)
+	@RequestMapping(value = "/approvalOrder",method = RequestMethod.POST)
 	public Result approvalOrder(String orderNo,Integer confirm,String reason){
 		Result res = new Result();
-		orderNewService.updateApprovalOrder(orderNo,confirm,reason);
-		return res;
+		if (StringUtils.isBlank(orderNo)||confirm==null) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号和审批","订单编号和审批"));
+			return res;
+		}
+		if (confirm==ApprovalNewState.BH.getCode()&&StringUtils.isBlank(reason)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"驳回原因", "驳回原因"));
+			return res;
+		}
+		if (orderNewService.chekeApprovalOrderStatus(orderNo)) {
+			res.getError().add(buildError( "审核状态错误","审核状态错误"));
+			return res;
+		}
+		return res.data(orderNewService.updateApprovalOrder(orderNo,confirm,reason));
 	}
+	
 }

+ 4 - 0
src/main/java/com/goafanti/order/enums/ApprovalNewState.java

@@ -4,9 +4,13 @@ import java.util.HashMap;
 import java.util.Map;
 
 public enum ApprovalNewState {
+	/** 非特批 **/
 	FTP(0,"非特批"),
+	/** 待审核 **/
 	DSH(1,"待审核"),
+	/** 通过 **/
 	TG(2,"通过"),
+	/** 驳回 **/
 	BH(3,"驳回"),
 	/** 无效 **/
 	INVALID(10, "INVALID");

+ 7 - 5
src/main/java/com/goafanti/order/enums/OrderNewState.java

@@ -4,17 +4,19 @@ import java.util.HashMap;
 import java.util.Map;
 
 public enum OrderNewState {
-	/** 意向阶段 **/
+	/** 待签单 **/
 	DQD(0,"待签单 "),
-	/** 跟单阶段 **/
+	/** 签单待审 **/
 	QDDS(1,"签单待审"),
-	/** 合同阶段 **/
+	/** 签单审核通过 **/
 	QDSHTG(2,"签单审核通过"),
-	/** 项目阶段 **/
+	/** 签单审核拒绝 **/
 	QDSHJJ(3, "签单审核拒绝"),
-	
+	/** 已结项 **/
 	YJX(4, "已结项"),
+	/** 已驳回 **/
 	YBH(5, "已驳回"),
+	/** 已退单 **/
 	YTD(6, "已退单");
 	
 	private OrderNewState(Integer code, String desc) {

+ 7 - 0
src/main/java/com/goafanti/order/enums/ProcessStatus.java

@@ -9,12 +9,19 @@ import java.util.Map;
  *
  */
 public enum ProcessStatus {
+	/** 已派营销员 **/
 	YPYXY(0,"已派营销员"),
+	/** 已派营销管理员 **/
 	YPYXGLY(1,"已派营销管理员"),
+	/** 已派财务管理员 **/
 	YPCWGLY(2,"已派财务管理员"),
+	/** 已派财务专员 **/
 	YPCWZY(3,"已派财务专员"),
+	/** 已派咨询师管理员 **/
 	YPZXSGLY(4,"已派咨询师管理员"),
+	/** 已部分派咨询师经理 **/
 	YBFPZXSGLY(5,"已部分派咨询师经理"),
+	/** 已全部分派咨询师经理 **/
 	YQBFPZXSGLY(6,"已全部分派咨询师经理"),
 	/** 无效 **/
 	INVALID(10, "INVALID");

+ 8 - 3
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -9,6 +9,7 @@ import com.goafanti.common.model.TOrderRefund;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
 import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.order.bo.BackOrderListBo;
 import com.goafanti.order.bo.BillListBo;
 import com.goafanti.order.bo.TDunLogListBo;
 import com.goafanti.order.bo.TOrderNewBo;
@@ -76,14 +77,14 @@ public interface OrderNewService {
 	 * @param pageSize
 	 * @return
 	 */
-	Pagination<TOrderNewBo> orderNewList(String name, String orderNo, String starTime, String endTime, Integer orderStatus,Integer pageNo, Integer pageSize);
+	Pagination<TOrderNewBo> orderNewList(String name, String orderNo, String starTime, String endTime,Integer specially ,Integer pageNo, Integer pageSize);
 	/**
 	 * 订单审核
 	 * @param orderNo
 	 * @param orderStatus
 	 * @return
 	 */
-	int updateOrderNew(String orderNo, Integer orderStatus);
+	int updateOrderNew(String orderNo, Integer orderStatus,String reason);
 	
 	/**
 	 * 催款订单列表
@@ -124,7 +125,11 @@ public interface OrderNewService {
 	int updateApprovalOrder(String orderNo,Integer confirm,String reason);
 	List<TOrderDun> selectOrderDun(String orderNo);
 	boolean checkOrderMain(TOrderTask t);
-	
+	boolean chekeOrderStatus(String orderNo);
+	boolean chekeApprovalOrderStatus(String orderNo);
+	int deleteOrderNew(String orderNo);
+	boolean checkOderSettlementAmount(String orderNo);
+
 
 	
 }

+ 101 - 18
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -26,6 +26,7 @@ import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.dao.OrganizationContactBookMapper;
 import com.goafanti.common.dao.TDunLogMapper;
+import com.goafanti.common.dao.TOrderBackMapper;
 import com.goafanti.common.dao.TOrderDunMapper;
 import com.goafanti.common.dao.TOrderMapper;
 import com.goafanti.common.dao.TOrderNewMapper;
@@ -37,6 +38,7 @@ import com.goafanti.common.error.BusinessException;
 import com.goafanti.common.model.OrganizationContactBook;
 import com.goafanti.common.model.TDunLog;
 import com.goafanti.common.model.TOrder;
+import com.goafanti.common.model.TOrderBack;
 import com.goafanti.common.model.TOrderDetail;
 import com.goafanti.common.model.TOrderDun;
 import com.goafanti.common.model.TOrderNew;
@@ -50,6 +52,7 @@ import com.goafanti.core.mybatis.JDBCIdGenerator;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.customer.bo.LockingReleaseBo;
+import com.goafanti.order.bo.BackOrderListBo;
 import com.goafanti.order.bo.TDunLogListBo;
 import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.bo.TOrderTaskBo;
@@ -57,6 +60,7 @@ import com.goafanti.order.enums.ActiveState;
 import com.goafanti.order.enums.ApprovalNewState;
 import com.goafanti.order.enums.LiquidationNewState;
 import com.goafanti.order.enums.OrderNewState;
+import com.goafanti.order.enums.OrderState;
 import com.goafanti.order.enums.ProcessStatus;
 import com.goafanti.order.enums.ProjectNewStage;
 import com.goafanti.order.enums.TaskState;
@@ -76,6 +80,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Autowired
 	private TOrderRefundMapper	tOrderRefundMapper;	
 	@Autowired
+	private TOrderBackMapper	tOrderBackMapper;
+	@Autowired
 	private OrganizationContactBookMapper	organizationContactBookMapper;
 	@Autowired
 	private JDBCIdGenerator	idGenerator;
@@ -177,7 +183,18 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		contactBook.setName(t.getContacts());
 		contactBook.setMobile(t.getContactMobile());
 		organizationContactBookMapper.insertSelective(contactBook);
-		t.setOrderStatus(isSubmit==1?1:0);
+		if (isSubmit==1) {
+			t.setOrderStatus(OrderNewState.QDDS.getCode());
+			if (t.getApproval()==ApprovalNewState.FTP.getCode()) {
+				t.setProcessStatus(ProcessStatus.YPYXGLY.getCode());
+			}
+		}
+		TOrderNew t2=tOrderNewMapper.selectByPrimaryKey(t.getOrderNo());
+		if (t2.getApproval()==ApprovalNewState.BH.getCode()||
+				t2.getOrderStatus()==OrderNewState.QDSHJJ.getCode()||
+					t2.getOrderStatus()==OrderNewState.YBH.getCode()) {
+			tOrderBackMapper.updateByOrderNoAndBackStatus(t.getOrderNo());
+		}
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
 	}
 
@@ -185,14 +202,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 	@Override
 	public TOrderNewBo getOrderNewDetail(String orderNo) {
-		TOrderNew tOrder= tOrderNewMapper.selectByPrimaryKey(orderNo);
-		TOrderNewBo bo =new TOrderNewBo();
-		try {
-			BeanUtilsExt.copyProperties( bo,tOrder);
-		} catch (IllegalAccessException | InvocationTargetException e) {
-			e.printStackTrace();
-		}
-		return bo;
+		TOrderNewBo tOrder= tOrderNewMapper.getOrderNewDetail(orderNo);
+		return tOrder;
 	}
 
 
@@ -230,15 +241,16 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<TOrderNewBo> orderNewList(String name, String orderNo, String starTime, String endTime,Integer orderStatus, Integer pageNo,
+	public Pagination<TOrderNewBo> orderNewList(String name, String orderNo, String starTime, String endTime,Integer specially, 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 (orderStatus!=null&&orderStatus==1) {
-			params.put("orderStatus", orderStatus);
+		if (specially!=null&&specially==0) {
+			params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
+			params.put("specially",specially);
 		}else {
-			if (StringUtils.isNotBlank(TokenManager.getAdminId())) params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
+			params.put("specially",specially);
 		}
 		if (StringUtils.isNotBlank(name)) params.put("name", name);
 		if (StringUtils.isNotBlank(orderNo)) params.put("orderNo", orderNo);
@@ -251,15 +263,37 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 
 	@Override
-	public int updateOrderNew(String orderNo, Integer orderStatus) {
+	public int updateOrderNew(String orderNo, Integer orderStatus,String reason) {
 		TOrderNew t= new TOrderNew();
+		TOrderNew t2= tOrderNewMapper.selectByPrimaryKey(orderNo);
 		t.setOrderNo(orderNo);
+		if (orderStatus==OrderNewState.QDSHTG.getCode()&&t2.getApproval()==ApprovalNewState.FTP.getCode()) {//如果通过分配给财务管理员
+				t.setProcessStatus(ProcessStatus.YPCWGLY.getCode());
+		}
+		if (orderStatus==OrderNewState.QDSHJJ.getCode()) {//如果不通过新增驳回
+			t.setProcessStatus(ProcessStatus.YPYXY.getCode());
+			addBackOrder(orderNo, reason);
+		}
 		t.setOrderStatus(orderStatus);
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
 	}
 
 
 
+	private void addBackOrder(String orderNo, String reason) {
+		TOrderBack ob=new TOrderBack();
+		TOrderNew tOrder= tOrderNewMapper.selectByPrimaryKey(orderNo);
+		ob.setCreateTime(new Date());
+		ob.setOrderNo(orderNo);
+		ob.setReason(reason);
+		ob.setBackStatus(0);//待处理
+		ob.setInitiate(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
+		ob.setAccept(tOrder.getSalesmanId());
+		tOrderBackMapper.insertSelective(ob);
+	}
+
+
+
 	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<TOrderNewBo> dunOrderNewList(String name, String orderNo, String starTime, String endTime,
@@ -304,10 +338,12 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 	@Override
 	public int addOrderRefund(TOrderRefundWithBLOBs t) {
+		TOrderNew tOrder= tOrderNewMapper.selectByPrimaryKey(t.getOrderNo());
 		t.setRefundStatus(refundState.DSH.getCode());
 		t.setCreateTime(new Date());
 		t.setInitiate(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
-		t.setAccept("受理人");
+		t.setAccept("1");
+		//t.setAccept(tOrder.getFinanceId());
 		t.setResult("");
 		return tOrderRefundMapper.insertSelective(t);
 	}
@@ -323,10 +359,10 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			t.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
 		} else {
 			t.setApproval(3);
-			//TOrderb
-			
+			t.setOrderStatus(OrderNewState.YBH.getCode());
+			addBackOrder(orderNo, reason);
 		}
-		return 1;
+		return tOrderNewMapper.updateByPrimaryKeySelective(t);
 	}
 
 
@@ -353,5 +389,52 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		}
 		return flag;
 	}
+
+
+
+	@Override
+	public boolean chekeOrderStatus(String orderNo) {
+		TOrderNew tOrder= tOrderNewMapper.selectByPrimaryKey(orderNo);
+		if (tOrder.getOrderStatus()!=OrderNewState.QDDS.getCode()) {
+			return true;
+		}
+		return false;
+	}
+
+
+
+	@Override
+	public boolean chekeApprovalOrderStatus(String orderNo) {
+		TOrderNew tOrder= tOrderNewMapper.selectByPrimaryKey(orderNo);
+		if (tOrder.getApproval()==ApprovalNewState.FTP.getCode()||
+				tOrder.getOrderStatus()==OrderNewState.QDSHJJ.getCode()||
+					tOrder.getOrderStatus()==OrderNewState.YBH.getCode()) {
+			return true;
+		}
+		return false;
+	}
+
+
+
+	@Override
+	public int deleteOrderNew(String orderNo) {
+		TOrderNew t=new TOrderNew();
+		t.setOrderNo(orderNo);
+		t.setDeleteSign(1);//作废
+		return tOrderNewMapper.updateByPrimaryKeySelective(t);
+	}
+
+
+
+	@Override
+	public boolean checkOderSettlementAmount(String orderNo) {
+		TOrderNew tOrder= tOrderNewMapper.selectByPrimaryKey(orderNo);
+		if (tOrder.getSettlementAmount()==null||tOrder.getSettlementAmount().doubleValue()==0){
+				return true;
+		}
+		return false;
+	}
+	
+	
 	
 }