Explorar o código

Merge remote-tracking branch 'origin/test' into dev

anderx %!s(int64=7) %!d(string=hai) anos
pai
achega
c81aeca342
Modificáronse 28 ficheiros con 2332 adicións e 146 borrados
  1. 46 1
      src/main/java/com/goafanti/common/dao/TOrderBonusMapper.java
  2. 85 0
      src/main/java/com/goafanti/common/dao/TOrderMonthReportMapper.java
  3. 37 38
      src/main/java/com/goafanti/common/mapper/TOrderBonusMapper.xml
  4. 407 0
      src/main/java/com/goafanti/common/mapper/TOrderMonthReportMapper.xml
  5. 2 2
      src/main/java/com/goafanti/common/mapper/TOrderRefundMapper.xml
  6. 105 2
      src/main/java/com/goafanti/common/model/TOrderBonus.java
  7. 67 1
      src/main/java/com/goafanti/common/model/TOrderBonusExample.java
  8. 169 0
      src/main/java/com/goafanti/common/model/TOrderMonthReport.java
  9. 701 0
      src/main/java/com/goafanti/common/model/TOrderMonthReportExample.java
  10. 28 0
      src/main/java/com/goafanti/common/task/MonthReportTask.java
  11. 150 3
      src/main/java/com/goafanti/common/utils/ExcelUtils.java
  12. 159 44
      src/main/java/com/goafanti/common/utils/ExportExcelUtil.java
  13. 50 0
      src/main/java/com/goafanti/order/bo/OrderReportBo.java
  14. 3 2
      src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java
  15. 9 9
      src/main/java/com/goafanti/order/controller/FundManagerOrderApiController.java
  16. 147 6
      src/main/java/com/goafanti/order/controller/OrderBonusStatisticsApiController.java
  17. 2 2
      src/main/java/com/goafanti/order/controller/OrderProjectApiController.java
  18. 2 2
      src/main/java/com/goafanti/order/service/OrderBillService.java
  19. 2 2
      src/main/java/com/goafanti/order/service/OrderBonusService.java
  20. 2 6
      src/main/java/com/goafanti/order/service/OrderNewService.java
  21. 2 2
      src/main/java/com/goafanti/order/service/OrderProjectService.java
  22. 44 0
      src/main/java/com/goafanti/order/service/OrderReportService.java
  23. 10 1
      src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java
  24. 3 3
      src/main/java/com/goafanti/order/service/impl/OrderBillServiceImpl.java
  25. 3 3
      src/main/java/com/goafanti/order/service/impl/OrderBonusServiceImpl.java
  26. 4 13
      src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java
  27. 3 4
      src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java
  28. 90 0
      src/main/java/com/goafanti/order/service/impl/OrderReportServiceImpl.java

+ 46 - 1
src/main/java/com/goafanti/common/dao/TOrderBonusMapper.java

@@ -12,59 +12,104 @@ public interface TOrderBonusMapper {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	long countByExample(TOrderBonusExample example);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	int deleteByExample(TOrderBonusExample example);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	int deleteByPrimaryKey(String id);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	int insert(TOrderBonus record);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	int insertSelective(TOrderBonus record);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	List<TOrderBonus> selectByExample(TOrderBonusExample example);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	TOrderBonus selectByPrimaryKey(String id);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	int updateByExampleSelective(@Param("record") TOrderBonus record, @Param("example") TOrderBonusExample example);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	int updateByExample(@Param("record") TOrderBonus record, @Param("example") TOrderBonusExample example);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	int updateByPrimaryKeySelective(TOrderBonus record);
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	int updateByPrimaryKey(TOrderBonus record);
 	List<TOrderBonusBo> getDeptBySome(TOrderBonusBo bonusBo);
 	List<TOrderBonusBo> getBonusData(TOrderBonusBo bonusBo);
-}
+	
+}

+ 85 - 0
src/main/java/com/goafanti/common/dao/TOrderMonthReportMapper.java

@@ -0,0 +1,85 @@
+package com.goafanti.common.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.goafanti.common.model.TOrderMonthReport;
+import com.goafanti.common.model.TOrderMonthReportExample;
+import com.goafanti.order.bo.OrderReportBo;
+
+public interface TOrderMonthReportMapper {
+    /**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	int countByExample(TOrderMonthReportExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	int deleteByExample(TOrderMonthReportExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	int deleteByPrimaryKey(Integer id);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	int insert(TOrderMonthReport record);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	int insertSelective(TOrderMonthReport record);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	List<TOrderMonthReport> selectByExample(TOrderMonthReportExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	TOrderMonthReport selectByPrimaryKey(Integer id);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	int updateByExampleSelective(@Param("record") TOrderMonthReport record,
+			@Param("example") TOrderMonthReportExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	int updateByExample(@Param("record") TOrderMonthReport record,
+			@Param("example") TOrderMonthReportExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	int updateByPrimaryKeySelective(TOrderMonthReport record);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	int updateByPrimaryKey(TOrderMonthReport record);
+
+	int insertLastMonthOrderData();
+	
+	List<OrderReportBo> exportMonthData(OrderReportBo orderReportBo);
+	
+	int checkData(OrderReportBo orderReportBo);
+}

+ 37 - 38
src/main/java/com/goafanti/common/mapper/TOrderBonusMapper.xml

@@ -4,8 +4,8 @@
   <resultMap id="BaseResultMap" type="com.goafanti.common.model.TOrderBonus">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     <id column="id" jdbcType="VARCHAR" property="id" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
@@ -20,8 +20,8 @@
   <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 Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     <where>
       <foreach collection="oredCriteria" item="criteria" separator="or">
@@ -54,8 +54,8 @@
   <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 Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     <where>
       <foreach collection="example.oredCriteria" item="criteria" separator="or">
@@ -88,8 +88,8 @@
   <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 Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     id, create_time, order_no, bonus_subject, grant_status, grant_target, grant_by, grant_time, 
     grant_type
@@ -97,8 +97,8 @@
   <select id="selectByExample" parameterType="com.goafanti.common.model.TOrderBonusExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     select
     <if test="distinct">
@@ -116,8 +116,8 @@
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     select 
     <include refid="Base_Column_List" />
@@ -127,8 +127,8 @@
   <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     delete from t_order_bonus
     where id = #{id,jdbcType=VARCHAR}
@@ -136,8 +136,8 @@
   <delete id="deleteByExample" parameterType="com.goafanti.common.model.TOrderBonusExample">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     delete from t_order_bonus
     <if test="_parameter != null">
@@ -147,8 +147,8 @@
   <insert id="insert" parameterType="com.goafanti.common.model.TOrderBonus">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     insert into t_order_bonus (id, create_time, order_no, 
       bonus_subject, grant_status, grant_target, 
@@ -162,8 +162,8 @@
   <insert id="insertSelective" parameterType="com.goafanti.common.model.TOrderBonus">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     insert into t_order_bonus
     <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -228,8 +228,8 @@
   <select id="countByExample" parameterType="com.goafanti.common.model.TOrderBonusExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     select count(*) from t_order_bonus
     <if test="_parameter != null">
@@ -239,8 +239,8 @@
   <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 Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     update t_order_bonus
     <set>
@@ -279,8 +279,8 @@
   <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 Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     update t_order_bonus
     set id = #{record.id,jdbcType=VARCHAR},
@@ -299,8 +299,8 @@
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TOrderBonus">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     update t_order_bonus
     <set>
@@ -334,8 +334,8 @@
   <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TOrderBonus">
     <!--
       WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Nov 27 11:15:28 CST 2018.
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 11:15:28 CST 2018.
     -->
     update t_order_bonus
     set create_time = #{createTime,jdbcType=TIMESTAMP},
@@ -361,7 +361,7 @@
   		left join admin a on a.id = t.task_receiver 
   		left join admin oa on oa.id = o.salesman_id
   		left join admin ga on ga.id = b.grant_by 
-  		where b.bonus_subject &gt;= 20
+  		where b.grant_status = 1
   		<if test="b.grantBy != null">
   		and b.grant_by = #{b.grantBy,jdbcType=VARCHAR}
   		</if>
@@ -393,7 +393,7 @@
   		left join t_order_task t on t.order_no = b.order_no and t.main=1
   		left join admin a on a.id = t.task_receiver 
   		left join admin oa on oa.id = o.salesman_id
-  		where b.bonus_subject &gt;= 20
+  		where b.grant_status = 1
   		<if test="b.grantBy != null">
   		and b.grant_by = #{b.grantBy,jdbcType=VARCHAR}
   		</if>
@@ -426,7 +426,7 @@
 	left join t_order_new o on o.order_no = b.order_no
 	left join admin a on o.salesman_id = a.id
 	left join `user` u on o.buyer_id = u.id
-	where b.bonus_subject &lt;20
+	where b.grant_status = 0
 	
 	<if test="b.grantBy != null">
 	and b.grant_by = #{b.grantBy,jdbcType=VARCHAR}
@@ -455,7 +455,7 @@
 	left join t_order_new o on o.order_no = b.order_no
 	left join admin a on o.salesman_id = a.id
 	left join `user` u on o.buyer_id = u.id
-	where b.bonus_subject &lt;20
+	where b.grant_status = 0
 	<if test="b.grantBy != null">
 	and b.grant_by = #{b.grantBy,jdbcType=VARCHAR}
 	</if>
@@ -481,7 +481,7 @@
 	left join admin a on b.grant_target = a.id
 	left join `user` u on o.buyer_id = u.id
 	left join department d on d.id = a.department_id
-	where b.bonus_subject &lt;20
+	where b.grant_status = 0
 	<if test="grantBy != null">
 	and b.grant_by = #{grantBy,jdbcType=VARCHAR}
 	</if>
@@ -511,7 +511,7 @@
   		left join admin a on a.id = t.task_receiver 
   		left join admin oa on oa.id = o.salesman_id
   		left join admin ga on ga.id = b.grant_by 
-  		where b.bonus_subject &gt;= 20
+  		where b.grant_status = 0
   		<if test="grantBy != null">
   		and b.grant_by = #{grantBy,jdbcType=VARCHAR}
   		</if>
@@ -533,5 +533,4 @@
   		</if>
   		order by b.grant_status ,b.create_time 
   </select>
-  
-</mapper>
+</mapper>

+ 407 - 0
src/main/java/com/goafanti/common/mapper/TOrderMonthReportMapper.xml

@@ -0,0 +1,407 @@
+<?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.TOrderMonthReportMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.TOrderMonthReport">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="type" jdbcType="INTEGER" property="type" />
+    <result column="month" jdbcType="INTEGER" property="month" />
+    <result column="amount" jdbcType="DECIMAL" property="amount" />
+    <result column="proof_count" jdbcType="REAL" property="proofCount" />
+    <result column="salemans_id" jdbcType="VARCHAR" property="salemansId" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53: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 - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53: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 - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    id, type, month, amount, proof_count, salemans_id, update_time
+  </sql>
+  <select id="selectByExample" parameterType="com.goafanti.common.model.TOrderMonthReportExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from t_order_month_report
+    <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 - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from t_order_month_report
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    delete from t_order_month_report
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.goafanti.common.model.TOrderMonthReportExample">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    delete from t_order_month_report
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.TOrderMonthReport">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    insert into t_order_month_report (id, type, month, 
+      amount, proof_count, salemans_id, 
+      update_time)
+    values (#{id,jdbcType=INTEGER}, #{type,jdbcType=INTEGER}, #{month,jdbcType=INTEGER}, 
+      #{amount,jdbcType=DECIMAL}, #{proofCount,jdbcType=REAL}, #{salemansId,jdbcType=VARCHAR}, 
+      #{updateTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.TOrderMonthReport">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    insert into t_order_month_report
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="type != null">
+        type,
+      </if>
+      <if test="month != null">
+        month,
+      </if>
+      <if test="amount != null">
+        amount,
+      </if>
+      <if test="proofCount != null">
+        proof_count,
+      </if>
+      <if test="salemansId != null">
+        salemans_id,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="type != null">
+        #{type,jdbcType=INTEGER},
+      </if>
+      <if test="month != null">
+        #{month,jdbcType=INTEGER},
+      </if>
+      <if test="amount != null">
+        #{amount,jdbcType=DECIMAL},
+      </if>
+      <if test="proofCount != null">
+        #{proofCount,jdbcType=REAL},
+      </if>
+      <if test="salemansId != null">
+        #{salemansId,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.goafanti.common.model.TOrderMonthReportExample" resultType="java.lang.Integer">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    select count(*) from t_order_month_report
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    update t_order_month_report
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.type != null">
+        type = #{record.type,jdbcType=INTEGER},
+      </if>
+      <if test="record.month != null">
+        month = #{record.month,jdbcType=INTEGER},
+      </if>
+      <if test="record.amount != null">
+        amount = #{record.amount,jdbcType=DECIMAL},
+      </if>
+      <if test="record.proofCount != null">
+        proof_count = #{record.proofCount,jdbcType=REAL},
+      </if>
+      <if test="record.salemansId != null">
+        salemans_id = #{record.salemansId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    update t_order_month_report
+    set id = #{record.id,jdbcType=INTEGER},
+      type = #{record.type,jdbcType=INTEGER},
+      month = #{record.month,jdbcType=INTEGER},
+      amount = #{record.amount,jdbcType=DECIMAL},
+      proof_count = #{record.proofCount,jdbcType=REAL},
+      salemans_id = #{record.salemansId,jdbcType=VARCHAR},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TOrderMonthReport">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    update t_order_month_report
+    <set>
+      <if test="type != null">
+        type = #{type,jdbcType=INTEGER},
+      </if>
+      <if test="month != null">
+        month = #{month,jdbcType=INTEGER},
+      </if>
+      <if test="amount != null">
+        amount = #{amount,jdbcType=DECIMAL},
+      </if>
+      <if test="proofCount != null">
+        proof_count = #{proofCount,jdbcType=REAL},
+      </if>
+      <if test="salemansId != null">
+        salemans_id = #{salemansId,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TOrderMonthReport">
+    <!--
+      WARNING - @mbggenerated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Nov 27 14:53:14 CST 2018.
+    -->
+    update t_order_month_report
+    set type = #{type,jdbcType=INTEGER},
+      month = #{month,jdbcType=INTEGER},
+      amount = #{amount,jdbcType=DECIMAL},
+      proof_count = #{proofCount,jdbcType=REAL},
+      salemans_id = #{salemansId,jdbcType=VARCHAR},
+      update_time = #{updateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+   <!-- 定时插入上月的签单数据 -->
+  <insert id="insertLastMonthOrderData" parameterType="java.lang.String">
+  	INSERT INTO t_order_month_report(`type`,`month`,amount,proof_count,salemans_id) 
+	select o.order_type, date_format(DATE_ADD(NOW(),INTERVAL -1 MONTH),'%Y%m'),sum(o.total_amount), sum(o.proof_count), o.salesman_id 
+	from t_order_new o
+	where 1 = 1
+	  and o.proof_status = 1
+	  and PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( o.sign_time, '%Y%m' ) ) = 1
+	group by o.salesman_id , o.order_type
+  </insert>
+  <!-- 定时插入上一年的数据 -->
+  <insert id="insertLastYearOrderData" parameterType="java.lang.String">
+  	INSERT INTO t_order_year_report(`type`,`year`,amount,proof_count,salemans_id) 
+	select m.`type`, m.`year`, sum(amount), sum(proof_count), salemans_id from t_order_month_report m
+	where m.`year` = year(date_sub(now(),interval 1 year))
+	group by m.salemans_id , m.`type`
+  </insert>
+  <!-- 查看订单统计数据 -->
+  <select id="getOrderReportDataList" parameterType="Map" resultType="com.goafanti.order.bo.OrderReportBo">
+  	select @rowno:= @rowno+1 as id, d.name as deptName, a.name as saleName, m.`type`, sum(proof_count) as proofCount, sum(amount) as amount
+	from t_order_month_report m
+	left join admin a on m.salemans_id = a.id
+	left join department d on d.id = a.department_id
+	,(select @rowno:=0)c
+	where 
+	`month` between #{r.month,jdbcType=INTEGER} and  #{r.month1,jdbcType=INTEGER}
+	<if test='r.departmentId != null and r.departmentId != ""'>
+	 and a.department_id = #{r.departmentId,jdbcType=VARCHAR}
+	</if>
+	<if test='r.type != null and r.type != ""'><!-- 装数据是0变成null 加一处理后减一 -->
+	 and m.type= #{r.type,jdbcType=INTEGER} -1
+	</if>
+	<if test='r.saleName != null and r.saleName != ""'>
+	<bind name="n" value=" '%' + r.saleName + '%'"/>
+	 and a.name like #{n,jdbcType=VARCHAR}
+	</if>
+	group by
+	a.department_id, a.id, m.`type`
+	<if test="page_sql != null">
+		${page_sql}
+	</if>
+  </select>
+  <select id="getOrderReportDataCount" parameterType="Map" resultType="java.lang.Integer">
+  	select count(*)
+	from t_order_month_report m
+	left join admin a on m.salemans_id = a.id
+	left join department d on d.id = a.department_id
+	where 
+	`month` between #{r.month,jdbcType=INTEGER} and  #{r.month1,jdbcType=INTEGER}
+	<if test='r.departmentId != null and r.departmentId != ""'>
+	 and a.department_id = #{r.departmentId,jdbcType=VARCHAR}
+	</if>
+	<if test='r.type != null and r.type != ""'>
+	 and m.type= #{r.type,jdbcType=INTEGER} -1
+	</if>
+	<if test='r.saleName != null and r.saleName != ""'>
+	<bind name="n" value=" '%' + r.saleName + '%'"/>
+	 and a.name like #{n,jdbcType=VARCHAR}
+	</if>
+  </select>
+ <!-- 导出月统计 -->
+ <select id="exportMonthData" parameterType="com.goafanti.order.bo.OrderReportBo" resultType="com.goafanti.order.bo.OrderReportBo">
+ 	select  @rowno:= @rowno+1 as id, d.name as deptName, a.name as saleName, m.`type`, sum(proof_count) as proofCount, sum(amount) as amount
+	from t_order_month_report m
+	left join admin a on m.salemans_id = a.id
+	left join department d on d.id = a.department_id
+	,(select @rowno:=0)c
+	where 
+	`month` between #{month,jdbcType=INTEGER} and  #{month1,jdbcType=INTEGER}
+	<if test='departmentId != null and departmentId != ""'>
+	 and a.department_id = #{departmentId,jdbcType=VARCHAR}
+	</if>
+	<if test='type != null and type != ""'>
+	 and m.type= #{type,jdbcType=INTEGER}
+	</if>
+	<if test='saleName != null and saleName != ""'>
+	<bind name="n" value=" '%' + saleName + '%'"/>
+	 and a.name like #{n,jdbcType=VARCHAR}
+	</if>
+	group by
+	a.department_id, a.id, m.`type`
+ </select>
+ <!-- 查看某人某年某月某类型的数据是否存在 -->
+ <select id="checkData" parameterType="com.goafanti.order.bo.OrderReportBo" resultType="java.lang.Integer">
+ 	select count(*) from
+	t_order_month_report
+	where salemans_id = #{salemansId,jdbcType=VARCHAR} and `month` = #{month,jdbcType=INTEGER}
+	and type = #{type,jdbcType=INTEGER}
+ </select>
+</mapper>

+ 2 - 2
src/main/java/com/goafanti/common/mapper/TOrderRefundMapper.xml

@@ -458,7 +458,7 @@
   	 left join t_order_new o on r.order_no = o.order_no
   	 left join `user` u on o.buyer_id = u.id
   	 left join admin a on o.salesman_id = a.id
-  	where accept = #{accept,jdbcType=VARCHAR}
+  	where accept = #{r.accept,jdbcType=VARCHAR}
   	and refund_status &lt; 2
   	<if test='r.id != null and r.id != ""'>
   		and id= #{r.id,jdbcType=INTEGER}
@@ -489,7 +489,7 @@
   	 left join t_order_new o on r.order_no = o.order_no
   	 left join `user` u on o.buyer_id = u.id
   	 left join admin a on o.salesman_id = a.id
-  	where accept = #{accept,jdbcType=VARCHAR}
+  	where accept = #{r.accept,jdbcType=VARCHAR}
   	<if test='r.refundStatus == null or r.refundStatus == ""'>
   		and refund_status &lt; 2
   	</if>

+ 105 - 2
src/main/java/com/goafanti/common/model/TOrderBonus.java

@@ -6,54 +6,94 @@ public class TOrderBonus {
 
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bonus.id
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	private String id;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bonus.create_time
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	private Date createTime;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bonus.order_no
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	private String orderNo;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bonus.bonus_subject
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	private Integer bonusSubject;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bonus.grant_status
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	private Integer grantStatus;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bonus.grant_target
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	private String grantTarget;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bonus.grant_by
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	private String grantBy;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bonus.grant_time
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	private Date grantTime;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_bonus.grant_type
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	private Integer grantType;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_bonus.id
 	 * @return  the value of t_order_bonus.id
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public String getId() {
 		return id;
@@ -62,7 +102,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_bonus.id
 	 * @param id  the value for t_order_bonus.id
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setId(String id) {
 		this.id = id;
@@ -71,7 +115,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_bonus.create_time
 	 * @return  the value of t_order_bonus.create_time
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public Date getCreateTime() {
 		return createTime;
@@ -80,7 +128,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_bonus.create_time
 	 * @param createTime  the value for t_order_bonus.create_time
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setCreateTime(Date createTime) {
 		this.createTime = createTime;
@@ -89,7 +141,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_bonus.order_no
 	 * @return  the value of t_order_bonus.order_no
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public String getOrderNo() {
 		return orderNo;
@@ -98,7 +154,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_bonus.order_no
 	 * @param orderNo  the value for t_order_bonus.order_no
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setOrderNo(String orderNo) {
 		this.orderNo = orderNo;
@@ -107,7 +167,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_bonus.bonus_subject
 	 * @return  the value of t_order_bonus.bonus_subject
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public Integer getBonusSubject() {
 		return bonusSubject;
@@ -116,7 +180,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_bonus.bonus_subject
 	 * @param bonusSubject  the value for t_order_bonus.bonus_subject
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setBonusSubject(Integer bonusSubject) {
 		this.bonusSubject = bonusSubject;
@@ -125,7 +193,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_bonus.grant_status
 	 * @return  the value of t_order_bonus.grant_status
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public Integer getGrantStatus() {
 		return grantStatus;
@@ -134,7 +206,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_bonus.grant_status
 	 * @param grantStatus  the value for t_order_bonus.grant_status
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setGrantStatus(Integer grantStatus) {
 		this.grantStatus = grantStatus;
@@ -143,7 +219,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_bonus.grant_target
 	 * @return  the value of t_order_bonus.grant_target
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public String getGrantTarget() {
 		return grantTarget;
@@ -152,7 +232,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_bonus.grant_target
 	 * @param grantTarget  the value for t_order_bonus.grant_target
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setGrantTarget(String grantTarget) {
 		this.grantTarget = grantTarget;
@@ -161,7 +245,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_bonus.grant_by
 	 * @return  the value of t_order_bonus.grant_by
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public String getGrantBy() {
 		return grantBy;
@@ -170,7 +258,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_bonus.grant_by
 	 * @param grantBy  the value for t_order_bonus.grant_by
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setGrantBy(String grantBy) {
 		this.grantBy = grantBy;
@@ -179,7 +271,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_bonus.grant_time
 	 * @return  the value of t_order_bonus.grant_time
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public Date getGrantTime() {
 		return grantTime;
@@ -188,7 +284,11 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_bonus.grant_time
 	 * @param grantTime  the value for t_order_bonus.grant_time
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setGrantTime(Date grantTime) {
 		this.grantTime = grantTime;
@@ -197,18 +297,21 @@ public class TOrderBonus {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_bonus.grant_type
 	 * @return  the value of t_order_bonus.grant_type
-	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
 	 */
 	public Integer getGrantType() {
 		return grantType;
 	}
 
+
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_bonus.grant_type
 	 * @param grantType  the value for t_order_bonus.grant_type
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setGrantType(Integer grantType) {
 		this.grantType = grantType;
 	}
-}
+}

+ 67 - 1
src/main/java/com/goafanti/common/model/TOrderBonusExample.java

@@ -8,23 +8,39 @@ import java.util.Iterator;
 public class TOrderBonusExample {
     /**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	protected String orderByClause;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	protected boolean distinct;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	protected List<Criteria> oredCriteria;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public TOrderBonusExample() {
 		oredCriteria = new ArrayList<Criteria>();
@@ -32,7 +48,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setOrderByClause(String orderByClause) {
 		this.orderByClause = orderByClause;
@@ -40,7 +60,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public String getOrderByClause() {
 		return orderByClause;
@@ -48,7 +72,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void setDistinct(boolean distinct) {
 		this.distinct = distinct;
@@ -56,7 +84,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public boolean isDistinct() {
 		return distinct;
@@ -64,7 +96,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public List<Criteria> getOredCriteria() {
 		return oredCriteria;
@@ -72,7 +108,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void or(Criteria criteria) {
 		oredCriteria.add(criteria);
@@ -80,7 +120,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public Criteria or() {
 		Criteria criteria = createCriteriaInternal();
@@ -90,7 +134,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public Criteria createCriteria() {
 		Criteria criteria = createCriteriaInternal();
@@ -102,7 +150,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	protected Criteria createCriteriaInternal() {
 		Criteria criteria = new Criteria();
@@ -111,7 +163,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public void clear() {
 		oredCriteria.clear();
@@ -121,7 +177,11 @@ public class TOrderBonusExample {
 
 	/**
 	 * This class was generated by MyBatis Generator. This class corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	protected abstract static class GeneratedCriteria {
 		protected List<Criterion> criteria;
@@ -769,11 +829,17 @@ public class TOrderBonusExample {
 			addCriterion("grant_type not between", value1, value2, "grantType");
 			return (Criteria) this;
 		}
+
+		
 	}
 
 	/**
 	 * This class was generated by MyBatis Generator. This class corresponds to the database table t_order_bonus
+<<<<<<< HEAD
+	 * @mbggenerated  Tue Nov 27 10:35:55 CST 2018
+=======
 	 * @mbg.generated  Tue Nov 27 11:15:28 CST 2018
+>>>>>>> branch 'test' of http://git.jishutao.com/jishutao/kede-server.git
 	 */
 	public static class Criterion {
 		private String condition;
@@ -866,4 +932,4 @@ public class TOrderBonusExample {
             super();
         }
     }
-}
+}

+ 169 - 0
src/main/java/com/goafanti/common/model/TOrderMonthReport.java

@@ -0,0 +1,169 @@
+package com.goafanti.common.model;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class TOrderMonthReport {
+
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_month_report.id
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	private Integer id;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_month_report.type
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	private Integer type;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_month_report.month
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	private Integer month;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_month_report.amount
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	private BigDecimal amount;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_month_report.proof_count
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	private Float proofCount;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_month_report.salemans_id
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	private String salemansId;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_month_report.update_time
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	private Date updateTime;
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_month_report.id
+	 * @return  the value of t_order_month_report.id
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report.id
+	 * @param id  the value for t_order_month_report.id
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report.type
+	 * @return  the value of t_order_month_report.type
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public Integer getType() {
+		return type;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_month_report.type
+	 * @param type  the value for t_order_month_report.type
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_month_report.month
+	 * @return  the value of t_order_month_report.month
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public Integer getMonth() {
+		return month;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_month_report.month
+	 * @param month  the value for t_order_month_report.month
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public void setMonth(Integer month) {
+		this.month = month;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_month_report.amount
+	 * @return  the value of t_order_month_report.amount
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public BigDecimal getAmount() {
+		return amount;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_month_report.amount
+	 * @param amount  the value for t_order_month_report.amount
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	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_month_report.proof_count
+	 * @return  the value of t_order_month_report.proof_count
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public Float getProofCount() {
+		return proofCount;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_month_report.proof_count
+	 * @param proofCount  the value for t_order_month_report.proof_count
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public void setProofCount(Float proofCount) {
+		this.proofCount = proofCount;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_month_report.salemans_id
+	 * @return  the value of t_order_month_report.salemans_id
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public String getSalemansId() {
+		return salemansId;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_month_report.salemans_id
+	 * @param salemansId  the value for t_order_month_report.salemans_id
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public void setSalemansId(String salemansId) {
+		this.salemansId = salemansId;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_month_report.update_time
+	 * @return  the value of t_order_month_report.update_time
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_month_report.update_time
+	 * @param updateTime  the value for t_order_month_report.update_time
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+}

+ 701 - 0
src/main/java/com/goafanti/common/model/TOrderMonthReportExample.java

@@ -0,0 +1,701 @@
+package com.goafanti.common.model;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class TOrderMonthReportExample {
+    /**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	protected String orderByClause;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	protected boolean distinct;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	protected List<Criteria> oredCriteria;
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public TOrderMonthReportExample() {
+		oredCriteria = new ArrayList<Criteria>();
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public String getOrderByClause() {
+		return orderByClause;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report
+	 * @mbggenerated  Tue Nov 27 14:53:14 CST 2018
+	 */
+	public boolean isDistinct() {
+		return distinct;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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 andTypeIsNull() {
+			addCriterion("type is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeIsNotNull() {
+			addCriterion("type is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeEqualTo(Integer value) {
+			addCriterion("type =", value, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeNotEqualTo(Integer value) {
+			addCriterion("type <>", value, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeGreaterThan(Integer value) {
+			addCriterion("type >", value, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
+			addCriterion("type >=", value, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeLessThan(Integer value) {
+			addCriterion("type <", value, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeLessThanOrEqualTo(Integer value) {
+			addCriterion("type <=", value, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeIn(List<Integer> values) {
+			addCriterion("type in", values, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeNotIn(List<Integer> values) {
+			addCriterion("type not in", values, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeBetween(Integer value1, Integer value2) {
+			addCriterion("type between", value1, value2, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andTypeNotBetween(Integer value1, Integer value2) {
+			addCriterion("type not between", value1, value2, "type");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthIsNull() {
+			addCriterion("month is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthIsNotNull() {
+			addCriterion("month is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthEqualTo(Integer value) {
+			addCriterion("month =", value, "month");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthNotEqualTo(Integer value) {
+			addCriterion("month <>", value, "month");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthGreaterThan(Integer value) {
+			addCriterion("month >", value, "month");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthGreaterThanOrEqualTo(Integer value) {
+			addCriterion("month >=", value, "month");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthLessThan(Integer value) {
+			addCriterion("month <", value, "month");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthLessThanOrEqualTo(Integer value) {
+			addCriterion("month <=", value, "month");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthIn(List<Integer> values) {
+			addCriterion("month in", values, "month");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthNotIn(List<Integer> values) {
+			addCriterion("month not in", values, "month");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthBetween(Integer value1, Integer value2) {
+			addCriterion("month between", value1, value2, "month");
+			return (Criteria) this;
+		}
+
+		public Criteria andMonthNotBetween(Integer value1, Integer value2) {
+			addCriterion("month not between", value1, value2, "month");
+			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 andProofCountIsNull() {
+			addCriterion("proof_count is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountIsNotNull() {
+			addCriterion("proof_count is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountEqualTo(Float value) {
+			addCriterion("proof_count =", value, "proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountNotEqualTo(Float value) {
+			addCriterion("proof_count <>", value, "proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountGreaterThan(Float value) {
+			addCriterion("proof_count >", value, "proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountGreaterThanOrEqualTo(Float value) {
+			addCriterion("proof_count >=", value, "proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountLessThan(Float value) {
+			addCriterion("proof_count <", value, "proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountLessThanOrEqualTo(Float value) {
+			addCriterion("proof_count <=", value, "proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountIn(List<Float> values) {
+			addCriterion("proof_count in", values, "proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountNotIn(List<Float> values) {
+			addCriterion("proof_count not in", values, "proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountBetween(Float value1, Float value2) {
+			addCriterion("proof_count between", value1, value2, "proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andProofCountNotBetween(Float value1, Float value2) {
+			addCriterion("proof_count not between", value1, value2,
+					"proofCount");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdIsNull() {
+			addCriterion("salemans_id is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdIsNotNull() {
+			addCriterion("salemans_id is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdEqualTo(String value) {
+			addCriterion("salemans_id =", value, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdNotEqualTo(String value) {
+			addCriterion("salemans_id <>", value, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdGreaterThan(String value) {
+			addCriterion("salemans_id >", value, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdGreaterThanOrEqualTo(String value) {
+			addCriterion("salemans_id >=", value, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdLessThan(String value) {
+			addCriterion("salemans_id <", value, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdLessThanOrEqualTo(String value) {
+			addCriterion("salemans_id <=", value, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdLike(String value) {
+			addCriterion("salemans_id like", value, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdNotLike(String value) {
+			addCriterion("salemans_id not like", value, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdIn(List<String> values) {
+			addCriterion("salemans_id in", values, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdNotIn(List<String> values) {
+			addCriterion("salemans_id not in", values, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdBetween(String value1, String value2) {
+			addCriterion("salemans_id between", value1, value2, "salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andSalemansIdNotBetween(String value1, String value2) {
+			addCriterion("salemans_id not between", value1, value2,
+					"salemansId");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeIsNull() {
+			addCriterion("update_time is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeIsNotNull() {
+			addCriterion("update_time is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeEqualTo(Date value) {
+			addCriterion("update_time =", value, "updateTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeNotEqualTo(Date value) {
+			addCriterion("update_time <>", value, "updateTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeGreaterThan(Date value) {
+			addCriterion("update_time >", value, "updateTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+			addCriterion("update_time >=", value, "updateTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeLessThan(Date value) {
+			addCriterion("update_time <", value, "updateTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+			addCriterion("update_time <=", value, "updateTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeIn(List<Date> values) {
+			addCriterion("update_time in", values, "updateTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeNotIn(List<Date> values) {
+			addCriterion("update_time not in", values, "updateTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+			addCriterion("update_time between", value1, value2, "updateTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+			addCriterion("update_time not between", value1, value2,
+					"updateTime");
+			return (Criteria) this;
+		}
+	}
+
+	/**
+	 * This class was generated by MyBatis Generator. This class corresponds to the database table t_order_month_report
+	 * @mbggenerated  Tue Nov 27 14:53: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);
+		}
+	}
+
+	/**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table t_order_month_report
+     *
+     * @mbggenerated do_not_delete_during_merge Tue Nov 27 11:37:50 CST 2018
+     */
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+}

+ 28 - 0
src/main/java/com/goafanti/common/task/MonthReportTask.java

@@ -0,0 +1,28 @@
+package com.goafanti.common.task;
+
+import javax.annotation.Resource;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.order.service.OrderReportService;
+
+@Component
+public class MonthReportTask {
+	@Resource
+	private  OrderReportService	orderReportServiceImpl;
+	
+	Logger	logger	= LoggerFactory.getLogger(MonthReportTask.class);
+	/**
+     * 每月1号7点15分钟执行任务
+     */
+    @Scheduled(cron = "0 0 7 1 * ?")
+   //@Scheduled(cron = "0 3 18 * * ?")
+    public void testTask(){
+    	int count = orderReportServiceImpl.insertOrderStatisticsByMonthTask();
+    	LoggerUtils.debug(logger, "统计上月订单【%s】条。", count);
+    }
+}

+ 150 - 3
src/main/java/com/goafanti/common/utils/ExcelUtils.java

@@ -4,7 +4,10 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.math.BigDecimal;
 import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -16,7 +19,9 @@ import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
 import com.goafanti.customer.bo.CustomerExcelBo;
+import com.goafanti.order.bo.OrderReportBo;
 
 public class ExcelUtils {
 	private Set<Integer> vacantRows = new HashSet<Integer>(); //数据不完整的
@@ -162,8 +167,150 @@ public class ExcelUtils {
 	}
 	
 	public static void main(String[] args) {
-		ExcelUtils utils = new ExcelUtils();
-		String s = utils.checkMobile("18320746285", 1);
-		System.out.println(s);
+//		ExcelUtils utils = new ExcelUtils();
+//		String s = utils.checkMobile("18320746285", 1);
+//		System.out.println(s);
+		String mm = "201111";
+		if(mm.length() != 2 && mm.length() != 6){
+			System.out.println("cuowu=-----");
+		}else{
+			Integer m = Integer.valueOf(mm.substring(mm.length()-2, mm.length()));
+			System.out.println(m);
+			if(m>12 || m<0){
+				System.out.println("月份不对------");
+			}else{
+				Integer re = Integer.valueOf(mm);
+				if(re>m){
+					System.out.println(re);
+				}else{
+					String ym = new SimpleDateFormat("yyyy").format(new Date()) + m;
+					System.out.println(ym);
+				}
+			}
+			
+			
+			
+		}
 	}
+	
+	
+	public  Set<OrderReportBo> parseOrderExcel(String excelPath) throws IOException{
+		InputStream excelFile = new FileInputStream(new File(excelPath));
+		XSSFWorkbook wb = new XSSFWorkbook(excelFile);	
+		Set<OrderReportBo> result = new HashSet<OrderReportBo>();
+		XSSFSheet sheet = wb.getSheetAt(0);
+		Iterator<Row> rowIterator = sheet.iterator();
+		Row currentRow = sheet.getRow(1); //表头
+		int totalNumber = sheet.getLastRowNum();
+		int rowNumber = 1;
+		rowIterator.next();
+		while(rowIterator.hasNext() && rowNumber <= totalNumber){
+			rowNumber++;
+			currentRow = rowIterator.next();
+			Iterator<Cell> cellIterator = currentRow.iterator();
+			OrderReportBo bo = new OrderReportBo();
+			
+			bo.setSaleName(checkEmptyStr(cellIterator.next().getStringCellValue(),rowNumber));
+			//电话
+			Cell cell = cellIterator.next();
+			if(cell.getCellTypeEnum() == CellType.NUMERIC) {
+				bo.setMobile(checkMobile(df.format(cell.getNumericCellValue()), rowNumber));
+			}else if(cell.getCellTypeEnum() == CellType.STRING){
+				bo.setMobile(checkMobile(cell.getStringCellValue(), rowNumber));
+			}
+			//月份
+			cell = cellIterator.next();
+			if(cell.getCellTypeEnum() == CellType.NUMERIC){
+				bo.setMonth(checkOrderMonth(df.format(cell.getNumericCellValue()),rowNumber));
+			}else if(cell.getCellTypeEnum() == CellType.STRING){
+				bo.setMonth(checkOrderMonth(cell.getStringCellValue(),rowNumber));
+			}
+			bo.setType(checkOrderType(cellIterator.next().getStringCellValue(),rowNumber));
+			//数量
+			cell = cellIterator.next();
+			if(cell.getCellTypeEnum() == CellType.NUMERIC){
+				bo.setProofCount(Float.valueOf(checkEmptyStr(df.format(cell.getNumericCellValue()),rowNumber)));
+			}else if(cell.getCellTypeEnum() == CellType.STRING){
+				bo.setProofCount(Float.valueOf(checkEmptyStr(cell.getStringCellValue(),rowNumber)));
+			}
+			//金额
+			cell = cellIterator.next();
+			if(cell.getCellTypeEnum() == CellType.NUMERIC){
+				bo.setAmount(new BigDecimal(checkEmptyStr(df.format(cell.getNumericCellValue()),rowNumber)));
+			}else if(cell.getCellTypeEnum() == CellType.STRING){
+				bo.setAmount(new BigDecimal(checkEmptyStr(cell.getStringCellValue(),rowNumber)));
+			}
+			bo.setRowNumber(rowNumber);
+			result.add(bo);
+		}
+		return result;
+	}
+	
+	private Integer checkOrderType(String OrderType,int rowNumber){
+		if(checkEmpty(OrderType, rowNumber)){
+			return null;
+		}
+		if(OrderType.equals("认证项目")) return 0; 
+		if(OrderType.equals("科技项目")) return 1;
+		vacantRows.add(rowNumber);
+		return null;
+	}
+	private Integer checkOrderMonth(String month,int rowNumber){
+		
+		if(checkEmpty(month, rowNumber)){
+			return null;
+		}
+		Integer m = null;
+		if(month.length() == 2 || month.length() == 6){
+			try {
+				m = Integer.valueOf(month.substring(month.length()-2, month.length()));
+			} catch (Exception e) {
+				vacantRows.add(rowNumber);
+				return null;
+			}
+		}else{
+			if(month.length() == 1){
+				try {
+					m = Integer.valueOf(month);
+				} catch (Exception e) {
+					vacantRows.add(rowNumber);
+					return null;
+				}
+			}else{
+				vacantRows.add(rowNumber);
+			}
+		}
+		if(m>0 && m<=12){
+			Integer re = Integer.valueOf(month);
+			if(re>m){
+				return re;
+			}else{
+				String ym = new SimpleDateFormat("yyyy").format(new Date()) + (m>10?m:"0"+m);
+				System.out.println(ym);
+				return Integer.valueOf(ym);
+			}
+		}else{
+			vacantRows.add(rowNumber);
+		}
+		return null;
+	}
+	private Boolean checkEmpty(String str,int rowNumber){
+		if(StringUtils.isEmpty(str)) {
+			vacantRows.add(rowNumber);
+			return true;
+		}else{
+			return false;
+		}
+	}
+	private String checkEmptyStr(String str,int rowNumber){
+		if(StringUtils.isEmpty(str)) {
+			vacantRows.add(rowNumber);
+			return "";
+		}else{
+			return str;
+		}
+	}
+	
+	//检查表头
+	
 }

+ 159 - 44
src/main/java/com/goafanti/common/utils/ExportExcelUtil.java

@@ -15,34 +15,40 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
-import org.apache.poi.hssf.usermodel.HSSFFont;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFCellStyle;
+import org.apache.poi.xssf.usermodel.XSSFFont;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.common.model.TOrderBillNew;
+import com.goafanti.order.bo.OrderReportBo;
+import com.goafanti.order.bo.TOrderBonusBo;
 import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.bo.TOrderTaskListBo;
+import com.goafanti.order.enums.BonusSubject;
 import com.goafanti.order.enums.LiquidationNewState;
 import com.goafanti.order.enums.OrderNewState;
 import com.goafanti.order.enums.ProjectNewStage;
 import com.goafanti.techproject.enums.TaskState;
-import com.goafanti.order.bo.TOrderBonusBo;
-import com.goafanti.order.enums.BonusSubject;
 
 public class ExportExcelUtil {
 	
 	//设置单元格格式
-	private static HSSFCellStyle setCellStyle1(HSSFWorkbook workbook){
+	private static XSSFCellStyle setCellStyle1(XSSFWorkbook workbook){
 		// 设置字体  
-		HSSFFont font = workbook.createFont();  
+		XSSFFont font = workbook.createFont();  
 		// font.setColor(HSSFFont.COLOR_RED);  
 		font.setFontName("微软雅黑");
 		font.setFontHeightInPoints((short) 10);//字体大小  
 		  
 		// 设置样式  
-		HSSFCellStyle cellStyle = workbook.createCellStyle();  
+		XSSFCellStyle cellStyle = workbook.createCellStyle();  
 		cellStyle.setFont(font);  //字体
 		
 		//设置自动换行
@@ -116,30 +122,30 @@ public class ExportExcelUtil {
 	 * @param comment 表头(列名)
 	 * @param filePath 生成文件路径
 	 */
-	public static HSSFWorkbook exportDeptBillInfo(Map<String,List<TOrderBillNew>> map,String[] deptnames,String[] comment,String filePath){
+	public static XSSFWorkbook exportDeptBillInfo(Map<String,List<TOrderBillNew>> map,String[] deptnames,String[] comment,String filePath){
 		//map 数据 ,deptnames 部门名称,comment表头 (列名称)
  		//1,创建一个workbook,对应的是一个excel文件
-		HSSFWorkbook wb = new HSSFWorkbook();
+		XSSFWorkbook wb = new XSSFWorkbook();
 		int count = 0;
 		//遍历map
 		for (Map.Entry<String,List<TOrderBillNew>> entry : map.entrySet()) {
 			//2.创建一个sheet
-			HSSFSheet sheet = wb.createSheet(entry.getKey());
+			XSSFSheet sheet = wb.createSheet(entry.getKey());
 			//3。创建一个row
-			HSSFRow row = sheet.createRow(0);
+			XSSFRow row = sheet.createRow(0);
 			//4.创建一个cell
-			HSSFCell cell = row.createCell(0);
+			XSSFCell cell = row.createCell(0);
 			cell.setCellValue(deptnames[count]+" 流水记录");
 			count ++;
-			HSSFCellStyle style1 = setCellStyle1(wb);
+			XSSFCellStyle style1 = setCellStyle1(wb);
 			cell.setCellStyle(style1);
 			//合并列
 			sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, comment.length-1));//合并单元格
 			//创建表头
-			HSSFRow row2 = sheet.createRow(1);
+			XSSFRow row2 = sheet.createRow(1);
 			for(int i = 0; i < comment.length; i++){
 				sheet.setColumnWidth(i, 3000);//设置列宽
-				HSSFCell c = row2.createCell(i);
+				XSSFCell c = row2.createCell(i);
 				c.setCellValue(comment[i]);
 				c.setCellStyle(style1);
 			}
@@ -151,14 +157,14 @@ public class ExportExcelUtil {
 			}
 			for (TOrderBillNew ob : list) {
 				//新增一行
-				HSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+				XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
 				for (int i = 0; i < comment.length; i++) {
 					//当前列的只
 					String o ;
 					switch (comment[i]) {
 					case "平台流水编号": o = ob.getBillNo(); break;
 					case "平台流水时间": o = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(ob.getCreateTime()); break;
-					case "交易金额": o = ob.getTransactionAmount().toString(); break;
+					case "交易金额": o = ob.getTransactionAmount().toString() + "万元"; break;
 					case "付款方": o = ob.getPayerName(); break;
 					case "收款方": o = ob.getPayeeName(); break;
 					case "流水科目": 
@@ -189,7 +195,7 @@ public class ExportExcelUtil {
 					case "订单负责人": o = ob.getSaleName(); break;
 					default: o = ""; break;
 					}
-					HSSFCell c = r.createCell(i);
+					XSSFCell c = r.createCell(i);
 					c.setCellValue(o);
 				}
 			}
@@ -220,30 +226,30 @@ public class ExportExcelUtil {
 	 * @param comment
 	 * @return
 	 */
-	public static HSSFWorkbook exportDeptBonusInfoT(Map<String,List<TOrderBonusBo>> map,String[] deptnames,String[] comment){
+	public static XSSFWorkbook exportDeptBonusInfoT(Map<String,List<TOrderBonusBo>> map,String[] deptnames,String[] comment){
 		//map 数据 ,deptnames 部门名称,comment表头 (列名称)
 		//1,创建一个workbook,对应的是一个excel文件
-		HSSFWorkbook wb = new HSSFWorkbook();
+		XSSFWorkbook wb = new XSSFWorkbook();
 		int count = 0;
 		//遍历map
 		for (Map.Entry<String,List<TOrderBonusBo>> entry : map.entrySet()) {
 			//2.创建一个sheet
-			HSSFSheet sheet = wb.createSheet(entry.getKey());
+			XSSFSheet sheet = wb.createSheet(entry.getKey());
 			//3。创建一个row
-			HSSFRow row = sheet.createRow(0);
+			XSSFRow row = sheet.createRow(0);
 			//4.创建一个cell
-			HSSFCell cell = row.createCell(0);
+			XSSFCell cell = row.createCell(0);
 			cell.setCellValue(deptnames[count]+" 奖金记录");
 			count ++;
-			HSSFCellStyle style1 = setCellStyle1(wb);
+			XSSFCellStyle style1 = setCellStyle1(wb);
 			cell.setCellStyle(style1);
 			//合并列
 			sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, comment.length-1));//合并单元格
 			//创建表头
-			HSSFRow row2 = sheet.createRow(1);
+			XSSFRow row2 = sheet.createRow(1);
 			for(int i = 0; i < comment.length; i++){
 				sheet.setColumnWidth(i, 3000);//设置列宽
-				HSSFCell c = row2.createCell(i);
+				XSSFCell c = row2.createCell(i);
 				c.setCellValue(comment[i]);
 				c.setCellStyle(style1);
 			}
@@ -255,7 +261,7 @@ public class ExportExcelUtil {
 			}
 			for (TOrderBonusBo ob : list) {
 				//新增一行
-				HSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+				XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
 				for (int i = 0; i < comment.length; i++) {
 					//当前列的只
 					String o = "";
@@ -280,7 +286,7 @@ public class ExportExcelUtil {
 					break;
 					default: o = ""; break;
 					}
-					HSSFCell c = r.createCell(i);
+					XSSFCell c = r.createCell(i);
 					c.setCellValue(o);
 				}
 			}
@@ -304,26 +310,97 @@ public class ExportExcelUtil {
 			e.printStackTrace();
 		}*/
 	}
+	/**
+	 * 导出订单数据
+	 * @param list
+	 * @param date
+	 * @return
+	 */
+	public static XSSFWorkbook exportOrderInfo(List<OrderReportBo> list,String date){
+		//list 数据 ,comment表头 (列名称)
+		String[] comment = {"序号","订单部门","订单类型","签单人员","签单数量","累计签单金额(万元)"};
+		//1,创建一个workbook,对应的是一个excel文件
+		XSSFWorkbook wb = new XSSFWorkbook();
+		//遍历map
+		//2.创建一个sheet
+		XSSFSheet sheet = wb.createSheet(date + "订单统计");
+		//3。创建一个row
+		XSSFRow row = sheet.createRow(0);
+		//4.创建一个cell
+		XSSFCell cell = row.createCell(0);
+		cell.setCellValue(date + "订单统计");
+		XSSFCellStyle style1 = setCellStyle1(wb);
+		cell.setCellStyle(style1);
+		//合并列
+		sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, comment.length-1));//合并单元格
+		//创建表头
+		XSSFRow row2 = sheet.createRow(1);
+		for(int i = 0; i < comment.length; i++){
+			sheet.setColumnWidth(i, 3000);//设置列宽
+			XSSFCell c = row2.createCell(i);
+			c.setCellValue(comment[i]);
+			c.setCellStyle(style1);
+		}
+		//填充表格数据
+		//int rowmnum = sheet.getLastRowNum();//获得当前行数据
+		for (OrderReportBo ob : list) {
+			//新增一行
+			XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+			for (int i = 0; i < comment.length; i++) {
+				//当前列的只
+				String o = "";
+				switch (comment[i]) {
+				case "序号": o = ob.getId().toString(); break;
+				case "订单部门": o = ob.getDeptName(); break;
+				case "订单类型": o = (ob.getType() == 1 ? "科技项目" : "认证项目"); break;
+				case "签单人员": o = ob.getSaleName(); break;
+				case "签单数量": o = ob.getProofCount().toString(); break;
+				case "累计签单金额(万元)": o =ob.getAmount().toString(); break;
+				
+				default: o = ""; break;
+				}
+				XSSFCell c = r.createCell(i);
+				c.setCellValue(o);
+			}
+		}
+		return wb;
+		/*OutputStream os = new ByteArrayOutputStream();
+		try {
+			wb.write(os);
+		} catch (IOException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		}
+		//将表格数据放入文件中
+		try {
+			FileOutputStream fos = new FileOutputStream(filePath);
+			wb.write(fos);
+			fos.close();
+			System.out.println("已经创建文件");
+		} catch (Exception e) {
+			System.out.println("发生了异常");
+			e.printStackTrace();
+		}*/
+	}
 	
-	
-	public static HSSFWorkbook exportOrderDunData(List<TOrderNewBo> list,String[] comment,String filePath){
+	public static XSSFWorkbook exportOrderDunData(List<TOrderNewBo> list,String[] comment,String filePath){
 		//map 数据 comment表头 (列名称)
  		//1,创建一个workbook,对应的是一个excel文件
-		HSSFWorkbook wb = new HSSFWorkbook();
+		XSSFWorkbook wb = new XSSFWorkbook();
 		//2.创建一个sheet
-			HSSFSheet sheet = wb.createSheet();
+			XSSFSheet sheet = wb.createSheet();
 			//创建表头
-			HSSFCellStyle style1 = setCellStyle1(wb);
-			HSSFRow row = sheet.createRow(0);
+			XSSFCellStyle style1 = setCellStyle1(wb);
+			XSSFRow row = sheet.createRow(0);
 			for(int i = 0; i < comment.length; i++){
 				sheet.setColumnWidth(i, 3000);//设置列宽
-				HSSFCell c = row.createCell(i);
+				XSSFCell c = row.createCell(i);
 				c.setCellValue(comment[i]);
 				c.setCellStyle(style1);
 			}
 			for (TOrderNewBo ob : list) {
 				//新增一行
-				HSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+				XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
 				for (int i = 0; i < comment.length; i++) {
 					//当前列的只
 					String o ;
@@ -341,7 +418,7 @@ public class ExportExcelUtil {
 					case "催款启动日期": o = ob.getStartDate(); break;
 					default: o = ""; break;
 					}
-					HSSFCell c = r.createCell(i);
+					XSSFCell c = r.createCell(i);
 					c.setCellValue(o);
 				}
 			}
@@ -364,25 +441,25 @@ public class ExportExcelUtil {
 		return "";
 	}
 
-	public static HSSFWorkbook exportTaskHoursListData(List<TOrderTaskListBo> list, String[] comment, String filePath) {
+	public static XSSFWorkbook exportTaskHoursListData(List<TOrderTaskListBo> list, String[] comment, String filePath) {
 
 		//map 数据 comment表头 (列名称)
  		//1,创建一个workbook,对应的是一个excel文件
-		HSSFWorkbook wb = new HSSFWorkbook();
+		XSSFWorkbook wb = new XSSFWorkbook();
 		//2.创建一个sheet
-			HSSFSheet sheet = wb.createSheet();
+			XSSFSheet sheet = wb.createSheet();
 			//创建表头
-			HSSFCellStyle style1 = setCellStyle1(wb);
-			HSSFRow row = sheet.createRow(0);
+			XSSFCellStyle style1 = setCellStyle1(wb);
+			XSSFRow row = sheet.createRow(0);
 			for(int i = 0; i < comment.length; i++){
 				sheet.setColumnWidth(i, 3000);//设置列宽
-				HSSFCell c = row.createCell(i);
+				XSSFCell c = row.createCell(i);
 				c.setCellValue(comment[i]);
 				c.setCellStyle(style1);
 			}
 			for (TOrderTaskListBo ob : list) {
 				//新增一行
-				HSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+				XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
 				for (int i = 0; i < comment.length; i++) {
 					//当前列的只
 					String o ;
@@ -398,12 +475,50 @@ public class ExportExcelUtil {
 					case "工时": o = ob.getHours(); break;
 					default: o = ""; break;
 					}
-					HSSFCell c = r.createCell(i);
+					XSSFCell c = r.createCell(i);
 					c.setCellValue(o);
 				}
 			}
 		return wb;
 	}
+	/**
+	 * 年度导出数据模板
+	 * @return
+	 */
+	public static XSSFWorkbook downOrderModelExcel() {
+		String[] comment = {"姓名","电话","月份","项目类型","签单数量","累计签单金额(万元)"};
+		String[] d1 = {"张三","13275161283","1","科技项目","2","12"};
+		String[] d2 = {"张三","13275161283","1","认证项目","0.3","3"};
+		
+		//map 数据 comment表头 (列名称)
+		//1,创建一个workbook,对应的是一个excel文件
+		XSSFWorkbook wb = new XSSFWorkbook();
+		//2.创建一个sheet
+		XSSFSheet sheet = wb.createSheet();
+		//创建表头
+		XSSFCellStyle style1 = setCellStyle1(wb);
+		XSSFRow row = sheet.createRow(0);
+		XSSFRow row1 = sheet.createRow(1);
+		XSSFRow row2 = sheet.createRow(2);
+		for(int i = 0; i < comment.length; i++){
+			sheet.setColumnWidth(i, 3000);//设置列宽
+			XSSFCell c = row.createCell(i);
+			c.setCellValue(comment[i]);
+			c.setCellStyle(style1);
+		}
+		for(int i = 0; i < d1.length; i++){
+			XSSFCell c = row1.createCell(i);
+			c.setCellValue(d1[i]);
+			c.setCellStyle(style1);
+		}
+		for(int i = 0; i < d2.length; i++){
+			XSSFCell c = row2.createCell(i);
+			c.setCellValue(d2[i]);
+			c.setCellStyle(style1);
+		}
+		return wb;
+	}
+	
 	
 	
 }

+ 50 - 0
src/main/java/com/goafanti/order/bo/OrderReportBo.java

@@ -0,0 +1,50 @@
+package com.goafanti.order.bo;
+
+import com.goafanti.common.model.TOrderMonthReport;
+
+public class OrderReportBo  extends TOrderMonthReport{
+	private String saleName;
+	private String deptName;
+	private String departmentId;
+	private Integer month1;
+	private Integer rowNumber;
+	private String mobile;
+	
+	public String getSaleName() {
+		return saleName;
+	}
+	public void setSaleName(String saleName) {
+		this.saleName = saleName;
+	}
+	public String getDeptName() {
+		return deptName;
+	}
+	public void setDeptName(String deptName) {
+		this.deptName = deptName;
+	}
+	public Integer getMonth1() {
+		return month1;
+	}
+	public void setMonth1(Integer month1) {
+		this.month1 = month1;
+	}
+	public String getDepartmentId() {
+		return departmentId;
+	}
+	public void setDepartmentId(String departmentId) {
+		this.departmentId = departmentId;
+	}
+	public String getMobile() {
+		return mobile;
+	}
+	public void setMobile(String mobile) {
+		this.mobile = mobile;
+	}
+	public Integer getRowNumber() {
+		return rowNumber;
+	}
+	public void setRowNumber(Integer rowNumber) {
+		this.rowNumber = rowNumber;
+	}
+	
+}

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

@@ -12,11 +12,12 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
+
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
@@ -428,7 +429,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	@RequestMapping(value = "/exportOrderDunData", method = RequestMethod.GET)
 	public Result exportOrderDunData(String name,String orderNo,String starTime,String endTime,HttpServletResponse response) throws IOException{
 		 Result res = new Result();
-		 HSSFWorkbook wb = orderNewService.exportOrderDunData( name, orderNo, starTime, endTime);
+		 XSSFWorkbook wb = orderNewService.exportOrderDunData( name, orderNo, starTime, endTime);
 		 if(null == wb){
 			 res.getError().add(buildError("", "没有找到数据"));
 			 return res;

+ 9 - 9
src/main/java/com/goafanti/order/controller/FundManagerOrderApiController.java

@@ -9,10 +9,10 @@ import java.util.Date;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.poi.hssf.usermodel.HSSFCell;
-import org.apache.poi.hssf.usermodel.HSSFRow;
-import org.apache.poi.hssf.usermodel.HSSFSheet;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
@@ -274,12 +274,12 @@ public class FundManagerOrderApiController extends CertifyApiController {
 	 public Result exportBillData(TOrderBillNew billNew,HttpServletResponse response) throws IOException{
 		 OutputStream out = response.getOutputStream();
 		 Result res = new Result();
-		 HSSFWorkbook wb = orderBillServiceImpl.exportBillData(billNew);
+		 XSSFWorkbook wb = orderBillServiceImpl.exportBillData(billNew);
 		 if(null == wb){
-			 wb = new HSSFWorkbook();
-			HSSFSheet sheet = wb.createSheet("没有流水记录");
-			HSSFRow row = sheet.createRow(0);
-			HSSFCell cell = row.createCell(0);
+			 wb = new XSSFWorkbook();
+			XSSFSheet sheet = wb.createSheet("没有流水记录");
+			XSSFRow row = sheet.createRow(0);
+			XSSFCell cell = row.createCell(0);
 			cell.setCellValue("没有流水记录");
 		 }
 		 String fileName = "部门流水" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";

+ 147 - 6
src/main/java/com/goafanti/order/controller/OrderBonusStatisticsApiController.java

@@ -4,34 +4,52 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Set;
+import java.util.TreeSet;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.goafanti.common.bo.Error;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.TOrderNew;
+import com.goafanti.common.utils.ExcelUtils;
+import com.goafanti.common.utils.ExportExcelUtil;
+import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.order.bo.OrderReportBo;
 import com.goafanti.order.bo.TOrderBonusBo;
 import com.goafanti.order.service.FundManageOrderService;
 import com.goafanti.order.service.OrderBonusService;
+import com.goafanti.order.service.OrderReportService;
 
 @RestController
-@RequestMapping(value = "/open/api/admin/bonus")
+@RequestMapping(value = "/api/admin/bonus")
 public class OrderBonusStatisticsApiController extends CertifyApiController {
 	@Resource
 	private FundManageOrderService fundManageOrderServiceImpl;
 	@Resource
 	private OrderBonusService orderBonusServiceImpl;
+	@Resource
+	private OrderReportService orderReportServiceImpl;
 	
+	@Value(value = "${upload.private.path}")
+	private String	uploadPrivatePath	= null;
 	 /**
 	  * 财务专员校对单量
 	  * @param orderNew
@@ -118,12 +136,12 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 OutputStream out = response.getOutputStream();
 		 Result res = new Result();
 		 bonusBo.setGrantBy(TokenManager.getAdminId());
-		 HSSFWorkbook wb = orderBonusServiceImpl.exportTechnicianBonusData(bonusBo);
+		 XSSFWorkbook wb = orderBonusServiceImpl.exportTechnicianBonusData(bonusBo);
 		 if(null == wb){
-			 wb = new HSSFWorkbook();
-			 HSSFSheet sheet = wb.createSheet("没有技术员奖金记录");
-			 HSSFRow row = sheet.createRow(0);
-			 HSSFCell cell = row.createCell(0);
+			 wb = new XSSFWorkbook();
+			 XSSFSheet sheet = wb.createSheet("没有技术员奖金记录");
+			 XSSFRow row = sheet.createRow(0);
+			 XSSFCell cell = row.createCell(0);
 			 cell.setCellValue("没有技术员奖金记录");
 		 }
 		 String fileName = "技术员奖金统计" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
@@ -141,5 +159,128 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 return res;
 	 }
 	 
+	 /**
+	  * 订单报表统计数据
+	  * @param reportBo
+	  * @param pageNo
+	  * @param pageSize
+	  * @return
+	  * @throws IOException
+	  */
+	 @RequestMapping(value="/orderReportList", method = RequestMethod.GET)
+	 public Result orderReportList(OrderReportBo reportBo, Integer pageNo, Integer pageSize) throws IOException{
+		Result res = new Result();
+		if(null == reportBo.getMonth() || null == reportBo.getMonth1()){
+			res.getError().add(buildError("", "没有指定订单日期"));
+			return res;
+		}
+		res.setData(orderReportServiceImpl.getOrderReportData(reportBo, pageNo, pageSize));
+		return res;
+	 }
+	 
+	 /**
+	  * 导出订单数据
+	  * @param orderReportBo
+	  * @param response
+	  * @return
+	  * @throws IOException
+	  */
+	 @RequestMapping(value="/exportOrderData", method = RequestMethod.GET)
+	 public Result exportOrderData(OrderReportBo orderReportBo,HttpServletResponse response) throws IOException{
+		 Result res = new Result();
+		 if(null == orderReportBo.getMonth() || null == orderReportBo.getMonth1()){
+			res.getError().add(buildError("", "没有指定订单日期"));
+			return res;
+		 }
+		 String date = orderReportBo.getMonth() == orderReportBo.getMonth1() ? orderReportBo.getMonth().toString() : orderReportBo.getMonth() + "-" + orderReportBo.getMonth1(); 
+		 OutputStream out = response.getOutputStream();
+		 XSSFWorkbook wb = orderReportServiceImpl.exportMonthData(orderReportBo, date);
+		 if(null == wb){
+			 wb = new XSSFWorkbook();
+			 XSSFSheet sheet = wb.createSheet("没有订单统计记录");
+			 XSSFRow row = sheet.createRow(0);
+			 XSSFCell cell = row.createCell(0);
+			 cell.setCellValue("没有订单统计记录");
+		 }
+		 String fileName = "订单统计" + date + ".xls";
+		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
+		 response.setContentType("application/octet-stream;charset=utf-8");  
+		 try {
+			 // 返回数据流
+			 wb.write(out); 
+			 out.flush();
+			 out.close();
+		 } finally {
+			 out.flush(); 
+			 out.close(); 
+		 }
+		 return res;
+	 }
+	 /**
+	  * 导入订单模板
+	  * @param req
+	  * @return
+	  */
+	@RequestMapping(value = "/uploadOrderExcel",method = RequestMethod.POST)
+	public Result uploadExcel(HttpServletRequest req){
+		Result res = new Result();
+		String excelPath = handleFile(res, "/order_report_file/", true, req, "");
+		ExcelUtils utils = new ExcelUtils();
+			Set<OrderReportBo> boSet;
+			try {
+				boSet = utils.parseOrderExcel(uploadPrivatePath + excelPath);
+				String errorMessage = "";
+				//if(boSet.size()>100)	errorMessage += "导入数据不能超过一百条;";
+				errorMessage += utils.getVacantRows();
+				if(StringUtils.isNotBlank(errorMessage)) {
+					res.getError().add(new Error(errorMessage));
+					return res;
+				}
+				Set<Integer> existRows = new TreeSet<Integer>(); //数据库已存在
+				Set<Integer> filterRows = new TreeSet<Integer>(); //过滤提示
+				orderReportServiceImpl.checkOrderReport(boSet,existRows,filterRows);
+				if(existRows.size()>0){
+					errorMessage = StringUtils.join(existRows.toArray(),",")+ " 订单统计数据已存在;";
+					res.getError().add(new Error(errorMessage));
+					return res;
+				}
+				if(filterRows.size()>0){
+					errorMessage = StringUtils.join(filterRows.toArray(),",")+ " 行没有找到相关员工电话,已经被系统过滤;";
+					res.getError().add(new Error(errorMessage));
+					return res;
+				}
+				res.setData(orderReportServiceImpl.saveUploadData(boSet));
+			} catch (IOException e) {
+				e.printStackTrace();
+			}	
+		return res;
+	}
+	
+	/**
+	 * 下载年度订单数据模板
+	 * @param response
+	 * @return
+	 * @throws IOException
+	 */
+	@RequestMapping(value = "/downOrderModelExcel",method = RequestMethod.GET)
+	public Result downOrderModelExcel(HttpServletResponse response) throws IOException{
+		Result res = new Result();
+		 OutputStream out = response.getOutputStream();
+		 XSSFWorkbook wb = ExportExcelUtil.downOrderModelExcel();
+		 String fileName = "导入年度销售数据模板.xls";
+		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
+		 response.setContentType("application/octet-stream;charset=utf-8");  
+		 try {
+			 // 返回数据流
+			 wb.write(out); 
+			 out.flush();
+			 out.close();
+		 } finally {
+			 out.flush(); 
+			 out.close(); 
+		 }
+		return res;
+	}
+	 
 	 
 }

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

@@ -10,7 +10,7 @@ import java.util.Date;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -127,7 +127,7 @@ public class OrderProjectApiController extends CertifyApiController {
 	@RequestMapping(value = "/exportTaskHoursListData", method = RequestMethod.GET)
 	public Result exportTaskHoursListData(String name, String taskId ,String starTime,String endTime ,HttpServletResponse response) throws IOException{
 		 Result res = new Result();
-		 HSSFWorkbook wb = orderProjectService.exportTaskHoursListData( name, taskId, starTime, endTime);
+		 XSSFWorkbook wb = orderProjectService.exportTaskHoursListData( name, taskId, starTime, endTime);
 		 if(null == wb){
 			 res.getError().add(buildError("", "没有找到数据"));
 			 return res;

+ 2 - 2
src/main/java/com/goafanti/order/service/OrderBillService.java

@@ -1,6 +1,6 @@
 package com.goafanti.order.service;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.common.model.TOrderBillNew;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -21,5 +21,5 @@ public interface OrderBillService {
 	 * @param billNew
 	 * @return
 	 */
-	HSSFWorkbook exportBillData(TOrderBillNew billNew);
+	XSSFWorkbook exportBillData(TOrderBillNew billNew);
 }

+ 2 - 2
src/main/java/com/goafanti/order/service/OrderBonusService.java

@@ -1,6 +1,6 @@
 package com.goafanti.order.service;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.common.model.TOrderBonus;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -47,5 +47,5 @@ public interface OrderBonusService {
 	 * @param bonusBo
 	 * @return
 	 */
-	HSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo);
+	XSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo);
 }

+ 2 - 6
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -2,12 +2,10 @@ package com.goafanti.order.service;
 
 import java.util.List;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
-import com.goafanti.common.model.TDunLog;
 import com.goafanti.common.model.TOrderDun;
 import com.goafanti.common.model.TOrderNew;
-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;
@@ -154,7 +152,7 @@ public interface OrderNewService {
 	int deleteOrderNew(String orderNo);
 	boolean checkOderSettlementAmount(String orderNo);
 	boolean checkORderTask(String orderNo);
-	HSSFWorkbook exportOrderDunData(String name, String orderNo, String starTime, String endTime);
+	XSSFWorkbook exportOrderDunData(String name, String orderNo, String starTime, String endTime);
 	int updateOrderOver(String orderNo);
 	OrderRefundDetailBo orderRefundDetail(String id);
 	int updateOrderRefund(TOrderRefundWithBLOBs t);
@@ -162,8 +160,6 @@ public interface OrderNewService {
 	List<OrderDunTaskBo> selectAllOrderDun();
 	void updateOrderDun(TOrderDun tDun);
 	void SendEmail(String orderNo,String dunId);
-	
-	
 
 	
 }

+ 2 - 2
src/main/java/com/goafanti/order/service/OrderProjectService.java

@@ -1,6 +1,6 @@
 package com.goafanti.order.service;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.common.model.TTaskHours;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -23,6 +23,6 @@ public interface OrderProjectService {
 	Pagination<TOrderTaskListBo> taskHoursList(String name, String taskId,String starTime,String endTime ,
 			Integer pageNo, Integer pageSize);
 
-	HSSFWorkbook exportTaskHoursListData(String name, String taskId, String starTime, String endTime);
+	XSSFWorkbook exportTaskHoursListData(String name, String taskId, String starTime, String endTime);
 	
 }

+ 44 - 0
src/main/java/com/goafanti/order/service/OrderReportService.java

@@ -0,0 +1,44 @@
+package com.goafanti.order.service;
+
+import java.util.Set;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
+import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.order.bo.OrderReportBo;
+
+public interface OrderReportService {
+	/**
+	 * 每月定时统计订单
+	 * @return
+	 */
+	int insertOrderStatisticsByMonthTask();
+	
+	/**
+	 * 获得订单数据统计
+	 * @param orderReportBo
+	 * @return
+	 */
+	Pagination<OrderReportBo> getOrderReportData(OrderReportBo orderReportBo, Integer pageNo, Integer pageSize);
+	/**
+	 * 导出订单数据
+	 * @param orderReportBo
+	 * @return
+	 */
+	XSSFWorkbook exportMonthData(OrderReportBo orderReportBo,String date);
+	
+	/**
+	 * 检查这个数据是否存在
+	 * @param bos
+	 * @param existRows
+	 */
+	void checkOrderReport(Set<OrderReportBo> bos, Set<Integer> existRows,Set<Integer> fiterRows);
+	
+	/**
+	 * 保存导入的数据
+	 * @param bos
+	 * @return
+	 */
+	int saveUploadData(Set<OrderReportBo> bos);
+	
+}

+ 10 - 1
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -10,6 +10,7 @@ import java.util.UUID;
 
 import javax.mail.MessagingException;
 
+import org.apache.commons.io.input.BOMInputStream;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -170,7 +171,6 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		bonus.setId(UUID.randomUUID().toString());
 		bonus.setOrderNo(billNew.getOrderNo());
 		bonus.setGrantBy(TokenManager.getAdminId());
-		bonus.setGrantTarget(o.getSalesmanId());
 		int lstaus = 0;//如果订单流水小于首付 lstaus 0
 		
 		// 0 相等
@@ -181,6 +181,11 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		}else if(bd.compareTo(o.getTotalAmount()) == 0){//付完款//如果订单流水等于于总金额 lstaus 2
 			lstaus = 2;
 			bonus.setBonusSubject(12);
+			//发放给技术员
+			bonus.setGrantTarget(o.getTechnicianId());
+			bonus.setGrantType(1);
+			bonusMapper.insertSelective(bonus);
+			
 		}else if(bd.compareTo(o.getTotalAmount()) == -1){//如果订单流水小于总金额
 			if(bd.compareTo(o.getFirstAmount()) == 0){//首付完成
 				bonus.setBonusSubject(11);
@@ -207,6 +212,10 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			result = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
 			//如果达到奖金发放要求新增奖金信息
 			if(null != bonus.getBonusSubject()){
+				bonus.setId(UUID.randomUUID().toString());
+				bonus.setGrantTarget(o.getSalesmanId());
+				//设置发放人类型
+				bonus.setGrantType(0);
 				bonusMapper.insertSelective(bonus);
 			}
 		}

+ 3 - 3
src/main/java/com/goafanti/order/service/impl/OrderBillServiceImpl.java

@@ -4,7 +4,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -38,7 +38,7 @@ public class OrderBillServiceImpl extends BaseMybatisDao<TOrderBillNewMapper> im
 
 
 	@Override
-	public HSSFWorkbook exportBillData(TOrderBillNew billNew) {
+	public XSSFWorkbook exportBillData(TOrderBillNew billNew) {
 		// 判断导出是否有部门
 		String deptid = billNew.getDepartmentId();
 		Map<String, List<TOrderBillNew>> map = new HashMap<String, List<TOrderBillNew>>();
@@ -67,7 +67,7 @@ public class OrderBillServiceImpl extends BaseMybatisDao<TOrderBillNewMapper> im
 //			f.mkdirs();
 //		}
 		//filePath += "/" + System.nanoTime() +".xls";
-		HSSFWorkbook wb = ExportExcelUtil.exportDeptBillInfo(map, deptnames, comment, filePath);
+		XSSFWorkbook wb = ExportExcelUtil.exportDeptBillInfo(map, deptnames, comment, filePath);
 		
 		return wb;
 	}

+ 3 - 3
src/main/java/com/goafanti/order/service/impl/OrderBonusServiceImpl.java

@@ -5,7 +5,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -77,7 +77,7 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 	}
 
 	@Override
-	public HSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo) {
+	public XSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo) {
 		// 判断导出是否有部门
 		String deptid = bonusBo.getDepartmentId();
 		Map<String, List<TOrderBonusBo>> map = new HashMap<String, List<TOrderBonusBo>>();
@@ -100,7 +100,7 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 			map.put(bonusBo.getDepartmentName(), bonusMapper.getBonusData(bonusBo));
 		}
 		String[] comment = {"任务编号","订单编号","任务负责人","任务状态","任务数量","项目状态","受理日期","评审日期","下证日期","订单结算状态","发放类型","发放状态"};
-		HSSFWorkbook wb = ExportExcelUtil.exportDeptBonusInfoT(map, deptnames, comment);
+		XSSFWorkbook wb = ExportExcelUtil.exportDeptBonusInfoT(map, deptnames, comment);
 		return wb;
 	}
 }

+ 4 - 13
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -14,7 +14,7 @@ import java.util.UUID;
 import javax.mail.MessagingException;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,7 +43,6 @@ import com.goafanti.common.model.TOrderDun;
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
-import com.goafanti.common.task.OrderReportTask;
 import com.goafanti.common.utils.ExportExcelUtil;
 import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.common.utils.SendEmailUtil;
@@ -489,7 +488,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	 */
 	@SuppressWarnings("null")
 	@Override
-	public HSSFWorkbook exportOrderDunData(String name, String orderNo, String starTime, String endTime) {
+	public XSSFWorkbook exportOrderDunData(String name, String orderNo, String starTime, String endTime) {
 		if(endTime!=null) endTime=endTime+" 23:59:59";
 		List<TOrderNewBo> list=tOrderDunMapper.getOrderDunData(name,orderNo,starTime,endTime);
 		if (list==null && list.size()==0) {
@@ -497,7 +496,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		}
 		String[] comment = {"订单编号","签单时间","客户名称","订单状态","签单金额","项目状态","结算状态","已收款","订单负责人","催收科目","催款启动日期"};
 		String filePath = uploadPath + "/OrderDun";
-		HSSFWorkbook wb = ExportExcelUtil.exportOrderDunData(list, comment, filePath);
+		XSSFWorkbook wb = ExportExcelUtil.exportOrderDunData(list, comment, filePath);
 		return wb;
 	}
 
@@ -545,9 +544,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		SendEmail(orderNo,null);
 		return tOrderNewMapper.updateByPrimaryKey(t);
 	}
-
-
-
+	
 	@Override
 	public List<OrderDunTaskBo> selectAllOrderDun() {
 		return tOrderDunMapper.getTaskAllOrderDun();
@@ -588,12 +585,6 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			LoggerUtils.error(getClass(), "发送邮件失败", e);
 		}
 	}
-
-
-
-	
-	
-	
 	
 	
 }

+ 3 - 4
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -14,6 +14,7 @@ import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.converters.DateConverter;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -31,13 +32,11 @@ import com.goafanti.common.utils.ExportExcelUtil;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
-import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.bo.TOrderTaskBo;
 import com.goafanti.order.bo.TOrderTaskDetailBo;
 import com.goafanti.order.bo.TOrderTaskListBo;
 import com.goafanti.order.enums.ProcessStatus;
 import com.goafanti.order.enums.ProjectNewStage;
-import com.goafanti.order.service.OrderBillService;
 import com.goafanti.order.service.OrderProjectService;
 import com.goafanti.techproject.enums.TaskState;
 @Service
@@ -207,7 +206,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 
 	@SuppressWarnings("null")
 	@Override
-	public HSSFWorkbook exportTaskHoursListData(String name, String taskId, String starTime, String endTime) {
+	public XSSFWorkbook exportTaskHoursListData(String name, String taskId, String starTime, String endTime) {
 		if(endTime!=null) endTime=endTime+" 23:59:59";
 		List<TOrderTaskListBo> list=tTaskHoursMapper.getTaskHoursData(name,taskId,starTime,endTime);
 		if (list==null && list.size()==0) {
@@ -215,7 +214,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		}
 		String[] comment = {"任务编号","任务名称","订单编号","业务别类","客户名称","任务负责人","任务状态","工时"};
 		String filePath = uploadPath + "/TaskHours";
-		HSSFWorkbook wb = ExportExcelUtil.exportTaskHoursListData(list, comment, filePath);
+		XSSFWorkbook wb = ExportExcelUtil.exportTaskHoursListData(list, comment, filePath);
 		return wb;
 	}
 	

+ 90 - 0
src/main/java/com/goafanti/order/service/impl/OrderReportServiceImpl.java

@@ -0,0 +1,90 @@
+package com.goafanti.order.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.goafanti.common.dao.AdminMapper;
+import com.goafanti.common.dao.TOrderMonthReportMapper;
+import com.goafanti.common.model.Admin;
+import com.goafanti.common.utils.ExportExcelUtil;
+import com.goafanti.core.mybatis.BaseMybatisDao;
+import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.order.bo.OrderReportBo;
+import com.goafanti.order.service.OrderReportService;
+
+@Service
+public class OrderReportServiceImpl extends BaseMybatisDao<TOrderMonthReportMapper> implements OrderReportService {
+	
+	@Autowired
+	private TOrderMonthReportMapper	monthReportMapper;
+	@Autowired
+	private AdminMapper adminMapper;
+	
+	@Override
+	public int insertOrderStatisticsByMonthTask() {
+		return monthReportMapper.insertLastMonthOrderData();
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<OrderReportBo> getOrderReportData(
+			OrderReportBo orderReportBo, Integer pageNo, Integer pageSize) {
+		Map<String, Object> params = new HashMap<String, Object>();
+		params.put("r", orderReportBo);
+		Pagination<OrderReportBo> data = (Pagination<OrderReportBo>)findPage("getOrderReportDataList", "getOrderReportDataCount", params, pageNo, pageSize);
+		return data;
+	}
+
+	@Override
+	public XSSFWorkbook exportMonthData(OrderReportBo orderReportBo, String date) {
+		List<OrderReportBo> list = monthReportMapper.exportMonthData(orderReportBo);
+		if(null == list || list.size() == 0){
+			return null;
+		}
+		return ExportExcelUtil.exportOrderInfo(list, date);
+	}
+
+	@Override
+	public void checkOrderReport(Set<OrderReportBo> rbos, Set<Integer> existRows, Set<Integer> fiterRows) {
+		OrderReportBo[] bos = (OrderReportBo[]) rbos.toArray(new OrderReportBo[] {});
+		for (int i = 0; i < bos.length; i++) {
+			OrderReportBo or = bos[i];
+			// 首先通过手机号码获得adminid
+			Admin admin = adminMapper.selectByMobile(or.getMobile());
+			if(null == admin){
+				fiterRows.add(or.getRowNumber());
+			}else{
+				// 检查名字和电话是否匹配
+				if(admin.getName().equals(or.getSaleName())){
+					// 检查数据是否存在
+					or.setSalemansId(admin.getId());
+					int count = monthReportMapper.checkData(or);
+					if(count>0){
+						existRows.add(or.getRowNumber());
+					}
+				}else{
+					fiterRows.add(or.getRowNumber());
+				}
+				
+			}
+		}
+	}
+
+	@Override
+	public int saveUploadData(Set<OrderReportBo> bos) {
+		OrderReportBo[] datas = (OrderReportBo[]) bos.toArray(new OrderReportBo[] {});
+		int count = 0;
+		for (int i = 0; i < datas.length; i++) {
+			monthReportMapper.insertSelective(datas[i]);
+		}
+		return count;
+	}
+	
+	
+}